luci-app-banip: various optimizations
authorDirk Brenken <dev@brenken.org>
Thu, 2 May 2024 21:02:33 +0000 (23:02 +0200)
committerDirk Brenken <dev@brenken.org>
Thu, 2 May 2024 21:02:33 +0000 (23:02 +0200)
* add various translation improvements based on the work of "stokito"
* use the new logreadbox component for the firewall log as well
* removed obsolete standard Save/Save & Apply buttons in the footer,
   use only the improved/customized "Reload" and "Restart" buttons
* improved the error handling in the try/catch blocks

Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit c2740d7cd96921aba5dc354400bc2e1ad46b10ca)
Signed-off-by: Dirk Brenken <dev@brenken.org>
applications/luci-app-banip/htdocs/luci-static/resources/view/banip/firewall_log.js
applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js
applications/luci-app-banip/htdocs/luci-static/resources/view/banip/setreport.js
applications/luci-app-banip/po/templates/banip.pot

index d12b8b46cecbac82c43248bd3f31b8892485bbbf..db4ce15fe3bc78d912f45327bc7e2a9cc8e3dd05 100644 (file)
@@ -1,41 +1,4 @@
 'use strict';
-'require view';
-'require poll';
-'require fs';
+'require tools.views as views';
 
-return view.extend({
-       load: function () {
-               return Promise.all([
-                       L.resolveDefault(fs.stat('/sbin/logread'), null),
-                       L.resolveDefault(fs.stat('/usr/sbin/logread'), null)
-               ]);
-       },
-       render: function (stat) {
-               var logger = stat[0] ? stat[0].path : stat[1] ? stat[1].path : null;
-               poll.add(function () {
-                       return L.resolveDefault(fs.exec_direct(logger, ['-e', ' banIP/'])).then(function (res) {
-                               var log = document.getElementById("logfile");
-                               if (res) {
-                                       log.value = res.trim();
-                               } else {
-                                       log.value = _('No banIP related firewall logs yet!');
-                               }
-                               log.scrollTop = log.scrollHeight;
-                       });
-               });
-               return E('div', { class: 'cbi-map' },
-                       E('div', { class: 'cbi-section' }, [
-                               E('div', { class: 'cbi-section-descr' }, _('The syslog output, prefiltered for banIP-related firewall log entries only.')),
-                               E('textarea', {
-                                       'id': 'logfile',
-                                       'style': 'width: 100% !important; padding: 5px; font-family: monospace',
-                                       'readonly': 'readonly',
-                                       'wrap': 'off',
-                                       'rows': 25
-                               })
-                       ]));
-       },
-       handleSaveApply: null,
-       handleSave: null,
-       handleReset: null
-});
+return views.LogreadBox(" banIP/", "banIP firewall logs");
index 8455fcb1961b30fafbb2f47cac1a1d39ac623fb3..87a7b70a198a9b300367ae10e0be40b062d05d81 100644 (file)
@@ -12,7 +12,7 @@
        button handling
 */
 function handleAction(ev) {
-       if (ev === 'restart') {
+       if (ev === 'restart' || ev === 'reload') {
                let map = document.querySelector('.cbi-map');
                return dom.callClassMethod(map, 'save')
                .then(L.bind(ui.changes.apply, ui.changes))
@@ -232,7 +232,7 @@ return view.extend({
                                                'click': ui.createHandlerFn(this, function () {
                                                        return handleAction('restart');
                                                })
-                                       }, [_('Apply & Restart')])
+                                       }, [_('Restart')])
                                ])
                        ]);
                }, o, this);
