* [pbs-devel] [PATCH proxmox-backup 1/2] ui: tape/BackupOverview: add sublevel for groups
@ 2021-03-01 13:10 Dominik Csapak
2021-03-01 13:10 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/DriveStatus: add label/eject/catalog buttons Dominik Csapak
2021-03-01 13:19 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] ui: tape/BackupOverview: add sublevel for groups Dietmar Maurer
0 siblings, 2 replies; 3+ messages in thread
From: Dominik Csapak @ 2021-03-01 13:10 UTC (permalink / raw)
To: pbs-devel
For tapes with many snapshots/group, a simple list of them is too
big. Instead, add a level for just the groups, this makes searching
for a specific backup much easier.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
www/tape/BackupOverview.js | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/www/tape/BackupOverview.js b/www/tape/BackupOverview.js
index 4b4c02ff..c3f30b58 100644
--- a/www/tape/BackupOverview.js
+++ b/www/tape/BackupOverview.js
@@ -151,7 +151,20 @@ Ext.define('PBS.TapeManagement.BackupOverview', {
children: [],
};
}
- tapes[tape].children.push(entry);
+ let [type, group, _id] = PBS.Utils.parse_snapshot_id(entry.snapshot);
+
+ let children = tapes[tape].children;
+ let text = `${type}/${group}`;
+ if (children.length < 1 || children[children.length - 1].text !== text) {
+ children.push({
+ text,
+ 'media-set-uuid': entry['media-set-uuid'],
+ leaf: false,
+ iconCls: `fa ${iconCls}`,
+ children: [],
+ });
+ }
+ children[children.length - 1].children.push(entry);
}
for (const tape of Object.values(tapes)) {
--
2.20.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/DriveStatus: add label/eject/catalog buttons
2021-03-01 13:10 [pbs-devel] [PATCH proxmox-backup 1/2] ui: tape/BackupOverview: add sublevel for groups Dominik Csapak
@ 2021-03-01 13:10 ` Dominik Csapak
2021-03-01 13:19 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] ui: tape/BackupOverview: add sublevel for groups Dietmar Maurer
1 sibling, 0 replies; 3+ messages in thread
From: Dominik Csapak @ 2021-03-01 13:10 UTC (permalink / raw)
To: pbs-devel
and enable them only if the status says that a tape is inserted.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
www/tape/DriveStatus.js | 94 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 94 insertions(+)
diff --git a/www/tape/DriveStatus.js b/www/tape/DriveStatus.js
index 0035dc22..768a74f4 100644
--- a/www/tape/DriveStatus.js
+++ b/www/tape/DriveStatus.js
@@ -15,6 +15,12 @@ Ext.define('PBS.TapeManagement.DriveStatus', {
bodyPadding: 5,
+ viewModel: {
+ data: {
+ online: false,
+ },
+ },
+
controller: {
xclass: 'Ext.app.ViewController',
@@ -22,6 +28,63 @@ Ext.define('PBS.TapeManagement.DriveStatus', {
let me = this;
me.lookup('statusgrid').rstore.load();
},
+
+ onLoad: function() {
+ let me = this;
+ let statusgrid = me.lookup('statusgrid');
+ let statusFlags = (statusgrid.getObjectValue('status') || "").split(/\s+|\s+/);
+ let online = statusFlags.indexOf('ONLINE') !== -1;
+ let vm = me.getViewModel();
+ vm.set('online', online);
+ },
+
+ labelMedia: function() {
+ let me = this;
+ Ext.create('PBS.TapeManagement.LabelMediaWindow', {
+ driveid: me.getView().drive,
+ }).show();
+ },
+
+ eject: function() {
+ let me = this;
+ let view = me.getView();
+ let driveid = view.drive;
+ PBS.Utils.driveCommand(driveid, 'eject-media', {
+ waitMsgTarget: view,
+ method: 'POST',
+ success: function(response) {
+ Ext.create('Proxmox.window.TaskProgress', {
+ upid: response.result.data,
+ taskDone: function() {
+ me.reload();
+ },
+ }).show();
+ },
+ });
+ },
+
+ catalog: function() {
+ let me = this;
+ let view = me.getView();
+ let drive = view.drive;
+ PBS.Utils.driveCommand(drive, 'catalog', {
+ waitMsgTarget: view,
+ method: 'POST',
+ success: function(response) {
+ Ext.create('Proxmox.window.TaskViewer', {
+ upid: response.result.data,
+ taskDone: function() {
+ me.reload();
+ },
+ }).show();
+ },
+ });
+ },
+
+ init: function(view) {
+ let me = this;
+ me.mon(me.lookup('statusgrid').getStore().rstore, 'load', 'onLoad');
+ },
},
listeners: {
@@ -34,6 +97,37 @@ Ext.define('PBS.TapeManagement.DriveStatus', {
handler: 'reload',
text: gettext('Reload'),
},
+ '-',
+ {
+ text: gettext('Label Media'),
+ xtype: 'proxmoxButton',
+ handler: 'labelMedia',
+ iconCls: 'fa fa-barcode',
+ disabled: true,
+ bind: {
+ disabled: '{!online}',
+ },
+ },
+ {
+ text: gettext('Eject'),
+ xtype: 'proxmoxButton',
+ handler: 'ejectMedia',
+ iconCls: 'fa fa-eject',
+ disabled: true,
+ bind: {
+ disabled: '{!online}',
+ },
+ },
+ {
+ text: gettext('Catalog'),
+ xtype: 'proxmoxButton',
+ handler: 'catalog',
+ iconCls: 'fa fa-book',
+ disabled: true,
+ bind: {
+ disabled: '{!online}',
+ },
+ },
],
items: [
--
2.20.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [pbs-devel] applied: [PATCH proxmox-backup 1/2] ui: tape/BackupOverview: add sublevel for groups
2021-03-01 13:10 [pbs-devel] [PATCH proxmox-backup 1/2] ui: tape/BackupOverview: add sublevel for groups Dominik Csapak
2021-03-01 13:10 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/DriveStatus: add label/eject/catalog buttons Dominik Csapak
@ 2021-03-01 13:19 ` Dietmar Maurer
1 sibling, 0 replies; 3+ messages in thread
From: Dietmar Maurer @ 2021-03-01 13:19 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Dominik Csapak
applied both patches
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-03-01 13:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-01 13:10 [pbs-devel] [PATCH proxmox-backup 1/2] ui: tape/BackupOverview: add sublevel for groups Dominik Csapak
2021-03-01 13:10 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/DriveStatus: add label/eject/catalog buttons Dominik Csapak
2021-03-01 13:19 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] ui: tape/BackupOverview: add sublevel for groups Dietmar Maurer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal