]> git.proxmox.com Git - proxmox-backup.git/commitdiff
ui: tape/BackupOverview: move restore buttons inline
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 14 May 2021 12:59:20 +0000 (14:59 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 18 May 2021 05:51:23 +0000 (07:51 +0200)
instead of having them in the toolbar. This makes the UI more consistent
with the datastore content view.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
www/tape/BackupOverview.js

index 91ff1aac9f51e592fad9be7915dcc44e2f11898f..0e105274b9917c4b6718148221627c7da60b1cd9 100644 (file)
@@ -16,58 +16,30 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
            }).show();
        },
 
-       restoreSingle: function(button, record) {
+       restore: function(view, rI, cI, item, e, rec) {
            let me = this;
-           let view = me.getView();
-           let selection = view.getSelection();
-           if (!selection || selection.length < 1) {
-               return;
-           }
 
-           let node = selection[0];
-           if (node.data.restoreid === undefined) {
-               return;
-           }
-           let restoreid = node.data.restoreid;
-           let mediaset = node.data['media-set'];
+           let node = rec;
+           let mediaset = node.data.is_media_set ? node.data.text : node.data['media-set'];
            let uuid = node.data['media-set-uuid'];
-           let datastores = [node.data.store];
-
-           Ext.create('PBS.TapeManagement.TapeRestoreWindow', {
-               mediaset,
-               uuid,
-               list: [
-                   restoreid,
-               ],
-               datastores,
-               listeners: {
-                   destroy: function() {
-                       me.reload();
-                   },
-               },
-           }).show();
-       },
 
-       restore: function(button, record) {
-           let me = this;
-           let view = me.getView();
-           let selection = view.getSelection();
-           if (!selection || selection.length < 1) {
-               return;
-           }
-
-           let node = selection[0];
-           let mediaset = node.data.text;
-           let uuid = node.data['media-set-uuid'];
-           let datastores = node.data.datastores;
-           while (!datastores && node.get('depth') > 2) {
-               node = node.parentNode;
+           let list;
+           let datastores;
+           if (node.data.restoreid !== undefined) {
+               list = [node.data.restoreid];
+               datastores = [node.data.store];
+           } else {
                datastores = node.data.datastores;
+               while (!datastores && node.get('depth') > 2) {
+                   node = node.parentNode;
+                   datastores = node.data.datastores;
+               }
            }
            Ext.create('PBS.TapeManagement.TapeRestoreWindow', {
                mediaset,
                uuid,
                datastores,
+               list,
                listeners: {
                    destroy: function() {
                        me.reload();
@@ -99,6 +71,7 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
                if (data[pool][media_set] === undefined) {
                    data[pool][media_set] = entry;
                    data[pool][media_set].text = media_set;
+                   data[pool][media_set].restore =true;
                    data[pool][media_set].tapes = 1;
                    data[pool][media_set]['seq-nr'] = undefined;
                    data[pool][media_set].is_media_set = true;
@@ -180,6 +153,7 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
 
                for (let entry of list.result.data) {
                    entry.text = entry.snapshot;
+                   entry.restore = true;
                    entry.leaf = true;
                    entry.children = [];
                    entry['media-set'] = media_set;
@@ -289,22 +263,6 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
            text: gettext('New Backup'),
            handler: 'backup',
        },
-       {
-           xtype: 'proxmoxButton',
-           disabled: true,
-           text: gettext('Restore Media Set'),
-           handler: 'restore',
-           parentXType: 'treepanel',
-           enableFn: (rec) => !!rec.data['media-set-uuid'],
-       },
-       {
-           xtype: 'proxmoxButton',
-           disabled: true,
-           text: gettext('Restore Snapshot'),
-           handler: 'restoreSingle',
-           parentXType: 'treepanel',
-           enableFn: (rec) => !!rec.data.restoreid,
-       },
     ],
 
     columns: [
@@ -315,6 +273,18 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
            sortable: false,
            flex: 3,
        },
+       {
+           header: gettext('Actions'),
+           xtype: 'actioncolumn',
+           items: [
+               {
+                   handler: 'restore',
+                   tooltip: gettext('Restore'),
+                   getClass: (v, m, rec) => rec.data.restore ? 'fa fa-fw fa-undo' : 'pmx-hidden',
+                   isDisabled: (v, r, c, i, rec) => !rec.data.restore,
+                },
+           ],
+       },
        {
            text: gettext('Tapes'),
            dataIndex: 'tapes',