activeadmin-mongoid-localize 0.3.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 09d51b1e5671d396e053b03f00c39a454f04401d
4
+ data.tar.gz: ec618247e9d430cd5375713db3f1c25b040a98cd
5
+ SHA512:
6
+ metadata.gz: 2d46601fc54ec26879d20131766bca1ff9223dd4a8b2a935ff51f0102c42f564ecff5e38fac4067a00d3ba068edc301148c2c6ae46d4126e10064d7e6fe8d26d
7
+ data.tar.gz: 7147c36a741647200b94bb2e13c501adfedeaa017a740507a1ec4b7cb05e09dd34155f6076c51fcdf93a1ab05dd92ebadad63a1bdc1fb49247852d0269c78534
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ activeadmin-mongoid-localize
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.0.0-p247
data/README.md CHANGED
@@ -4,7 +4,7 @@ Easily edit mongoid localized fields in ActiveAdmin (all locales on one page)
4
4
 
5
5
  ## Screenshot
6
6
 
7
- ![AML](http://rscx.ru/aml.jpg)
7
+ ![AML](https://rscx.ru/aml.jpg)
8
8
 
9
9
  ## Installation
10
10
 
@@ -36,6 +36,11 @@ Really simple:
36
36
  f.localized_input :content, as: :ckeditor
37
37
  end
38
38
 
39
+ # displaying in index action
40
+ index do
41
+ localize_column :title
42
+ end
43
+
39
44
  # displaying in show action
40
45
  show do |f|
41
46
  panel I18n.t('fields') do
@@ -46,6 +51,20 @@ Really simple:
46
51
  end
47
52
  end
48
53
 
54
+
55
+ ## Configuration
56
+
57
+ By default this gem provides editable fields for all the available locales. If however, you would want to restrict to some particular locales, then create a new *'active_admin_mongoid_localize.rb'* file in the *'/config/initializers'* folder of your rails application:
58
+
59
+
60
+ ActiveAdmin::Mongoid::Localize.configure do |config|
61
+
62
+ config.locales = [:en, :ja] # Specify the locales you want to use
63
+
64
+ end
65
+
66
+
67
+
49
68
  CKEditor is tested & working with my fork: https://github.com/glebtv/ckeditor
50
69
 
51
70
  ActiveAdmin-mongoid is tested & working with my fork: https://github.com/rs-pro/activeadmin-mongoid
@@ -4,12 +4,25 @@ require 'activeadmin-mongoid-localize/formtastic'
4
4
 
5
5
  require 'activeadmin-mongoid-localize/active_admin'
6
6
  require 'activeadmin-mongoid-localize/attributes_table'
7
+ require 'activeadmin-mongoid-localize/columns'
7
8
 
8
9
  module ActiveAdmin
9
10
  module Mongoid
10
11
  module Localize
11
12
  autoload :Field, 'activeadmin-mongoid-localize/field'
12
13
 
14
+ class << self
15
+ attr_writer :locales
16
+
17
+ def locales
18
+ @locales || I18n.available_locales
19
+ end
20
+
21
+ def configure
22
+ yield self
23
+ end
24
+ end
25
+
13
26
  class Engine < Rails::Engine
14
27
  end
15
28
  end
@@ -4,10 +4,11 @@ module ActiveAdmin
4
4
  builder_method :localize_attributes_table_for
5
5
 
6
6
  def row(attr, &block)
7
- I18n.available_locales.each_with_index do |locale, index|
7
+ _locales = ActiveAdmin::Mongoid::Localize.locales
8
+ _locales.each_with_index do |locale, index|
8
9
  @table << tr do
9
10
  if index == 0
10
- th :rowspan => I18n.available_locales.length do
11
+ th :rowspan => _locales.length do
11
12
  header_content_for(attr)
12
13
  end
13
14
  end
@@ -0,0 +1,21 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class IndexAsTable < ActiveAdmin::Component
4
+ class IndexTableFor < ::ActiveAdmin::Views::TableFor
5
+
6
+ # Display a column for each locale
7
+ def localize_column(attr)
8
+ ActiveAdmin::Mongoid::Localize.locales.each do |locale|
9
+ I18n.with_locale(locale) do
10
+ column_name = resource_class.human_attribute_name(attr) + " (#{locale})"
11
+ column(column_name, sortable: "#{attr}.#{locale}") do |resource|
12
+ resource.send(attr)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ end
21
+ end
@@ -8,6 +8,10 @@ module ActiveAdmin
8
8
  @@validators = {}
9
9
  @@model = nil
10
10
 
11
+ def clean_locale(locale)
12
+ locale.to_s.gsub('-','_')
13
+ end
14
+
11
15
  def initialize(obj, name)
12
16
  @obj = obj
13
17
  @@model = obj.class
@@ -17,20 +21,22 @@ module ActiveAdmin
17
21
  @errors = ActiveModel::Errors.new(self)
18
22
  hash = @obj.send("#{name}_translations")
19
23
 
20
- ::I18n.available_locales.each do |k|
24
+ ::ActiveAdmin::Mongoid::Localize.locales.each do |k|
25
+ inst_var_name = clean_locale(k)
21
26
  ## create the getter that returns the instance variable
22
- self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")})
27
+ self.class.send(:define_method, k, proc{self.instance_variable_get("@#{inst_var_name}")})
23
28
 
24
29
  ## create the setter that sets the instance variable
25
- self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)})
30
+ self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{inst_var_name}", v)})
26
31
 
