]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/window/SafeDestroy.js
cc32f6e0767e8cf5661ef4b7cedd5d3e160c0827
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('PVE.window.SafeDestroy', {
6 extend
: 'Ext.window.Window',
7 alias
: 'widget.pveSafeDestroy',
9 title
: gettext('Confirm'),
11 buttonAlign
: 'center',
14 layout
: { type
:'hbox' },
15 defaultFocus
: 'confirmField',
27 getParams: function() {
29 var purgeCheckbox
= me
.lookupReference('purgeCheckbox');
30 if (purgeCheckbox
.checked
) {
33 if (Ext
.Object
.isEmpty(me
.params
)) {
36 return '?' + Ext
.Object
.toQueryString(me
.params
);
41 xclass
: 'Ext.app.ViewController',
44 'field[name=confirm]': {
45 change: function(f
, value
) {
46 var view
= this.getView();
47 var removeButton
= this.lookupReference('removeButton');
48 if (value
=== view
.getItem().id
.toString()) {
49 removeButton
.enable();
51 removeButton
.disable();
54 specialkey: function (field
, event
) {
55 var removeButton
= this.lookupReference('removeButton');
56 if (!removeButton
.isDisabled() && event
.getKey() == event
.ENTER
) {
57 removeButton
.fireEvent('click', removeButton
, event
);
61 'button[reference=removeButton]': {
63 var view
= this.getView();
64 Proxmox
.Utils
.API2Request({
65 url
: view
.getUrl() + view
.getParams(),
68 failure: function(response
, opts
) {
70 Ext
.Msg
.alert('Error', response
.htmlStatus
);
72 success: function(response
, options
) {
73 var hasProgressBar
= view
.showProgress
&&
74 response
.result
.data
? true : false;
77 // stay around so we can trigger our close events
78 // when background action is completed
81 var upid
= response
.result
.data
;
82 var win
= Ext
.create('Proxmox.window.TaskProgress', {
85 destroy: function () {
104 cls
: [ Ext
.baseCSSPrefix
+ 'message-box-icon',
105 Ext
.baseCSSPrefix
+ 'message-box-warning',
106 Ext
.baseCSSPrefix
+ 'dlg-icon']
118 reference
: 'messageCmp'
121 itemId
: 'confirmField',
122 reference
: 'confirmField',
130 xtype
: 'proxmoxcheckbox',
132 reference
: 'purgeCheckbox',
133 boxLabel
: gettext('Purge'),
137 'data-qtip': gettext('Remove from replication and backup jobs')
145 reference
: 'removeButton',
146 text
: gettext('Remove'),
151 initComponent : function() {
156 var item
= me
.getItem();
158 if (!Ext
.isDefined(item
.id
)) {
159 throw "no ID specified";
162 if (!Ext
.isDefined(item
.type
)) {
163 throw "no VM type specified";
166 var messageCmp
= me
.lookupReference('messageCmp');
169 if (item
.type
=== 'VM') {
170 msg
= Proxmox
.Utils
.format_task_description('qmdestroy', item
.id
);
171 } else if (item
.type
=== 'CT') {
172 msg
= Proxmox
.Utils
.format_task_description('vzdestroy', item
.id
);
173 } else if (item
.type
=== 'CephPool') {
174 msg
= Proxmox
.Utils
.format_task_description('cephdestroypool', item
.id
);
175 } else if (item
.type
=== 'Image') {
176 msg
= Proxmox
.Utils
.format_task_description('unknownimgdel', item
.id
);
178 throw "unknown item type specified";
181 messageCmp
.setHtml(msg
);
183 if (!(item
.type
=== 'VM' || item
.type
=== 'CT')) {
184 let purgeCheckbox
= me
.lookupReference('purgeCheckbox');
185 purgeCheckbox
.setDisabled(true);
186 purgeCheckbox
.setHidden(true);
189 var confirmField
= me
.lookupReference('confirmField');
190 msg
= gettext('Please enter the ID to confirm') +
191 ' (' + item
.id
+ ')';
192 confirmField
.setFieldLabel(msg
);