]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - src/window/SafeDestroy.js
4e9323a81ea510590618e00631f710659182a285
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',
30 getParams: function() {
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 const view
= this.getView();
47 const removeButton
= this.lookupReference('removeButton');
48 if (value
=== view
.getItem().id
.toString()) {
49 removeButton
.enable();
51 removeButton
.disable();
54 specialkey: function(field
, event
) {
55 const removeButton
= this.lookupReference('removeButton');
56 if (!removeButton
.isDisabled() && event
.getKey() === event
.ENTER
) {
57 removeButton
.fireEvent('click', removeButton
, event
);
61 'button[reference=removeButton]': {
63 const 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 const hasProgressBar
= !!(view
.showProgress
&&
74 response
.result
.data
);
77 // stay around so we can trigger our close events
78 // when background action is completed
81 const upid
= response
.result
.data
;
82 const win
= Ext
.create('Proxmox.window.TaskProgress', {
103 reference
: 'removeButton',
104 text
: gettext('Remove'),
109 initComponent: function() {
115 cls
: [Ext
.baseCSSPrefix
+ 'message-box-icon',
116 Ext
.baseCSSPrefix
+ 'message-box-warning',
117 Ext
.baseCSSPrefix
+ 'dlg-icon'],
129 reference
: 'messageCmp',
132 itemId
: 'confirmField',
133 reference
: 'confirmField',
141 .concat(me
.additionalItems
)
145 reference
: 'noteContainer',
156 reference
: 'noteCmp',
158 style
: 'font-size: smaller; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;',
168 const itemId
= me
.getItem().id
;
169 if (!Ext
.isDefined(itemId
)) {
170 throw "no ID specified";
173 if (Ext
.isDefined(me
.getNote())) {
174 me
.lookupReference('noteCmp').setHtml(`<span title="${me.getNote()}">${me.getNote()}</span>`);
175 const noteContainer
= me
.lookupReference('noteContainer');
176 noteContainer
.setHidden(false);
177 noteContainer
.setDisabled(false);
180 let taskName
= me
.getTaskName();
181 if (Ext
.isDefined(taskName
)) {
182 me
.lookupReference('messageCmp').setHtml(
183 Proxmox
.Utils
.format_task_description(taskName
, itemId
),
186 throw "no task name specified";
189 me
.lookupReference('confirmField')
190 .setFieldLabel(`${gettext('Please enter the ID to confirm')} (${itemId})`);