Use individual timers for separate config rows

This commit is contained in:
Robin McCorkell 2015-03-15 19:47:22 +00:00
parent 1db177b841
commit c68fd6d5e3
1 changed files with 21 additions and 30 deletions

View File

@ -412,7 +412,7 @@ MountConfigListView.prototype = {
/**
* Flag whether the list is about user storage configs (true)
* or global storage configs (false)
*
*
* @type bool
*/
_isPersonal: false,
@ -488,35 +488,12 @@ MountConfigListView.prototype = {
_initEvents: function() {
var self = this;
this.$el.on('paste', 'td input', function() {
var $me = $(this);
var $tr = $me.closest('tr');
setTimeout(function() {
highlightInput($me);
self.saveStorageConfig($tr);
}, 20);
});
var timer;
this.$el.on('keyup', 'td input', function() {
clearTimeout(timer);
var $tr = $(this).closest('tr');
highlightInput($(this));
if ($(this).val) {
timer = setTimeout(function() {
self.saveStorageConfig($tr);
}, 2000);
}
});
this.$el.on('change', 'td input:checkbox', function() {
self.saveStorageConfig($(this).closest('tr'));
});
this.$el.on('change', '.applicable', function() {
self.saveStorageConfig($(this).closest('tr'));
});
var onChangeHandler = _.bind(this._onChange, this);
//this.$el.on('input', 'td input', onChangeHandler);
this.$el.on('keyup', 'td input', onChangeHandler);
this.$el.on('paste', 'td input', onChangeHandler);
this.$el.on('change', 'td input:checkbox', onChangeHandler);
this.$el.on('change', '.applicable', onChangeHandler);
this.$el.on('click', '.status>span', function() {
self.recheckStorageConfig($(this).closest('tr'));
@ -529,6 +506,20 @@ MountConfigListView.prototype = {
this.$el.on('change', '.selectBackend', _.bind(this._onSelectBackend, this));
},
_onChange: function(event) {
var self = this;
var $target = $(event.target);
highlightInput($target);
var $tr = $target.closest('tr');
var timer = $tr.data('save-timer');
clearTimeout(timer);
timer = setTimeout(function() {
self.saveStorageConfig($tr);
}, 2000);
$tr.data('save-timer', timer);
},
_onSelectBackend: function(event) {
var $target = $(event.target);
var $el = this.$el;