If we enabled the locale and then added an option, the "add option" link added the partial which was generated before enabling the translation, and so it generated a field where the translation was disabled. Enabling the translation after inserting each field solves the issue.
75 lines
2.4 KiB
CoffeeScript
75 lines
2.4 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()
|
|
$('#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)
|
|
|
|
disable_locale: (locale) ->
|
|
App.Globalize.destroy_locale_field(locale).val(true)
|
|
|
|
enabled_locales: ->
|
|
$.map(
|
|
$(".js-globalize-locale-link:visible"),
|
|
(element) -> $(element).data("locale")
|
|
)
|
|
|
|
destroy_locale_field: (locale) ->
|
|
$(".destroy_locale[data-locale=" + 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)
|
|
|
|
$(".add_fields_container").on "cocoon:after-insert", ->
|
|
$.each(
|
|
App.Globalize.enabled_locales(),
|
|
(index, locale) -> App.Globalize.enable_locale(locale)
|
|
)
|