From 0af8c26b74fc3311c1db19982ed3470b12e8b0fa Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Wed, 17 Mar 2021 13:18:40 +0100 Subject: [PATCH] ui: tape/BackupOverview: insert a datastore level since we can now backup multiple datastores in the same media-set, we show the datastores as first level below that the final tree structucture looks like this: tapepool A - media set 1 - datastore I - tape x - ct/100 - ct/100/2020-01-01T00:00:00Z Signed-off-by: Dominik Csapak --- www/tape/BackupOverview.js | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/www/tape/BackupOverview.js b/www/tape/BackupOverview.js index a53475c2..0f9a35af 100644 --- a/www/tape/BackupOverview.js +++ b/www/tape/BackupOverview.js @@ -127,9 +127,16 @@ Ext.define('PBS.TapeManagement.BackupOverview', { }, }); - list.result.data.sort((a, b) => a.snapshot.localeCompare(b.snapshot)); + list.result.data.sort(function(a, b) { + let storeRes = a.store.localeCompare(b.store); + if (storeRes === 0) { + return a.snapshot.localeCompare(b.snapshot); + } else { + return storeRes; + } + }); - let tapes = {}; + let stores = {}; for (let entry of list.result.data) { entry.text = entry.snapshot; @@ -140,9 +147,19 @@ Ext.define('PBS.TapeManagement.BackupOverview', { entry.iconCls = `fa ${iconCls}`; } + let store = entry.store; let tape = entry['label-text']; - if (tapes[tape] === undefined) { - tapes[tape] = { + if (stores[store] === undefined) { + stores[store] = { + text: store, + 'media-set-uuid': entry['media-set-uuid'], + iconCls: 'fa fa-database', + tapes: {}, + }; + } + + if (stores[store].tapes[tape] === undefined) { + stores[store].tapes[tape] = { text: tape, 'media-set-uuid': entry['media-set-uuid'], 'seq-nr': entry['seq-nr'], @@ -153,7 +170,7 @@ Ext.define('PBS.TapeManagement.BackupOverview', { } let [type, group, _id] = PBS.Utils.parse_snapshot_id(entry.snapshot); - let children = tapes[tape].children; + let children = stores[store].tapes[tape].children; let text = `${type}/${group}`; if (children.length < 1 || children[children.length - 1].text !== text) { children.push({ @@ -167,8 +184,13 @@ Ext.define('PBS.TapeManagement.BackupOverview', { children[children.length - 1].children.push(entry); } - for (const tape of Object.values(tapes)) { - node.appendChild(tape); + let storeList = Object.values(stores); + let expand = storeList.length === 1; + for (const store of storeList) { + store.children = Object.values(store.tapes); + store.expanded = expand; + delete store.tapes; + node.appendChild(store); } if (list.result.data.length === 0) {