Class: Formtastic::FormBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/activeadmin-mongoid-localize/formtastic.rb

Instance Method Summary collapse

Instance Method Details

#localized_input(name, args = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/activeadmin-mongoid-localize/formtastic.rb', line 3

def localized_input(name, args = {})
  t = self.object.send("#{name}_translations")
  field = ActiveAdmin::Mongoid::Localize::Field.new(self.object, name)

  ret = ''
  self.semantic_fields_for "#{name}_translations", field do |lf|
    ::ActiveAdmin::Mongoid::Localize.locales.each do |locale|
      args[:input_html] = { :value => (t.nil? || t[locale.to_s].nil?) ? '' : t[locale.to_s] }
      flag_code = locale.to_s.include?("-") ? locale.to_s.split("-")[1].downcase : locale.to_s

      # stupid fix to be removed
      flag_code = "catalonia" if flag_code == "ca" 

      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}"
      if args[:as] == :ckeditor
        prepend = "<h3 style='margin: 10px 0px 0px 10px;'>#{label}</h3>#{'<abbr>*</abbr>' if field.required?}".html_safe
        args[:label] = false
      else
        prepend = ''.html_safe
        args[:label] = label.html_safe
      end
      args[:required] = field.required?

      ret << prepend + lf.input(locale, args)
    end
  end

  ret.html_safe
end