Sha256: 493f1994a5071330ac65f241ffb3a88062d88044b83c2e678abd51be77aed555

Contents?: true

Size: 1.48 KB

Versions: 139

Compression:

Stored size: 1.48 KB

Contents

Spree.Views.Tables.EditableTableRow = Backbone.View.extend({
  events: {
    "select2-open": "onEdit",
    "focus input": "onEdit",
    "click [data-action=save]": "onSave",
    "click [data-action=cancel]": "onCancel",
    'keyup input': 'onKeypress'
  },

  onEdit: function(e) {
    if (this.$el.hasClass('editing')) {
      return;
    }
    this.$el.addClass('editing');
    this.$el.find('input, select').each(function() {
      var $input = $(this);
      $input.data('original-value', $input.val());
    });
  },

  onCancel: function(e) {
    e.preventDefault();
    this.$el.removeClass("editing");
    this.$el.find('input, select').each(function() {
      var $input = $(this);
      var originalValue = $input.data('original-value');
      $input.val(originalValue).change();
    });
  },

  onSave: function(e) {
    e.preventDefault();
    var view = this;
    Spree.ajax(this.$el.find('.actions [data-action=save]').attr('href'), {
      data: this.$el.find('select, input').serialize(),
      dataType: 'json',
      method: 'put',
      success: function(response) {
        view.$el.removeClass("editing");
      },
      error: function(response) {
        show_flash('error', response.responseJSON.error);
      }
    });
  },

  ENTER_KEY: 13,
  ESC_KEY: 27,

  onKeypress: function(e) {
    var key = e.keyCode || e.which;
    switch (key) {
      case this.ENTER_KEY:
        this.onSave(e);
        break;
      case this.ESC_KEY:
        this.onCancel(e);
        break;
    }
  }
});

Version data entries

139 entries across 139 versions & 2 rubygems

Version Path
solidus_backend-4.1.6 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.4.2 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.4.1 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.4.0 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.3.4 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.2.4 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.1.5 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.3.3 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.3.2 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.1.4 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.3.1 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.3.0 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.2.3 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.1.3 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.0.4 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-3.4.6 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.0.3 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.1.2 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-4.2.2 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js
solidus_backend-3.4.5 app/assets/javascripts/spree/backend/views/tables/editable_table_row.js