-
Notifications
You must be signed in to change notification settings - Fork 9.3k
/
confirm.js
104 lines (90 loc) · 2.51 KB
/
confirm.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'jquery',
'underscore',
'jquery/ui',
'Magento_Ui/js/modal/modal',
'mage/translate'
], function ($, _) {
'use strict';
$.widget('mage.confirm', $.mage.modal, {
options: {
modalClass: 'confirm',
title: '',
focus: '.action-accept',
actions: {
/**
* Callback always - called on all actions.
*/
always: function () {},
/**
* Callback confirm.
*/
confirm: function () {},
/**
* Callback cancel.
*/
cancel: function () {}
},
buttons: [{
text: $.mage.__('Cancel'),
class: 'action-secondary action-dismiss',
/**
* Click handler.
*/
click: function (event) {
this.closeModal(event);
}
}, {
text: $.mage.__('OK'),
class: 'action-primary action-accept',
/**
* Click handler.
*/
click: function (event) {
this.closeModal(event, true);
}
}]
},
/**
* Create widget.
*/
_create: function () {
this._super();
this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this));
this.openModal();
},
/**
* Remove modal window.
*/
_remove: function () {
this.modal.remove();
},
/**
* Open modal window.
*/
openModal: function () {
return this._super();
},
/**
* Close modal window.
*/
closeModal: function (event, result) {
result = result || false;
if (result) {
this.options.actions.confirm(event);
} else {
this.options.actions.cancel(event);
}
this.options.actions.always(event);
this.element.bind('confirmclosed', _.bind(this._remove, this));
return this._super();
}
});
return function (config) {
return $('<div></div>').html(config.content).confirm(config);
};
});