]> git.proxmox.com Git - proxmox-backup.git/commitdiff
ui: tape: add remove media button
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 11 Jan 2024 10:40:36 +0000 (11:40 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 12 Jan 2024 09:26:55 +0000 (10:26 +0100)
this only removes media from the inventory, it does not touch the data

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
www/Makefile
www/tape/TapeInventory.js
www/tape/window/MediaRemoveWindow.js [new file with mode: 0644]

index be7e27abefb0f6f836cde52068e95041c9bc81da..c2755ac8cc603daf3f1db55a3d49ad9c494ef552 100644 (file)
@@ -21,6 +21,7 @@ TAPE_UI_FILES=                                                \
        tape/window/Erase.js                            \
        tape/window/EncryptionEdit.js                   \
        tape/window/LabelMedia.js                       \
+       tape/window/MediaRemoveWindow.js                \
        tape/window/PoolEdit.js                         \
        tape/window/TapeBackup.js                       \
        tape/window/TapeBackupJob.js                    \
index dba36dacd717e877d981daab4cc3616fdd7952a7..3039a95a492a9b3eca0f88a3cbe964757a3e12a1 100644 (file)
@@ -60,6 +60,27 @@ Ext.define('PBS.TapeManagement.TapeInventory', {
            }).show();
        },
 
+       remove: function() {
+           let me = this;
+           let view = me.getView();
+           let selection = view.getSelection();
+           if (!selection || selection.length < 1) {
+               return;
+           }
+           let uuid = selection[0].data.uuid;
+           let label = selection[0].data['label-text'];
+           Ext.create('PBS.TapeManagement.MediaRemoveWindow', {
+               uuid,
+               label,
+               autoShow: true,
+               listeners: {
+                   destroy: function() {
+                       me.reload();
+                   },
+               },
+           });
+       },
+
        moveToVault: function() {
            let me = this;
            let view = me.getView();
@@ -206,6 +227,12 @@ Ext.define('PBS.TapeManagement.TapeInventory', {
            disabled: true,
            handler: 'format',
        },
+       {
+           xtype: 'proxmoxButton',
+           text: gettext('Remove'),
+           disabled: true,
+           handler: 'remove',
+       },
     ],
 
     features: [
diff --git a/www/tape/window/MediaRemoveWindow.js b/www/tape/window/MediaRemoveWindow.js
new file mode 100644 (file)
index 0000000..0eb3d6b
--- /dev/null
@@ -0,0 +1,66 @@
+Ext.define('PBS.TapeManagement.MediaRemoveWindow', {
+    extend: 'Proxmox.window.Edit',
+    mixins: ['Proxmox.Mixin.CBind'],
+
+    uuid: undefined,
+    label: undefined,
+
+    cbindData: function(config) {
+       let me = this;
+       return {
+           uuid: me.uuid,
+           warning: Ext.String.format(gettext("Are you sure you want to remove tape '{0}' ?"), me.label),
+       };
+    },
+
+    title: gettext('Remove Media'),
+    url: `/api2/extjs/tape/media/destroy`,
+
+    layout: 'hbox',
+    width: 400,
+    method: 'GET',
+    isCreate: true,
+    submitText: gettext('Ok'),
+    items: [
+       {
+           xtype: 'container',
+           padding: 0,
+           layout: {
+               type: 'hbox',
+               align: 'stretch',
+           },
+           items: [
+               {
+                   xtype: 'component',
+                   cls: [Ext.baseCSSPrefix + 'message-box-icon',
+                       Ext.baseCSSPrefix + 'message-box-warning',
+                       Ext.baseCSSPrefix + 'dlg-icon'],
+               },
+               {
+                   xtype: 'container',
+                   flex: 1,
+                   items: [
+                       {
+                           xtype: 'displayfield',
+                           cbind: {
+                               value: '{warning}',
+                           },
+                       },
+                       {
+                           xtype: 'hidden',
+                           name: 'uuid',
+                           cbind: {
+                               value: '{uuid}',
+                           },
+                       },
+                       {
+                           xtype: 'proxmoxcheckbox',
+                           fieldLabel: gettext('Force'),
+                           name: 'force',
+                       },
+                   ],
+               },
+           ],
+       },
+    ],
+});