27
32
  ## create and initialize an instance variable for this key/value pair
28
- self.instance_variable_set("@#{k}", '')
33
+ self.instance_variable_set("@#{inst_var_name}", '')
29
34
  end
30
35
 
31
36
  hash.each do |k,v|
32
37
  ## create and initialize an instance variable for this key/value pair
33
- self.instance_variable_set("@#{k}", v)
38
+ inst_var_name = k.to_s.gsub('-','_')
39
+ self.instance_variable_set("@#{inst_var_name}", v)
34
40
  end
35
41
 
36
42
  def @obj.before_validation
@@ -48,7 +54,7 @@ module ActiveAdmin
48
54
  end
49
55
 
50
56
  def validate!
51
- ::I18n.available_locales.each do |k|
57
+ ::ActiveAdmin::Mongoid::Localize.locales.each do |k|
52
58
  if @required && send(k).blank?
53
59
  @errors.add(k, I18n.t('errors.messages.blank'))
54
60
  end
@@ -6,10 +6,14 @@ module Formtastic
6
6
 
7
7
  ret = ''
8
8
  self.semantic_fields_for "#{name}_translations", field do |lf|
9
- ::I18n.available_locales.each do |locale|
10
- args[:value] = (t.nil? || t[locale.to_s].nil?) ? '' : t[locale.to_s]
9
+ ::ActiveAdmin::Mongoid::Localize.locales.each do |locale|
10
+ args[:input_html][:value] = (t.nil? || t[locale.to_s].nil?) ? '' : t[locale.to_s]
11
+ flag_code = locale.to_s.include?("-") ? locale.to_s.split("-")[1].downcase : locale.to_s
11
12
 
12
- label = CGI.escapeHTML(self.object.class.human_attribute_name(name)) + " #{template.image_tag "aml/flags/#{locale.to_s}.png", alt: locale.to_s, title: locale.to_s}"
13
+ # stupid fix to be removed
14
+ flag_code = "catalonia" if flag_code == "ca"
15
+
16
+ label = CGI.escapeHTML(self.object.class.human_attribute_name(name)) + " #{template.image_tag "aml/flags/#{flag_code}.png", alt: locale.to_s, title: locale.to_s}"
13
17
  if args[:as] == :ckeditor
14
18
  prepend = "<h3 style='margin: 10px 0px 0px 10px;'>#{label}</h3>#{'<abbr>*</abbr>' if field.required?}".html_safe
15
19
  args[:label] = false
@@ -1,7 +1,7 @@
1
1
  module ActiveAdmin
2
2
  module Mongoid
3
3
  module Localize
4
- VERSION = "0.3.1"
4
+ VERSION = "1.0.0"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,46 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeadmin-mongoid-localize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Gleb Tv
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-16 00:00:00.000000000 Z
11
+ date: 2013-08-26 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: mongoid
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.0.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 3.0.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: formtastic
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Easily edit mongoid localized fields in ActiveAdmin (all locales on one
@@ -52,6 +47,8 @@ extensions: []
52
47
  extra_rdoc_files: []
53
48
  files:
54
49
  - .gitignore
50
+ - .ruby-gemset
51
+ - .ruby-version
55
52
  - Gemfile
56
53
  - LICENSE.txt
57
54
  - README.md
@@ -308,32 +305,31 @@ files:
308
305
  - lib/activeadmin-mongoid-localize.rb
309
306
  - lib/activeadmin-mongoid-localize/active_admin.rb
310
307
  - lib/activeadmin-mongoid-localize/attributes_table.rb
308
+ - lib/activeadmin-mongoid-localize/columns.rb
311
309
  - lib/activeadmin-mongoid-localize/field.rb
312
310
  - lib/activeadmin-mongoid-localize/formtastic.rb
313
311
  - lib/activeadmin-mongoid-localize/version.rb
314
312
  homepage: https://github.com/rs-pro/activeadmin-mongoid-localize
315
313
  licenses: []
314
+ metadata: {}
316
315
  post_install_message:
317
316
  rdoc_options: []
318
317
  require_paths:
319
318
  - lib
320
319
  required_ruby_version: !ruby/object:Gem::Requirement
321
- none: false
322
320
  requirements:
323
- - - ! '>='
321
+ - - '>='
324
322
  - !ruby/object:Gem::Version
325
323
  version: '0'
326
324
  required_rubygems_version: !ruby/object:Gem::Requirement
327
- none: false
328
325
  requirements:
329
- - - ! '>='
326
+ - - '>='
330
327
  - !ruby/object:Gem::Version
331
328
  version: '0'
332
329
  requirements: []
333
330
  rubyforge_project:
334
- rubygems_version: 1.8.22
331
+ rubygems_version: 2.0.6
335
332
  signing_key:
336
- specification_version: 3
333
+ specification_version: 4
337
334
  summary: Mongoid localized fields for active admin
338
335
  test_files: []
339
- has_rdoc: