From 33ea8cb183d5acd3a7ca70470128bf0ce252a867 Mon Sep 17 00:00:00 2001 From: yflory Date: Mon, 26 Jun 2017 16:23:55 +0200 Subject: [PATCH] Make sure we don't call both the yes and no handlers in prompts --- www/common/common-interface.js | 20 ++++++++++++++++++-- www/common/cryptpad-common.js | 4 ++-- www/common/toolbar2.js | 2 +- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/www/common/common-interface.js b/www/common/common-interface.js index 5d1e01cc8..8209149c7 100644 --- a/www/common/common-interface.js +++ b/www/common/common-interface.js @@ -19,11 +19,11 @@ define([ Alertify._$$alertify.delay = AppConfig.notificationTimeout || 5000; var findCancelButton = UI.findCancelButton = function () { - return $('button.cancel'); + return $('button.cancel').last(); }; var findOKButton = UI.findOKButton = function () { - return $('button.ok'); + return $('button.ok').last(); }; var listenForKeys = UI.listenForKeys = function (yes, no) { @@ -74,14 +74,22 @@ define([ findCancelButton().click(); }); + // Make sure we don't call both the "yes" and "no" handlers if we use "findOKButton().click()" + // in the callback + var isClicked = false; + Alertify .defaultValue(def || '') .okBtn(opt.ok || Messages.okButton || 'OK') .cancelBtn(opt.cancel || Messages.cancelButton || 'Cancel') .prompt(msg, function (val, ev) { + if (isClicked) { return; } + isClicked = true; cb(val, ev); stopListening(keyHandler); }, function (ev) { + if (isClicked) { return; } + isClicked = true; cb(null, ev); stopListening(keyHandler); }); @@ -98,13 +106,21 @@ define([ findCancelButton().click(); }); + // Make sure we don't call both the "yes" and "no" handlers if we use "findOKButton().click()" + // in the callback + var isClicked = false; + Alertify .okBtn(opt.ok || Messages.okButton || 'OK') .cancelBtn(opt.cancel || Messages.cancelButton || 'Cancel') .confirm(msg, function () { + if (isClicked) { return; } + isClicked = true; cb(true); stopListening(keyHandler); }, function () { + if (isClicked) { return; } + isClicked = true; cb(false); stopListening(keyHandler); }); diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index 1c7e050ed..79dcb5964 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -521,9 +521,9 @@ define([ if (_onDisplayNameChanged.indexOf(h) !== -1) { return; } _onDisplayNameChanged.push(h); }; - common.changeDisplayName = function (newName) { + common.changeDisplayName = function (newName, isLocal) { _onDisplayNameChanged.forEach(function (h) { - h(newName); + h(newName, isLocal); }); }; diff --git a/www/common/toolbar2.js b/www/common/toolbar2.js index 9b89e55ce..352d995a8 100644 --- a/www/common/toolbar2.js +++ b/www/common/toolbar2.js @@ -730,7 +730,7 @@ define([ Cryptpad.prompt(Messages.changeNamePrompt, lastName || '', function (newName) { if (newName === null && typeof(lastName) === "string") { return; } if (newName === null) { newName = ''; } - Cryptpad.changeDisplayName(newName); + Cryptpad.changeDisplayName(newName, true); }); }); });