From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id C996E1FF09B for ; Mon, 28 Sep 2026 07:50:02 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 1B29821852; Mon, 28 Sep 2026 07:48:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=genua.de; s=202307; t=1790574497; bh=BNOzy5/BuoMGR4eh9JBtRJyD1OWZVqonrm9/xnNnneM=; h=Date:From:To:Subject:References:In-Reply-To:From; b=h5QDDdR7FIQY0IVW2aqMi4THIbnd5moAnHOZgMcddk8l4GQppefWC/ypgglc0Tu5r mOFzO2vjarB0RTF6S3usuRZy2Siw3ZvwaEbtS6I85VYgM2OzS8iRg5YpKE3s2lkjvr XKNzDeY6ovI3sM760++eIZ3UA5RprpVygeExTsfGTJ6MODdaXXfuNuyGvI3OZG00tt BURiTt1QgtDSSIDne222FjkOpvq+jyY7jxuzvx9Eat23vOG6JJaSFNB/ECoSEP2RyI JIel4774EIbFZfr++CBuYoPmQwukYdr3p9JYGb6mQP6cADnQslS9+18djVT+vkayJN jCeTlkmuwp0PA== Date: Mon, 28 Sep 2026 07:48:15 +0200 From: Christian Ludwig To: Subject: [PATCH v2 pve-manager 12/16] ui: storage: add efi-firmware content type support Message-ID: <58bf4f3696b49626156e812e4e80e23105995bd5.1790337878.git@genua.de> References: MIME-Version: 1.0 In-Reply-To: X-Originating-IP: [192.168.217.185] X-ClientProxiedBy: kch1-mta09.win.genua.de (10.208.16.109) To kch1-mta07.win.genua.de (10.208.16.107) Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline X-SPAM-LEVEL: Spam detection results: 0 AWL 0.079 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record UNPARSEABLE_RELAY 0.001 Informational: message has unparseable relay lines Message-ID-Hash: MOU2RDHNNMCCE42HI4PZSUW53TLLB7FE X-Message-ID-Hash: MOU2RDHNNMCCE42HI4PZSUW53TLLB7FE X-MailFrom: christian_ludwig@genua.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Add the 'efi-firmware' storage content type to the Web UI: - Utils.js: add display name for the content type - ContentTypeSelector: include in the default content type list - CephFSEdit: include in its explicit content type list, the backend CephFS plugin allows the type as well - Browser: add a tab for browsing and uploading firmware images; the format is always 'raw' for this type, so drop that column - UploadToStorage: allow uploading files without extension restrictions, the backend validates the file name by character class instead of by extension Signed-off-by: Christian Ludwig --- www/manager6/Utils.js | 1 + www/manager6/form/ContentTypeSelector.js | 11 ++++++++++- www/manager6/storage/Browser.js | 14 ++++++++++++++ www/manager6/storage/CephFSEdit.js | 2 +- www/manager6/window/UploadToStorage.js | 1 + 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js index c86a00c5..1f1be06b 100644 --- a/www/manager6/Utils.js +++ b/www/manager6/Utils.js @@ -740,6 +740,7 @@ Ext.define('PVE.Utils', { rootdir: gettext('Container'), snippets: gettext('Snippets'), import: gettext('Import'), + 'efi-firmware': gettext('EFI Firmware'), }, // volume can be a full volume info object, in which case the format parameter is ignored, or diff --git a/www/manager6/form/ContentTypeSelector.js b/www/manager6/form/ContentTypeSelector.js index 60532251..b33eb124 100644 --- a/www/manager6/form/ContentTypeSelector.js +++ b/www/manager6/form/ContentTypeSelector.js @@ -10,7 +10,16 @@ Ext.define('PVE.form.ContentTypeSelector', { me.comboItems = []; if (me.cts === undefined) { - me.cts = ['images', 'iso', 'vztmpl', 'backup', 'rootdir', 'snippets', 'import']; + me.cts = [ + 'images', + 'iso', + 'vztmpl', + 'backup', + 'rootdir', + 'snippets', + 'import', + 'efi-firmware', + ]; } Ext.Array.each(me.cts, function (ct) { diff --git a/www/manager6/storage/Browser.js b/www/manager6/storage/Browser.js index d0237948..611c0009 100644 --- a/www/manager6/storage/Browser.js +++ b/www/manager6/storage/Browser.js @@ -189,6 +189,20 @@ Ext.define('PVE.storage.Browser', { pluginType: plugin, }); } + if (contents.includes('efi-firmware')) { + me.items.push({ + xtype: 'pveStorageContentView', + title: gettext('EFI Firmware'), + iconCls: 'fa fa-microchip', + itemId: 'contentEfiFirmware', + content: 'efi-firmware', + showColumns: ['name', 'date', 'size'], + pluginType: plugin, + enableUploadButton: enableUpload, + enableDownloadUrlButton: enableDownloadUrl, + useUploadButton: true, + }); + } } if (caps.storage['Permissions.Modify']) { diff --git a/www/manager6/storage/CephFSEdit.js b/www/manager6/storage/CephFSEdit.js index db54df87..3b7a49f3 100644 --- a/www/manager6/storage/CephFSEdit.js +++ b/www/manager6/storage/CephFSEdit.js @@ -95,7 +95,7 @@ Ext.define('PVE.storage.CephFSInputPanel', { me.column2 = [ { xtype: 'pveContentTypeSelector', - cts: ['backup', 'iso', 'vztmpl', 'snippets', 'import'], + cts: ['backup', 'iso', 'vztmpl', 'snippets', 'import', 'efi-firmware'], fieldLabel: gettext('Content'), name: 'content', value: 'backup', diff --git a/www/manager6/window/UploadToStorage.js b/www/manager6/window/UploadToStorage.js index cc53596d..3897334d 100644 --- a/www/manager6/window/UploadToStorage.js +++ b/www/manager6/window/UploadToStorage.js @@ -12,6 +12,7 @@ Ext.define('PVE.window.UploadToStorage', { import: ['.ova', '.qcow2', '.raw', '.vmdk'], iso: ['.img', '.iso'], vztmpl: ['.tar.gz', '.tar.xz', '.tar.zst'], + 'efi-firmware': [], }, // accepted for file selection, will be renamed to real extension -- 2.34.1