]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - src/window/SafeDestroy.js
1 /* Popup a message window
2 * where the user has to manually enter the resource ID
3 * to enable the destroy button
5 Ext
.define('Proxmox.window.SafeDestroy', {
6 extend
: 'Ext.window.Window',
7 alias
: 'proxmoxSafeDestroy',
9 title
: gettext('Confirm'),
11 buttonAlign
: 'center',
14 layout
: { type
: 'hbox' },
15 defaultFocus
: 'confirmField',
28 getParams: function() {
30 var purgeCheckbox
= me
.lookupReference('purgeCheckbox');
31 if (purgeCheckbox
.checked
) {
34 if (Ext
.Object
.isEmpty(me
.params
)) {
37 return '?' + Ext
.Object
.toQueryString(me
.params
);
42 xclass
: 'Ext.app.ViewController',
45 'field[name=confirm]': {
46 change: function(f
, value
) {
47 var view
= this.getView();
48 var removeButton
= this.lookupReference('removeButton');
49 if (value
=== view
.getItem().id
.toString()) {
50 removeButton
.enable();
52 removeButton
.disable();
55 specialkey: function(field
, event
) {
56 var removeButton
= this.lookupReference('removeButton');
57 if (!removeButton
.isDisabled() && event
.getKey() === event
.ENTER
) {
58 removeButton
.fireEvent('click', removeButton
, event
);
62 'button[reference=removeButton]': {
64 var view
= this.getView();
65 Proxmox
.Utils
.API2Request({
66 url
: view
.getUrl() + view
.getParams(),
69 failure: function(response
, opts
) {
71 Ext
.Msg
.alert('Error', response
.htmlStatus
);
73 success: function(response
, options
) {
74 var hasProgressBar
= !!(view
.showProgress
&&
75 response
.result
.data
);
78 // stay around so we can trigger our close events
79 // when background action is completed
82 var upid
= response
.result
.data
;
83 var win
= Ext
.create('Proxmox.window.TaskProgress', {
105 cls
: [Ext
.baseCSSPrefix
+ 'message-box-icon',
106 Ext
.baseCSSPrefix
+ 'message-box-warning',
107 Ext
.baseCSSPrefix
+ 'dlg-icon'],
119 reference
: 'messageCmp',
122 itemId
: 'confirmField',
123 reference
: 'confirmField',
131 xtype
: 'proxmoxcheckbox',
133 reference
: 'purgeCheckbox',
134 boxLabel
: gettext('Purge'),
138 'data-qtip': gettext('Remove from replication and backup jobs'),
146 reference
: 'removeButton',
147 text
: gettext('Remove'),
152 initComponent: function() {
157 var item
= me
.getItem();
159 if (!Ext
.isDefined(item
.id
)) {
160 throw "no ID specified";
163 var messageCmp
= me
.lookupReference('messageCmp');
166 if (Ext
.isDefined(me
.getTaskName())) {
167 msg
= Proxmox
.Utils
.format_task_description(me
.getTaskName(), item
.id
);
168 messageCmp
.setHtml(msg
);
170 throw "no task name specified";
173 if (!item
.purgeable
) {
174 let purgeCheckbox
= me
.lookupReference('purgeCheckbox');
175 purgeCheckbox
.setDisabled(true);
176 purgeCheckbox
.setHidden(true);
179 var confirmField
= me
.lookupReference('confirmField');
180 msg
= gettext('Please enter the ID to confirm') +
181 ' (' + item
.id
+ ')';
182 confirmField
.setFieldLabel(msg
);