luci-app-banip: optimized external file loading
authorDirk Brenken <dev@brenken.org>
Fri, 26 Jul 2024 20:29:39 +0000 (22:29 +0200)
committerDirk Brenken <dev@brenken.org>
Fri, 26 Jul 2024 20:38:06 +0000 (22:38 +0200)
* optimize loading of external config/feed files

Signed-off-by: Dirk Brenken <dev@brenken.org>
applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js
applications/luci-app-banip/po/templates/banip.pot

index 93a80f41ce7f701028428f76bb57a3f54227fafb..b1dbbe0d7e3ce24858646c8592a90fcd4bf8adc0 100644 (file)
@@ -255,6 +255,11 @@ return view.extend({
                /*
                        general settings tab
                */
+               o = s.taboption('general', form.DummyValue, '_sub');
+               o.rawhtml = true;
+               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>'
+                                       + '<hr style="width: 200px; height: 1px;" />';
+
                o = s.taboption('general', form.Flag, 'ban_enabled', _('Enabled'), _('Enable the banIP service.'));
                o.rmempty = false;
 
@@ -339,7 +344,8 @@ return view.extend({
                */
                o = s.taboption('advanced', form.DummyValue, '_sub');
                o.rawhtml = true;
-               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>';
+               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>'
+                                       + '<hr style="width: 200px; height: 1px;" />';
 
                o = s.taboption('advanced', form.ListValue, 'ban_nicelimit', _('Nice Level'), _('The selected priority will be used for banIP background processing.'));
                o.value('-20', _('Highest Priority'));
@@ -408,7 +414,8 @@ return view.extend({
                */
                o = s.taboption('adv_chain', form.DummyValue, '_sub');
                o.rawhtml = true;
-               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>';
+               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>'
+                                       + '<hr style="width: 200px; height: 1px;" />';
 
                o = s.taboption('adv_chain', form.ListValue, 'ban_nftpriority', _('Chain Priority'), _('Set the nft chain priority within the banIP table, lower values means higher priority.'));
                o.value('10');
@@ -485,7 +492,8 @@ return view.extend({
                */
                o = s.taboption('adv_set', form.DummyValue, '_sub');
                o.rawhtml = true;
-               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>';
+               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>'
+                                       + '<hr style="width: 200px; height: 1px;" />';
 
                o = s.taboption('adv_set', form.ListValue, 'ban_nftpolicy', _('Set Policy'), _('Set the nft policy for banIP-related Sets.'));
                o.value('memory', _('memory'));
@@ -513,22 +521,23 @@ return view.extend({
                o.rmempty = true;
 
                let feed, feeds, descr;
-               if (result[0]) {
-                       try {
-                               feeds = JSON.parse(result[0]);
-                       } catch (e) {
-                               feeds = "";
-                               ui.addNotification(null, E('p', _('Unable to parse the custom feed file!')), 'error');
+               if (result && Object.keys(result).length) {
+                       if (result[0]) {
+                               try {
+                                       feeds = JSON.parse(result[0]);
+                               } catch (e) {
+                                       ui.addNotification(null, E('p', _('Unable to parse the custom feed file!')), 'error');
+                               }
                        }
-               } else if (result[1]) {
-                       try {
-                               feeds = JSON.parse(result[1]);
-                       } catch (e) {
-                               feeds = "";
-                               ui.addNotification(null, E('p', _('Unable to parse the default feed file!')), 'error');
+                       if (result[1] && (!feeds || (feeds && !Object.keys(feeds).length))) {
+                               try {
+                                       feeds = JSON.parse(result[1]);
+                               } catch (e) {
+                                       ui.addNotification(null, E('p', _('Unable to parse the default feed file!')), 'error');
+                               }
                        }
                }
-               if (feeds) {
+               if (feeds && Object.keys(feeds).length) {
                        o = s.taboption('adv_set', form.MultiValue, 'ban_blockinput', _('WAN-Input Chain'), _('Limit certain feeds to the WAN-Input chain.'));
                        o.value('allowlist', _('local allowlist'));
                        o.value('blocklist', _('local blocklist'));
@@ -565,7 +574,8 @@ return view.extend({
                */
                o = s.taboption('adv_log', form.DummyValue, '_sub');
                o.rawhtml = true;
-               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>';
+               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>'
+                                       + '<hr style="width: 200px; height: 1px;" />';
 
                o = s.taboption('adv_log', form.ListValue, 'ban_nftloglevel', _('NFT Log Level'), _('Set the syslog level for NFT logging.'));
                o.value('emerg', _('emerg'));
@@ -645,7 +655,8 @@ return view.extend({
                */
                o = s.taboption('adv_email', form.DummyValue, '_sub');
                o.rawhtml = true;
-               o.default = '<em style="color:#37c;font-weight:bold;">' + _('To enable email notifications, set up the \'msmtp\' package and specify a vaild E-Mail receiver address.') + '</em>';
+               o.default = '<em style="color:#37c;font-weight:bold;">' + _('To enable email notifications, set up the \'msmtp\' package and specify a vaild E-Mail receiver address.') + '</em>'
+                                       + '<hr style="width: 200px; height: 1px;" />';
 
                o = s.taboption('adv_email', form.Flag, 'ban_mailnotification', _('E-Mail Notification'), _('Receive E-Mail notifications with every banIP run.'));
                o.rmempty = true;
@@ -672,9 +683,11 @@ return view.extend({
                */
                o = s.taboption('feeds', form.DummyValue, '_sub');
                o.rawhtml = true;
-               o.default = '<em style="color:#37c;font-weight:bold;">' + _('External Blocklist Feeds') + '</em>';
+               o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service reload to take effect.') + '</em>'
+                                       + '<hr style="width: 200px; height: 1px;" />'
+                                       + '<em style="color:#37c;font-weight:bold;">' + _('External Blocklist Feeds') + '</em>';
 
-               if (feeds) {
+               if (feeds && Object.keys(feeds).length) {
                        o = s.taboption('feeds', form.MultiValue, 'ban_feed', _('Blocklist Feed'));
                        for (let i = 0; i < Object.keys(feeds).length; i++) {
                                feed = Object.keys(feeds)[i].trim();
@@ -686,26 +699,27 @@ return view.extend({
                }
 
                let err, ccode, rir, country, countries = [];
-               if (result[2]) {
+               if (result && Object.keys(result[2]).length) {
                        countries = result[2].trim().split('\n');
-
-                       o = s.taboption('feeds', form.MultiValue, 'ban_country', _('Countries') + ' (<abbr title="Regional Internet Registries">RIR</abbr>)');
-                       for (let i = 0; i < countries.length; i++) {
-                               try {
-                                       ccode = countries[i].match(/^(\w+)\t/)[1].trim();
-                                       rir = countries[i].match(/^\w+\t(\w+)\t/)[1].trim();
-                                       country = countries[i].match(/^\w+\t\w+\t(.*$)/)[1].trim();
-                                       o.value(ccode, country + ' (' + rir + ')');
-                               } catch (e) {
-                                       countries[i] = "";
-                                       if (!err) {
-                                               ui.addNotification(null, E('p', _('Unable to parse the countries file!')), 'error');
+                       if (countries && countries.length) {
+                               o = s.taboption('feeds', form.MultiValue, 'ban_country', _('Countries') + ' (<abbr title="Regional Internet Registries">RIR</abbr>)');
+                               for (let i = 0; i < countries.length; i++) {
+                                       try {
+                                               ccode = countries[i].match(/^(\w+)\t/)[1].trim();
+                                               rir = countries[i].match(/^\w+\t(\w+)\t/)[1].trim();
+                                               country = countries[i].match(/^\w+\t\w+\t(.*$)/)[1].trim();
+                                               o.value(ccode, country + ' (' + rir + ')');
+                                       } catch (e) {
+                                               countries[i] = "";
+                                               if (!err) {
+                                                       ui.addNotification(null, E('p', _('Unable to parse the countries file!')), 'error');
+                                               }
+                                               err = e;
                                        }
-                                       err = e;
                                }
+                               o.optional = true;
+                               o.rmempty = true;
                        }
-                       o.optional = true;
-                       o.rmempty = true;
                }
 
                o = s.taboption('feeds', form.MultiValue, 'ban_region', _('Regional Internet Registry'));
@@ -726,8 +740,8 @@ return view.extend({
                o.rawhtml = true;
                o.default = '<hr style="width: 200px; height: 1px;" /><em style="color:#37c;font-weight:bold;">' + _('External Allowlist Feeds') + '</em>';
 
-               o = s.taboption('feeds', form.DynamicList, 'ban_allowurl', _('Allowlist Feed URLs'));
-               if (countries) {
+               if (countries && countries.length) {
+                       o = s.taboption('feeds', form.DynamicList, 'ban_allowurl', _('Allowlist Feed URLs'));
                        for (let i = 0; i < countries.length; i++) {
                                try {
                                        ccode = countries[i].match(/^(\w+)\t/)[1].trim();
@@ -739,17 +753,17 @@ return view.extend({
                                        countries[i] = "";
                                }
                        }
-               }
-               o.optional = true;
-               o.rmempty = true;
-               o.validate = function (section_id, value) {
-                       if (!value) {
+                       o.optional = true;
+                       o.rmempty = true;
+                       o.validate = function (section_id, value) {
+                               if (!value) {
+                                       return true;
+                               }
+                               if (!value.match(/^(http:\/\/|https:\/\/)[A-Za-z0-9\/\.\-_\?\&\+=:~#]+$/)) {
+                                       return _('Protocol/URL format not supported');
+                               }
                                return true;
                        }
-                       if (!value.match(/^(http:\/\/|https:\/\/)[A-Za-z0-9\/\.\-_\?\&\+=:~#]+$/)) {
-                               return _('Protocol/URL format not supported');
-                       }
-                       return true;
                }
 
                o = s.taboption('feeds', form.DummyValue, '_feeds');
index 6beafcc5f7edd51b15fddaf04440fd34a451f232..469a75cbd2ae57a2439036dea43d8694903f41fe 100644 (file)
@@ -5,34 +5,34 @@ msgstr "Content-Type: text/plain; charset=UTF-8"
 msgid "-- Set Selection --"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:329
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:351
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:362
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:420
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:450
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:464
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:478
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:494
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:503
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:580
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:609
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:769
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:334
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:357
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:368
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:427
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:457
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:471
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:485
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:502
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:511
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:590
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:619
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:783
 msgid "-- default --"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:712
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:726
 msgid "AFRINIC - serving Africa and the Indian Ocean region"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:713
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:727
 msgid "APNIC - serving the Asia Pacific region"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:714
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:728
 msgid "ARIN - serving Canada and the United States"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:720
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:734
 msgid "ASNs"
 msgstr ""
 
@@ -48,7 +48,7 @@ msgstr ""
 msgid "Active Uplink"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:317
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:322
 msgid "Additional trigger delay in seconds during interface reload and boot."
 msgstr ""
 
@@ -56,19 +56,19 @@ msgstr ""
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:425
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:432
 msgid "Allow Protocol/Ports"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:429
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:436
 msgid "Allow VLAN Forwards"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:729
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:744
 msgid "Allowlist Feed URLs"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:793
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:807
 msgid "Allowlist Only"
 msgstr ""
 
@@ -78,83 +78,83 @@ msgid ""
 "effect."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:425
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:432
 msgid ""
 "Always allow a protocol (tcp/udp) with certain ports or port ranges in WAN-"
 "Input and WAN-Forward chain."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:429
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:436
 msgid "Always allow certain VLAN forwards."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:435
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:442
 msgid "Always block certain VLAN forwards."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:763
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:777
 msgid "Auto Allow Uplink"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:759
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:773
 msgid "Auto Allowlist"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:778
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:792
 msgid "Auto Block Subnet"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:774
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:788
 msgid "Auto Blocklist"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:264
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:269
 msgid "Auto Detection"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:778
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:792
 msgid ""
 "Automatically add entire subnets to the blocklist Set based on an additional "
 "RDAP request with the suspicious IP."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:774
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:788
 msgid ""
 "Automatically add resolved domains and suspicious IPs to the local banIP "
 "blocklist."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:759
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:773
 msgid ""
 "Automatically add resolved domains and uplink IPs to the local banIP "
 "allowlist."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:390
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:396
 msgid "Backup Directory"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:386
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:392
 msgid "Base Directory"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:386
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:392
 msgid "Base working directory while banIP processing."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:499
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:507
 msgid "Block Type"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:435
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:442
 msgid "Block VLAN Forwards"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:678
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:691
 msgid "Blocklist Feed"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:783
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:797
 msgid "Blocklist Set Expiry"
 msgstr ""
 
@@ -164,13 +164,13 @@ msgid ""
 "effect."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:508
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:516
 msgid ""
 "By default each feed is active in all supported chains. Limit the default "
 "block policy to a certain chain."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:367
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:373
 msgid "CPU Cores"
 msgstr ""
 
@@ -179,14 +179,19 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:413
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:420
 msgid "Chain Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:342
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:411
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:488
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:568
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:686
+msgid "Changes on this tab needs a banIP service reload to take effect."
+msgstr ""
+
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:260
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:347
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:417
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:495
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:577
 msgid "Changes on this tab needs a banIP service restart to take effect."
 msgstr ""
 
@@ -203,7 +208,7 @@ msgid ""
 "rel=\"noreferrer noopener\" >online documentation</a>"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:692
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:705
 msgid "Countries"
 msgstr ""
 
@@ -211,17 +216,17 @@ msgstr ""
 msgid "Custom Feed Editor"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:398
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:404
 msgid ""
 "Deduplicate IP addresses across all active Sets and tidy up the local "
 "blocklist."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:398
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:404
 msgid "Deduplicate IPs"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:508
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:516
 msgid "Default Block Policy"
 msgstr ""
 
@@ -229,13 +234,13 @@ msgstr ""
 msgid "Description"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:264
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:269
 msgid ""
 "Detect relevant network devices, interfaces, subnets, protocols and "
 "utilities automatically."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:765
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:779
 msgid "Disable"
 msgstr ""
 
@@ -243,7 +248,7 @@ msgstr ""
 msgid "Domain Lookup"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:334
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:339
 msgid "Don't check SSL server certificates during download."
 msgstr ""
 
@@ -251,41 +256,41 @@ msgstr ""
 msgid "Download Custom Feeds"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:334
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:339
 msgid "Download Insecure"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:307
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:312
 msgid "Download Parameters"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:322
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:327
 msgid "Download Retries"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:298
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:303
 msgid "Download Utility"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:499
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:507
 msgid ""
 "Drop packets silently or actively reject the traffic on WAN-Input and WAN-"
 "Forward chains."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:650
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:661
 msgid "E-Mail Notification"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:665
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:676
 msgid "E-Mail Profile"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:653
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:664
 msgid "E-Mail Receiver Address"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:657
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:668
 msgid "E-Mail Sender Address"
 msgstr ""
 
@@ -293,7 +298,7 @@ msgstr ""
 msgid "E-Mail Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:661
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:672
 msgid "E-Mail Topic"
 msgstr ""
 
@@ -319,47 +324,47 @@ msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/feeds.js:195
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/feeds.js:233
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:633
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:643
 msgid "Empty field not allowed"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:623
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:633
 msgid "Enable Remote Logging"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:258
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:263
 msgid "Enable the banIP service."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:623
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:633
 msgid "Enable the cgi interface to receive remote logging events."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:261
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:266
 msgid "Enable verbose debug logging in case of processing errors."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:258
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:263
 msgid "Enabled"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:267
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:272
 msgid "Enables IPv4 support."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:272
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:277
 msgid "Enables IPv6 support."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:783
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:797
 msgid "Expiry time for auto added blocklist Set members."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:727
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:741
 msgid "External Allowlist Feeds"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:675
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:688
 msgid "External Blocklist Feeds"
 msgstr ""
 
@@ -399,25 +404,25 @@ msgstr ""
 msgid "Grant access to LuCI app banIP"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:346
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:352
 msgid "High Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:345
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:351
 msgid "Highest Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:441
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:448
 msgid "ICMP-Threshold"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:441
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:448
 msgid ""
 "ICMP-Threshold in packets per second to prevent WAN-DoS attacks. To disable "
 "this safeguard set it to '0'."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:767
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:781
 msgid "IP"
 msgstr ""
 
@@ -429,23 +434,23 @@ msgstr ""
 msgid "IP Search..."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:284
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:289
 msgid "IPv4 Network Interfaces"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:267
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:272
 msgid "IPv4 Support"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:291
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:296
 msgid "IPv6 Network Interfaces"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:272
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:277
 msgid "IPv6 Support"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:356
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:362
 msgid ""
 "Increase the maximal number of open files, e.g. to handle the amount of "
 "temporary split files while loading the Sets."
@@ -456,7 +461,7 @@ msgid "Information"
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/feeds.js:198
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:636
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:646
 msgid "Invalid characters"
 msgstr ""
 
@@ -464,7 +469,7 @@ msgstr ""
 msgid "Invalid input values, unable to save modifications."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:715
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:729
 msgid "LACNIC - serving the Latin American and Caribbean region"
 msgstr ""
 
@@ -472,8 +477,8 @@ msgstr ""
 msgid "LAN-Forward (packets)"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:511
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:552
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:519
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:561
 msgid "LAN-Forward Chain"
 msgstr ""
 
@@ -481,41 +486,41 @@ msgstr ""
 msgid "Last Run"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:349
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:355
 msgid "Least Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:348
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:354
 msgid "Less Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:552
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:561
 msgid "Limit certain feeds to the LAN-Forward chain."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:542
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:551
 msgid "Limit certain feeds to the WAN-Forward chain."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:532
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:541
 msgid "Limit certain feeds to the WAN-Input chain."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:367
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:373
 msgid "Limit the cpu cores used by banIP to save RAM."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:763
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:777
 msgid "Limit the uplink autoallow function."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:402
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:408
 msgid ""
 "List Set elements in the status and report, disable this to reduce the CPU "
 "load."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:312
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:317
 msgid "List of available reload trigger interface(s)."
 msgstr ""
 
@@ -523,29 +528,29 @@ msgstr ""
 msgid "List the elements of a specific banIP-related Set."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:757
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:771
 msgid "Local Feed Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:597
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:607
 msgid ""
 "Location for parsing the log file, e.g. via syslog-ng, to deactivate the "
 "standard parsing via logread."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:614
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:624
 msgid "Log Count"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:594
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:604
 msgid "Log LAN-Forward"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:601
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:611
 msgid "Log Limit"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:585
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:595
 msgid "Log Prerouting"
 msgstr ""
 
@@ -553,39 +558,39 @@ msgstr ""
 msgid "Log Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:619
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:629
 msgid "Log Terms"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:591
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:601
 msgid "Log WAN-Forward"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:588
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:598
 msgid "Log WAN-Input"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:585
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:595
 msgid "Log suspicious Prerouting packets."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:594
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:604
 msgid "Log suspicious forwarded LAN packets."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:591
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:601
 msgid "Log suspicious forwarded WAN packets."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:588
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:598
 msgid "Log suspicious incoming WAN packets."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:597
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:607
 msgid "Logfile Location"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:356
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:362
 msgid "Max Open Files"
 msgstr ""
 
@@ -593,15 +598,15 @@ msgstr ""
 msgid "NFT Information"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:570
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:580
 msgid "NFT Log Level"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:277
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:282
 msgid "Network Devices"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:344
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:350
 msgid "Nice Level"
 msgstr ""
 
@@ -610,22 +615,22 @@ msgstr ""
 msgid "No Search results!"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:347
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:353
 msgid "Normal Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:322
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:327
 msgid ""
 "Number of download attempts in case of an error (not supported by uclient-"
 "fetch)."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:614
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:624
 msgid ""
 "Number of failed login attempts of the same IP in the log before blocking."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:307
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:312
 msgid ""
 "Override the pre-configured download options for the selected download "
 "utility."
@@ -635,7 +640,7 @@ msgstr ""
 msgid "Overview"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:601
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:611
 msgid ""
 "Parse only the last stated number of log entries for suspicious events. To "
 "disable the log monitor at all set it to '0'."
@@ -649,25 +654,25 @@ msgstr ""
 msgid "Processing Log"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:665
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:676
 msgid "Profile used by 'msmtp' for banIP notification E-Mails."
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/feeds.js:209
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/feeds.js:222
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:750
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:763
 msgid "Protocol/URL format not supported"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:716
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:730
 msgid "RIPE - serving Europe, Middle East and Central Asia"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:650
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:661
 msgid "Receive E-Mail notifications with every banIP run."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:653
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:664
 msgid ""
 "Receiver address for banIP notification E-Mails, this information is "
 "required to enable E-Mail functionality."
@@ -677,7 +682,7 @@ msgstr ""
 msgid "Refresh"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:711
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:725
 msgid "Regional Internet Registry"
 msgstr ""
 
@@ -685,19 +690,19 @@ msgstr ""
 msgid "Reload"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:312
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:317
 msgid "Reload Trigger Interface"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:628
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:638
 msgid "Remote Token"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:394
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:400
 msgid "Report Directory"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:402
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:408
 msgid "Report Elements"
 msgstr ""
 
@@ -705,7 +710,7 @@ msgstr ""
 msgid "Restart"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:793
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:807
 msgid "Restrict the internet access from/to a small number of secure IPs."
 msgstr ""
 
@@ -730,11 +735,11 @@ msgstr ""
 msgid "Run Information"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:455
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:462
 msgid "SYN-Threshold"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:455
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:462
 msgid ""
 "SYN-Threshold in packets per second to prevent WAN-DoS attacks. To disable "
 "this safeguard set it to '0'."
@@ -752,23 +757,23 @@ msgstr ""
 msgid "Search the banIP-related Sets for a specific IP."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:298
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:303
 msgid "Select one of the pre-configured download utilities."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:277
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:282
 msgid "Select the WAN network device(s)."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:284
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:289
 msgid "Select the logical WAN IPv4 network interface(s)."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:291
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:296
 msgid "Select the logical WAN IPv6 network interface(s)."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:657
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:668
 msgid "Sender address for banIP notification E-Mails."
 msgstr ""
 
@@ -777,7 +782,7 @@ msgstr ""
 msgid "Set"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:490
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:498
 msgid "Set Policy"
 msgstr ""
 
@@ -785,7 +790,7 @@ msgstr ""
 msgid "Set Reporting"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:376
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:382
 msgid "Set Split Size"
 msgstr ""
 
@@ -801,17 +806,17 @@ msgstr ""
 msgid "Set details"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:413
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:420
 msgid ""
 "Set the nft chain priority within the banIP table, lower values means higher "
 "priority."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:490
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:498
 msgid "Set the nft policy for banIP-related Sets."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:570
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:580
 msgid "Set the syslog level for NFT logging."
 msgstr ""
 
@@ -819,7 +824,7 @@ msgstr ""
 msgid "Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:376
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:382
 msgid "Split external Set loading after every n members to save RAM."
 msgstr ""
 
@@ -831,7 +836,7 @@ msgstr ""
 msgid "Stop"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:766
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:780
 msgid "Subnet"
 msgstr ""
 
@@ -847,11 +852,11 @@ msgstr ""
 msgid "Table/Chain Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:394
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:400
 msgid "Target directory for banIP-related report files."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:390
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:396
 msgid "Target directory for compressed feed backups."
 msgstr ""
 
@@ -863,13 +868,13 @@ msgstr ""
 msgid "The blocklist is too big, unable to save modifications."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:619
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:629
 msgid ""
 "The default regular expressions are filtering suspicious ssh, LuCI, nginx "
 "and asterisk traffic."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:344
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:350
 msgid "The selected priority will be used for banIP background processing."
 msgstr ""
 
@@ -899,29 +904,29 @@ msgstr ""
 msgid "Timestamp"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:648
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:658
 msgid ""
 "To enable email notifications, set up the 'msmtp' package and specify a "
 "vaild E-Mail receiver address."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:628
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:638
 msgid "Token to communicate with the cgi interface."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:661
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:672
 msgid "Topic for banIP notification E-Mails."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:317
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:322
 msgid "Trigger Delay"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:469
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:476
 msgid "UDP-Threshold"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:469
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:476
 msgid ""
 "UDP-Threshold in packets per second to prevent WAN-DoS attacks. To disable "
 "this safeguard set it to '0'."
@@ -935,15 +940,15 @@ msgstr ""
 msgid "URLv6"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:702
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:715
 msgid "Unable to parse the countries file!"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:521
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:529
 msgid "Unable to parse the custom feed file!"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:528
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:536
 msgid "Unable to parse the default feed file!"
 msgstr ""
 
@@ -970,7 +975,7 @@ msgstr ""
 msgid "Upload of the custom feed file failed."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:261
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:266
 msgid "Verbose Debug Logging"
 msgstr ""
 
@@ -982,8 +987,8 @@ msgstr ""
 msgid "WAN-Forward (packets)"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:510
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:542
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:518
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:551
 msgid "WAN-Forward Chain"
 msgstr ""
 
@@ -991,8 +996,8 @@ msgstr ""
 msgid "WAN-Input (packets)"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:509
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:532
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:517
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:541
 msgid "WAN-Input Chain"
 msgstr ""
 
@@ -1005,7 +1010,7 @@ msgid ""
 "maintainers version just clear the custom feed file."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:572
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:582
 msgid "alert"
 msgstr ""
 
@@ -1041,58 +1046,58 @@ msgstr ""
 msgid "blocked udp-flood packets"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:573
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:583
 msgid "crit"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:578
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:588
 msgid "debug"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:500
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:508
 msgid "drop"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:571
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:581
 msgid "emerg"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:574
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:584
 msgid "err"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:577
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:587
 msgid "info"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:533
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:543
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:553
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:542
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:552
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:562
 msgid "local allowlist"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:534
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:544
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:554
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:543
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:553
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:563
 msgid "local blocklist"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:491
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:499
 msgid "memory"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:576
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:586
 msgid "notice"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:492
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:500
 msgid "performance"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:501
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:509
 msgid "reject"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:575
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:585
 msgid "warn"
 msgstr ""