msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2021-02-06 08:29+0000\n"
+"PO-Revision-Date: 2021-06-11 06:32+0000\n"
"Last-Translator: Satoru Yoshida <ramat@ram.ne.jp>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsacl/ja/>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.5-dev\n"
+"X-Generator: Weblate 4.7-dev\n"
#: applications/luci-app-acl/root/usr/share/luci/menu.d/luci-app-acl.json:3
msgid "ACL Settings"
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
msgid "The system account to use the password from"
-msgstr ""
+msgstr "パスワードを使用するシステムアカウント"
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
msgid "UNIX account"
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:282
msgid "Unable to encrypt plaintext password: %s"
-msgstr ""
+msgstr "平文パスワードを暗号化できません: %s"
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:217
msgid "Use UNIX password in /etc/shadow"
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:219
msgid "Use plain password"
-msgstr ""
+msgstr "平文パスワードを使用"
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:300
msgid "Write access"
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:294
msgid "does not expire"
-msgstr ""
+msgstr "有効期限なし"
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:63
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:95
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:307
msgctxt "Select individual permissions manually"
msgid "individual"
-msgstr ""
+msgstr "個別"
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:65
msgctxt "Some permissions granted"
msgid ""
msgstr ""
-"PO-Revision-Date: 2020-12-10 19:29+0000\n"
-"Last-Translator: Ryota <21ryotagamer@gmail.com>\n"
+"PO-Revision-Date: 2021-06-11 06:32+0000\n"
+"Last-Translator: Satoru Yoshida <ramat@ram.ne.jp>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsacme/ja/>\n"
"Language: ja\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.4-dev\n"
+"X-Generator: Weblate 4.7-dev\n"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:17
msgid "ACME certificates"
#: applications/luci-app-acme/root/usr/share/luci/menu.d/luci-app-acme.json:3
msgid "ACME certs"
-msgstr ""
+msgstr "ACME証明書"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:26
msgid "ACME global config"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:139
msgid "ACME server URL"
-msgstr ""
+msgstr "ACMEサーバーのURL"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:34
msgid "Account email"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:145
msgid "Days until renewal"
-msgstr ""
+msgstr "更新までの日数"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:128
msgid "Domain Alias"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:95
msgid "Standalone"
-msgstr ""
+msgstr "スタンドアロン"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:92
msgid ""
msgid ""
msgstr ""
-"PO-Revision-Date: 2021-03-21 14:31+0000\n"
+"PO-Revision-Date: 2021-06-09 13:32+0000\n"
"Last-Translator: asdf1234 <cydyellowgreen@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsacme/ko/>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.5.2-dev\n"
+"X-Generator: Weblate 4.7-dev\n"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:17
msgid "ACME certificates"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:145
msgid "Days until renewal"
-msgstr "갱신 일"
+msgstr "갱신일"
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:128
msgid "Domain Alias"
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-12-10 19:29+0000\n"
-"Last-Translator: Ryota <21ryotagamer@gmail.com>\n"
+"PO-Revision-Date: 2021-06-11 06:32+0000\n"
+"Last-Translator: Satoru Yoshida <ramat@ram.ne.jp>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsmwan3/ja/>\n"
"Language: ja\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.4-dev\n"
+"X-Generator: Weblate 4.7-dev\n"
#: applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua:176
#: applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua:192
#: applications/luci-app-mwan3/luasrc/view/mwan/overview_status_interface.htm:78
msgid "Status"
-msgstr ""
+msgstr "ステータス"
#: applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua:55
msgid "Sticky"
#: applications/luci-app-mwan3/luasrc/view/mwan/overview_status_interface.htm:36
#: applications/luci-app-mwan3/luasrc/view/mwan/overview_status_interface.htm:53
msgid "Uptime"
-msgstr ""
+msgstr "稼働時間"
#: applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua:46
msgid "View the content of /etc/protocols for protocol description"
PKG_LICENSE:=GPL-3.0-or-later
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
-PKG_VERSION:=0.3.2-20
+PKG_VERSION:=0.3.4-8
LUCI_TITLE:=VPN Policy-Based Routing Service Web UI
LUCI_DESCRIPTION:=Provides Web UI for vpn-policy-routing service.
local http = require "luci.http"
local nutil = require "nixio.util"
local dispatcher = require "luci.dispatcher"
-local enabledFlag = uci:get(packageName, "config", "enabled")
local enc
function getPackageVersion()
local name=arg['.name']
local proto=arg['proto']
local ifname=arg['ifname']
+ local device=arg['device']
+ ifname = ifname or device
if name and is_wan(name) then return true end
if name and supportedIfaces:match('%f[%w]' .. name .. '%f[%W]') then return true end
-- Policies
p = m:section(TypedSection, "policy", translate("Policies"), translate("Comment, interface and at least one other field are required. Multiple local and remote addresses/devices/domains and ports can be space separated. Placeholders below represent just the format/syntax and will not be used if fields are left blank."))
p.template = "cbi/tblsection"
-enc = tonumber(uci:get("vpn-policy-routing", "config", "webui_sorting"))
-if not enc or enc ~= 0 then
+if uci:get("vpn-policy-routing", "config", "webui_sorting") == "1" then
p.sortable = true
end
p.anonymous = true
p.addremove = true
-enc = tonumber(uci:get("vpn-policy-routing", "config", "webui_enable_column"))
-if enc and enc ~= 0 then
+if uci:get("vpn-policy-routing", "config", "webui_enable_column") == "1" then
le = p:option(Flag, "enabled", translate("Enabled"))
le.default = "1"
end
-local comment = uci:get_first("vpn-policy-routing", "policy", "comment")
-if comment then
+if uci:get_first("vpn-policy-routing", "policy", "comment") then
p:option(Value, "comment", translate("Comment"))
else
p:option(Value, "name", translate("Name"))
rp.placeholder = "0-65535"
rp.rmempty = true
-enc = tonumber(uci:get("vpn-policy-routing", "config", "webui_protocol_column"))
-if enc and enc ~= 0 then
+if uci:get("vpn-policy-routing", "config", "webui_protocol_column") == "1" then
proto = p:option(ListValue, "proto", translate("Protocol"))
proto:value("", "AUTO")
proto.default = ""
proto.rmempty = true
enc = uci:get_list("vpn-policy-routing", "config", "webui_supported_protocol")
- local count = 0
- for key, value in pairs(enc) do
- count = count + 1
- proto:value(value:lower(), value:gsub(" ", "/"):upper())
- end
- if count == 0 then
+ if next(enc) == nil then
enc = { "tcp", "udp", "tcp udp", "icmp", "all" }
- for key,value in pairs(enc) do
- proto:value(value:lower(), value:gsub(" ", "/"):upper())
- end
+ end
+ for key,value in pairs(enc) do
+ proto:value(value:lower(), value:gsub(" ", "/"):upper())
end
end
-enc = tonumber(uci:get("vpn-policy-routing", "config", "webui_chain_column"))
-if enc and enc ~= 0 then
+if uci:get("vpn-policy-routing", "config", "webui_chain_column") == "1" then
chain = p:option(ListValue, "chain", translate("Chain"))
chain:value("", "PREROUTING")
chain:value("FORWARD", "FORWARD")
gw:value(name, name:upper())
end
end)
-enc = tonumber(uci:get("vpn-policy-routing", "config", "webui_show_ignore_target"))
-if enc and enc ~= 0 then
+if fs.access("/etc/tor/torrc") then gw:value("tor", "TOR") end
+if uci:get("vpn-policy-routing", "config", "webui_show_ignore_target") == "1" then
gw:value("ignore", "IGNORE")
end
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:62
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:61
msgid "%s (disabled)"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:57
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:56
msgid "%s (strict mode)"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:51
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:50
msgid "%s is not installed or not found"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:189
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:190
msgid ""
"%sWARNING:%s Please make sure to check the %sREADME%s before changing "
"anything in this section! Change any of the settings below with extreme "
"caution!%s"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:259
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:260
msgid "Add IGNORE Target"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:259
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:260
msgid ""
"Adds `IGNORE` to the list of interfaces for policies, allowing you to skip "
"further processing by VPN Policy Routing."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:188
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:189
msgid "Advanced Configuration"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:191
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:192
msgid ""
"Allows to specify the list of interface names (in lower case) to be "
"explicitly supported by the service. Can be useful if your OpenVPN tunnels "
"have dev option other than tun* or tap*."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:194
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:195
msgid ""
"Allows to specify the list of interface names (in lower case) to be ignored "
"by the service. Can be useful if running both VPN server and VPN client on "
"the router."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:214
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:215
msgid "Append"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:163
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:164
msgid "Basic Configuration"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:197
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:198
msgid "Boot Time-out"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:335
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:326
msgid "Chain"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:286
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:284
msgid "Comment"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:269
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:270
msgid ""
"Comment, interface and at least one other field are required. Multiple local "
"and remote addresses/devices/domains and ports can be space separated. "
"fields are left blank."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:167
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:168
msgid "Condensed output"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:158
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:159
msgid "Configuration"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:165
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:166
msgid "Controls both system log and console output verbosity."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:373
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:364
msgid "Custom User File Includes"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:180
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:181
msgid "DNSMASQ ipset"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:366
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:357
msgid "DSCP Tag"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:361
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:352
msgid "DSCP Tagging"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:218
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:219
msgid "Default ICMP Interface"
msgstr ""
msgid "Disable"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:179
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:184
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:203
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:209
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:245
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:249
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:256
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:260
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:264
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:180
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:185
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:204
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:210
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:246
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:250
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:257
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:261
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:265
msgid "Disabled"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:252
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:253
msgid "Display these protocols in protocol column in Web UI."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:173
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:174
msgid "Do not enforce policies when their gateway is down"
msgstr ""
msgid "Enable"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:185
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:246
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:250
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:257
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:261
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:265
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:280
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:380
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:186
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:247
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:251
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:258
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:262
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:266
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:279
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:371
msgid "Enabled"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:237
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:238
msgid ""
"FW Mask used by the service. High mask is used to avoid conflict with SQM/"
"QoS. Change with caution together with"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:218
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:219
msgid "Force the ICMP protocol interface."
msgstr ""
msgid "Grant UCI and file access for luci-app-vpn-policy-routing"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:213
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:214
msgid "IPTables rule option"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:183
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:184
msgid "IPv6 Support"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:194
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:195
msgid "Ignored Interfaces"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:215
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:216
msgid "Insert"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:344
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:335
msgid "Interface"
msgstr ""
msgid "Loading"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:291
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:289
msgid "Local addresses / devices"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:298
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:296
msgid "Local ports"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:288
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:286
msgid "Name"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:219
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:220
msgid "No Change"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:165
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:166
msgid "Output verbosity"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:383
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:374
msgid "Path"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:178
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:202
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:208
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:179
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:203
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:209
msgid "Please check the %sREADME%s before changing this option."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:269
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:270
msgid "Policies"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:315
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:312
msgid "Protocol"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:303
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:301
msgid "Remote addresses / domains"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:308
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:306
msgid "Remote ports"
msgstr ""
msgid "Restart"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:374
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:365
msgid ""
"Run the following user files after setting up but before restarting DNSMASQ. "
"See the %sREADME%s for details."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:55
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:54
msgid "Running"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:172
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:173
msgid "See the %sREADME%s for details."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:213
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:214
msgid "Select Append for -A and Insert for -I."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:153
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:154
msgid "Service Control"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:143
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:144
msgid "Service Errors"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:232
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:237
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:233
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:238
msgid "Service FW Mask"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:138
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:139
msgid "Service Gateways"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:134
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:135
msgid "Service Status"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:133
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:134
msgid "Service Status [%s %s]"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:148
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:149
msgid "Service Warnings"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:362
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:353
msgid ""
"Set DSCP tags (in range between 1 and 63) for specific interfaces. See the "
"%sREADME%s for details."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:255
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:256
msgid "Show Chain Column"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:244
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:245
msgid "Show Enable Column"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:248
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:249
msgid "Show Protocol Column"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:263
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:264
msgid "Show Up/Down Buttons"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:263
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:264
msgid ""
"Shows the Up/Down buttons for policies, allowing you to move a policy up or "
"down in the list."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:255
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:256
msgid ""
"Shows the chain column for policies, allowing you to assign a PREROUTING, "
"FORWARD, INPUT or OUTPUT chain to a policy."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:244
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:245
msgid ""
"Shows the enable checkbox column for policies, allowing you to quickly "
"enable/disable specific policy without deleting it."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:248
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:249
msgid ""
"Shows the protocol column for policies, allowing you to assign a specific "
"protocol to a policy."
msgid "Start"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:232
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:233
msgid ""
"Starting (WAN) FW Mark for marks used by the service. High starting mark is "
"used to avoid conflict with SQM/QoS. Change with caution together with"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:227
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:228
msgid "Starting (WAN) Table ID number for tables created by the service."
msgstr ""
msgid "Stop"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:60
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:59
msgid "Stopped"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:171
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:172
msgid "Strict enforcement"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:174
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:175
msgid "Strictly enforce policies when their gateway is down"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:191
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:192
msgid "Supported Interfaces"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:252
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:253
msgid "Supported Protocols"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:166
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:167
msgid "Suppress/No output"
msgstr ""
msgid "The %s indicates default gateway. See the %sREADME%s for details."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:207
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:208
msgid "The ipset option for local policies"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:201
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:202
msgid "The ipset option for remote policies"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:197
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:198
msgid ""
"Time (in seconds) for service to wait for WAN gateway discovery on boot."
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:204
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:210
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:205
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:211
msgid "Use ipset command"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:177
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:178
msgid "Use resolver's ipset for domains"
msgstr ""
msgid "VPN Policy Routing"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:131
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:132
msgid "VPN and WAN Policy-Based Routing"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:168
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:169
msgid "Verbose output"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:220
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:221
msgid "WAN"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:232
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:237
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:233
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:238
msgid "WAN Table FW Mark"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:227
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:228
msgid "WAN Table ID"
msgstr ""
-#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:242
+#: applications/luci-app-vpn-policy-routing/luasrc/model/cbi/vpn-policy-routing.lua:243
msgid "Web UI Configuration"
msgstr ""
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://github.com/jow-/lucihttp.git
-PKG_SOURCE_DATE:=2019-07-05
-PKG_SOURCE_VERSION:=a34a17d501c0e23f0a91dd9d3e87697347c861ba
-PKG_MIRROR_HASH:=f08b526515b4a654e5529457da9d0676696170846288c55863dba087417a0483
+PKG_SOURCE_DATE:=2021-06-11
+PKG_SOURCE_VERSION:=3dc89af443410c9eae7a0ff091bd7fb4c5d48f41
+PKG_MIRROR_HASH:=6024a34c514a7231bcc36486abfb3e43e6c17490ac8d838f202a43ce259cda03
CMAKE_INSTALL:=1
PKG_LICENSE:=ISC
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
-CMAKE_OPTIONS = \
+CMAKE_OPTIONS += \
-DLUAPATH=/usr/lib/lua \
-DBUILD_LUA=$(if $(CONFIG_PACKAGE_liblucihttp-lua),ON,OFF) \
-DBUILD_TESTS=OFF
blobmsg_add_u8(&blob, "pointtopoint", ifa_flags & IFF_POINTOPOINT);
blobmsg_close_table(&blob, o2);
+ o2 = blobmsg_open_table(&blob, "link");
+
+ p = readstr("/sys/class/net/%s/speed", name);
+ if (*p)
+ blobmsg_add_u32(&blob, "speed", atoi(p));
+
+ p = readstr("/sys/class/net/%s/duplex", name);
+ if (*p)
+ blobmsg_add_string(&blob, "duplex", p);
+
+ n = atoi(readstr("/sys/class/net/%s/carrier", name));
+ blobmsg_add_u8(&blob, "carrier", n == 1);
+
+ n = atoi(readstr("/sys/class/net/%s/carrier_changes", name));
+ blobmsg_add_u32(&blob, "changes", n);
+
+ n = atoi(readstr("/sys/class/net/%s/carrier_up_count", name));
+ blobmsg_add_u32(&blob, "up_count", n);
+
+ n = atoi(readstr("/sys/class/net/%s/carrier_down_count", name));
+ blobmsg_add_u32(&blob, "down_count", n);
+
+ blobmsg_close_table(&blob, o2);
+
blobmsg_close_table(&blob, o);
}
name: name,
rawname: name,
flags: dev.flags,
+ link: dev.link,
stats: dev.stats,
macaddr: dev.mac,
type: dev.type,
return (stat != null ? stat.rx_packets || 0 : 0);
},
+ /**
+ * Get the carrier state of the network device.
+ *
+ * @returns {boolean}
+ * Returns true if the device has a carrier, e.g. when a cable is
+ * inserted into an ethernet port of false if there is none.
+ */
+ getCarrier: function() {
+ var link = this._devstate('link');
+ return (link != null ? link.carrier || false : false);
+ },
+
+ /**
+ * Get the current link speed of the network device if available.
+ *
+ * @returns {number|null}
+ * Returns the current speed of the network device in Mbps. If the
+ * device supports no ethernet speed levels, null is returned.
+ * If the device supports ethernet speeds but has no carrier, -1 is
+ * returned.
+ */
+ getSpeed: function() {
+ var link = this._devstate('link');
+ return (link != null ? link.speed || null : null);
+ },
+
+ /**
+ * Get the current duplex mode of the network device if available.
+ *
+ * @returns {string|null}
+ * Returns the current duplex mode of the network device. Returns
+ * either "full" or "half" if the device supports duplex modes or
+ * null if the duplex mode is unknown or unsupported.
+ */
+ getDuplex: function() {
+ var link = this._devstate('link'),
+ duplex = link ? link.duplex : null;
+
+ return (duplex != 'unknown') ? duplex : null;
+ },
+
/**
* Get the primary logical interface this device is assigned to.
*
return sb;
},
+ /** @private */
+ getScrollParent: function(element) {
+ var parent = element,
+ style = getComputedStyle(element),
+ excludeStaticParent = (style.position === 'absolute');
+
+ if (style.position === 'fixed')
+ return document.body;
+
+ while ((parent = parent.parentElement) != null) {
+ style = getComputedStyle(parent);
+
+ if (excludeStaticParent && style.position === 'static')
+ continue;
+
+ if (/(auto|scroll)/.test(style.overflow + style.overflowY + style.overflowX))
+ return parent;
+ }
+
+ return document.body;
+ },
+
/** @private */
openDropdown: function(sb) {
var st = window.getComputedStyle(sb, null),
fl = findParent(sb, '.cbi-value-field'),
sel = ul.querySelector('[selected]'),
rect = sb.getBoundingClientRect(),
- items = Math.min(this.options.dropdown_items, li.length);
+ items = Math.min(this.options.dropdown_items, li.length),
+ scrollParent = this.getScrollParent(sb);
document.querySelectorAll('.cbi-dropdown[open]').forEach(function(s) {
s.dispatchEvent(new CustomEvent('cbi-dropdown-close', {}));
ul.style.maxHeight = (vpHeight * 0.5) + 'px';
ul.style.WebkitOverflowScrolling = 'touch';
- var getScrollParent = function(element) {
- var parent = element,
- style = getComputedStyle(element),
- excludeStaticParent = (style.position === 'absolute');
-
- if (style.position === 'fixed')
- return document.body;
-
- while ((parent = parent.parentElement) != null) {
- style = getComputedStyle(parent);
-
- if (excludeStaticParent && style.position === 'static')
- continue;
-
- if (/(auto|scroll)/.test(style.overflow + style.overflowY + style.overflowX))
- return parent;
- }
-
- return document.body;
- }
-
- var scrollParent = getScrollParent(sb),
- scrollFrom = scrollParent.scrollTop,
+ var scrollFrom = scrollParent.scrollTop,
scrollTo = scrollFrom + rect.top - vpHeight * 0.5;
var scrollStep = function(timestamp) {
ul.style.top = ul.style.bottom = '';
window.requestAnimationFrame(function() {
- var itemHeight = li[Math.max(0, li.length - 2)].getBoundingClientRect().height,
+ var containerRect = scrollParent.getBoundingClientRect(),
+ itemHeight = li[Math.max(0, li.length - 2)].getBoundingClientRect().height,
fullHeight = 0,
- spaceAbove = rect.top,
- spaceBelow = window.innerHeight - rect.height - rect.top;
+ spaceAbove = rect.top - containerRect.top,
+ spaceBelow = containerRect.bottom - rect.bottom;
for (var i = 0; i < (items == -1 ? li.length : items); i++)
fullHeight += li[i].getBoundingClientRect().height;
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2021-06-07 14:45+0000\n"
+"PO-Revision-Date: 2021-06-09 13:32+0000\n"
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/luci/es/>"
"\n"
#: modules/luci-mod-network/htdocs/luci-static/resources/tools/network.js:503
msgid "Bridge ports"
-msgstr "Puertos de puente"
+msgstr "Puertos del puente"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:1529
#, fuzzy
#: modules/luci-mod-network/htdocs/luci-static/resources/tools/network.js:751
msgid "Only allow communication with non-isolated bridge ports when enabled"
msgstr ""
-"Solo permita la comunicación con puertos de puente no aislados cuando esté "
+"Solo permita la comunicación con puertos del puente no aislados cuando esté "
"activado"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:229
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2021-03-21 14:31+0000\n"
+"PO-Revision-Date: 2021-06-09 13:32+0000\n"
"Last-Translator: asdf1234 <cydyellowgreen@gmail.com>\n"
-"Language-Team: Korean <https://hosted.weblate.org/projects/openwrt/luci/ko/"
-">\n"
+"Language-Team: Korean <https://hosted.weblate.org/projects/openwrt/luci/ko/>"
+"\n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
-"X-Generator: Weblate 4.5.2-dev\n"
+"X-Generator: Weblate 4.7-dev\n"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:1480
msgid "%.1f dB"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:885
msgid "<abbr title=\"Neighbour Discovery Protocol\">NDP</abbr>-Proxy"
-msgstr ""
+msgstr "<abbr title=\"Neighbour Discovery Protocol\">NDP</abbr>-프록시"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:779
msgid "<abbr title=\"Router Advertisement\">RA</abbr> Flags"
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2021-06-07 14:45+0000\n"
+"PO-Revision-Date: 2021-06-11 06:32+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"openwrt/luci/pt_BR/>\n"
"options of sent <abbr title=\"Router Advertisement\">RA</abbr> messages. "
"When enabled, clients will perform stateless IPv6 address autoconfiguration."
msgstr ""
+"Define o sinalizador autônomo de configuração do endereço nas opções de "
+"informações do prefixo das mensagens enviadas do <abbr title=\"Anúncio do "
+"roteador\">RA</abbr>. Quando ativo, os clientes executarão a configuração "
+"automática de endereço IPv6 sem estado."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:707
msgid ""
"Set this interface as master for RA and DHCPv6 relaying as well as NDP "
"proxying."
msgstr ""
+"Defina esta interface como mestre para a retransmissão RA e DHCPv6, bem como "
+"proxy NDP."
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:304
msgid "Set to currently active slave (active, 1)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:894
msgid "Setup routes for proxied IPv6 neighbours."
-msgstr ""
+msgstr "Rotas de configuração para vizinhos IPv6 que tiverem proxy."
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:30
msgid "Severely Errored Seconds (SES)"
"Specifies a fixed list of DNS search domains to announce via DHCPv6. If left "
"unspecified, the local device DNS search domain will be announced."
msgstr ""
+"Define uma lista fixa de domínios de pesquisa DNS para fazer o anúncio via "
+"DHCPv6. Se não for definido, o domínio de pesquisa DNS do dispositivo local "
+"será anunciado."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:867
msgid ""
"If left unspecified, the device will announce itself as IPv6 DNS server "
"unless the <em>Local IPv6 DNS server</em> option is disabled."
msgstr ""
+"Define uma lista fixa de endereços de servidor IPv6 DNS para anunciar via "
+"DHCPv6. Caso não seja definido, o dispositivo se anunciará como sendo um "
+"servidor DNS IPv6, a menos que a opção <em>Local IPv6 DNS</em> seja "
+"desativada."
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:342
msgid ""
"messages, for example to instruct clients to request further information via "
"stateful DHCPv6."
msgstr ""
+"Determina quais as bandeiras enviadas nas mensagens do <abbr title=\"Anúncio "
+"do roteador\">RA</abbr>, por exemplo, para instruir os clientes que "
+"solicitem mais informações através do estado do DHCPv6."
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:252
msgid ""
"<abbr title=\"Router Advertisement, ICMPv6 Type 134\">RA</abbr> messages. "
"Minimum is 1280 bytes."
msgstr ""
+"A <abbr title=\"Maximum Transmission Unit\">MTU</abbr> que será publicado "
+"nas mensagens do <abbr title=\"Anúncio do roteador, ICMPv6 Tipo 134\">RA</"
+"abbr>. O mínimo são 1280 bytes."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:782
msgid ""
"The <em>Managed address configuration</em> (M) flag indicates that IPv6 "
"addresses are available via DHCPv6."
msgstr ""
+"A <em>configuração do endereço gerenciado</em> o (M) indica que os endereços "
+"IPv6 estão disponíveis via DHCPv6."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:786
msgid ""
"The <em>Mobile IPv6 Home Agent</em> (H) flag indicates that the device is "
"also acting as Mobile IPv6 home agent on this link."
msgstr ""
+"O <em>Agente doméstico móvel IPv6</em> (H) indica que o dispositivo também "
+"está agindo como um agente doméstico móvel IPv6 neste link."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:784
msgid ""
"The <em>Other configuration</em> (O) flag indicates that other information, "
"such as DNS servers, is available via DHCPv6."
msgstr ""
+"A <em>Outra configuração</em> (O) indica que as outras informações como "
+"servidores DNS estão disponíveis via DHCPv6."
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:84
msgid "The <em>block mount</em> command failed with code %d"
"The maximum hops to be published in <abbr title=\"Router Advertisement\">RA</"
"abbr> messages. Maximum is 255 hops."
msgstr ""
+"A quantidade máxima de saltos que serão publicados nas mensagens do <abbr "
+"title=\"Anúncio do roteador\">RA</abbr>. O máximo são 255 saltos."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1969
msgid "The network name is already used"
"Upon pressing \"Continue\", ifname options will get renamed and the network "
"will be restarted to apply the updated configuration."
msgstr ""
+"Ao pressionar \"Continuar\", as opções ifname serão renomeadas e a rede será "
+"reiniciada para aplicar a atualização da configuração."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:82
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:60
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:768
msgid "forced"
-msgstr ""
+msgstr "imposto"
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:85
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:195
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:781
msgid "managed config (M)"
-msgstr ""
+msgstr "configuração gerenciada (M)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1355
msgid "medium security"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:785
msgid "mobile home agent (H)"
-msgstr ""
+msgstr "agente doméstico móvel (H)"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:422
msgid "netif_carrier_ok()"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:766
msgid "on available prefix"
-msgstr ""
+msgstr "no prefixo disponível"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1356
msgid "open network"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:783
msgid "other config (O)"
-msgstr ""
+msgstr "outra configuração (O)"
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:69
#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:46
#
msgid ""
msgstr ""
-"PO-Revision-Date: 2021-06-07 14:45+0000\n"
-"Last-Translator: ywx <yangwenxiao4511@gmail.com>\n"
+"PO-Revision-Date: 2021-06-10 05:49+0000\n"
+"Last-Translator: Meano Lee <meanocat@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"openwrt/luci/zh_Hans/>\n"
"Language: zh_Hans\n"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:1441
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:20
msgid "Annex"
-msgstr "附件"
+msgstr "Annex"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:1442
msgid "Annex A + L + M (all)"
"Maximum time allowed between sending unsolicited <abbr title=\"Router "
"Advertisement, ICMPv6 Type 134\">RA</abbr>. Default is 600 seconds."
msgstr ""
-"å\8f\91é\80\81ä¸\8d请è\87ªæ\9d¥ç\9a\84 <abbr title=\"Router Advertisement, ICMPv6 Type 134\"> RA </"
-"abbr>间允许相隔的最长时间。默认值是 600 秒。"
+"å\8f\91é\80\81主å\8a¨ <abbr title=\"Router Advertisement, ICMPv6 Type 134\">RA</abbr> "
+"间允许相隔的最长时间。默认值是 600 秒。"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:913
msgid "Maximum transmit power"
"Minimum time allowed between sending unsolicited <abbr title=\"Router "
"Advertisement, ICMPv6 Type 134\">RA</abbr>. Default is 200 seconds."
msgstr ""
-"发送未经请求的 <abbr title=\"Router Advertisement, ICMPv6 Type 134\">RA</"
-"abbr>间允许相隔的最短时间。默认值是 200 秒。"
+"发送主动 <abbr title=\"Router Advertisement, ICMPv6 Type 134\">RA</abbr> "
+"间允许相隔的最短时间。默认值是 200 秒。"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:202
msgid "Mirror monitor port"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:395
msgid "Specifies the MII link monitoring frequency in milliseconds"
-msgstr "明确 MII 链接监控频率,单位为毫秒"
+msgstr "以毫秒为单位指定 MII 链接监控频率"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:259
msgid "Specifies the aggregation selection logic to use"
-msgstr "æ\98\8eç¡®要使用的聚合选择逻辑"
+msgstr "æ\8c\87å®\9a要使用的聚合选择逻辑"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:292
msgid "Specifies the directory the device is attached to"
msgid ""
"Specifies the mac-address for the actor in protocol packet exchanges "
"(LACPDUs). If empty, masters' mac address defaults to system default"
-msgstr ""
-"明确协议包交换 actor 的 MAC 地址(LACPDUs)。如果为空,master 的 mac 地址默认"
-"为系统默认值"
+msgstr "指定协议包交换 actor 的 MAC 地址(LACPDUs)。如果为空,master 的 mac 地址默认为系统默认值"
#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:175
msgid ""
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:200
msgid "Specifies the mode to be used for this bonding interface"
-msgstr "æ\98\8eç¡®用于此 bonding 接口的模式"
+msgstr "æ\8c\87å®\9a用于此 bonding 接口的模式"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:333
msgid ""
"Specifies the number of IGMP membership reports to be issued after a "
"failover event in 200ms intervals"
-msgstr "æ\98\8eç¡®发生故障转移事件后在200毫秒间隔内发出的 IGMP 成员资格报告的数量"
+msgstr "æ\8c\87å®\9a发生故障转移事件后在200毫秒间隔内发出的 IGMP 成员资格报告的数量"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:276
msgid ""
msgid ""
"Specifies the number of peer notifications (gratuitous ARPs and unsolicited "
"IPv6 Neighbor Advertisements) to be issued after a failover event"
-msgstr ""
-"明确一次故障转移事件后要发布的对等通知(无理由的 ARPs 和未经请求的 IPv6 邻居"
-"通告)的数目"
+msgstr "指定一次故障转移事件后要发布的对等通知(无为 ARP 和主动 IPv6 邻居通告)的数目"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:284
msgid ""
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:374
msgid "Specifies the quantity of ARP IP targets that must be reachable"
-msgstr "æ\98\8eç¡®必须可达的 ARP IP 目标数"
+msgstr "æ\8c\87å®\9a必须可达的 ARP IP 目标数"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:268
msgid ""
"Specifies the rate in which the link partner will be asked to transmit "
"LACPDU packets"
-msgstr "æ\98\8eç¡®链路伙伴被要求传输 LACPDU 包的速率"
+msgstr "æ\8c\87å®\9a链路伙伴被要求传输 LACPDU 包的速率"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:225
msgid ""
msgid ""
"Specifies the time in milliseconds to wait before disabling a slave after a "
"link failure detection"
-msgstr "指定在检测到链路故障后,在禁用从属设备之前等待的时间(以毫秒为单位)"
+msgstr "指定在检测到链路故障后,在禁用从属设备之前以毫秒为单位的等待时间"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:411
msgid ""
msgid ""
"Specifies whether or not miimon should use MII or ETHTOOL ioctls vs. "
"netif_carrier_ok()"
-msgstr "æ\98\8eç¡®ç\9b¸è¾\83 netif carrier ok()ï¼\8cmiimon 是否应使用 MII 或 ETHTOOL ioctls"
+msgstr "æ\8c\87å®\9aç\9b¸è¾\83 netif_carrier_ok(), miimon 是否应使用 MII 或 ETHTOOL ioctls"
#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:293
msgid ""
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"PO-Revision-Date: 2021-04-14 13:49+0000\n"
+"PO-Revision-Date: 2021-06-11 06:32+0000\n"
"Last-Translator: Satoru Yoshida <ramat@ram.ne.jp>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/openwrt/"
"lucimodulesluci-mod-dashboard/ja/>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.6-dev\n"
+"X-Generator: Weblate 4.7-dev\n"
#: modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/30_wifi.js:163
msgid "Active"
#: modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/30_wifi.js:86
msgid "Down."
-msgstr ""
+msgstr "ダウン"
#: modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js:129
msgid "Download"
#: modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/30_wifi.js:86
msgid "Up."
-msgstr ""
+msgstr "アップ"
#: modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js:124
msgid "Upload"
'use strict';
'require ui';
+'require dom';
'require uci';
'require form';
'require network';
return isPort;
}
-function renderDevBadge(dev) {
- var type = dev.getType(), up = dev.isUp();
+function updateDevBadge(node, dev) {
+ var type = dev.getType(),
+ up = dev.getCarrier();
- return E('span', { 'class': 'ifacebadge', 'style': 'font-weight:normal' }, [
+ dom.content(node, [
E('img', {
'class': 'middle',
'src': L.resource('icons/%s%s.png').format(type, up ? '' : '_disabled')
}),
'\x0a', dev.getName()
]);
+
+ return node;
+}
+
+function renderDevBadge(dev) {
+ return updateDevBadge(E('span', {
+ 'class': 'ifacebadge port-status-device',
+ 'style': 'font-weight:normal',
+ 'data-device': dev.getName()
+ }), dev);
+}
+
+function updatePortStatus(node, dev) {
+ var carrier = dev.getCarrier(),
+ duplex = dev.getDuplex(),
+ speed = dev.getSpeed(),
+ desc;
+
+ if (carrier && speed > 0 && duplex != null)
+ desc = E('abbr', {
+ 'title': '%d MBit/s, %s'.format(speed, duplex == 'full' ? _('full-duplex') : _('half-duplex'))
+ }, [ '%d%s'.format(speed, duplex == 'full' ? 'FD' : 'HD') ]);
+ else if (carrier)
+ desc = document.createTextNode(_('Connected'));
+ else
+ desc = document.createTextNode(_('no link'));
+
+ dom.content(node, [ desc ]);
+
+ return node;
+}
+
+function renderPortStatus(dev) {
+ return updatePortStatus(E('span', {
+ 'class': 'port-status-link',
+ 'data-device': dev.getName()
+ }), dev);
}
function lookupDevName(s, section_id) {
o.renderWidget = function(/* ... */) {
return form.SectionValue.prototype.renderWidget.apply(this, arguments).then(L.bind(function(node) {
node.style.overflowX = 'auto';
- node.style.overflowY = 'visible';
- node.style.paddingBottom = '100px';
- node.style.marginBottom = '-100px';
+ node.style.overflowY = 'hidden';
return node;
}, this));
this.children = this.children.filter(function(opt) { return !opt.option.match(/^port_/) });
for (var i = 0; i < devices.length; i++) {
- o = ss.option(cbiTagValue, 'port_%s'.format(sfh(devices[i].getName())), renderDevBadge(devices[i]));
+ o = ss.option(cbiTagValue, 'port_%s'.format(sfh(devices[i].getName())), renderDevBadge(devices[i]), renderPortStatus(devices[i]));
o.port = devices[i].getName();
}
for (var port_name in seen_ports)
ports.push(port_name);
- ports.sort();
+ ports.sort(function(a, b) {
+ var m1 = a.match(/^(.+?)([0-9]*)$/),
+ m2 = b.match(/^(.+?)([0-9]*)$/);
+
+ if (m1[1] < m2[1])
+ return -1;
+ else if (m1[1] > m2[1])
+ return 1;
+ else
+ return +(m1[2] || 0) - +(m2[2] || 0);
+ });
ss.updatePorts(ports);
- }
+ },
+
+ updateDevBadge: updateDevBadge,
+ updatePortStatus: updatePortStatus
});
function render_ifacebox_status(node, ifc) {
var dev = ifc.getL3Device() || ifc.getDevice(),
- subdevs = ifc.getDevices(),
+ subdevs = dev ? dev.getPorts() : null,
c = [ render_iface(dev, ifc.isAlias()) ];
if (subdevs && subdevs.length) {
btn2.disabled = isReadonlyView || btn1.classList.contains('spinning') || btn2.classList.contains('spinning') || dynamic || disabled;
}
+ document.querySelectorAll('.port-status-device[data-device]').forEach(function(node) {
+ nettools.updateDevBadge(node, network.instantiateDevice(node.getAttribute('data-device')));
+ });
+
+ document.querySelectorAll('.port-status-link[data-device]').forEach(function(node) {
+ nettools.updatePortStatus(node, network.instantiateDevice(node.getAttribute('data-device')));
+ });
+
return Promise.all([ resolveZone, network.flushCache() ]);
},
var tasks = [];
this.deviceWithIfnameSections().forEach(function(ds) {
- tasks.push(uci.add('network', ds['.name'], {
+ tasks.push(uci.callSet('network', ds['.name'], {
'ifname': '',
'ports': L.toArray(ds.ifname)
}));
this.callFrequencyList(section_id)
]).then(L.bind(function(data) {
this.channels = {
- '11g': L.hasSystemFeature('hostapd', 'acs') ? [ 'auto', 'auto', true ] : [],
- '11a': L.hasSystemFeature('hostapd', 'acs') ? [ 'auto', 'auto', true ] : []
+ '2g': L.hasSystemFeature('hostapd', 'acs') ? [ 'auto', 'auto', true ] : [],
+ '5g': L.hasSystemFeature('hostapd', 'acs') ? [ 'auto', 'auto', true ] : [],
+ '6g': [],
+ '60g': []
};
- for (var i = 0; i < data[1].length; i++)
- this.channels[(data[1][i].mhz > 2484) ? '11a' : '11g'].push(
+ for (var i = 0; i < data[1].length; i++) {
+ var band;
+
+ if (data[1][i].mhz >= 2412 && data[1][i].mhz <= 2484)
+ band = '2g';
+ else if (data[1][i].mhz >= 5160 && data[1][i].mhz <= 5885)
+ band = '5g';
+ else if (data[1][i].mhz >= 5925 && data[1][i].mhz <= 7125)
+ band = '6g';
+ else if (data[1][i].mhz >= 58329 && data[1][i].mhz <= 69120)
+ band = '60g';
+ else
+ continue;
+
+ this.channels[band].push(
data[1][i].channel,
'%d (%d Mhz)'.format(data[1][i].channel, data[1][i].mhz),
!data[1][i].restricted
);
+ }
var hwmodelist = L.toArray(data[0] ? data[0].getHWModes() : null)
.reduce(function(o, v) { o[v] = true; return o }, {});
this.bands = {
'': [
- '11g', '2.4 GHz', this.channels['11g'].length > 3,
- '11a', '5 GHz', this.channels['11a'].length > 3
+ '2g', '2.4 GHz', this.channels['2g'].length > 3,
+ '5g', '5 GHz', this.channels['5g'].length > 3
],
'n': [
- '11g', '2.4 GHz', this.channels['11g'].length > 3,
- '11a', '5 GHz', this.channels['11a'].length > 3
+ '2g', '2.4 GHz', this.channels['2g'].length > 3,
+ '5g', '5 GHz', this.channels['5g'].length > 3
],
'ac': [
- '11a', '5 GHz', true
+ '5g', '5 GHz', true
],
'ax': [
- '11g', '2.4 GHz', this.channels['11g'].length > 3,
- '11a', '5 GHz', this.channels['11a'].length > 3
+ '2g', '2.4 GHz', this.channels['2g'].length > 3,
+ '5g', '5 GHz', this.channels['5g'].length > 3
]
};
}, this));
bwdt = elem.querySelector('.htmode'),
htval = uci.get('wireless', section_id, 'htmode'),
hwval = uci.get('wireless', section_id, 'hwmode'),
- chval = uci.get('wireless', section_id, 'channel');
+ chval = uci.get('wireless', section_id, 'channel'),
+ bandval = uci.get('wireless', section_id, 'band');
this.setValues(mode, this.modes);
this.toggleWifiMode(elem);
- if (/a/.test(hwval))
- band.value = '11a';
- else
- band.value = '11g';
+ if (hwval != null) {
+ this.useBandOption = false;
+
+ if (/a/.test(hwval))
+ band.value = '5g';
+ else
+ band.value = '2g';
+ }
+ else {
+ this.useBandOption = true;
+
+ band.value = bandval;
+ }
this.toggleWifiBand(elem);
bwdt.value = htval;
- chan.value = chval;
+ chan.value = chval || chan.options[0].value;
return elem;
},
cfgvalue: function(section_id) {
return [
uci.get('wireless', section_id, 'htmode'),
- uci.get('wireless', section_id, 'hwmode'),
+ uci.get('wireless', section_id, 'hwmode') || uci.get('wireless', section_id, 'band'),
uci.get('wireless', section_id, 'channel')
];
},
write: function(section_id, value) {
uci.set('wireless', section_id, 'htmode', value[0] || null);
- uci.set('wireless', section_id, 'hwmode', value[1]);
+
+ if (this.useBandOption)
+ uci.set('wireless', section_id, 'band', value[1]);
+ else
+ uci.set('wireless', section_id, 'hwmode', (value[1] == '2g') ? '11g' : '11a');
+
uci.set('wireless', section_id, 'channel', value[2]);
}
});
y = ctx.height - Math.floor(values[i][j] * data_scale);
//y -= Math.floor(y % (1 / data_scale));
+ y = isNaN(y) ? ctx.height : y;
+
pt += ' ' + x + ',' + y;
}
y = ctx.height - Math.floor(values[i][j] * data_scale);
//y -= Math.floor(y % (1 / data_scale));
+ y = isNaN(y) ? ctx.height : y;
+
pt += ' ' + x + ',' + y;
}
y = ctx.height - Math.floor(values[i][j] * data_scale);
//y -= Math.floor(y % (1 / data_scale));
+ y = isNaN(y) ? ctx.height : y;
+
pt += ' ' + x + ',' + y;
}
y = ctx.height - Math.floor(values[i][j] * data_scale);
//y -= Math.floor(y % (1 / data_scale));
+ y = isNaN(y) ? ctx.height : y;
+
pt += ' ' + x + ',' + y;
}
<header>
<div class="fill">
<div class="container">
- <a class="brand" href="/"><%=boardinfo.hostname or "?"%></a>
+ <a class="brand" href="/"><%=striptags(boardinfo.hostname or "?")%></a>
<ul class="nav" id="topmenu" style="display:none"></ul>
<div id="indicators" class="pull-right"></div>
</div>
<div class="container">
<span class="showSide"></span>
<a id="logo" href="<% if luci.dispatcher.context.authsession then %><%=url('admin/status/overview')%><% else %>#<% end %>"><img src="<%=media%>/brand.png" alt="OpenWrt"></a>
- <a class="brand" href="#"><%=boardinfo.hostname or "?"%></a>
+ <a class="brand" href="#"><%=striptags(boardinfo.hostname or "?")%></a>
<div class="status" id="indicators">
<span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
<span class="label success" id="xhr_poll_status_on"><span class="mobile-hide"><%:Auto Refresh%></span> <%:on%></span>
<div id="menubar">
<h2 class="navigation"><a id="navigation" name="navigation"><%:Navigation%></a></h2>
- <span class="hostname"><a href="/"><%=(boardinfo.hostname or "?")%></a></span>
+ <span class="hostname"><a href="/"><%=striptags(boardinfo.hostname or "?")%></a></span>
<span class="distversion"><%=ver.distversion%></span>
<span id="indicators"></span>
</div>
<h2 class="navigation"><a id="navigation" name="navigation"><%:Navigation%></a></h2>
<div class="hostinfo">
- <%=(boardinfo.hostname or "?")%> | <%=ver.distversion%> |
+ <%=striptags(boardinfo.hostname or "?")%> | <%=ver.distversion%> |
<%:Load%>: <%="%.2f" % (loadinfo[1] / 65535.0)%> <%="%.2f" % (loadinfo[2] / 65535.0)%> <%="%.2f" % (loadinfo[3] / 65535.0)%>
</div>