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 998397A928 for ; Tue, 5 Jul 2022 15:09:27 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 012482F508 for ; Tue, 5 Jul 2022 15:08:55 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (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 for ; Tue, 5 Jul 2022 15:08:50 +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 4D5C243DC6 for ; Tue, 5 Jul 2022 15:08:49 +0200 (CEST) From: Hannes Laimer To: pbs-devel@lists.proxmox.com Date: Tue, 5 Jul 2022 13:08:27 +0000 Message-Id: <20220705130834.14285-22-h.laimer@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220705130834.14285-1-h.laimer@proxmox.com> References: <20220705130834.14285-1-h.laimer@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.042 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pbs-devel] [PATCH proxmox-backup 19/26] ui: form: add PartitionSelector 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, 05 Jul 2022 13:09:27 -0000 ... used by the removable device edit window, only shows partitions that have a filesystem and gives their uuid as value Signed-off-by: Hannes Laimer --- www/Makefile | 1 + www/form/PartitionSelector.js | 61 +++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 www/form/PartitionSelector.js diff --git a/www/Makefile b/www/Makefile index 12be1ce5..b916ecc8 100644 --- a/www/Makefile +++ b/www/Makefile @@ -44,6 +44,7 @@ JSSRC= \ form/DataStoreSelector.js \ form/NamespaceSelector.js \ form/NamespaceMaxDepth.js \ + form/PartitionSelector.js \ form/CalendarEvent.js \ form/PermissionPathSelector.js \ form/GroupSelector.js \ diff --git a/www/form/PartitionSelector.js b/www/form/PartitionSelector.js new file mode 100644 index 00000000..53c0560a --- /dev/null +++ b/www/form/PartitionSelector.js @@ -0,0 +1,61 @@ +Ext.define('pbs-partition-list', { + extend: 'Ext.data.Model', + fields: ['name', 'uuid', 'filesystem', 'devpath', 'size'], + proxy: { + type: 'proxmox', + url: "/api2/json/nodes/localhost/disks/list?include-partitions=1", + reader: { + transform: (rawData) => { + let partitions = []; + for (let disk of rawData.data) { + const p = (disk.partitions ?? []).filter((i) => i.used === 'filesystem'); + partitions.push(...p); + } + return { data: partitions }; + }, + }, + }, + idProperty: 'devpath', + +}); + +Ext.define('PBS.form.PartitionSelector', { + extend: 'Proxmox.form.ComboGrid', + alias: 'widget.pbsPartitionSelector', + + allowBlank: false, + autoSelect: false, + valueField: 'uuid', + displayField: 'uuid', + + store: { + model: 'pbs-partition-list', + autoLoad: true, + sorters: 'devpath', + }, + + listConfig: { + columns: [ + { + header: gettext('Path'), + sortable: true, + dataIndex: 'devpath', + renderer: (v, metaData, rec) => Ext.String.htmlEncode(v), + flex: 1, + }, + { + header: gettext('Filesystem'), + sortable: true, + dataIndex: 'filesystem', + flex: 1, + }, + { + header: gettext('Size'), + sortable: true, + dataIndex: 'size', + renderer: Proxmox.Utils.format_size, + flex: 1, + }, + ], + }, +}); -- 2.30.2