From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 8018D1FF173 for ; Mon, 25 Nov 2024 17:22:57 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A10AD189DE; Mon, 25 Nov 2024 17:22:54 +0100 (CET) From: Hannes Laimer To: pbs-devel@lists.proxmox.com Date: Mon, 25 Nov 2024 17:22:00 +0100 Message-Id: <20241125162213.157011-14-h.laimer@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241125162213.157011-1-h.laimer@proxmox.com> References: <20241125162213.157011-1-h.laimer@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.026 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy 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 Subject: [pbs-devel] [PATCH proxmox-backup v15 13/26] ui: add partition selector form 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: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" Signed-off-by: Hannes Laimer --- www/Makefile | 1 + www/form/PartitionSelector.js | 81 +++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 www/form/PartitionSelector.js diff --git a/www/Makefile b/www/Makefile index ff19ae7a5..f62b44288 100644 --- a/www/Makefile +++ b/www/Makefile @@ -49,6 +49,7 @@ JSSRC= \ form/NamespaceMaxDepth.js \ form/CalendarEvent.js \ form/PermissionPathSelector.js \ + form/PartitionSelector.js \ form/GroupSelector.js \ form/GroupFilter.js \ form/VerifyOutdatedAfter.js \ diff --git a/www/form/PartitionSelector.js b/www/form/PartitionSelector.js new file mode 100644 index 000000000..162dbe418 --- /dev/null +++ b/www/form/PartitionSelector.js @@ -0,0 +1,81 @@ +Ext.define('pbs-partition-list', { + extend: 'Ext.data.Model', + fields: ['name', 'uuid', 'filesystem', 'devpath', 'size', 'model'], + proxy: { + type: 'proxmox', + url: "/api2/json/nodes/localhost/disks/list?skipsmart=1&include-partitions=1", + reader: { + transform: (rawData) => rawData.data + .flatMap(disk => (disk.partitions + .map(part => ({ ...part, model: disk.model })) ?? []) + .filter(partition => partition.used === 'filesystem')), + }, + }, + idProperty: 'devpath', + +}); + +Ext.define('PBS.form.PartitionSelector', { + extend: 'Proxmox.form.ComboGrid', + alias: 'widget.pbsPartitionSelector', + + allowBlank: false, + autoSelect: false, + submitEmpty: false, + valueField: 'uuid', + displayField: 'devpath', + + store: { + model: 'pbs-partition-list', + autoLoad: true, + sorters: 'devpath', + }, + getSubmitData: function() { + let me = this; + let data = null; + if (!me.disabled && me.submitValue && !me.isFileUpload()) { + let val = me.getSubmitValue(); + if (val !== undefined && val !== null && val !== '') { + data = {}; + data[me.getName()] = val; + } else if (me.getDeleteEmpty()) { + data = {}; + data.delete = me.getName(); + } + } + return data; + }, + 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, + }, + { + header: gettext('Model'), + sortable: true, + dataIndex: 'model', + flex: 1, + }, + ], + viewConfig: { + emptyText: 'No usable partitions present', + }, + }, +}); -- 2.39.5 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel