Prevent double clicking of commands

This commit is contained in:
Mark McDowall 2014-05-18 09:15:15 -07:00
parent 35c618d81b
commit d43e9785d5
1 changed files with 25 additions and 3 deletions

View File

@ -6,8 +6,10 @@ define(
'Commands/CommandCollection',
'Commands/CommandMessengerCollectionView',
'underscore',
'moment',
'Shared/Messenger',
'jQuery/jquery.spin'
], function (vent, CommandModel, CommandCollection, CommandMessengerCollectionView, _) {
], function (vent, CommandModel, CommandCollection, CommandMessengerCollectionView, _, moment, Messenger) {
CommandMessengerCollectionView.render();
@ -16,15 +18,35 @@ define(
return {
_lastCommand: {},
Execute: function (name, properties) {
var attr = _.extend({name: name.toLocaleLowerCase()}, properties);
var commandModel = new CommandModel(attr);
return commandModel.save().success(function () {
if (this._lastCommand.command && this._lastCommand.command.isSameCommand(attr) && moment().add('seconds', -5).isBefore(this._lastCommand.time)) {
Messenger.show({
message: 'Please wait at least 5 seconds before running this command again',
hideAfter: 5,
type: 'error'
});
return this._lastCommand.promise;
}
var promise = commandModel.save().success(function () {
CommandCollection.add(commandModel);
});
this._lastCommand = {
command : commandModel,
promise : promise,
time : moment()
};
return promise;
},
bindToCommand: function (options) {