2022-04-24 16:52:44 +02:00
var myconfirm = function ( opts ) {
var confirm = false ;
2023-03-06 03:55:35 +01:00
var dialog = BootstrapDialog . show ( {
2022-04-24 16:52:44 +02:00
title : opts . title || _ ( 'Confirmation' ) ,
message : opts . question || _ ( 'Do you confirm?' ) ,
autodestroy : true ,
2023-03-06 03:55:35 +01:00
cssClass : opts . css _class || null ,
type : opts . type || BootstrapDialog . TYPE _LIGHT ,
draggable : opts . draggable || false ,
data : {
oncancel : opts . oncancel ,
onconfirm : opts . onconfirm ,
data : opts . data ,
confirm : false ,
} ,
2022-04-24 16:52:44 +02:00
buttons : [
{
label : opts . cancel _label || _ ( 'Cancel' ) ,
action : function ( dialog ) {
2023-03-06 03:55:35 +01:00
dialog . close ( ) ;
2022-04-24 16:52:44 +02:00
}
} ,
{
label : opts . confirm _label || _ ( 'Validate' ) ,
cssClass : 'btn-danger' ,
action : function ( dialog ) {
2023-03-06 03:55:35 +01:00
dialog . setData ( 'confirm' , true ) ;
dialog . close ( ) ;
2022-04-24 16:52:44 +02:00
}
}
] ,
2023-03-06 03:55:35 +01:00
onhidden : function ( dialog ) {
if ( dialog . getData ( 'confirm' ) ) {
if ( jQuery . type ( dialog . getData ( 'onconfirm' ) ) == 'function' ) {
dialog . getData ( 'onconfirm' ) ( dialog . getData ( 'data' ) ) ;
2022-04-24 16:52:44 +02:00
}
}
else {
2023-03-06 03:55:35 +01:00
if ( jQuery . type ( dialog . getData ( 'oncancel' ) ) == 'function' ) {
dialog . getData ( 'oncancel' ) ( dialog . getData ( 'data' ) ) ;
2022-04-24 16:52:44 +02:00
}
}
}
} ) ;
return dialog ;
} ;
var myalert = function ( msg , title , opts ) {
if ( ! opts ) opts = { } ;
2023-03-06 03:55:35 +01:00
var dialog = BootstrapDialog . show ( {
2022-04-24 16:52:44 +02:00
title : title || opts . title || _ ( 'Error' ) ,
message : msg ,
autodestroy : true ,
2023-03-06 03:55:35 +01:00
type : opts . type || BootstrapDialog . TYPE _DANGER ,
size : opts . size || BootstrapDialog . SIZE _MEDIUM ,
draggable : opts . draggable || false ,
cssClass : opts . css _class || null ,
data : {
onclose : opts . onclose ,
data : opts . data ,
} ,
2022-04-24 16:52:44 +02:00
buttons : [
{
label : opts . btnLabel || _ ( 'OK' ) ,
cssClass : opts . btnCssClass || 'btn-primary' ,
action : function ( dialog ) {
2023-03-06 03:55:35 +01:00
dialog . close ( ) ;
2022-04-24 16:52:44 +02:00
}
} ,
] ,
2023-03-06 03:55:35 +01:00
onhidden : function ( dialog ) {
if ( jQuery . type ( dialog . getData ( 'onclose' ) ) == 'function' ) {
dialog . getData ( 'onclose' ) ( dialog . getData ( 'data' ) ) ;
2022-04-24 16:52:44 +02:00
}
}
} ) ;
return dialog ;
} ;
var myprompt = function ( opts ) {
if ( $ . type ( opts ) != "object" ) {
opts = { } ;
}
var submited = false ;
var onSubmitBtnClick = function ( dialog ) {
submited = true ;
var val = dialog . getModalBody ( ) . find ( 'input' ) . val ( ) ;
2023-03-06 03:55:35 +01:00
if ( jQuery . type ( dialog . getData ( 'onsubmit' ) ) == 'function' ) {
if ( ! dialog . getData ( 'onsubmit' ) ( val , dialog . getData ( 'data' ) ) ) {
if ( jQuery . type ( dialog . getData ( 'onerror' ) ) == 'function' ) {
dialog . getData ( 'onerror' ) ( val , dialog . getData ( 'data' ) ) ;
2022-04-24 16:52:44 +02:00
}
2023-03-06 03:55:35 +01:00
if ( ! dialog . getData ( 'closeonerror' ) ) {
2022-04-24 16:52:44 +02:00
return false ;
}
}
}
2023-03-06 03:55:35 +01:00
dialog . close ( ) ;
2022-04-24 16:52:44 +02:00
} ;
2023-03-06 03:55:35 +01:00
var dialog = BootstrapDialog . show ( {
2022-04-24 16:52:44 +02:00
title : opts . title || _ ( 'Question' ) ,
message : "<label for='myprompt_input'>" + ( opts . label || _ ( "Please enter your answer below:" ) ) + "</label><input type='text' class='form-control' id='myprompt_input'/>" ,
autodestroy : true ,
2023-03-06 03:55:35 +01:00
type : opts . type || BootstrapDialog . TYPE _INFO ,
size : opts . size || BootstrapDialog . SIZE _MEDIUM ,
cssClass : opts . css _class || null ,
draggable : opts . draggable || false ,
2022-04-24 16:52:44 +02:00
data : {
oncancel : opts . oncancel ,
onsubmit : opts . onsubmit ,
onerror : opts . onerror ,
closeonerror : opts . closeonerror || false ,
default _answer : opts . default _answer ,
onSubmitBtnClick : onSubmitBtnClick ,
data : opts . data ,
submited : false ,
} ,
buttons : [
{
label : opts . cancel _label || _ ( 'Cancel' ) ,
action : function ( dialog ) {
2023-03-06 03:55:35 +01:00
dialog . close ( ) ;
2022-04-24 16:52:44 +02:00
}
} ,
{
label : opts . submit _label || _ ( 'Validate' ) ,
cssClass : 'btn-danger' ,
action : onSubmitBtnClick
}
] ,
2023-03-06 03:55:35 +01:00
onshown : function ( dialog ) {
2022-04-24 16:52:44 +02:00
var input = dialog . getModalBody ( ) . find ( 'input' ) ;
input . on ( 'keyup' , function ( e ) {
if ( e . keyCode == 13 ) {
2023-03-06 03:55:35 +01:00
dialog . getData ( 'onSubmitBtnClick' ) ( dialog ) ;
2022-04-24 16:52:44 +02:00
}
} ) ;
2023-03-06 03:55:35 +01:00
if ( dialog . getData ( 'default_answer' ) ) {
input . val ( dialog . getData ( 'default_answer' ) ) ;
2022-04-24 16:52:44 +02:00
}
} ,
2023-03-06 03:55:35 +01:00
onhidden : function ( dialog ) {
if ( ! submited && jQuery . type ( dialog . getData ( 'oncancel' ) ) == 'function' ) {
dialog . getData ( 'oncancel' ) ( dialog . getData ( 'data' ) ) ;
2022-04-24 16:52:44 +02:00
}
}
} ) ;
} ;
var myloadingalert = function ( opts ) {
if ( ! opts ) opts = { } ;
var opened = false ;
var closed = false ;
2023-03-06 03:55:35 +01:00
var dialog = BootstrapDialog . show ( {
2022-04-24 16:52:44 +02:00
title : opts . title || _ ( 'Please wait' ) ,
message : opts . message || _ ( 'Please wait while your request is being processed.' ) ,
autodestroy : true ,
2023-03-06 03:55:35 +01:00
type : opts . type || BootstrapDialog . TYPE _INFO ,
size : opts . size || BootstrapDialog . SIZE _NORMAL ,
cssClass : opts . css _class || null ,
2022-04-24 16:52:44 +02:00
centered : opts . centered || true ,
closable : opts . closable || false ,
2023-03-06 03:55:35 +01:00
draggable : opts . draggable || false ,
onshown : function ( dialog ) {
2022-04-24 16:52:44 +02:00
if ( closed )
2023-03-06 03:55:35 +01:00
dialog . close ( ) ;
2022-04-24 16:52:44 +02:00
opened = true ;
}
} ) ;
return {
'modal' : dialog ,
'close' : function ( ) {
if ( opened )
2023-03-06 03:55:35 +01:00
dialog . close ( ) ;
2022-04-24 16:52:44 +02:00
closed = true ;
}
} ;
} ;
$ ( document ) . ready ( function ( ) {
// Manage .myconfirm-link
$ ( '.myconfirm-link' ) . click ( function ( event ) {
event . preventDefault ( ) ;
myconfirm ( {
title : $ ( this ) . data ( "myconfirm-title" ) || _ ( "Confirmation" ) ,
question : "<p><strong>" + ( $ ( this ) . data ( "myconfirm-question" ) || _ ( "Are you sure?" ) ) + "</strong></p>" ,
onconfirm : function ( data ) {
window . location = data . confirm _url ;
} ,
data : {
confirm _url : $ ( this ) . data ( 'myconfirm-url' )
}
} ) ;
} ) ;
// Manage .myloading-link
$ ( '.myloading-link' ) . click ( function ( event ) {
event . preventDefault ( ) ;
myloadingalert ( {
title : $ ( this ) . data ( "myloading-title" ) ,
message : $ ( this ) . data ( "myloading-message" ) ,
} ) ;
window . location = $ ( this ) . data ( 'myloading-url' ) ;
} ) ;
// Manage .myconfirm-btn
$ ( '.myconfirm-btn' ) . click ( function ( event ) {
if ( $ ( this ) . data ( 'myconfirm-btn-confirmed' ) == '1' ) {
$ ( this ) . data ( 'myconfirm-btn-confirmed' , '' ) ;
return true ;
}
event . preventDefault ( ) ;
myconfirm ( {
title : $ ( this ) . data ( "myconfirm-title" ) || _ ( "Confirmation" ) ,
question : "<p><strong>" + ( $ ( this ) . data ( "myconfirm-question" ) || _ ( "Are you sure?" ) ) + "</strong></p>" ,
onconfirm : function ( data ) {
data . btn . data ( 'myconfirm-btn-confirmed' , 1 ) ;
data . btn . click ( ) ;
} ,
data : {
btn : $ ( this )
}
} ) ;
} ) ;
// Manage .myloading-btn
$ ( '.myloading-btn' ) . click ( function ( event ) {
myloadingalert ( {
title : $ ( this ) . data ( "myloading-title" ) ,
message : $ ( this ) . data ( "myloading-message" ) ,
} ) ;
} ) ;
} ) ;