Add a separate tab for the storage edit/create panels to set the recently introduced "content-dirs" property which overrides the default directory locations. Analogous to the API implementation, the tab was added for Directory, CIFS and NFS storages.
Signed-off-by: Leo Nunner <l.nun...@proxmox.com> --- RFC: something I noticed is that we actually return the parsed config for "content-dirs" on GET /storage/{storage}. Should we maybe change that so that it returns a property string instead, for consistency reasons? www/manager6/storage/CIFSEdit.js | 8 +++ www/manager6/storage/DirEdit.js | 85 ++++++++++++++++++++++++++++++++ www/manager6/storage/NFSEdit.js | 8 +++ 3 files changed, 101 insertions(+) diff --git a/www/manager6/storage/CIFSEdit.js b/www/manager6/storage/CIFSEdit.js index 71415401..c909ccf2 100644 --- a/www/manager6/storage/CIFSEdit.js +++ b/www/manager6/storage/CIFSEdit.js @@ -218,6 +218,14 @@ Ext.define('PVE.storage.CIFSInputPanel', { }, ]; + me.extraTabs = [ + { + xtype: 'pveContentDirsTab', + title: gettext("Content Directories"), + onlineHelp: me.onlineHelp, + }, + ]; + me.callParent(); }, }); diff --git a/www/manager6/storage/DirEdit.js b/www/manager6/storage/DirEdit.js index 7e9ec44d..3d036589 100644 --- a/www/manager6/storage/DirEdit.js +++ b/www/manager6/storage/DirEdit.js @@ -33,6 +33,91 @@ Ext.define('PVE.storage.DirInputPanel', { }, ]; + me.extraTabs = [ + { + xtype: 'pveContentDirsTab', + title: gettext("Content Directories"), + onlineHelp: me.onlineHelp, + }, + ]; + + me.callParent(); + }, +}); + +Ext.define('PVE.panel.ContentDirsPanel', { + extend: 'Proxmox.panel.InputPanel', + xtype: 'pveContentDirsTab', + + onGetValues: function(form) { + let str = PVE.Parser.printPropertyString(form); + let values = { "content-dirs": str }; + return values; + }, + + onSetValues: function(values) { + return values?.["content-dirs"]; + }, + + initComponent: function() { + let me = this; + + me.column1 = [ + { + xtype: 'textfield', + name: 'images', + fieldLabel: gettext('Disk image'), + allowBlank: true, + emptyText: "/images/", + }, + { + xtype: 'textfield', + name: 'iso', + fieldLabel: gettext('ISO image'), + allowBlank: true, + emptyText: "/template/iso/", + }, + { + xtype: 'textfield', + name: 'vztmpl', + fieldLabel: gettext('CT template'), + allowBlank: true, + emptyText: "/template/cache/", + }, + ]; + + me.column2 = [ + { + xtype: 'textfield', + name: 'backup', + fieldLabel: gettext('Backup files'), + allowBlank: true, + emptyText: "/dump/", + }, + { + xtype: 'textfield', + name: 'rootdir', + fieldLabel: gettext('Container'), + allowBlank: true, + emptyText: "/private/", + }, + { + xtype: 'textfield', + name: 'snippets', + fieldLabel: gettext('Snippets'), + allowBlank: true, + emptyText: "/snippets/", + }, + ]; + + me.columnB = [ + { + xtype: 'displayfield', + userCls: 'pmx-hint', + value: gettext('Paths are relative to the mountpoint of the storage'), + }, + ]; + me.callParent(); }, }); diff --git a/www/manager6/storage/NFSEdit.js b/www/manager6/storage/NFSEdit.js index 202c7de0..606e1c02 100644 --- a/www/manager6/storage/NFSEdit.js +++ b/www/manager6/storage/NFSEdit.js @@ -160,6 +160,14 @@ Ext.define('PVE.storage.NFSInputPanel', { }, ]; + me.extraTabs = [ + { + xtype: 'pveContentDirsTab', + title: gettext("Content Directories"), + onlineHelp: me.onlineHelp, + }, + ]; + me.callParent(); }, }); -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel