adds a simple grid for fail2ban options into the node config panel --- v4: * no changes
www/manager6/Makefile | 1 + www/manager6/grid/Fail2banOptions.js | 51 ++++++++++++++++++++++++++++ www/manager6/node/Config.js | 7 ++++ 3 files changed, 59 insertions(+) create mode 100644 www/manager6/grid/Fail2banOptions.js diff --git a/www/manager6/Makefile b/www/manager6/Makefile index 7d491f57..ad9fe58a 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -74,6 +74,7 @@ JSSRC= \ grid/BackupView.js \ grid/FirewallAliases.js \ grid/FirewallOptions.js \ + grid/Fail2banOptions.js \ grid/FirewallRules.js \ grid/PoolMembers.js \ grid/Replication.js \ diff --git a/www/manager6/grid/Fail2banOptions.js b/www/manager6/grid/Fail2banOptions.js new file mode 100644 index 00000000..5de0c18c --- /dev/null +++ b/www/manager6/grid/Fail2banOptions.js @@ -0,0 +1,51 @@ +Ext.define('PVE.Fail2banOptions', { + extend: 'Proxmox.grid.ObjectGrid', + alias: ['widget.pveFail2banOptions'], + + base_url: undefined, + + initComponent: function() { + var me = this; + + me.rows = {}; + + me.add_boolean_row('enable', gettext("Enable Fail2Ban")); + me.add_integer_row('maxretry', gettext("Max retries")); + me.add_integer_row('bantime', gettext("Minutes to ban")); + + var edit_btn = new Ext.Button({ + text: gettext('Edit'), + disabled: true, + handler: function() { me.run_editor(); }, + }); + + var set_button_status = function() { + var sm = me.getSelectionModel(); + var rec = sm.getSelection()[0]; + + if (!rec) { + edit_btn.disable(); + return; + } + var rowdef = me.rows[rec.data.key]; + edit_btn.setDisabled(!rowdef.editor); + }; + + Ext.apply(me, { + url: "/api2/json" + me.base_url, + tbar: [edit_btn], + editorConfig: { + url: "/api2/extjs" + me.base_url, + }, + listeners: { + itemdblclick: me.run_editor, + selectionchange: set_button_status, + }, + }); + + me.callParent(); + me.on('activate', me.rstore.startUpdate); + me.on('destroy', me.rstore.stopUpdate); + me.on('deactivate', me.rstore.stopUpdate); + }, +}); diff --git a/www/manager6/node/Config.js b/www/manager6/node/Config.js index 68f80391..9dbe8d0c 100644 --- a/www/manager6/node/Config.js +++ b/www/manager6/node/Config.js @@ -276,6 +276,13 @@ Ext.define('PVE.node.Config', { base_url: '/nodes/' + nodename + '/firewall/options', fwtype: 'node', itemId: 'firewall-options', + }, + { + xtype: 'pveFail2banOptions', + iconCls: 'fa fa-legal', + title: gettext('Fail2ban'), + base_url: '/nodes/' + nodename + '/firewall/fail2ban', + itemId: 'fail2ban-options', }); } -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel