all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup 1/2] ui: tape/DriveStatus: add erase button
@ 2021-03-17 10:47 Dominik Csapak
  2021-03-17 10:47 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/DriveStatus: fix updating pointer+click handler on info widget Dominik Csapak
  2021-03-17 12:38 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] ui: tape/DriveStatus: add erase button Dietmar Maurer
  0 siblings, 2 replies; 3+ messages in thread
From: Dominik Csapak @ 2021-03-17 10:47 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 www/tape/DriveStatus.js | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/www/tape/DriveStatus.js b/www/tape/DriveStatus.js
index bf083851..b529a9af 100644
--- a/www/tape/DriveStatus.js
+++ b/www/tape/DriveStatus.js
@@ -84,6 +84,24 @@ Ext.define('PBS.TapeManagement.DriveStatus', {
 	    }).show();
 	},
 
+	erase: function() {
+	    let me = this;
+	    let view = me.getView();
+	    let driveid = view.drive;
+	    PBS.Utils.driveCommand(driveid, 'erase-media', {
+		waitMsgTarget: view,
+		method: 'POST',
+		success: function(response) {
+		    Ext.create('Proxmox.window.TaskProgress', {
+			upid: response.result.data,
+			taskDone: function() {
+			    me.reload();
+			},
+		    }).show();
+		},
+	    });
+	},
+
 	ejectMedia: function() {
 	    let me = this;
 	    let view = me.getView();
@@ -193,6 +211,18 @@ Ext.define('PBS.TapeManagement.DriveStatus', {
 		disabled: '{!online}',
 	    },
 	},
+	{
+	    text: gettext('Erase'),
+	    xtype: 'proxmoxButton',
+	    handler: 'erase',
+	    iconCls: 'fa fa-trash-o',
+	    dangerous: true,
+	    confirmMsg: gettext('Are you sure you want to erase the inserted tape?'),
+	    disabled: true,
+	    bind: {
+		disabled: '{!online}',
+	    },
+	},
 	{
 	    text: gettext('Catalog'),
 	    xtype: 'proxmoxButton',
-- 
2.20.1





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/DriveStatus: fix updating pointer+click handler on info widget
  2021-03-17 10:47 [pbs-devel] [PATCH proxmox-backup 1/2] ui: tape/DriveStatus: add erase button Dominik Csapak
@ 2021-03-17 10:47 ` Dominik Csapak
  2021-03-17 12:38 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] ui: tape/DriveStatus: add erase button Dietmar Maurer
  1 sibling, 0 replies; 3+ messages in thread
From: Dominik Csapak @ 2021-03-17 10:47 UTC (permalink / raw)
  To: pbs-devel

we can only do this after it is rendered, the element does not exist
before

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 www/tape/DriveStatus.js | 33 +++++++++++++++++++++++++++------
 1 file changed, 27 insertions(+), 6 deletions(-)

diff --git a/www/tape/DriveStatus.js b/www/tape/DriveStatus.js
index b529a9af..38cddaaf 100644
--- a/www/tape/DriveStatus.js
+++ b/www/tape/DriveStatus.js
@@ -469,17 +469,38 @@ Ext.define('PBS.TapeManagement.DriveInfoPanel', {
 
 	let vm = me.getViewModel();
 	vm.set('drive', record.data);
+	vm.notify();
+	me.updatePointer();
+    },
+
+    updatePointer: function() {
+	let me = this;
 	let stateWidget = me.down('pmxInfoWidget[reference=statewidget]');
 	let stateEl = stateWidget.getEl();
-	stateEl.removeListener('click', me.clickState);
-	if (record.data.state) {
-	    stateEl.on('click', me.clickState, me);
+	if (!stateEl) {
+	    setTimeout(function() {
+		me.updatePointer();
+	    }, 100);
+	    return;
+	}
+
+	let vm = me.getViewModel();
+	let drive = vm.get('drive');
+
+	if (drive.state) {
 	    stateEl.addCls('info-pointer');
 	} else {
 	    stateEl.removeCls('info-pointer');
 	}
+    },
 
-	vm.notify();
+    listeners: {
+	afterrender: function() {
+	    let me = this;
+	    let stateWidget = me.down('pmxInfoWidget[reference=statewidget]');
+	    let stateEl = stateWidget.getEl();
+	    stateEl.on('click', me.clickState, me);
+	},
     },
 
     initComponent: function() {
@@ -488,12 +509,12 @@ Ext.define('PBS.TapeManagement.DriveInfoPanel', {
 	    throw "no drive given";
 	}
 
+	me.callParent();
+
 	let tapeStore = Ext.ComponentQuery.query('navigationtree')[0].tapestore;
 	me.mon(tapeStore, 'load', me.updateData, me);
 	if (tapeStore.isLoaded()) {
 	    me.updateData(tapeStore);
 	}
-
-	me.callParent();
     },
 });
-- 
2.20.1





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup 1/2] ui: tape/DriveStatus: add erase button
  2021-03-17 10:47 [pbs-devel] [PATCH proxmox-backup 1/2] ui: tape/DriveStatus: add erase button Dominik Csapak
  2021-03-17 10:47 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/DriveStatus: fix updating pointer+click handler on info widget Dominik Csapak
@ 2021-03-17 12:38 ` Dietmar Maurer
  1 sibling, 0 replies; 3+ messages in thread
From: Dietmar Maurer @ 2021-03-17 12:38 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-17 12:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-17 10:47 [pbs-devel] [PATCH proxmox-backup 1/2] ui: tape/DriveStatus: add erase button Dominik Csapak
2021-03-17 10:47 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/DriveStatus: fix updating pointer+click handler on info widget Dominik Csapak
2021-03-17 12:38 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] ui: tape/DriveStatus: add erase button 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