Sha256: 847d0c113598ea1d05d6cf2af5579b7971828e5c43aea8927d28fe3f61229e3a

Contents?: true

Size: 1.69 KB

Versions: 1

Compression:

Stored size: 1.69 KB

Contents

Spree.EditInlineLocales = Backbone.View.extend(
  initialize: ->
    @editing = false
    @render()

  events:
    'click [data-action=edit]': 'onEdit'
    'click [data-action=save]': 'onSave'
    'click [data-action=cancel]': 'onCancel'

  onEdit: (e) ->
    return if @editing
    @$el.addClass 'editing'
    @editing = true
    @render()

  onCancel: (e) ->
    e.preventDefault()
    @$el.removeClass("editing")
    @editing = false
    @render()

  onSave: (e) ->
    e.preventDefault()
    preferred_available_locales = $('#available-locales-store-' + @model.id)
    Spree.ajax
      type: 'PUT'
      url: Spree.routes.available_locales_api + '/' + @model.id + '.json'
      data:
        store:
          preferred_available_locales: preferred_available_locales.val()
      success: (response) =>
        @model = response.store
        @editing = false
        @$el.removeClass("editing")
        @render()
      error: (response) =>
        show_flash 'error', response.responseJSON.error

  render: ->
    renderAttr =
      availableLocales: <%= SolidusI18n::Locale.all.push(:en).to_json %>
      availableLocalesPresentation: <%= Hash[(SolidusI18n::Locale.all + [:en]).map do |locale|
                                          [locale, Spree.t(:'i18n.this_file_language', locale: locale)]
                                        end].to_json %>
      store: @model
      editing: @editing
    _.extend(renderAttr, @model.attributes)

    @$el.html(HandlebarsTemplates['available_locales'](renderAttr))
    $('.available-locales').select2({placeholder: Spree.translations['please_choose_language'], width: 'element'})

    return @
)

Spree.routes.available_locales_api = Spree.pathFor('api/config/available_locales');

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solidus_i18n-1.3.0 app/assets/javascripts/spree/backend/edit_inline_locales.js.coffee.erb