Adapt translations CS to new translation interface markup

Now we are using different html markup to render new translation interface
in a responsiveness way so we had to adapt CS to cover new behavior.
This commit is contained in:
Senén Rodero Rodríguez
2019-05-31 19:24:25 +02:00
parent 4d15815843
commit 05562c190f

View File

@@ -2,36 +2,43 @@ App.Globalize =
display_locale: (locale) ->
App.Globalize.enable_locale(locale)
$(".js-globalize-locale-link").each ->
if $(this).data("locale") == locale
$(this).show()
App.Globalize.highlight_locale($(this))
$(".js-globalize-locale option:selected").removeAttr("selected")
return
App.Globalize.add_language(locale)
$(".js-add-language option:selected").removeAttr("selected")
display_translations: (locale) ->
$(".js-select-language option[value=#{locale}]").prop("selected", true)
$(".js-globalize-attribute").each ->
if $(this).data("locale") == locale
$(this).show()
else
$(this).hide()
$(".js-delete-language").hide()
$("#js_delete_#{locale}").show()
$(".js-delete-" + locale).show()
highlight_locale: (element) ->
$(".js-globalize-locale-link").removeClass("is-active")
element.addClass("is-active")
add_language: (locale) ->
language_option = $(".js-add-language [value=#{locale}]")
if $(".js-select-language option[value=#{locale}]").length == 0
option = new Option(language_option.text(), language_option.val())
$(".js-select-language").append(option)
$(".js-select-language option[value=#{locale}]").prop("selected", true)
remove_language: (locale) ->
$(".js-globalize-attribute[data-locale=#{locale}]").each ->
$(this).val("").hide()
if CKEDITOR.instances[$(this).attr("id")]
CKEDITOR.instances[$(this).attr("id")].setData("")
$(".js-globalize-locale-link[data-locale=#{locale}]").hide()
next = $(".js-globalize-locale-link:visible").first()
App.Globalize.highlight_locale(next)
App.Globalize.display_translations(next.data("locale"))
App.Globalize.resetEditor(this)
$(".js-select-language option[value=#{locale}]").remove()
next = $(".js-select-language option:not([value=''])").first()
App.Globalize.display_translations(next.val())
App.Globalize.disable_locale(locale)
App.Globalize.update_description()
if $(".js-select-language option").length == 1
$(".js-select-language option").prop("selected", true)
resetEditor: (element) ->
if CKEDITOR.instances[$(element).attr("id")]
CKEDITOR.instances[$(element).attr("id")].setData("")
enable_locale: (locale) ->
App.Globalize.destroy_locale_field(locale).val(false)
@@ -43,8 +50,8 @@ App.Globalize =
enabled_locales: ->
$.map(
$(".js-globalize-locale-link:visible"),
(element) -> $(element).data("locale")
$(".js-select-language:first option:not([value=''])"),
(element) -> $(element).val()
)
destroy_locale_field: (locale) ->
@@ -54,20 +61,34 @@ App.Globalize =
$("#enabled_translations_#{locale}")
refresh_visible_translations: ->
locale = $(".js-globalize-locale-link.is-active").data("locale")
locale = $(".js-select-language").val()
App.Globalize.display_translations(locale)
update_description: ->
count = App.Globalize.enabled_locales().length
description = App.Globalize.language_description(count)
$(".js-languages-description").html(description)
$(".js-languages-count").text(count)
language_description: (count) ->
switch count
when 0 then $(".globalize-languages").data("zero-languages-description")
when 1 then $(".globalize-languages").data("one-languages-description")
else $(".globalize-languages").data("other-languages-description")
initialize: ->
$(".js-globalize-locale").on "change", ->
App.Globalize.display_translations($(this).val())
App.Globalize.display_locale($(this).val())
$(".js-globalize-locale-link").on "click", ->
locale = $(this).data("locale")
$(".js-add-language").on "change", ->
locale = $(this).val()
App.Globalize.display_translations(locale)
App.Globalize.highlight_locale($(this))
App.Globalize.display_locale(locale)
App.Globalize.update_description()
$(".js-delete-language").on "click", ->
$(".js-select-language").on "change", ->
locale = $(this).val()
App.Globalize.display_translations(locale)
$(".js-delete-language").on "click", (e) ->
e.preventDefault()
locale = $(this).data("locale")
$(this).hide()
App.Globalize.remove_language(locale)