/* global bootbox */ require(['translator', 'bootbox'], function (shim, bootbox) { 'use strict'; // expose as global with a warning if (Object.defineProperty) { Object.defineProperty(window, 'bootbox', { configurable: true, enumerable: true, get: function () { console.warn('[deprecated] Accessing bootbox globally is deprecated. Use `require(["bootbox"], function (bootbox) { ... })` instead'); return bootbox; }, }); } else { window.bootbox = bootbox; } bootbox.setDefaults({ locale: config.userLang, }); var translator = shim.Translator.create(); var dialog = bootbox.dialog; var attrsToTranslate = ['placeholder', 'title', 'value', 'label']; bootbox.dialog = function (options) { var show = options.show !== false; options.show = false; var $elem = dialog.call(bootbox, options); var element = $elem[0]; if (/\[\[.+\]\]/.test(element.outerHTML)) { translator.translateInPlace(element, attrsToTranslate).then(function () { if (show) { $elem.modal('show'); } }); } else if (show) { $elem.modal('show'); } return $elem; }; Promise.all([ translator.translateKey('modules:bootbox.ok', []), translator.translateKey('modules:bootbox.cancel', []), translator.translateKey('modules:bootbox.confirm', []), ]).then(function (translations) { var lang = shim.getLanguage(); bootbox.addLocale(lang, { OK: translations[0], CANCEL: translations[1], CONFIRM: translations[2], }); bootbox.setLocale(lang); }); });