As we do in the rest of the application. Note we cannot add a rule enforcing double quotes because CoffeeScript Lint does not have such rule.
80 lines
2.6 KiB
CoffeeScript
80 lines
2.6 KiB
CoffeeScript
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
|
|
|
|
display_translations: (locale) ->
|
|
$(".js-globalize-attribute").each ->
|
|
if $(this).data("locale") == locale
|
|
$(this).show()
|
|
else
|
|
$(this).hide()
|
|
$(".js-delete-language").hide()
|
|
$("#js_delete_#{locale}").show()
|
|
|
|
highlight_locale: (element) ->
|
|
$(".js-globalize-locale-link").removeClass("is-active")
|
|
element.addClass("is-active")
|
|
|
|
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.disable_locale(locale)
|
|
|
|
enable_locale: (locale) ->
|
|
App.Globalize.destroy_locale_field(locale).val(false)
|
|
App.Globalize.site_customization_enable_locale_field(locale).val(1)
|
|
|
|
disable_locale: (locale) ->
|
|
App.Globalize.destroy_locale_field(locale).val(true)
|
|
App.Globalize.site_customization_enable_locale_field(locale).val(0)
|
|
|
|
enabled_locales: ->
|
|
$.map(
|
|
$(".js-globalize-locale-link:visible"),
|
|
(element) -> $(element).data("locale")
|
|
)
|
|
|
|
destroy_locale_field: (locale) ->
|
|
$("input[id$=_destroy][data-locale=#{locale}]")
|
|
|
|
site_customization_enable_locale_field: (locale) ->
|
|
$("#enabled_translations_#{locale}")
|
|
|
|
refresh_visible_translations: ->
|
|
locale = $(".js-globalize-locale-link.is-active").data("locale")
|
|
App.Globalize.display_translations(locale)
|
|
|
|
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")
|
|
App.Globalize.display_translations(locale)
|
|
App.Globalize.highlight_locale($(this))
|
|
|
|
$(".js-delete-language").on "click", ->
|
|
locale = $(this).data("locale")
|
|
$(this).hide()
|
|
App.Globalize.remove_language(locale)
|
|
|
|
$(".js-add-fields-container").on "cocoon:after-insert", ->
|
|
$.each(
|
|
App.Globalize.enabled_locales(),
|
|
(index, locale) -> App.Globalize.enable_locale(locale)
|
|
)
|