ui: tape/BackupOverview: move restore buttons inline

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>
This commit is contained in:
Dominik Csapak 2021-05-14 14:59:20 +02:00 committed by Thomas Lamprecht
parent 00a5072ad3
commit 4db4b9706c

View File

@ -16,58 +16,30 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
}).show(); }).show();
}, },
restoreSingle: function(button, record) { restore: function(view, rI, cI, item, e, rec) {
let me = this; let me = this;
let view = me.getView();
let selection = view.getSelection();
if (!selection || selection.length < 1) {
return;
}
let node = selection[0]; let node = rec;
if (node.data.restoreid === undefined) { let mediaset = node.data.is_media_set ? node.data.text : node.data['media-set'];
return;
}
let restoreid = node.data.restoreid;
let mediaset = node.data['media-set'];
let uuid = node.data['media-set-uuid']; let uuid = node.data['media-set-uuid'];
let datastores = [node.data.store];
Ext.create('PBS.TapeManagement.TapeRestoreWindow', { let list;
mediaset, let datastores;
uuid, if (node.data.restoreid !== undefined) {
list: [ list = [node.data.restoreid];
restoreid, datastores = [node.data.store];
], } else {
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;
datastores = node.data.datastores; datastores = node.data.datastores;
while (!datastores && node.get('depth') > 2) {
node = node.parentNode;
datastores = node.data.datastores;
}
} }
Ext.create('PBS.TapeManagement.TapeRestoreWindow', { Ext.create('PBS.TapeManagement.TapeRestoreWindow', {
mediaset, mediaset,
uuid, uuid,
datastores, datastores,
list,
listeners: { listeners: {
destroy: function() { destroy: function() {
me.reload(); me.reload();
@ -99,6 +71,7 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
if (data[pool][media_set] === undefined) { if (data[pool][media_set] === undefined) {
data[pool][media_set] = entry; data[pool][media_set] = entry;
data[pool][media_set].text = media_set; data[pool][media_set].text = media_set;
data[pool][media_set].restore =true;
data[pool][media_set].tapes = 1; data[pool][media_set].tapes = 1;
data[pool][media_set]['seq-nr'] = undefined; data[pool][media_set]['seq-nr'] = undefined;
data[pool][media_set].is_media_set = true; data[pool][media_set].is_media_set = true;
@ -180,6 +153,7 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
for (let entry of list.result.data) { for (let entry of list.result.data) {
entry.text = entry.snapshot; entry.text = entry.snapshot;
entry.restore = true;
entry.leaf = true; entry.leaf = true;
entry.children = []; entry.children = [];
entry['media-set'] = media_set; entry['media-set'] = media_set;
@ -289,22 +263,6 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
text: gettext('New Backup'), text: gettext('New Backup'),
handler: '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: [ columns: [
@ -315,6 +273,18 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
sortable: false, sortable: false,
flex: 3, 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'), text: gettext('Tapes'),
dataIndex: 'tapes', dataIndex: 'tapes',