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';
 '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) {
        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))
                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');
                                                })
                                                'click': ui.createHandlerFn(this, function () {
                                                        return handleAction('restart');
                                                })
-                                       }, [_('Apply & Restart')])
+                                       }, [_('Restart')])
                                ])
                        ]);
                }, o, this);
                                ])
                        ]);
                }, 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.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.default = '5';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = 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.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.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.default = '1024';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = 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.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;
 
                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.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.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.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.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.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.default = '100';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = 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.value('memory', _('memory'));
                o.value('performance', _('performance'));
                o.default = 'memory';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = 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.value('drop', _('drop'));
                o.value('reject', _('reject'));
                o.default = 'drop';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
                o.optional = true;
                o.rmempty = true;
 
@@ -495,14 +513,14 @@ return view.extend({
                                feeds = JSON.parse(result[0]);
                        } catch (e) {
                                feeds = "";
                                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 = "";
                        }
                } 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) {
                        }
                }
                if (feeds) {
@@ -554,6 +572,8 @@ return view.extend({
                o.value('info', _('info'));
                o.value('debug', _('debug'));
                o.default = 'warn';
                o.value('info', _('info'));
                o.value('debug', _('debug'));
                o.default = 'warn';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = 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.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.default = '100';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
                o.optional = true;
                o.rmempty = true;
 
@@ -658,7 +680,7 @@ return view.extend({
                        o.rmempty = true;
                }
 
                        o.rmempty = true;
                }
 
-               let ccode, rir, country, countries = [];
+               let err, ccode, rir, country, countries = [];
                if (result[2]) {
                        countries = result[2].trim().split('\n');
 
                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] = "";
                                        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;
                                }
                        }
                        o.optional = true;
@@ -736,6 +761,8 @@ return view.extend({
                o.value('subnet', _('Subnet'));
                o.value('ip', _('IP'));
                o.default = 'subnet';
                o.value('subnet', _('Subnet'));
                o.value('ip', _('IP'));
                o.default = 'subnet';
+               o.placeholder = _('-- default --');
+               o.create = true;
                o.optional = true;
                o.rmempty = true;
 
                o.optional = true;
                o.rmempty = true;
 
@@ -763,5 +790,7 @@ return view.extend({
 
                return m.render();
        },
 
                return m.render();
        },
+       handleSaveApply: null,
+       handleSave: null,
        handleReset: null
 });
        handleReset: null
 });
