diff --git a/addons/web/static/src/js/core/dialog.js b/addons/web/static/src/js/core/dialog.js index 28568c9877b..dce47fa5a10 100644 --- a/addons/web/static/src/js/core/dialog.js +++ b/addons/web/static/src/js/core/dialog.js @@ -236,6 +236,63 @@ Dialog.confirm = function (owner, message, options) { }, options)).open(); }; +/** + * Static method to open double confirmation dialog. + * + * @param {Widget} owner + * @param {string} message + * @param {Object} [options] @see Dialog.init @see Dialog.confirm + * @param {string} [options.securityLevel="warning"] - bootstrap color + * @param {string} [options.securityMessage="I am sure about this"] + * @returns {Dialog} (open() is automatically called) + */ +Dialog.safeConfirm = function (owner, message, options) { + var $checkbox = dom.renderCheckbox({ + text: options && options.securityMessage || _t("I am sure about this"), + }).addClass('mb0'); + var $securityCheck = $('
', { + class: 'alert alert-' + (options && options.securityLevel || 'warning') + ' mt8 mb0', + }).prepend($checkbox); + var $content; + if (options && options.$content) { + $content = options.$content; + delete options.$content; + } else { + $content = $('