diff --git a/build/ui.js b/build/ui.js index d2f24df..8279cd0 100644 --- a/build/ui.js +++ b/build/ui.js @@ -117,7 +117,7 @@ var active; exports.Dialog = Dialog; /** - * Return a new `Dialog` with the given + * Return a new `Dialog` with the given * (optional) `title` and `msg`. * * @param {String} title or msg @@ -330,9 +330,9 @@ Dialog.prototype.hide = function(ms){ // hide / remove this.el.addClass('hide'); if (this._effect) { - setTimeout(function(self){ + setTimeout(function(){ self.remove(); - }, 500, this); + }, 500); } else { self.remove(); } @@ -448,7 +448,7 @@ Overlay.prototype.hide = function(){ exports.Confirmation = Confirmation; /** - * Return a new `Confirmation` dialog with the given + * Return a new `Confirmation` dialog with the given * `title` and `msg`. * * @param {String} title or msg @@ -529,10 +529,11 @@ Confirmation.prototype.ok = function(text){ * @api public */ -Confirmation.prototype.show = function(fn){ +Confirmation.prototype.show = function(fn, async){ ui.Dialog.prototype.show.call(this); this.el.find('.ok').focus(); this.callback = fn || function(){}; + this.async = async || false; return this; }; @@ -562,15 +563,29 @@ Confirmation.prototype.render = function(options){ actions.find('.cancel').click(function(e){ e.preventDefault(); self.emit('cancel'); - self.callback(false); + if(self.async){ + self.callback(false, function () { + self.hide(); + }); + } + else { + (self.callback(false) !== false && self.hide()); + } + self.callback(false) self.hide(); }); actions.find('.ok').click(function(e){ e.preventDefault(); self.emit('ok'); - self.callback(true); - self.hide(); + if(self.async){ + self.callback(true, function(){ + self.hide(); + }); + } + else{ + (self.callback(true) !== false && self.hide()); + } }); }; @@ -1148,9 +1163,9 @@ Notification.prototype.hide = function(ms){ // hide / remove this.el.addClass('hide'); if (this._effect) { - setTimeout(function(self){ + setTimeout(function(){ self.remove(); - }, 500, this); + }, 500); } else { self.remove(); } @@ -1297,7 +1312,7 @@ exports.Menu = Menu; */ exports.menu = function(){ - return new Menu(); + return new Menu; }; /** diff --git a/lib/components/confirmation/confirmation.js b/lib/components/confirmation/confirmation.js index f04b07b..0a7f4a1 100644 --- a/lib/components/confirmation/confirmation.js +++ b/lib/components/confirmation/confirmation.js @@ -6,7 +6,7 @@ exports.Confirmation = Confirmation; /** - * Return a new `Confirmation` dialog with the given + * Return a new `Confirmation` dialog with the given * `title` and `msg`. * * @param {String} title or msg @@ -87,10 +87,11 @@ Confirmation.prototype.ok = function(text){ * @api public */ -Confirmation.prototype.show = function(fn){ +Confirmation.prototype.show = function(fn, async){ ui.Dialog.prototype.show.call(this); this.el.find('.ok').focus(); this.callback = fn || function(){}; + this.async = async || false; return this; }; @@ -120,14 +121,26 @@ Confirmation.prototype.render = function(options){ actions.find('.cancel').click(function(e){ e.preventDefault(); self.emit('cancel'); - self.callback(false); - self.hide(); + if(self.async){ + self.callback(false, function () { + self.hide(); + }); + } + else { + (self.callback(false) !== false && self.hide()); + } }); actions.find('.ok').click(function(e){ e.preventDefault(); self.emit('ok'); - self.callback(true); - self.hide(); + if(self.async){ + self.callback(true, function(){ + self.hide(); + }); + } + else{ + (self.callback(true) !== false && self.hide()); + } }); }; diff --git a/lib/components/dialog/dialog.js b/lib/components/dialog/dialog.js index 7c33b6a..1f68086 100644 --- a/lib/components/dialog/dialog.js +++ b/lib/components/dialog/dialog.js @@ -12,7 +12,7 @@ var active; exports.Dialog = Dialog; /** - * Return a new `Dialog` with the given + * Return a new `Dialog` with the given * (optional) `title` and `msg`. * * @param {String} title or msg