@@ -319,12 +319,14 @@ return view.extend({
                o.rmempty = true;
 
                o = s.taboption('general', form.ListValue, 'ban_fetchretry', _('Download Retries'), _('Number of download attempts in case of an error (not supported by uclient-fetch).'));
-               o.value('1', '1');
-               o.value('3', '3');
-               o.value('5', '5');
-               o.value('10', '10');
-               o.value('20', '20');
+               o.value('1');
+               o.value('3');
+               o.value('5');
+               o.value('10');
+               o.value('20');
                o.default = '5';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
@@ -345,15 +347,19 @@ return view.extend({
                o.value('10', _('Less Priority'));
                o.value('19', _('Least Priority'));
                o.default = '0';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
                o = s.taboption('advanced', form.ListValue, 'ban_filelimit', _('Max Open Files'), _('Increase the maximal number of open files, e.g. to handle the amount of temporary split files while loading the Sets.'));
-               o.value('512', '512');
-               o.value('1024', '1024');
-               o.value('2048', '2048');
-               o.value('4096', '4096');
+               o.value('512');
+               o.value('1024');
+               o.value('2048');
+               o.value('4096');
                o.default = '1024';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
@@ -404,11 +410,13 @@ return view.extend({
                o.default = '<em style="color:#37c;font-weight:bold;">' + _('Changes on this tab needs a banIP service restart to take effect.') + '</em>';
 
                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('0', '0');
-               o.value('-100', '-100');
-               o.value('-150', '-150');
-               o.value('-200', '-200');
-               o.default = '100';
+               o.value('0');
+               o.value('-100');
+               o.value('-150');
+               o.value('-200');
+               o.default = '-100';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
@@ -429,35 +437,41 @@ return view.extend({
                o.rmempty = true;
 
                o = s.taboption('adv_chain', form.ListValue, 'ban_icmplimit', _('ICMP-Threshold'), _('ICMP-Threshold in packets per second to prevent WAN-DDoS attacks.'));
-               o.value('1', '1');
-               o.value('10', '10');
-               o.value('50', '50');
-               o.value('100', '100');
-               o.value('250', '250');
-               o.value('500', '500');
+               o.value('1');
+               o.value('10');
+               o.value('50');
+               o.value('100');
+               o.value('250');
+               o.value('500');
                o.default = '10';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
                o = s.taboption('adv_chain', form.ListValue, 'ban_synlimit', _('SYN-Threshold'), _('SYN-Threshold in packets per second to prevent WAN-DDoS attacks.'));
-               o.value('1', '1');
-               o.value('10', '10');
-               o.value('50', '50');
-               o.value('100', '100');
-               o.value('250', '250');
-               o.value('500', '500');
+               o.value('1');
+               o.value('10');
+               o.value('50');
+               o.value('100');
+               o.value('250');
+               o.value('500');
                o.default = '10';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
                o = s.taboption('adv_chain', form.ListValue, 'ban_udplimit', _('UDP-Threshold'), _('UDP-Threshold in packets per second to prevent WAN-DDoS attacks.'));
-               o.value('1', '1');
-               o.value('10', '10');
-               o.value('50', '50');
-               o.value('100', '100');
-               o.value('250', '250');
-               o.value('500', '500');
+               o.value('1');
+               o.value('10');
+               o.value('50');
+               o.value('100');
+               o.value('250');
+               o.value('500');
                o.default = '100';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
@@ -472,6 +486,8 @@ return view.extend({
                o.value('memory', _('memory'));
                o.value('performance', _('performance'));
                o.default = 'memory';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
@@ -479,6 +495,8 @@ return view.extend({
                o.value('drop', _('drop'));
                o.value('reject', _('reject'));
                o.default = 'drop';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
@@ -495,14 +513,14 @@ return view.extend({
                                feeds = JSON.parse(result[0]);
                        } catch (e) {
                                feeds = "";
-                               ui.addNotification(null, E('p', _('Unable to parse the custom feed file: %s').format(e.message)), 'error');
+                               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: %s').format(e.message)), 'error');
+                               ui.addNotification(null, E('p', _('Unable to parse the default feed file!')), 'error');
                        }
                }
                if (feeds) {
@@ -554,6 +572,8 @@ return view.extend({
                o.value('info', _('info'));
                o.value('debug', _('debug'));
                o.default = 'warn';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
@@ -574,13 +594,15 @@ return view.extend({
                o.rmempty = true;
 
                o = s.taboption('adv_log', form.ListValue, 'ban_loglimit', _('Log Limit'), _('Parse only the last stated number of log entries for suspicious events. To disable the log monitor at all set it to \'0\'.'));
-               o.value('0', _('Disable'));
-               o.value('50', '50');
-               o.value('100', '100');
-               o.value('250', '250');
-               o.value('500', '500');
-               o.value('1000', '1000');
+               o.value('0');
+               o.value('50');
+               o.value('100');
+               o.value('250');
+               o.value('500');
+               o.value('1000');
                o.default = '100';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
@@ -658,7 +680,7 @@ return view.extend({
                        o.rmempty = true;
                }
 
-               let ccode, rir, country, countries = [];
+               let err, ccode, rir, country, countries = [];
                if (result[2]) {
                        countries = result[2].trim().split('\n');
 
@@ -671,7 +693,10 @@ return view.extend({
                                        o.value(ccode, country + ' (' + rir + ')');
                                } catch (e) {
                                        countries[i] = "";
-                                       ui.addNotification(null, E('p', _('Unable to parse the countries file: %s').format(e.message)), 'error');
+                                       if (!err) {
+                                               ui.addNotification(null, E('p', _('Unable to parse the countries file!')), 'error');
+                                       }
+                                       err = e;
                                }
                        }
                        o.optional = true;
@@ -736,6 +761,8 @@ return view.extend({
                o.value('subnet', _('Subnet'));
                o.value('ip', _('IP'));
                o.default = 'subnet';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
@@ -763,5 +790,7 @@ return view.extend({
 
                return m.render();
        },
+       handleSaveApply: null,
+       handleSave: null,
        handleReset: null
 });
index f313a5efd6d7cf0eb85de8377dcfa607a0025ace..b938cbc46e3565749ecd8b84e2b154e087bde618 100644 (file)
@@ -70,7 +70,7 @@ function handleAction(report, ev) {
                                content = JSON.parse(report[1]);
                        } catch (e) {
                                content = "";
-                               ui.addNotification(null, E('p', _('Unable to parse the ruleset file: %s').format(e.message)), 'error');
+                               ui.addNotification(null, E('p', _('Unable to parse the ruleset file!')), 'error');
                        }
                } else {
                        content = "";
@@ -149,7 +149,7 @@ return view.extend({
                                content = JSON.parse(report[0]);
                        } catch (e) {
                                content = "";
-                               ui.addNotification(null, E('p', _('Unable to parse the report file: %s').format(e.message)), 'error');
+                               ui.addNotification(null, E('p', _('Unable to parse the report file!')), 'error');
                        }
                } else {
                        content = "";
index 283df6a7f6a52eac647acc47d289a939dc5eae3b..3d7be193d68cd4dc298043af3049126d3f8afa40 100644 (file)
@@ -5,119 +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:405
-msgid "-100 (default)"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:406
-msgid "-150"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:407
-msgid "-200"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:404
-msgid "0"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:567
-msgid "0 (disable)"
-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:428
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:438
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:448
-msgid "1"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:325
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:449
-msgid "10"
-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:439
-msgid "10 (default)"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:431
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:441
-msgid "100"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:451
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:569
-msgid "100 (default)"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:572
-msgid "1000"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:351
-msgid "1024 (default)"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:326
-msgid "20"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:352
-msgid "2048"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:432
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:442
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:452
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:570
-msgid "250"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:323
-msgid "3"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:353
-msgid "4096"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:324
-msgid "5 (default)"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:430
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:440
-#: 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:568
-msgid "50"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:433
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:443
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:453
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:571
-msgid "500"
-msgstr ""
-
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:328
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:350
-msgid "512"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:361
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:418
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:447
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:460
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:473
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:489
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:498
+#: 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:604
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:764
+msgid "-- default --"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:671
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:707
 msgid "AFRINIC - serving Africa and the Indian Ocean region"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:672
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:708
 msgid "APNIC - serving the Asia Pacific region"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:673
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:709
 msgid "ARIN - serving Canada and the United States"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:679
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:715
 msgid "ASNs"
 msgstr ""
 
@@ -141,19 +56,19 @@ msgstr ""
 msgid "Advanced Settings"
 msgstr ""
 
-#: 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:423
 msgid "Allow Protocol/Ports"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:415
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:427
 msgid "Allow VLAN Forwards"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:688
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:724
 msgid "Allowlist Feed URLs"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:749
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:788
 msgid "Allowlist Only"
 msgstr ""
 
@@ -163,37 +78,33 @@ msgid ""
 "banIP that changes take effect."
 msgstr ""
 
-#: 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:423
 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:415
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:427
 msgid "Always allow certain VLAN forwards."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:421
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:433
 msgid "Always block certain VLAN forwards."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:235
-msgid "Apply & Restart"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:722
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:758
 msgid "Auto Allow Uplink"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:718
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:754
 msgid "Auto Allowlist"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:734
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:773
 msgid "Auto Block Subnet"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:730
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:769
 msgid "Auto Blocklist"
 msgstr ""
 
@@ -201,49 +112,49 @@ msgstr ""
 msgid "Auto Detection"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:734
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:773
 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:730
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:769
 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:718
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:754
 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:380
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:389
 msgid "Backup Directory"
 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:385
 msgid "Base Directory"
 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:385
 msgid "Base working directory while banIP processing."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:470
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:494
 msgid "Block Type"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:421
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:433
 msgid "Block VLAN Forwards"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:640
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:673
 msgid "Blocklist Feed"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:739
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:778
 msgid "Blocklist Set Expiry"
 msgstr ""
 
@@ -253,13 +164,13 @@ msgid ""
 "banIP that changes take effect."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:476
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:503
 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:357
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:366
 msgid "CPU Cores"
 msgstr ""
 
@@ -268,14 +179,14 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:403
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:412
 msgid "Chain Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:338
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:401
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:462
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:536
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:341
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:410
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:483
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:563
 msgid "Changes on this tab needs a banIP service restart to take effect."
 msgstr ""
 
@@ -292,25 +203,25 @@ msgid ""
 "rel=\"noreferrer noopener\" >online documentation</a>"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:654
-msgid "Countries (RIR)"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:687
+msgid "Countries"
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/feeds.js:174
 msgid "Custom Feed Editor"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:388
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:397
 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:388
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:397
 msgid "Deduplicate IPs"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:476
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:503
 msgid "Default Block Policy"
 msgstr ""
 
@@ -324,7 +235,7 @@ msgid ""
 "utilities automatically."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:724
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:760
 msgid "Disable"
 msgstr ""
 
@@ -332,7 +243,7 @@ msgstr ""
 msgid "Domain Lookup"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:330
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:333
 msgid "Don't check SSL server certificates during download."
 msgstr ""
 
@@ -340,7 +251,7 @@ msgstr ""
 msgid "Download Custom Feeds"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:330
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:333
 msgid "Download Insecure"
 msgstr ""
 
@@ -356,25 +267,25 @@ msgstr ""
 msgid "Download Utility"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:470
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:494
 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:612
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:645
 msgid "E-Mail Notification"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:627
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:660
 msgid "E-Mail Profile"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:615
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:648
 msgid "E-Mail Receiver Address"
 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:652
 msgid "E-Mail Sender Address"
 msgstr ""
 
@@ -382,7 +293,7 @@ msgstr ""
 msgid "E-Mail Settings"
 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:656
 msgid "E-Mail Topic"
 msgstr ""
 
@@ -408,11 +319,11 @@ 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:595
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:628
 msgid "Empty field not allowed"
 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:618
 msgid "Enable Remote Logging"
 msgstr ""
 
@@ -420,7 +331,7 @@ msgstr ""
 msgid "Enable the banIP service."
 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:618
 msgid "Enable the cgi interface to receive remote logging events."
 msgstr ""
 
@@ -440,15 +351,15 @@ msgstr ""
 msgid "Enables IPv6 support."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:739
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:778
 msgid "Expiry time for auto added blocklist Set members."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:686
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:722
 msgid "External Allowlist Feeds"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:637
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:670
 msgid "External Blocklist Feeds"
 msgstr ""
 
@@ -488,23 +399,23 @@ msgstr ""
 msgid "Grant access to LuCI app banIP"
 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:345
 msgid "High Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:341
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:344
 msgid "Highest Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:427
-msgid "ICMP-Treshold"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:439
+msgid "ICMP-Threshold"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:427
-msgid "ICMP-Treshold in packets per second to prevent WAN-DDoS attacks."
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:439
+msgid "ICMP-Threshold in packets per second to prevent WAN-DDoS attacks."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:726
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:762
 msgid "IP"
 msgstr ""
 
@@ -532,7 +443,7 @@ msgstr ""
 msgid "IPv6 Support"
 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 ""
 "Increase the maximal number of open files, e.g. to handle the amount of "
 "temporary split files while loading the Sets."
@@ -543,7 +454,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:598
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:631
 msgid "Invalid characters"
 msgstr ""
 
@@ -551,7 +462,7 @@ msgstr ""
 msgid "Invalid input values, unable to save modifications."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:674
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:710
 msgid "LACNIC - serving the Latin American and Caribbean region"
 msgstr ""
 
@@ -559,8 +470,8 @@ msgstr ""
 msgid "LAN-Forward (packets)"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:479
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:520
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:506
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:547
 msgid "LAN-Forward Chain"
 msgstr ""
 
@@ -568,35 +479,35 @@ msgstr ""
 msgid "Last Run"
 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:348
 msgid "Least Priority"
 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:347
 msgid "Less Priority"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:520
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:547
 msgid "Limit certain feeds to the LAN-Forward chain."
 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:537
 msgid "Limit certain feeds to the WAN-Forward chain."
 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:527
 msgid "Limit certain feeds to the WAN-Input chain."
 msgstr ""
 
-#: 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:366
 msgid "Limit the cpu cores used by banIP to save RAM."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:722
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:758
 msgid "Limit the uplink autoallow function."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:392
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:401
 msgid ""
 "List Set elements in the status and report, disable this to reduce the CPU "
 "load."
@@ -610,29 +521,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:716
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:752
 msgid "Local Feed Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:562
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:592
 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:576
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:609
 msgid "Log Count"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:559
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:589
 msgid "Log LAN-Forward"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:566
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:596
 msgid "Log Limit"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:550
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:580
 msgid "Log Prerouting"
 msgstr ""
 
@@ -640,39 +551,39 @@ msgstr ""
 msgid "Log Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:581
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:614
 msgid "Log Terms"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:556
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:586
 msgid "Log WAN-Forward"
 msgstr ""
 
-#: 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:583
 msgid "Log WAN-Input"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:550
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:580
 msgid "Log suspicious Prerouting packets."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:559
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:589
 msgid "Log suspicious forwarded LAN packets."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:556
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:586
 msgid "Log suspicious forwarded WAN packets."
 msgstr ""
 
-#: 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:583
 msgid "Log suspicious incoming WAN packets."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:562
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:592
 msgid "Logfile Location"
 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 "Max Open Files"
 msgstr ""
 
@@ -680,7 +591,7 @@ msgstr ""
 msgid "NFT Information"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:538
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:565
 msgid "NFT Log Level"
 msgstr ""
 
@@ -688,7 +599,7 @@ msgstr ""
 msgid "Network Devices"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:340
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:343
 msgid "Nice Level"
 msgstr ""
 
@@ -697,12 +608,8 @@ msgstr ""
 msgid "No Search results!"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/firewall_log.js:21
-msgid "No banIP related firewall logs yet!"
-msgstr ""
-
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:343
-msgid "Normal Priority (default)"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:346
+msgid "Normal Priority"
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:321
@@ -711,7 +618,7 @@ msgid ""
 "fetch)."
 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:609
 msgid ""
 "Number of failed login attempts of the same IP in the log before blocking."
 msgstr ""
@@ -726,7 +633,7 @@ msgstr ""
 msgid "Overview"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:566
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:596
 msgid ""
 "Parse only the last stated number of log entries for suspicious events. To "
 "disable the log monitor at all set it to '0'."
@@ -740,25 +647,25 @@ msgstr ""
 msgid "Processing Log"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:627
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:660
 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:709
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:745
 msgid "Protocol/URL format not supported"
 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:711
 msgid "RIPE - serving Europe, Middle East and Central Asia"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:612
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:645
 msgid "Receive E-Mail notifications with every banIP run."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:615
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:648
 msgid ""
 "Receiver address for banIP notification E-Mails, this information is "
 "required to enable E-Mail functionality."
@@ -768,7 +675,7 @@ msgstr ""
 msgid "Refresh"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:670
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:706
 msgid "Regional Internet Registry"
 msgstr ""
 
@@ -780,19 +687,23 @@ msgstr ""
 msgid "Reload Trigger Interface"
 msgstr ""
 
-#: 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:623
 msgid "Remote Token"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:384
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:393
 msgid "Report Directory"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:392
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:401
 msgid "Report Elements"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:749
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:235
+msgid "Restart"
+msgstr ""
+
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:788
 msgid "Restrict the internet access from/to a small number of secure IPs."
 msgstr ""
 
@@ -817,12 +728,12 @@ msgstr ""
 msgid "Run Information"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:437
-msgid "SYN-Treshold"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:452
+msgid "SYN-Threshold"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:437
-msgid "SYN-Treshold in packets per second to prevent WAN-DDoS attacks."
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:452
+msgid "SYN-Threshold in packets per second to prevent WAN-DDoS attacks."
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/feeds.js:296
@@ -853,7 +764,7 @@ msgstr ""
 msgid "Select the logical WAN IPv6 network interface(s)."
 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:652
 msgid "Sender address for banIP notification E-Mails."
 msgstr ""
 
@@ -862,7 +773,7 @@ msgstr ""
 msgid "Set"
 msgstr ""
 
-#: 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:485
 msgid "Set Policy"
 msgstr ""
 
@@ -870,7 +781,7 @@ msgstr ""
 msgid "Set Reporting"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:366
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:375
 msgid "Set Split Size"
 msgstr ""
 
@@ -886,17 +797,17 @@ msgstr ""
 msgid "Set details"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:403
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:412
 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:464
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:485
 msgid "Set the nft policy for banIP-related Sets."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:538
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:565
 msgid "Set the syslog level for NFT logging."
 msgstr ""
 
@@ -904,7 +815,7 @@ msgstr ""
 msgid "Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:366
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:375
 msgid "Split external Set loading after every n members to save RAM."
 msgstr ""
 
@@ -916,8 +827,8 @@ msgstr ""
 msgid "Stop"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:725
-msgid "Subnet (default)"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:761
+msgid "Subnet"
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/setreport.js:129
@@ -932,11 +843,11 @@ msgstr ""
 msgid "Table/Chain Settings"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:384
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:393
 msgid "Target directory for banIP-related report files."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:380
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:389
 msgid "Target directory for compressed feed backups."
 msgstr ""
 
@@ -948,21 +859,16 @@ msgstr ""
 msgid "The blocklist is too big, unable to save modifications."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:581
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:614
 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:340
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:343
 msgid "The selected priority will be used for banIP background processing."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/firewall_log.js:28
-msgid ""
-"The syslog output, prefiltered for banIP-related firewall log entries only."
-msgstr ""
-
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/allowlist.js:32
 msgid ""
 "This is the local banIP allowlist that will permit certain MAC-, IP-"
@@ -989,17 +895,17 @@ msgstr ""
 msgid "Timestamp"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:610
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:643
 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:590
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:623
 msgid "Token to communicate with the cgi interface."
 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:656
 msgid "Topic for banIP notification E-Mails."
 msgstr ""
 
@@ -1007,12 +913,12 @@ msgstr ""
 msgid "Trigger Delay"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:447
-msgid "UDP-Treshold"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:465
+msgid "UDP-Threshold"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:447
-msgid "UDP-Treshold in packets per second to prevent WAN-DDoS attacks."
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:465
+msgid "UDP-Threshold in packets per second to prevent WAN-DDoS attacks."
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/feeds.js:203
@@ -1023,24 +929,24 @@ msgstr ""
 msgid "URLv6"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:663
-msgid "Unable to parse the countries file: %s"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:697
+msgid "Unable to parse the countries file!"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:489
-msgid "Unable to parse the custom feed file: %s"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:516
+msgid "Unable to parse the custom feed file!"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:496
-msgid "Unable to parse the default feed file: %s"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:523
+msgid "Unable to parse the default feed file!"
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/setreport.js:152
-msgid "Unable to parse the report file: %s"
+msgid "Unable to parse the report file!"
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/setreport.js:73
-msgid "Unable to parse the ruleset file: %s"
+msgid "Unable to parse the ruleset file!"
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/allowlist.js:22
@@ -1070,8 +976,8 @@ msgstr ""
 msgid "WAN-Forward (packets)"
 msgstr ""
 
-#: 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:510
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:505
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:537
 msgid "WAN-Forward Chain"
 msgstr ""
 
@@ -1079,8 +985,8 @@ msgstr ""
 msgid "WAN-Input (packets)"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:477
-#: 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:504
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:527
 msgid "WAN-Input Chain"
 msgstr ""
 
@@ -1094,7 +1000,7 @@ msgid ""
 "it!)."
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:540
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:567
 msgid "alert"
 msgstr ""
 
@@ -1130,58 +1036,58 @@ msgstr ""
 msgid "blocked udp-flood packets"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:541
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:568
 msgid "crit"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:546
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:573
 msgid "debug"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:471
-msgid "drop (default)"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:495
+msgid "drop"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:539
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:566
 msgid "emerg"
 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:569
 msgid "err"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:545
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:572
 msgid "info"
 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:511
-#: 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:528
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:538
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:548
 msgid "local allowlist"
 msgstr ""
 
-#: 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:512
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:522
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:529
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:539
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:549
 msgid "local blocklist"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:465
-msgid "memory (default)"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:486
+msgid "memory"
 msgstr ""
 
-#: 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:571
 msgid "notice"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:466
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:487
 msgid "performance"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:472
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:496
 msgid "reject"
 msgstr ""
 
-#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:543
-msgid "warn (default)"
+#: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:570
+msgid "warn"
 msgstr ""