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 AE6766A2E5 for ; Tue, 16 Feb 2021 12:48:13 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id ACA1815644 for ; Tue, 16 Feb 2021 12:48:13 +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 DD58F15630 for ; Tue, 16 Feb 2021 12:48:12 +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 A317045106 for ; Tue, 16 Feb 2021 12:48:12 +0100 (CET) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Tue, 16 Feb 2021 12:48:12 +0100 Message-Id: <20210216114812.8406-3-d.csapak@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210216114812.8406-1-d.csapak@proxmox.com> References: <20210216114812.8406-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.221 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. [rec.data] Subject: [pbs-devel] [PATCH proxmox-backup 3/3] ui: tape/BackupOverview: insert the tapes between media-set and snapshot 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: Tue, 16 Feb 2021 11:48:13 -0000 but auto-expand them, so no additional click is necessary this shows the user which tapes are involved for the media sets Signed-off-by: Dominik Csapak --- www/tape/BackupOverview.js | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/www/tape/BackupOverview.js b/www/tape/BackupOverview.js index a5bbfc09..4b4c02ff 100644 --- a/www/tape/BackupOverview.js +++ b/www/tape/BackupOverview.js @@ -129,6 +129,8 @@ Ext.define('PBS.TapeManagement.BackupOverview', { list.result.data.sort((a, b) => a.snapshot.localeCompare(b.snapshot)); + let tapes = {}; + for (let entry of list.result.data) { entry.text = entry.snapshot; entry.leaf = true; @@ -137,7 +139,23 @@ Ext.define('PBS.TapeManagement.BackupOverview', { if (iconCls !== '') { entry.iconCls = `fa ${iconCls}`; } - node.appendChild(entry); + + let tape = entry['label-text']; + if (tapes[tape] === undefined) { + tapes[tape] = { + text: tape, + 'media-set-uuid': entry['media-set-uuid'], + 'seq-nr': entry['seq-nr'], + iconCls: 'pbs-icon-tape', + expanded: true, + children: [], + }; + } + tapes[tape].children.push(entry); + } + + for (const tape of Object.values(tapes)) { + node.appendChild(tape); } if (list.result.data.length === 0) { @@ -198,7 +216,7 @@ Ext.define('PBS.TapeManagement.BackupOverview', { text: gettext('Restore Media Set'), handler: 'restore', parentXType: 'treepanel', - enableFn: (rec) => !!rec.data.uuid, + enableFn: (rec) => !!rec.data['media-set-uuid'], }, ], -- 2.20.1