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