Class: RailsAdminGlobalizeField::GlobalizeTabs

Inherits:
RailsAdmin::Config::Fields::Association
  • Object
show all
Defined in:
lib/rails_admin_globalize_field/globalize_tabs.rb

Instance Method Summary collapse

Instance Method Details

#activate_tab(tabs) ⇒ Object



44
45
46
47
# File 'lib/rails_admin_globalize_field/globalize_tabs.rb', line 44

def activate_tab(tabs)
  opened = tabs.find(&:invalid?) || tabs.first
  opened&.active!
end

#available_localesObject



23
24
25
# File 'lib/rails_admin_globalize_field/globalize_tabs.rb', line 23

def available_locales
  I18n.available_locales
end

#method_nameObject



19
20
21
# File 'lib/rails_admin_globalize_field/globalize_tabs.rb', line 19

def method_name
  "#{super}_attributes".to_sym
end

#submit_action?Boolean

Hack to distinguish between REST new/edit and create/update actions. Taken from rails_admin/configs/new.rb

Returns:

  • (Boolean)


40
41
42
# File 'lib/rails_admin_globalize_field/globalize_tabs.rb', line 40

def submit_action?
  !bindings[:controller].request.get?
end

#tabsObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/rails_admin_globalize_field/globalize_tabs.rb', line 27

def tabs
  tabs =
    available_locales.map do |locale|
      translation = bindings[:object].translation_for(locale, build_if_missing)
      RailsAdminGlobalizeField::Tab.new(locale, translation, validate: submit_action?) if translation
    end.compact

  activate_tab(tabs)
  tabs
end