index f313a5efd6d7cf0eb85de8377dcfa607a0025ace..b938cbc46e3565749ecd8b84e2b154e087bde618 100644 (file)
@@ -70,7 +70,7 @@ function handleAction(report, ev) {
                                content = JSON.parse(report[1]);
                        } catch (e) {
                                content = "";
                                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 = "";
                        }
                } else {
                        content = "";
@@ -149,7 +149,7 @@ return view.extend({
                                content = JSON.parse(report[0]);
                        } catch (e) {
                                content = "";
                                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 = "";
                        }
                } else {
                        content = "";
index 283df6a7f6a52eac647acc47d289a939dc5eae3b..3d7be193d68cd4dc298043af3049126d3f8afa40 100644 (file)
@@ -5,119 +5,34 @@ msgstr "Content-Type: text/plain; charset=UTF-8"
 msgid "-- Set Selection --"
 msgstr ""
 
 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
 #: 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "ASNs"
 msgstr ""
 
@@ -141,19 +56,19 @@ msgstr ""
 msgid "Advanced Settings"
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "Allowlist Only"
 msgstr ""
 
@@ -163,37 +78,33 @@ msgid ""
 "banIP that changes take effect."
 msgstr ""
 
 "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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "Auto Blocklist"
 msgstr ""
 
@@ -201,49 +112,49 @@ msgstr ""
 msgid "Auto Detection"
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "Blocklist Set Expiry"
 msgstr ""
 
@@ -253,13 +164,13 @@ msgid ""
 "banIP that changes take effect."
 msgstr ""
 
 "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 ""
 
 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 ""
 
 msgid "CPU Cores"
 msgstr ""
 
@@ -268,14 +179,14 @@ msgstr ""
 msgid "Cancel"
 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 ""
 
 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 ""
 
 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 ""
 
 "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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "Default Block Policy"
 msgstr ""
 
@@ -324,7 +235,7 @@ msgid ""
 "utilities automatically."
 msgstr ""
 
 "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 ""
 
 msgid "Disable"
 msgstr ""
 
@@ -332,7 +243,7 @@ msgstr ""
 msgid "Domain Lookup"
 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 ""
 
 msgid "Don't check SSL server certificates during download."
 msgstr ""
 
@@ -340,7 +251,7 @@ msgstr ""
 msgid "Download Custom Feeds"
 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 ""
 
 msgid "Download Insecure"
 msgstr ""
 
@@ -356,25 +267,25 @@ msgstr ""
 msgid "Download Utility"
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "E-Mail Sender Address"
 msgstr ""
 
@@ -382,7 +293,7 @@ msgstr ""
 msgid "E-Mail Settings"
 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 ""
 
 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/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 ""
 
 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 ""
 
 msgid "Enable Remote Logging"
 msgstr ""
 
@@ -420,7 +331,7 @@ msgstr ""
 msgid "Enable the banIP service."
 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 ""
 
 msgid "Enable the cgi interface to receive remote logging events."
 msgstr ""
 
@@ -440,15 +351,15 @@ msgstr ""
 msgid "Enables IPv6 support."
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "External Blocklist Feeds"
 msgstr ""
 
@@ -488,23 +399,23 @@ msgstr ""
 msgid "Grant access to LuCI app banIP"
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "IP"
 msgstr ""
 
@@ -532,7 +443,7 @@ msgstr ""
 msgid "IPv6 Support"
 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."
 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
 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 ""
 
 msgid "Invalid characters"
 msgstr ""
 
@@ -551,7 +462,7 @@ msgstr ""
 msgid "Invalid input values, unable to save modifications."
 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 ""
 
 msgid "LACNIC - serving the Latin American and Caribbean region"
 msgstr ""
 
@@ -559,8 +470,8 @@ msgstr ""
 msgid "LAN-Forward (packets)"
 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 ""
 
 msgid "LAN-Forward Chain"
 msgstr ""
 
@@ -568,35 +479,35 @@ msgstr ""
 msgid "Last Run"
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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."
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "Log Prerouting"
 msgstr ""
 
@@ -640,39 +551,39 @@ msgstr ""
 msgid "Log Settings"
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "Max Open Files"
 msgstr ""
 
@@ -680,7 +591,7 @@ msgstr ""
 msgid "NFT Information"
 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 ""
 
 msgid "NFT Log Level"
 msgstr ""
 
@@ -688,7 +599,7 @@ msgstr ""
 msgid "Network Devices"
 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 ""
 
 msgid "Nice Level"
 msgstr ""
 
@@ -697,12 +608,8 @@ msgstr ""
 msgid "No Search results!"
 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
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js:321
@@ -711,7 +618,7 @@ msgid ""
 "fetch)."
 msgstr ""
 
 "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 ""
 msgid ""
 "Number of failed login attempts of the same IP in the log before blocking."
 msgstr ""
@@ -726,7 +633,7 @@ msgstr ""
 msgid "Overview"
 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'."
 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 ""
 
 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
 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 ""
 
 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 ""
 
 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 ""
 
 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."
 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 ""
 
 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 ""
 
 msgid "Regional Internet Registry"
 msgstr ""
 
@@ -780,19 +687,23 @@ msgstr ""
 msgid "Reload Trigger Interface"
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "Restrict the internet access from/to a small number of secure IPs."
 msgstr ""
 
@@ -817,12 +728,12 @@ msgstr ""
 msgid "Run Information"
 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 ""
 
 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
 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 ""
 
 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 ""
 
 msgid "Sender address for banIP notification E-Mails."
 msgstr ""
 
@@ -862,7 +773,7 @@ msgstr ""
 msgid "Set"
 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 ""
 
 msgid "Set Policy"
 msgstr ""
 
@@ -870,7 +781,7 @@ msgstr ""
 msgid "Set Reporting"
 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 ""
 
 msgid "Set Split Size"
 msgstr ""
 
@@ -886,17 +797,17 @@ msgstr ""
 msgid "Set details"
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "Set the syslog level for NFT logging."
 msgstr ""
 
@@ -904,7 +815,7 @@ msgstr ""
 msgid "Settings"
 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 ""
 
 msgid "Split external Set loading after every n members to save RAM."
 msgstr ""
 
@@ -916,8 +827,8 @@ msgstr ""
 msgid "Stop"
 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
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/setreport.js:129
@@ -932,11 +843,11 @@ msgstr ""
 msgid "Table/Chain Settings"
 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 ""
 
 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 ""
 
 msgid "Target directory for compressed feed backups."
 msgstr ""
 
@@ -948,21 +859,16 @@ msgstr ""
 msgid "The blocklist is too big, unable to save modifications."
 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 ""
 
 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 ""
 
 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-"
 #: 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 msgid "Topic for banIP notification E-Mails."
 msgstr ""
 
@@ -1007,12 +913,12 @@ msgstr ""
 msgid "Trigger Delay"
 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 ""
 
 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
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/feeds.js:203
@@ -1023,24 +929,24 @@ msgstr ""
 msgid "URLv6"
 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 ""
 
 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 ""
 
 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
 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
 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
 msgstr ""
 
 #: applications/luci-app-banip/htdocs/luci-static/resources/view/banip/allowlist.js:22
@@ -1070,8 +976,8 @@ msgstr ""
 msgid "WAN-Forward (packets)"
 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 ""
 
 msgid "WAN-Forward Chain"
 msgstr ""
 
@@ -1079,8 +985,8 @@ msgstr ""
 msgid "WAN-Input (packets)"
 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 ""
 
 msgid "WAN-Input Chain"
 msgstr ""
 
@@ -1094,7 +1000,7 @@ msgid ""
 "it!)."
 msgstr ""
 
 "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 ""
 
 msgid "alert"
 msgstr ""
 
@@ -1130,58 +1036,58 @@ msgstr ""
 msgid "blocked udp-flood packets"
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 
 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 ""
 msgstr ""