Merge pull request #6142 from stangri/master-luci-app-pbr
luci-app-pbr: Detect missing iptables & error-proofing WebUI
This commit is contained in:
commit
35f0d50a49
3 changed files with 64 additions and 41 deletions
|
@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
|
|||
|
||||
PKG_LICENSE:=GPL-3.0-or-later
|
||||
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
|
||||
PKG_VERSION:=1.0.0-1
|
||||
PKG_VERSION:=1.0.0-2
|
||||
|
||||
LUCI_TITLE:=Policy Based Routing Service Web UI
|
||||
LUCI_DESCRIPTION:=Provides Web UI for Policy Based Routing Service.
|
||||
|
|
|
@ -164,7 +164,12 @@ var status = baseclass.extend({
|
|||
var warningsTitle = E('label', { class: 'cbi-value-title' }, _("Service Warnings"));
|
||||
var text = "";
|
||||
(reply.warnings).forEach(element => {
|
||||
text += (textLabelsTable[element.id]).format(element.extra || ' ') + "<br />";
|
||||
if (element.id && textLabelsTable[element.id]) {
|
||||
text += (textLabelsTable[element.id]).format(element.extra || ' ') + "<br />";
|
||||
}
|
||||
else {
|
||||
text += _("Unknown Warning!") + "<br />";
|
||||
}
|
||||
});
|
||||
var warningsText = E('div', {}, text);
|
||||
var warningsField = E('div', { class: 'cbi-value-field' }, warningsText);
|
||||
|
@ -175,7 +180,8 @@ var status = baseclass.extend({
|
|||
if (reply.errors && reply.errors.length) {
|
||||
var textLabelsTable = {
|
||||
errorConfigValidation: _("Config (%s) validation failure!").format('/etc/config/' + pkg.Name),
|
||||
errorNoIpFull: _("ip-full binary cannot be found!"),
|
||||
errorNoIpFull: _("%s binary cannot be found!").formate('ip-full'),
|
||||
errorNoIptables: _("%s binary cannot be found!").formate('iptables'),
|
||||
errorNoIpset: _("Resolver set support (%s) requires ipset, but ipset binary cannot be found!").format(uci.get(pkg.Name, 'config', 'resolver_set')),
|
||||
errorNoNft: _("Resolver set support (%s) requires nftables, but nft binary cannot be found!").format(uci.get(pkg.Name, 'config', 'resolver_set')),
|
||||
errorResolverNotSupported: _("Resolver set (%s) is not supported on this system!").format(uci.get(pkg.Name, 'config', 'resolver_set')),
|
||||
|
@ -187,7 +193,7 @@ var status = baseclass.extend({
|
|||
errorPolicyNoSrcDest: _("Policy '%s' has no source/destination parameters!"),
|
||||
errorPolicyNoInterface: _("Policy '%s' has no assigned interface!"),
|
||||
errorPolicyUnknownInterface: _("Policy '%s' has an unknown interface!"),
|
||||
errorPolicyProcess: _("%s"),
|
||||
errorPolicyProcess: _("Policy processing error (%s)!"),
|
||||
errorFailedSetup: _("Failed to set up '%s'!"),
|
||||
errorFailedReload: _("Failed to reload '%s'!"),
|
||||
errorUserFileNotFound: _("Custom user file '%s' not found or empty!"),
|
||||
|
@ -199,7 +205,12 @@ var status = baseclass.extend({
|
|||
var errorsTitle = E('label', { class: 'cbi-value-title' }, _("Service Errors"));
|
||||
var text = "";
|
||||
(reply.errors).forEach(element => {
|
||||
text += (textLabelsTable[element.id]).format(element.extra || ' ') + "<br />";
|
||||
if (element.id && textLabelsTable[element.id]) {
|
||||
text += (textLabelsTable[element.id]).format(element.extra || ' ') + "<br />";
|
||||
}
|
||||
else {
|
||||
text += _("Unknown Error!") + "<br />";
|
||||
}
|
||||
});
|
||||
var errorsText = E('div', {}, text);
|
||||
var errorsField = E('div', { class: 'cbi-value-field' }, errorsText);
|
||||
|
|
|
@ -2,10 +2,14 @@ msgid ""
|
|||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:162
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:190
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:183
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:184
|
||||
msgid "%s binary cannot be found!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:38
|
||||
msgid ""
|
||||
"%sWARNING:%s Please make sure to check the %sREADME%s before changing "
|
||||
|
@ -62,7 +66,7 @@ msgstr ""
|
|||
msgid "Condensed output"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:177
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:182
|
||||
msgid "Config (%s) validation failure!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -74,7 +78,7 @@ msgstr ""
|
|||
msgid "Custom User File Includes"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:193
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:199
|
||||
msgid "Custom user file '%s' not found or empty!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -90,7 +94,7 @@ msgstr ""
|
|||
msgid "Default ICMP Interface"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:265
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:276
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
|
@ -100,7 +104,7 @@ msgstr ""
|
|||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:261
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:272
|
||||
msgid "Disabling %s service"
|
||||
msgstr ""
|
||||
|
||||
|
@ -122,7 +126,7 @@ msgstr ""
|
|||
msgid "Do not enforce policies when their gateway is down"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:254
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:265
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
|
@ -133,11 +137,11 @@ msgstr ""
|
|||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:250
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:261
|
||||
msgid "Enabling %s service"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:195
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:201
|
||||
msgid "Error running custom user file '%s'!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -147,15 +151,15 @@ msgid ""
|
|||
"QoS. Change with caution together with"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:192
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:198
|
||||
msgid "Failed to reload '%s'!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:191
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:197
|
||||
msgid "Failed to set up '%s'!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:197
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:203
|
||||
msgid "Failed to set up any gateway!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -231,15 +235,15 @@ msgstr ""
|
|||
msgid "Policies"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:189
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:195
|
||||
msgid "Policy '%s' has an unknown interface!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:188
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:194
|
||||
msgid "Policy '%s' has no assigned interface!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:187
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:193
|
||||
msgid "Policy '%s' has no source/destination parameters!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -255,6 +259,10 @@ msgstr ""
|
|||
msgid "Policy Routing"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:196
|
||||
msgid "Policy processing error (%s)!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:185
|
||||
msgid "Protocol"
|
||||
msgstr ""
|
||||
|
@ -267,7 +275,7 @@ msgstr ""
|
|||
msgid "Remote ports"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:181
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:187
|
||||
msgid "Resolver set (%s) is not supported on this system!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -275,21 +283,21 @@ msgstr ""
|
|||
msgid "Resolver set (%s) is not supported on this system."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:179
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:185
|
||||
msgid ""
|
||||
"Resolver set support (%s) requires ipset, but ipset binary cannot be found!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:180
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:186
|
||||
msgid ""
|
||||
"Resolver set support (%s) requires nftables, but nft binary cannot be found!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:232
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:243
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:228
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:239
|
||||
msgid "Restarting %s service"
|
||||
msgstr ""
|
||||
|
||||
|
@ -323,11 +331,11 @@ msgstr ""
|
|||
msgid "Select Add for -A/add and Insert for -I/Insert."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:289
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:300
|
||||
msgid "Service Control"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:199
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:205
|
||||
msgid "Service Errors"
|
||||
msgstr ""
|
||||
|
||||
|
@ -354,11 +362,11 @@ msgid ""
|
|||
"%sREADME%s for details."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:221
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:232
|
||||
msgid "Start"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:217
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:228
|
||||
msgid "Starting %s service"
|
||||
msgstr ""
|
||||
|
||||
|
@ -372,7 +380,7 @@ msgstr ""
|
|||
msgid "Starting (WAN) Table ID number for tables created by the service."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:243
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:254
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
|
@ -384,7 +392,7 @@ msgstr ""
|
|||
msgid "Stopped (version: %s)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:239
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:250
|
||||
msgid "Stopping %s service"
|
||||
msgstr ""
|
||||
|
||||
|
@ -408,7 +416,7 @@ msgstr ""
|
|||
msgid "Suppress/No output"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:194
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:200
|
||||
msgid "Syntax error in custom user file '%s'!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -422,27 +430,35 @@ msgstr ""
|
|||
msgid "The %s is not supported on this system."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:183
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:189
|
||||
msgid "The %s service failed to discover WAN gateway!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:182
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:188
|
||||
msgid "The %s service is currently disabled!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:184
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:190
|
||||
msgid "The ipset name '%s' is longer than allowed 31 characters!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:185
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:191
|
||||
msgid "The nft set name '%s' is longer than allowed 31 characters!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:186
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:192
|
||||
msgid "Unexpected exit or service termination: '%s'!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:196
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:212
|
||||
msgid "Unknown Error!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:171
|
||||
msgid "Unknown Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:202
|
||||
msgid ""
|
||||
"Use of 'curl' is detected in custom user file '%s', but 'curl' isn't "
|
||||
"installed!"
|
||||
|
@ -473,7 +489,3 @@ msgstr ""
|
|||
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:193
|
||||
msgid "all"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:178
|
||||
msgid "ip-full binary cannot be found!"
|
||||
msgstr ""
|
||||
|
|
Loading…
Reference in a new issue