This warns the user that the datacenter firewall is disabled when editing the host or the VM/CT firewall status.
Signed-off-by: Christian Ebner <c.eb...@proxmox.com> --- Version 6: * moved FirewallEnableEdit from grid to window folder * use cbind to set the checkbox * use fixed width of 350 for the window * Changed warning text www/manager6/Makefile | 1 + www/manager6/grid/FirewallOptions.js | 23 ++++++++++++-- www/manager6/window/FirewallEnableEdit.js | 50 +++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 www/manager6/window/FirewallEnableEdit.js diff --git a/www/manager6/Makefile b/www/manager6/Makefile index e75f0de6..922451b9 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -83,6 +83,7 @@ JSSRC= \ window/BackupConfig.js \ window/Settings.js \ window/StartupEdit.js \ + window/FirewallEnableEdit.js \ panel/NotesView.js \ grid/ResourceGrid.js \ grid/PoolMembers.js \ diff --git a/www/manager6/grid/FirewallOptions.js b/www/manager6/grid/FirewallOptions.js index cddbdbbf..1d56ecc0 100644 --- a/www/manager6/grid/FirewallOptions.js +++ b/www/manager6/grid/FirewallOptions.js @@ -64,9 +64,17 @@ Ext.define('PVE.FirewallOptions', { }; }; - if (me.fwtype === 'node') { - add_boolean_row('enable', gettext('Firewall'), 1); + me.rows.enable = { + required: true, + defaultValue: 1, + header: gettext('Firewall'), + renderer: Proxmox.Utils.format_boolean, + editor: { + xtype: 'pveFirewallEnableEdit', + defaultValue: 1 + } + }; add_boolean_row('nosmurfs', gettext('SMURFS filter'), 1); add_boolean_row('tcpflags', gettext('TCP flags filter'), 0); add_boolean_row('ndp', 'NDP', 1); @@ -78,7 +86,16 @@ Ext.define('PVE.FirewallOptions', { add_log_row('tcp_flags_log_level', 120); add_log_row('smurf_log_level'); } else if (me.fwtype === 'vm') { - add_boolean_row('enable', gettext('Firewall'), 0); + me.rows.enable = { + required: true, + defaultValue: 0, + header: gettext('Firewall'), + renderer: Proxmox.Utils.format_boolean, + editor: { + xtype: 'pveFirewallEnableEdit', + defaultValue: 0 + } + }; add_boolean_row('dhcp', 'DHCP', 1); add_boolean_row('ndp', 'NDP', 1); add_boolean_row('radv', gettext('Router Advertisement'), 0); diff --git a/www/manager6/window/FirewallEnableEdit.js b/www/manager6/window/FirewallEnableEdit.js new file mode 100644 index 00000000..075bc462 --- /dev/null +++ b/www/manager6/window/FirewallEnableEdit.js @@ -0,0 +1,50 @@ +/*jslint confusion: true*/ +Ext.define('PVE.FirewallEnableEdit', { + extend: 'Proxmox.window.Edit', + alias: ['widget.pveFirewallEnableEdit'], + mixins: ['Proxmox.Mixin.CBind'], + + subject: gettext('Firewall'), + cbindData: { + defaultValue: 0 + }, + width: 350, + + items: [ + { + xtype: 'proxmoxcheckbox', + name: 'enable', + uncheckedValue: 0, + cbind: { + defaultValue: '{defaultValue}', + checked: '{defaultValue}' + }, + deleteDefaultValue: false, + fieldLabel: gettext('Firewall') + }, + { + xtype: 'displayfield', + name: 'warning', + userCls: 'pve-hint', + value: gettext('Warning: Firewall still disabled at datacenter level!'), + hidden: true + } + ], + + beforeShow: function() { + var me = this; + + Proxmox.Utils.API2Request({ + url: '/api2/extjs/cluster/firewall/options', + method: 'GET', + failure: function(response, opts) { + Ext.Msg.alert(gettext('Error'), response.htmlStatus); + }, + success: function(response, opts) { + if (!response.result.data.enable) { + me.down('displayfield[name=warning]').setVisible(true); + } + } + }); + } +}); -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel