From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 9525D69082 for ; Mon, 1 Mar 2021 14:10:34 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9333A20402 for ; Mon, 1 Mar 2021 14:10:34 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 5BC46203F5 for ; Mon, 1 Mar 2021 14:10:33 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 21E154580B for ; Mon, 1 Mar 2021 14:10:33 +0100 (CET) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Mon, 1 Mar 2021 14:10:32 +0100 Message-Id: <20210301131032.24432-2-d.csapak@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210301131032.24432-1-d.csapak@proxmox.com> References: <20210301131032.24432-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.203 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/DriveStatus: add label/eject/catalog buttons X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Mar 2021 13:10:34 -0000 and enable them only if the status says that a tape is inserted. Signed-off-by: Dominik Csapak --- 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