This adds the ability to dynamically configure and change the base_url for the firewall options. This is needed for the SDN firewall dialog, that updates the firewall components based on the selected vnet. This avoids having to reinstantiate the component every time the user selects a new vnet.
Signed-off-by: Stefan Hanreich <s.hanre...@proxmox.com> --- www/manager6/grid/FirewallOptions.js | 38 ++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/www/manager6/grid/FirewallOptions.js b/www/manager6/grid/FirewallOptions.js index fa482e0e4..d98cbe22c 100644 --- a/www/manager6/grid/FirewallOptions.js +++ b/www/manager6/grid/FirewallOptions.js @@ -9,10 +9,6 @@ Ext.define('PVE.FirewallOptions', { initComponent: function() { var me = this; - if (!me.base_url) { - throw "missing base_url configuration"; - } - if (!['dc', 'node', 'vm', 'vnet'].includes(me.fwtype)) { throw "unknown firewall option type"; } @@ -197,23 +193,49 @@ Ext.define('PVE.FirewallOptions', { }; Ext.apply(me, { - url: "/api2/json" + me.base_url, tbar: [edit_btn], - editorConfig: { - url: '/api2/extjs/' + me.base_url, - }, listeners: { itemdblclick: () => { if (canEdit) { me.run_editor(); } }, selectionchange: set_button_status, }, }); + if (me.base_url) { + me.applyUrl(me.base_url); + } else { + me.rstore = Ext.create('Proxmox.data.ObjectStore', { + interval: me.interval, + extraParams: me.extraParams, + rows: me.rows, + }); + } + me.callParent(); me.on('activate', me.rstore.startUpdate); me.on('destroy', me.rstore.stopUpdate); me.on('deactivate', me.rstore.stopUpdate); }, + applyUrl: function(url) { + let me = this; + + Ext.apply(me, { + url: "/api2/json" + url, + editorConfig: { + url: '/api2/extjs/' + url, + }, + }); + }, + setBaseUrl: function(url) { + let me = this; + + me.base_url = url; + + me.applyUrl(url); + + me.rstore.getProxy().setConfig('url', `/api2/extjs/${url}`); + me.rstore.reload(); + }, }); -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel