const dialogsUtils = {}; dialogsUtils.defaults = function(){ return{ id: '', title: '', message: '', type: BootstrapDialog.TYPE_DEFAULT, size: BootstrapDialog.SIZE_WIDE, closeByBackdrop: false, closeByKeyboard: true, withButton: false, autodestroy: true, closable: true, callback1: null, //function doNothing(){}, callback2: null, //function doNothing(){} btnActionClose1: true, // No closeDialog on accept btnActionClose2: true, // No closeDialog on cancel btnActionClose3: true, // No closeDialog on cancel btnActionClose4: true, // No closeDialog on cancel btnLabel1: labels.getLbl("AVIS", 67), // OK btnLabel2: labels.getLbl("AVIS", 166), // Cancel btnIcon1: "fal fa-check", btnIcon2: "fal fa-times", btnVisible1: true, btnVisible2: true, btnVisible3: true, btnVisible4: true, btnCssClass1: "btn-primary btn-info", btnCssClass2: "btn-secondary btn-info", btnCssClass3: "btn-secondary btn-info", btnCssClass4: "btn-secondary btn-info", onshown: null, onshow: null, onhide: null, onhidden: null, } }; /** * Show a dialog info with accept button * @param options: * - id * - title * - message * - size */ dialogsUtils.showDialogInfo = function(options){ if (typeof options === 'undefined' || options === null || typeof options !== 'object'){ options = {}; } options = $.extend(true, {}, this.defaults(), options); BootstrapDialog.show({ id: options.id, title: options.title, type: options.type, message: options.message, size: options.size, closeByBackdrop: options.closeByBackdrop, closeByKeyboard: options.closeByKeyboard, closable: options.closable, autodestroy: options.autodestroy, onshown: options.onshown, onshow: options.onshow, onhide: options.onhide, onhidden: options.onhidden, buttons: [{ label: options.btnLabel1, icon: options.btnIcon1, visible: options.btnVisible1, cssClass: "btn mg-r-5 "+options.btnCssClass1, action: function(dialog) { if (typeof options.callback1 === 'function' ){ options.callback1(); } if (options.btnActionClose1) { dialog.close(); } } }] }); }; /** * Show a dialog confirm with accept button and cancel button with callbacks * @param options: * - id * - title * - message * - size * - callback1 * - callback2 */ dialogsUtils.showDialogConfirm = function(options){ if (typeof options === 'undefined' || options === null || typeof options !== 'object'){ options = {}; } options = $.extend(true, {}, this.defaults(), options); BootstrapDialog.show({ id: options.id, title: options.title, type: options.type, message: options.message, size: options.size, closable: options.closable, closeByBackdrop: options.closeByBackdrop, closeByKeyboard: options.closeByKeyboard, autodestroy: options.autodestroy, onshown: options.onshown, onshow: options.onshow, onhide: options.onhide, onhidden: options.onhidden, buttons: [{ label: options.btnLabel1, icon: options.btnIcon1, visible: options.btnVisible1, cssClass: "btn mg-r-5 "+options.btnCssClass1, action: function(dialog) { if (typeof options.callback1 === 'function' ){ options.callback1(); } if (options.btnActionClose1) { dialog.close(); } } }, { label: options.btnLabel2, icon: options.btnIcon2, visible: options.btnVisible2, cssClass: "btn mg-r-5 "+options.btnCssClass2, action: function(dialog) { if (typeof options.callback2 === 'function' ){ options.callback2(); } if (options.btnActionClose2) { dialog.close(); } } }] }); }; /** * Show a dialog confirm with three buttons with callbacks * @param options: * - id * - title * - message * - size * - callback1 * - callback2 * - callback3 */ dialogsUtils.showDialogThreeButtons = function(options){ if (typeof options === 'undefined' || options === null || typeof options !== 'object'){ options = {}; } options = $.extend(true, {}, this.defaults(), options); BootstrapDialog.show({ id: options.id, title: options.title, type: options.type, message: options.message, size: options.size, closable: options.closable, closeByBackdrop: options.closeByBackdrop, closeByKeyboard: options.closeByKeyboard, autodestroy: options.autodestroy, onshown: options.onshown, onshow: options.onshow, onhide: options.onhide, onhidden: options.onhidden, buttons: [{ label: options.btnLabel1, icon: options.btnIcon1, visible: options.btnVisible1, cssClass: "btn mg-r-5 "+options.btnCssClass1, action: function(dialog) { if (typeof options.callback1 === 'function' ){ options.callback1(); } if(options.btnActionClose1){ dialog.close(); } } }, { label: options.btnLabel2, icon: options.btnIcon2, visible: options.btnVisible2, cssClass: "btn mg-r-5 "+options.btnCssClass2, action: function(dialog) { if (typeof options.callback2 === 'function' ){ options.callback2(); } if(options.btnActionClose2){ dialog.close(); } } }, { label: options.btnLabel3, icon: options.btnIcon3, visible: options.btnVisible3, cssClass: "btn mg-r-5 "+options.btnCssClass3, action: function(dialog) { if (typeof options.callback3 === 'function' ){ options.callback3(); } if(options.btnActionClose3){ dialog.close(); } } }] }); }; /** * Show a dialog confirm with four buttons with callbacks * @param options: * - id * - title * - message * - size * - callback1 * - callback2 * - callback3 * - callback4 */ dialogsUtils.showDialogFourButtons = function(options){ if (typeof options === 'undefined' || options === null || typeof options !== 'object'){ options = {}; } options = $.extend(true, {}, this.defaults(), options); BootstrapDialog.show({ id: options.id, title: options.title, type: options.type, message: options.message, size: options.size, closable: options.closable, closeByBackdrop: options.closeByBackdrop, closeByKeyboard: options.closeByKeyboard, autodestroy: options.autodestroy, onshown: options.onshown, onshow: options.onshow, onhide: options.onhide, onhidden: options.onhidden, buttons: [{ label: options.btnLabel1, icon: options.btnIcon1, visible: options.btnVisible1, cssClass: "btn mg-r-5 "+options.btnCssClass1, action: function(dialog) { if (typeof options.callback1 === 'function' ){ options.callback1(); } if(options.btnActionClose1){ dialog.close(); } } }, { label: options.btnLabel2, icon: options.btnIcon2, visible: options.btnVisible2, cssClass: "btn mg-r-5 "+options.btnCssClass2, action: function(dialog) { if (typeof options.callback2 === 'function' ){ options.callback2(); } if(options.btnActionClose2){ dialog.close(); } } }, { label: options.btnLabel3, icon: options.btnIcon3, visible: options.btnVisible3, cssClass: "btn mg-r-5 "+options.btnCssClass3, action: function(dialog) { if (typeof options.callback3 === 'function' ){ options.callback3(); } if(options.btnActionClose3){ dialog.close(); } } }, { label: options.btnLabel4, icon: options.btnIcon4, visible: options.btnVisible4, cssClass: "btn mg-r-5 "+options.btnCssClass4, action: function(dialog) { if (typeof options.callback4 === 'function' ){ options.callback4(); } if(options.btnActionClose4){ dialog.close(); } } },] }); }; /** * Confirm message (promise) * @param options: * - id * - title * - message */ dialogsUtils.showDialogConfirmPromise = function(options){ if (typeof options === 'undefined' || options === null || typeof options !== 'object'){ options = {}; } options = $.extend(true, {}, this.defaults(), options); var defer = $.Deferred(); BootstrapDialog.show({ title: options.title, message: options.message, type: options.type, closable: options.closable, closeByBackdrop: options.closeByBackdrop, closeByKeyboard: options.closeByKeyboard, autodestroy: options.autodestroy, onshown: options.onshown, onshow: options.onshow, onhide: options.onhide, onhidden: options.onhidden, buttons: [{ //ACCEPT label: options.btnLabel1, icon: options.btnIcon1, visible: options.btnVisible1, cssClass: "btn mg-r-5 "+options.btnCssClass1, action: function(dialog) { defer.resolve(true); dialog.close(); } }, { //CANCEL label: options.btnLabel2, icon: options.btnIcon2, visible: options.btnVisible2, cssClass: "btn mg-r-5 "+options.btnCssClass2, action: function(dialog) { defer.resolve(false); dialog.close(); } } ] }); return defer.promise(); }; dialogsUtils.showDialogNoButtons = function(options) { if (typeof options === 'undefined' || options === null || typeof options !== 'object'){ options = {}; } options = $.extend(true, {}, this.defaults(), options); BootstrapDialog.show({ id: options.id, title: options.title, type: options.type, message: options.message, size: options.size, autodestroy: options.autodestroy, closable: options.closable, closeByBackdrop: options.closeByBackdrop, closeByKeyboard: options.closeByKeyboard, onshown: options.onshown, onshow: options.onshow, onhide: options.onhide, onhidden: options.onhidden, }); }; /** * Sows dialof with accept button or not * @param options: * - id * - id * - title * - message * - withButton * - size */ dialogsUtils.showDialogCustomButton = function(options) { if (typeof options === 'undefined' || options === null || typeof options !== 'object'){ options = {}; } options = $.extend(true, {}, this.defaults(), options); //with button if (options.withButton) { BootstrapDialog.show({ id: options.id + '', size: options.size, title: options.title, type: options.type, message: options.message, closeByBackdrop: options.closeByBackdrop, closeByKeyboard: options.closeByKeyboard, autodestroy: options.autodestroy, onshown: options.onshown, onshow: options.onshow, onhide: options.onhide, onhidden: options.onhidden, buttons: [{ label: options.btnLabel1, icon: options.btnIcon1, visible: options.btnVisible1, cssClass: "btn mg-r-5 "+options.btnCssClass1, action: function (dialogItself) { dialogItself.close(); } }] }); } else { BootstrapDialog.show({ id: options.id + '', size: options.size, type: options.type, title: options.title, message: options.message, closeByBackdrop: options.closeByBackdrop, closeByKeyboard: options.closeByKeyboard, autodestroy: options.autodestroy, onshown: options.onshown, onshow: options.onshow, onhide: options.onhide, onhidden: options.onhidden, }); } }; /** * Shows dialog of type showDialogCustomButton and close it after timeOut * @param timeOut millisecons interval to close automatically the dialog * @param options: * - id * - title * - message * - withButton * - size */ dialogsUtils.showDialogCustomButtonTimeOut = function (options,timeOut) { this.showDialogCustomButton(options); if (typeof timeOut === 'undefined'){ timeOut = 2000; // default: 2 second } setTimeout(function() { if (typeof BootstrapDialog.dialogs[options.id] !== 'undefined'){ BootstrapDialog.dialogs[options.id].close(); } }, timeOut); }; dialogsUtils.closeDialog = function(id){ if (typeof BootstrapDialog.dialogs[id] !== 'undefined') { BootstrapDialog.dialogs[id].close(); } }; dialogsUtils.existsDialog = function(id){ return typeof BootstrapDialog.dialogs[id] !== 'undefined'; };