diff --git a/app/helpers/translatable_form_helper.rb b/app/helpers/translatable_form_helper.rb index e96ecfa28..0e3df3885 100644 --- a/app/helpers/translatable_form_helper.rb +++ b/app/helpers/translatable_form_helper.rb @@ -19,23 +19,10 @@ module TranslatableFormHelper end class TranslatableFormBuilder < FoundationRailsHelper::FormBuilder - - def translatable_text_field(method, options = {}) - translatable_field(:text_field, method, options) - end - - def translatable_text_area(method, options = {}) - translatable_field(:text_area, method, options) - end - - def translatable_cktext_area(method, options = {}) - translatable_field(:cktext_area, method, options) - end - def translatable_fields(&block) @object.globalize_locales.map do |locale| Globalize.with_locale(locale) do - fields_for(:translations, @object.translations.where(locale: locale).first_or_initialize) do |translations_form| + fields_for(:translations, @object.translations.where(locale: locale).first_or_initialize, builder: TranslationsFieldsBuilder) do |translations_form| @template.concat translations_form.hidden_field( :_destroy, value: !@template.enable_locale?(@object, locale), @@ -44,18 +31,25 @@ module TranslatableFormHelper @template.concat translations_form.hidden_field(:locale, value: locale) - yield translations_form, locale + yield translations_form end end end.join.html_safe end + end + + class TranslationsFieldsBuilder < FoundationRailsHelper::FormBuilder + %i[text_field text_area cktext_area].each do |field| + define_method field do |attribute, options = {}| + super attribute, translations_options(options) + end + end + private - def translatable_field(field_type, method, options = {}) - locale = options.delete(:locale) - final_options = @template.merge_translatable_field_options(options, locale) - send(field_type, method, final_options) + def translations_options(options) + @template.merge_translatable_field_options(options, @object.locale) end end end diff --git a/app/views/admin/banners/_form.html.erb b/app/views/admin/banners/_form.html.erb index 9d6d971a7..322bd17f4 100644 --- a/app/views/admin/banners/_form.html.erb +++ b/app/views/admin/banners/_form.html.erb @@ -28,18 +28,16 @@
- <%= f.translatable_fields do |translations_form, locale| %> + <%= f.translatable_fields do |translations_form| %>
- <%= translations_form.translatable_text_field :title, - locale: locale, + <%= translations_form.text_field :title, placeholder: t("admin.banners.banner.title"), data: {js_banner_title: "js_banner_title"}, label: t("admin.banners.banner.title") %>
- <%= translations_form.translatable_text_field :description, - locale: locale, + <%= translations_form.text_field :description, placeholder: t("admin.banners.banner.description"), data: {js_banner_description: "js_banner_description"}, label: t("admin.banners.banner.description") %>