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 8DF8B7170C for ; Thu, 8 Apr 2021 13:39:53 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 828C81A99D for ; Thu, 8 Apr 2021 13:39:23 +0200 (CEST) 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 B73B21A972 for ; Thu, 8 Apr 2021 13:39:21 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 7C0F745A0E for ; Thu, 8 Apr 2021 13:39:21 +0200 (CEST) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Thu, 8 Apr 2021 13:39:17 +0200 Message-Id: <20210408113920.24416-4-d.csapak@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210408113920.24416-1-d.csapak@proxmox.com> References: <20210408113920.24416-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.168 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [record.data] Subject: [pbs-devel] [PATCH proxmox-backup 4/7] ui: tape/ChangerStatus: shortcut 'load-media' for single drive 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: Thu, 08 Apr 2021 11:39:53 -0000 if a changer only has a single drive, there is no point in showing a window with a DriveSelector, just do want the user wanted. Signed-off-by: Dominik Csapak --- www/tape/ChangerStatus.js | 82 +++++++++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 30 deletions(-) diff --git a/www/tape/ChangerStatus.js b/www/tape/ChangerStatus.js index dadb2a6e..22330d3b 100644 --- a/www/tape/ChangerStatus.js +++ b/www/tape/ChangerStatus.js @@ -163,40 +163,62 @@ Ext.define('PBS.TapeManagement.ChangerStatus', { let label = record.data['label-text']; let changer = encodeURIComponent(view.changer); + let singleDrive = me.drives.length === 1 ? me.drives[0] : undefined; - Ext.create('Proxmox.window.Edit', { - isCreate: true, - autoShow: true, - submitText: gettext('OK'), - title: gettext('Load Media into Drive'), - url: `/api2/extjs/tape/drive`, - method: 'POST', - submitUrl: function(url, values) { - let drive = values.drive; - delete values.drive; - return `${url}/${encodeURIComponent(drive)}/load-media`; - }, - items: [ - { - xtype: 'displayfield', - name: 'label-text', - value: label, - submitValue: true, - fieldLabel: gettext('Media'), + if (singleDrive !== undefined) { + Proxmox.Utils.API2Request({ + method: 'POST', + params: { + 'label-text': label, }, - { - xtype: 'pbsDriveSelector', - fieldLabel: gettext('Drive'), - changer: changer, - name: 'drive', + url: `/api2/extjs/tape/drive/${singleDrive}/load-media`, + success: function(response, opt) { + Ext.create('Proxmox.window.TaskProgress', { + upid: response.result.data, + taskDone: function(success) { + me.reload(); + }, + }).show(); }, - ], - listeners: { - destroy: function() { - me.reload(); + failure: function(response, opt) { + Ext.Msg.alert(gettext('Error'), response.htmlStatus); }, - }, - }); + }); + } else { + Ext.create('Proxmox.window.Edit', { + isCreate: true, + autoShow: true, + submitText: gettext('OK'), + title: gettext('Load Media into Drive'), + url: `/api2/extjs/tape/drive`, + method: 'POST', + submitUrl: function(url, values) { + let drive = values.drive; + delete values.drive; + return `${url}/${encodeURIComponent(drive)}/load-media`; + }, + items: [ + { + xtype: 'displayfield', + name: 'label-text', + value: label, + submitValue: true, + fieldLabel: gettext('Media'), + }, + { + xtype: 'pbsDriveSelector', + fieldLabel: gettext('Drive'), + changer: changer, + name: 'drive', + }, + ], + listeners: { + destroy: function() { + me.reload(); + }, + }, + }); + } }, unload: async function(v, rI, cI, button, el, record) { -- 2.20.1