Module: Releaf::Builders::FormBuilder::I18nFields
- Included in:
- Fields
- Defined in:
- app/builders/releaf/builders/form_builder/i18n_fields.rb
Instance Method Summary collapse
- #default_locale ⇒ Object
- #locales ⇒ Object
- #localization_switch ⇒ Object
- #localized_field(name, field_type, input: {}, label: {}, field: {}, options: {}) ⇒ Object
- #releaf_link_i18n_field(name, input: {}, label: {}, field: {}, options: {}) ⇒ Object
- #releaf_richtext_i18n_field(name, input: {}, label: {}, field: {}, options: {}) ⇒ Object
- #releaf_text_i18n_field(name, input: {}, label: {}, field: {}, options: {}) ⇒ Object
- #releaf_textarea_i18n_field(name, input: {}, label: {}, field: {}, options: {}) ⇒ Object
Instance Method Details
#default_locale ⇒ Object
71 72 73 74 |
# File 'app/builders/releaf/builders/form_builder/i18n_fields.rb', line 71 def default_locale selected_locale = (layout_settings("releaf.i18n.locale") || I18n.locale).to_sym locales.include?(selected_locale) ? selected_locale : locales.first end |
#locales ⇒ Object
67 68 69 |
# File 'app/builders/releaf/builders/form_builder/i18n_fields.rb', line 67 def locales object.class.globalize_locales end |
#localization_switch ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'app/builders/releaf/builders/form_builder/i18n_fields.rb', line 50 def localization_switch tag(:div, class: "localization-switch") do (type: 'button', title: t('Switch locale'), class: "trigger") do tag(:span, default_locale, class: "label") + tag(:i, nil, class: ["fa", "fa-chevron-down"]) end << tag(:menu, class: ["localization-menu-items"], type: 'toolbar') do tag(:ul) do object.class.globalize_locales.collect do |locale| tag(:li) do tag(:button, translate_locale(locale), type: "button", data: {locale: locale}) end end end end end end |
#localized_field(name, field_type, input: {}, label: {}, field: {}, options: {}) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'app/builders/releaf/builders/form_builder/i18n_fields.rb', line 28 def localized_field(name, field_type, input: {}, label: {}, field: {}, options: {}) = {i18n: true, label: {translation_key: name}}.deep_merge() wrapper(field_attributes(name, field, )) do content = object.class.globalize_locales.collect do |locale| localized_name = "#{name}_#{locale}" html_class = ["localization"] html_class << "active" if locale == default_locale tag(:div, class: html_class, data: {locale: locale}) do releaf_label(localized_name, label, ) << tag(:div, class: "value") do attributes = input_attributes(name, {value: object.send(localized_name)}.merge(input), ) send(field_type, localized_name, attributes) end end end content << localization_switch end end |
#releaf_link_i18n_field(name, input: {}, label: {}, field: {}, options: {}) ⇒ Object
8 9 10 11 |
# File 'app/builders/releaf/builders/form_builder/i18n_fields.rb', line 8 def releaf_link_i18n_field(name, input: {}, label: {}, field: {}, options: {}) = {field: {type: "link"}}.deep_merge() releaf_text_i18n_field(name, input: input, label: label, field: field, options: ) end |
#releaf_richtext_i18n_field(name, input: {}, label: {}, field: {}, options: {}) ⇒ Object
22 23 24 25 26 |
# File 'app/builders/releaf/builders/form_builder/i18n_fields.rb', line 22 def releaf_richtext_i18n_field(name, input: {}, label: {}, field: {}, options: {}) input = richtext_input_attributes(name).merge(input) = (name, ) releaf_textarea_i18n_field(name, input: input, label: label, field: field, options: ) end |
#releaf_text_i18n_field(name, input: {}, label: {}, field: {}, options: {}) ⇒ Object
2 3 4 5 6 |
# File 'app/builders/releaf/builders/form_builder/i18n_fields.rb', line 2 def releaf_text_i18n_field(name, input: {}, label: {}, field: {}, options: {}) = {field: {type: "text"}}.deep_merge() input = {class: "text"}.deep_merge(input) localized_field(name, :text_field, input: input, label: label, field: field, options: ) end |
#releaf_textarea_i18n_field(name, input: {}, label: {}, field: {}, options: {}) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'app/builders/releaf/builders/form_builder/i18n_fields.rb', line 13 def releaf_textarea_i18n_field(name, input: {}, label: {}, field: {}, options: {}) input = { rows: 5, cols: 75, }.merge(input) = {field: {type: "textarea"}}.deep_merge() localized_field(name, :text_area, input: input, label: label, field: field, options: ) end |