diff --git a/app/assets/javascripts/globalize.js.coffee b/app/assets/javascripts/globalize.js.coffee index 6ac39e71c..82bb97a24 100644 --- a/app/assets/javascripts/globalize.js.coffee +++ b/app/assets/javascripts/globalize.js.coffee @@ -9,17 +9,28 @@ App.Globalize = display_translations: (locale) -> $(".js-globalize-attribute").each -> - console.log("In standard") - console.log($(this)) if $(this).data("locale") == locale $(this).show() else $(this).hide() + $('.delete-language').hide() + $('#delete-' + locale).show() highlight_locale: (element) -> $('.js-globalize-locale-link').removeClass('highlight'); element.addClass('highlight'); + remove_language: (locale) -> + $(".js-globalize-attribute[data-locale=" + locale + "]").val('') + $(".js-globalize-attribute[data-locale=" + locale + "]").hide() + $(".js-globalize-locale-link[data-locale=" + locale + "]").hide() + $("#delete-" + locale).hide() + next = $(".js-globalize-locale-link:visible").first() + App.Globalize.highlight_locale(next) + $(".js-globalize-attribute[data-locale=" + next.data("locale") + "]").show() + $("#delete-" + next.data("locale")).show() + $("#delete_translations_" + locale).val(1) + initialize: -> $('.js-globalize-locale').on 'change', -> App.Globalize.display_translations($(this).val()) @@ -28,4 +39,10 @@ App.Globalize = $('.js-globalize-locale-link').on 'click', -> locale = $(this).data("locale") App.Globalize.display_translations(locale) - App.Globalize.highlight_locale($(this)) \ No newline at end of file + App.Globalize.highlight_locale($(this)) + + $('.delete-language').on 'click', -> + locale = $(this).data("locale") + $(this).hide() + App.Globalize.remove_language(locale) + diff --git a/app/controllers/concerns/translatable.rb b/app/controllers/concerns/translatable.rb index 2325fc013..50cbf2cfe 100644 --- a/app/controllers/concerns/translatable.rb +++ b/app/controllers/concerns/translatable.rb @@ -3,6 +3,7 @@ module Translatable included do before_action :set_translation_locale + before_action :delete_translations, only: [:update] end private @@ -16,4 +17,15 @@ module Translatable Globalize.locale = I18n.locale end -end \ No newline at end of file + def delete_translations + locales = Budget::Investment::Milestone.globalize_locales. + select { |k, v| params[:delete_translations].include?(k.to_sym) && params[:delete_translations][k] == "1" } + milestone = Budget::Investment::Milestone.find(params[:id]) + locales.each do |l| + Globalize.with_locale(l) do + milestone.translation.destroy + end + end + end + +end diff --git a/app/helpers/globalize_helper.rb b/app/helpers/globalize_helper.rb index e0d11f611..bdfa1ac45 100644 --- a/app/helpers/globalize_helper.rb +++ b/app/helpers/globalize_helper.rb @@ -30,4 +30,8 @@ module GlobalizeHelper globalize_locale == locale ? "highlight" : "" end -end \ No newline at end of file + def show_delete?(locale) + I18n.locale == locale ? '' : 'display: none' + end + +end diff --git a/app/views/admin/budget_investment_milestones/_form.html.erb b/app/views/admin/budget_investment_milestones/_form.html.erb index 9dae79b6e..fedbbae7c 100644 --- a/app/views/admin/budget_investment_milestones/_form.html.erb +++ b/app/views/admin/budget_investment_milestones/_form.html.erb @@ -9,6 +9,7 @@ <%= f.label :description, t("admin.milestones.new.description") %> <% @milestone.globalize_locales.each do |locale| %> + <%= hidden_field_tag "delete_translations[#{locale}]", 0 %> <% Globalize.with_locale(locale) do %> <%= f.text_area "description_#{locale}", rows: 5, class: "js-globalize-attribute", diff --git a/app/views/budgets/investments/milestones/_globalize_locales.html.erb b/app/views/budgets/investments/milestones/_globalize_locales.html.erb index fc291ea96..1ef982591 100644 --- a/app/views/budgets/investments/milestones/_globalize_locales.html.erb +++ b/app/views/budgets/investments/milestones/_globalize_locales.html.erb @@ -5,10 +5,15 @@ class: "js-globalize-locale-link", data: { locale: locale }, remote: true %> + <%= link_to t("admin.milestones.form.remove_language"), "#", + id: "delete-#{locale}", + style: show_delete?(locale), + class: 'float-right delete-language', + data: { locale: locale } %> <% end %> -<%= select_tag :translation_locale, +<%= select_tag :translation_locale, options_for_locale_select, - prompt: "Añadir idioma", - class: "js-globalize-locale" %> \ No newline at end of file + prompt: t("admin.milestones.form.add_language"), + class: "js-globalize-locale" %> diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml index c477fb875..0292df944 100644 --- a/config/locales/en/admin.yml +++ b/config/locales/en/admin.yml @@ -254,9 +254,13 @@ en: image: "Image" show_image: "Show image" documents: "Documents" + form: + add_language: Add language + remove_language: Remove language new: creating: Create milestone date: Date + description: Description edit: title: Edit milestone create: diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml index 496596ee3..5d44c9a17 100644 --- a/config/locales/es/admin.yml +++ b/config/locales/es/admin.yml @@ -254,9 +254,13 @@ es: image: "Imagen" show_image: "Mostrar imagen" documents: "Documentos" + form: + add_language: Añadir idioma + remove_language: Eliminar idioma new: creating: Crear hito date: Fecha + description: Descripción edit: title: Editar hito create: