diff options
Diffstat (limited to 'modules')
43 files changed, 394 insertions, 349 deletions
diff --git a/modules/luci-base/Makefile b/modules/luci-base/Makefile index 5c38d99c58..06ee7985eb 100644 --- a/modules/luci-base/Makefile +++ b/modules/luci-base/Makefile @@ -37,13 +37,14 @@ endef define Host/Compile $(MAKE) -C src/ clean po2lmo - $(MAKE) -C $(HOST_BUILD_DIR) bin/luasrcdiet endef define Host/Install $(INSTALL_DIR) $(1)/bin + $(INSTALL_DIR) $(1)/lib/lua/5.1 $(INSTALL_BIN) src/po2lmo $(1)/bin/po2lmo $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/luasrcdiet $(1)/bin/luasrcdiet + $(CP) $(HOST_BUILD_DIR)/luasrcdiet $(1)/lib/lua/5.1/ endef $(eval $(call HostBuild)) diff --git a/modules/luci-base/htdocs/luci-static/resources/xhr.js b/modules/luci-base/htdocs/luci-static/resources/xhr.js index 62b525ebb0..25a90e7254 100644 --- a/modules/luci-base/htdocs/luci-static/resources/xhr.js +++ b/modules/luci-base/htdocs/luci-static/resources/xhr.js @@ -65,12 +65,8 @@ XHR = function() if (xhr.readyState == 4) { var json = null; if (xhr.getResponseHeader("Content-Type") == "application/json") { - try { - json = JSON.parse(xhr.responseText); - } - catch(e) { - json = null; - } + try { json = JSON.parse(xhr.responseText); } + catch(e) { json = null; } } callback(xhr, json, Date.now() - ts); @@ -90,8 +86,15 @@ XHR = function() xhr.onreadystatechange = function() { - if (xhr.readyState == 4) - callback(xhr, null, Date.now() - ts); + if (xhr.readyState == 4) { + var json = null; + if (xhr.getResponseHeader("Content-Type") == "application/json") { + try { json = JSON.parse(xhr.responseText); } + catch(e) { json = null; } + } + + callback(xhr, json, Date.now() - ts); + } } xhr.open('POST', url, true); diff --git a/modules/luci-base/luasrc/dispatcher.lua b/modules/luci-base/luasrc/dispatcher.lua index 6d5a8f4d3d..6cf2712eb4 100644 --- a/modules/luci-base/luasrc/dispatcher.lua +++ b/modules/luci-base/luasrc/dispatcher.lua @@ -893,8 +893,6 @@ local function _cbi(self, ...) local pageaction = true local parsechain = { } - local is_rollback, time_remaining = uci:rollback_pending() - for i, res in ipairs(maps) do if res.apply_needed and res.parsechain then local c @@ -921,8 +919,6 @@ local function _cbi(self, ...) for i, res in ipairs(maps) do res:render({ firstmap = (i == 1), - applymap = applymap, - confirmmap = (is_rollback and time_remaining or nil), redirect = redirect, messages = messages, pageaction = pageaction, @@ -932,11 +928,12 @@ local function _cbi(self, ...) if not config.nofooter then tpl.render("cbi/footer", { - flow = config, - pageaction = pageaction, - redirect = redirect, - state = state, - autoapply = config.autoapply + flow = config, + pageaction = pageaction, + redirect = redirect, + state = state, + autoapply = config.autoapply, + trigger_apply = applymap }) end end diff --git a/modules/luci-base/luasrc/model/uci.lua b/modules/luci-base/luasrc/model/uci.lua index 92c0d8f699..b2c1e463bf 100644 --- a/modules/luci-base/luasrc/model/uci.lua +++ b/modules/luci-base/luasrc/model/uci.lua @@ -147,19 +147,31 @@ function apply(self, rollback) local _, err if rollback then + local sys = require "luci.sys" local conf = require "luci.config" - local timeout = tonumber(conf and conf.apply and conf.apply.rollback or "") or 0 + local timeout = tonumber(conf and conf.apply and conf.apply.rollback or 30) or 0 _, err = call("apply", { - timeout = (timeout > 30) and timeout or 30, + timeout = (timeout > 30) and timeout or 30, rollback = true }) if not err then + local now = os.time() + local token = sys.uniqueid(16) + util.ubus("session", "set", { - ubus_rpc_session = session_id, - values = { rollback = os.time() + timeout } + ubus_rpc_session = "00000000000000000000000000000000", + values = { + rollback = { + token = token, + session = session_id, + timeout = now + timeout + } + } }) + + return token end else _, err = call("changes", {}) @@ -184,40 +196,72 @@ function apply(self, rollback) return (err == nil), ERRSTR[err] end -function confirm(self) - local _, err = call("confirm", {}) - if not err then - util.ubus("session", "set", { - ubus_rpc_session = session_id, - values = { rollback = 0 } +function confirm(self, token) + local is_pending, time_remaining, rollback_sid, rollback_token = self:rollback_pending() + + if is_pending then + if token ~= rollback_token then + return false, "Permission denied" + end + + local _, err = util.ubus("uci", "confirm", { + ubus_rpc_session = rollback_sid }) + + if not err then + util.ubus("session", "set", { + ubus_rpc_session = "00000000000000000000000000000000", + values = { rollback = {} } + }) + end + + return (err == nil), ERRSTR[err] end - return (err == nil), ERRSTR[err] + + return false, "No data" end function rollback(self) - local _, err = call("rollback", {}) - if not err then - util.ubus("session", "set", { - ubus_rpc_session = session_id, - values = { rollback = 0 } + local is_pending, time_remaining, rollback_sid = self:rollback_pending() + + if is_pending then + local _, err = util.ubus("uci", "rollback", { + ubus_rpc_session = rollback_sid }) + + if not err then + util.ubus("session", "set", { + ubus_rpc_session = "00000000000000000000000000000000", + values = { rollback = {} } + }) + end + + return (err == nil), ERRSTR[err] end - return (err == nil), ERRSTR[err] + + return false, "No data" end function rollback_pending(self) - local deadline, err = util.ubus("session", "get", { - ubus_rpc_session = session_id, + local rv, err = util.ubus("session", "get", { + ubus_rpc_session = "00000000000000000000000000000000", keys = { "rollback" } }) - if type(deadline) == "table" and - type(deadline.values) == "table" and - type(deadline.values.rollback) == "number" and - deadline.values.rollback > os.time() + local now = os.time() + + if type(rv) == "table" and + type(rv.values) == "table" and + type(rv.values.rollback) == "table" and + type(rv.values.rollback.token) == "string" and + type(rv.values.rollback.session) == "string" and + type(rv.values.rollback.timeout) == "number" and + rv.values.rollback.timeout > now then - return true, deadline.values.rollback - os.time() + return true, + rv.values.rollback.timeout - now, + rv.values.rollback.session, + rv.values.rollback.token end return false, ERRSTR[err] diff --git a/modules/luci-base/luasrc/util.lua b/modules/luci-base/luasrc/util.lua index 10428b0b35..f16b3afb2e 100644 --- a/modules/luci-base/luasrc/util.lua +++ b/modules/luci-base/luasrc/util.lua @@ -16,7 +16,7 @@ local _ubus = require "ubus" local _ubus_connection = nil local getmetatable, setmetatable = getmetatable, setmetatable -local rawget, rawset, unpack = rawget, rawset, unpack +local rawget, rawset, unpack, select = rawget, rawset, unpack, select local tostring, type, assert, error = tostring, type, assert, error local ipairs, pairs, next, loadstring = ipairs, pairs, next, loadstring local require, pcall, xpcall = require, pcall, xpcall @@ -647,6 +647,17 @@ local ubus_codes = { "CONNECTION_FAILED" } +local function ubus_return(...) + if select('#', ...) == 2 then + local rv, err = select(1, ...), select(2, ...) + if rv == nil and type(err) == "number" then + return nil, err, ubus_codes[err] + end + end + + return ... +end + function ubus(object, method, data) if not _ubus_connection then _ubus_connection = _ubus.connect() @@ -657,8 +668,7 @@ function ubus(object, method, data) if type(data) ~= "table" then data = { } end - local rv, err = _ubus_connection:call(object, method, data) - return rv, err, ubus_codes[err] + return ubus_return(_ubus_connection:call(object, method, data)) elseif object then return _ubus_connection:signatures(object) else diff --git a/modules/luci-base/luasrc/view/cbi/apply_widget.htm b/modules/luci-base/luasrc/view/cbi/apply_widget.htm index f76846ee87..ce279edd40 100644 --- a/modules/luci-base/luasrc/view/cbi/apply_widget.htm +++ b/modules/luci-base/luasrc/view/cbi/apply_widget.htm @@ -1,4 +1,4 @@ -<% export("cbi_apply_widget", function(redirect_ok) -%> +<% export("cbi_apply_widget", function(redirect_ok, rollback_token) -%> <style type="text/css"> #cbi_apply_overlay { position: absolute; @@ -51,6 +51,7 @@ uci_apply_holdoff = <%=math.max(luci.config and luci.config.apply and luci.config.apply.holdoff or 4, 1)%>, uci_apply_timeout = <%=math.max(luci.config and luci.config.apply and luci.config.apply.timeout or 5, 1)%>, uci_apply_display = <%=math.max(luci.config and luci.config.apply and luci.config.apply.display or 1.5, 1)%>, + uci_confirm_auth = <% if rollback_token then %>{ token: '<%=rollback_token%>' }<% else %>null<% end %>, was_xhr_poll_running = false; function uci_status_message(type, content) { @@ -148,7 +149,7 @@ var delay = isNaN(duration) ? 0 : Math.max(1000 - duration, 0); window.setTimeout(function() { - xhr.post('<%=url("admin/uci/confirm")%>', uci_apply_auth, call, uci_apply_timeout * 1000); + xhr.post('<%=url("admin/uci/confirm")%>', uci_confirm_auth, call, uci_apply_timeout * 1000); }, delay); }; @@ -157,7 +158,7 @@ uci_status_message('notice', '<img src="<%=resource%>/icons/loading.gif" alt="" style="vertical-align:middle" /> ' + - '<%:Waiting for configuration to get applied… %ds%>'.format(Math.max(Math.floor((deadline - Date.now()) / 1000), 0))); + '<%:Waiting for configuration to be applied… %ds%>'.format(Math.max(Math.floor((deadline - Date.now()) / 1000), 0))); if (now >= deadline) return; @@ -177,8 +178,11 @@ '<img src="<%=resource%>/icons/loading.gif" alt="" style="vertical-align:middle" /> ' + '<%:Starting configuration apply…%>'); - xhr.post('<%=url("admin/uci")%>/' + (checked ? 'apply_rollback' : 'apply_unchecked'), uci_apply_auth, function(r) { + xhr.post('<%=url("admin/uci")%>/' + (checked ? 'apply_rollback' : 'apply_unchecked'), uci_apply_auth, function(r, tok) { if (r.status === (checked ? 200 : 204)) { + if (checked && tok !== null && typeof(tok) === 'object' && typeof(tok.token) === 'string') + uci_confirm_auth = tok; + uci_confirm(checked, Date.now() + uci_apply_rollback * 1000); } else if (checked && r.status === 204) { diff --git a/modules/luci-base/luasrc/view/cbi/map.htm b/modules/luci-base/luasrc/view/cbi/map.htm index 83c3cb2170..d65a161673 100644 --- a/modules/luci-base/luasrc/view/cbi/map.htm +++ b/modules/luci-base/luasrc/view/cbi/map.htm @@ -5,21 +5,6 @@ <div class="cbi-map" id="cbi-<%=self.config%>"> <% if self.title and #self.title > 0 then %><h2 name="content"><%=self.title%></h2><% end %> <% if self.description and #self.description > 0 then %><div class="cbi-map-descr"><%=self.description%></div><% end %> - <%- if firstmap and (applymap or confirmmap) then -%> - <%+cbi/apply_widget%> - <% cbi_apply_widget(redirect) %> - <div class="alert-message" id="cbi_apply_status" style="display:none"></div> - <script type="text/javascript"> - document.addEventListener("DOMContentLoaded", function() { - <% if confirmmap then -%> - uci_confirm(true, Date.now() + <%=confirmmap%> * 1000); - <%- else -%> - uci_apply(true); - <%- end %> - }); - </script> - <%- end -%> - <% if self.tabbed then %> <ul class="cbi-tabmenu map"> <%- self.selected_tab = luci.http.formvalue("tab.m-" .. self.config) %> diff --git a/modules/luci-base/luasrc/view/footer.htm b/modules/luci-base/luasrc/view/footer.htm index f3574b6b10..1667d3aa9a 100644 --- a/modules/luci-base/luasrc/view/footer.htm +++ b/modules/luci-base/luasrc/view/footer.htm @@ -4,4 +4,27 @@ Licensed to the public under the Apache License 2.0. -%> -<% include("themes/" .. theme .. "/footer") %>
\ No newline at end of file +<% + local is_rollback_pending, rollback_time_remaining, rollback_session, rollback_token = luci.model.uci:rollback_pending() + + if is_rollback_pending or trigger_apply or trigger_revert then + include("cbi/apply_widget") + cbi_apply_widget(redirect, rollback_token) +%> + <div class="alert-message" id="cbi_apply_status" style="display:none"></div> + <script type="text/javascript"> + document.addEventListener("DOMContentLoaded", function() { + <% if trigger_apply then -%> + uci_apply(true); + <%- elseif trigger_revert then -%> + uci_revert(); + <%- else -%> + uci_confirm(true, Date.now() + <%=rollback_time_remaining%> * 1000); + <%- end %> + }); + </script> +<% + end + + include("themes/" .. theme .. "/footer") +%> diff --git a/modules/luci-base/po/ca/base.po b/modules/luci-base/po/ca/base.po index 5885894499..6fd182693f 100644 --- a/modules/luci-base/po/ca/base.po +++ b/modules/luci-base/po/ca/base.po @@ -3744,7 +3744,7 @@ msgstr "Esperant que s'apliquin els canvis..." msgid "Waiting for command to complete..." msgstr "Esperant que s'acabi l'ordre..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/cs/base.po b/modules/luci-base/po/cs/base.po index 4075c5b06f..6182378a74 100644 --- a/modules/luci-base/po/cs/base.po +++ b/modules/luci-base/po/cs/base.po @@ -3776,7 +3776,7 @@ msgstr "Čekání na realizaci změn..." msgid "Waiting for command to complete..." msgstr "Čekání na dokončení příkazu..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/de/base.po b/modules/luci-base/po/de/base.po index fd7bb4c388..a70a2e9855 100644 --- a/modules/luci-base/po/de/base.po +++ b/modules/luci-base/po/de/base.po @@ -3940,7 +3940,7 @@ msgstr "Änderungen werden angewandt..." msgid "Waiting for command to complete..." msgstr "Der Befehl wird ausgeführt..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "Warte auf das Anwenden der Konfigurationsänderungen... %d Sekunden" msgid "Waiting for device..." diff --git a/modules/luci-base/po/el/base.po b/modules/luci-base/po/el/base.po index cb5706930a..03055bcca9 100644 --- a/modules/luci-base/po/el/base.po +++ b/modules/luci-base/po/el/base.po @@ -3740,7 +3740,7 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/en/base.po b/modules/luci-base/po/en/base.po index dc5c22a659..f9f8f07978 100644 --- a/modules/luci-base/po/en/base.po +++ b/modules/luci-base/po/en/base.po @@ -3699,7 +3699,7 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/es/base.po b/modules/luci-base/po/es/base.po index 635dc11603..5ae04552be 100644 --- a/modules/luci-base/po/es/base.po +++ b/modules/luci-base/po/es/base.po @@ -3804,7 +3804,7 @@ msgstr "Esperando a que se realicen los cambios..." msgid "Waiting for command to complete..." msgstr "Esperando a que termine el comando..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/fr/base.po b/modules/luci-base/po/fr/base.po index 3805627b6b..f0a593deaf 100644 --- a/modules/luci-base/po/fr/base.po +++ b/modules/luci-base/po/fr/base.po @@ -3822,7 +3822,7 @@ msgstr "En attente de l'application des changements..." msgid "Waiting for command to complete..." msgstr "En attente de la fin de la commande..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/he/base.po b/modules/luci-base/po/he/base.po index 6a5be78feb..cc92f5259d 100644 --- a/modules/luci-base/po/he/base.po +++ b/modules/luci-base/po/he/base.po @@ -3650,7 +3650,7 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/hu/base.po b/modules/luci-base/po/hu/base.po index 4b66806a83..b391113314 100644 --- a/modules/luci-base/po/hu/base.po +++ b/modules/luci-base/po/hu/base.po @@ -3809,7 +3809,7 @@ msgstr "Várakozás a változtatások alkalmazására..." msgid "Waiting for command to complete..." msgstr "Várakozás a parancs befejezésére..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/it/base.po b/modules/luci-base/po/it/base.po index 1fe6d06cb9..24efdff558 100644 --- a/modules/luci-base/po/it/base.po +++ b/modules/luci-base/po/it/base.po @@ -3778,7 +3778,7 @@ msgstr "In attesa delle modifiche da applicare ..." msgid "Waiting for command to complete..." msgstr "In attesa del comando da completare..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/ja/base.po b/modules/luci-base/po/ja/base.po index fd60f84da6..003b22893e 100644 --- a/modules/luci-base/po/ja/base.po +++ b/modules/luci-base/po/ja/base.po @@ -3845,7 +3845,7 @@ msgstr "変更を適用中です..." msgid "Waiting for command to complete..." msgstr "コマンド実行中です..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "設定を適用中です... %d 秒" msgid "Waiting for device..." diff --git a/modules/luci-base/po/ko/base.po b/modules/luci-base/po/ko/base.po index 2d53437dbd..2b709110b3 100644 --- a/modules/luci-base/po/ko/base.po +++ b/modules/luci-base/po/ko/base.po @@ -3703,7 +3703,7 @@ msgstr "변경 사항이 적용되기를 기다리는 중입니다..." msgid "Waiting for command to complete..." msgstr "실행한 명령이 끝나기를 기다리는 중입니다..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/ms/base.po b/modules/luci-base/po/ms/base.po index 891db2e41f..d4cdece558 100644 --- a/modules/luci-base/po/ms/base.po +++ b/modules/luci-base/po/ms/base.po @@ -3670,7 +3670,7 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/no/base.po b/modules/luci-base/po/no/base.po index d5c65659e8..3e6dbea726 100644 --- a/modules/luci-base/po/no/base.po +++ b/modules/luci-base/po/no/base.po @@ -3775,7 +3775,7 @@ msgstr "Venter på at endringer utføres..." msgid "Waiting for command to complete..." msgstr "Venter på at kommando fullføres..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po index 61aee199b7..dcd8af8d57 100644 --- a/modules/luci-base/po/pl/base.po +++ b/modules/luci-base/po/pl/base.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: LuCI\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-20 09:40+0200\n" -"PO-Revision-Date: 2018-07-21 18:35+0200\n" +"PO-Revision-Date: 2018-08-05 13:45+0200\n" "Last-Translator: Rixerx <krystian.kozak20@gmail.com>\n" "Language-Team: Polish\n" "Language: pl\n" @@ -210,11 +210,11 @@ msgid "ATM device number" msgstr "Numer urządzenia ATM" msgid "ATU-C System Vendor ID" -msgstr "" +msgstr "ID dostawcy systemu ATU-C" # co to takiego? msgid "Access Concentrator" -msgstr "Koncentrator dostępowy ATM" +msgstr "Koncentrator dostępowy (ATM)" msgid "Access Point" msgstr "Punkt dostępowy" @@ -273,7 +273,7 @@ msgid "Advanced Settings" msgstr "Ustawienia zaawansowane" msgid "Aggregate Transmit Power(ACTATP)" -msgstr "" +msgstr "Agregacja siły transmisji (ACTATP)" msgid "Alert" msgstr "Alarm" @@ -592,6 +592,8 @@ msgid "" "Build/distribution specific feed definitions. This file will NOT be " "preserved in any sysupgrade." msgstr "" +"Kompiluj/rozpowszechniaj określone definicje źródeł. Ten plik NIE " +"zostanie zachowany w procesie sysupgrade" msgid "CA certificate; if empty it will be saved after the first connection." msgstr "" @@ -684,7 +686,7 @@ msgid "" "Close inactive connection after the given amount of seconds, use 0 to " "persist connection" msgstr "" -"Zamykaj nieaktywne połączenia po określonym czasie podanym w sekundach, " +"Zamknij nieaktywne połączenia po określonym czasie podanym w sekundach, " "wpisz 0 aby uzyskać stałe połączenie." msgid "Close list..." @@ -782,15 +784,17 @@ msgid "Custom Interface" msgstr "Interfejs niestandardowy" msgid "Custom delegated IPv6-prefix" -msgstr "" +msgstr "Delegowany niestandardowy prefiks IPv6" msgid "" "Custom feed definitions, e.g. private feeds. This file can be preserved in a " "sysupgrade." msgstr "" +"Niestandardowe definicje plików danych, np. prywatne źródła. Ten plik może być " +"zachowany podczas sysupgrade. " msgid "Custom feeds" -msgstr "" +msgstr "Niestandardowe źródła" msgid "" "Custom files (certificates, scripts) may remain on the system. To prevent " @@ -864,7 +868,7 @@ msgid "DUID" msgstr "DUID" msgid "Data Rate" -msgstr "" +msgstr "Szybkość przesyłania danych" msgid "Debug" msgstr "Debug" @@ -981,7 +985,7 @@ msgid "Distance to farthest network member in meters." msgstr "Odległość do najdalej oddalonego członka sieci w metrach." msgid "Distribution feeds" -msgstr "" +msgstr "Dystrybucja źródeł" # Jak poprzednio trzymam się konwencji msgid "Diversity" @@ -1198,7 +1202,7 @@ msgid "Error" msgstr "Błąd" msgid "Errored seconds (ES)" -msgstr "" +msgstr "Ilość błędów (ES)" msgid "Ethernet Adapter" msgstr "Karta Ethernet" @@ -1302,7 +1306,7 @@ msgid "Firewall Status" msgstr "Stan firewalla" msgid "Firmware File" -msgstr "" +msgstr "Plik firmware" msgid "Firmware Version" msgstr "Wersja firmware" @@ -1357,7 +1361,7 @@ msgid "Forward DHCP traffic" msgstr "Przekazuj ruch DHCP" msgid "Forward Error Correction Seconds (FECS)" -msgstr "" +msgstr "Próby korekcji błędów (FECS)" msgid "Forward broadcast traffic" msgstr "Przekazuj broadcast`y" @@ -1407,7 +1411,7 @@ msgid "General Setup" msgstr "Ustawienia podstawowe" msgid "General options for opkg" -msgstr "" +msgstr "Ogólne opcje dla opkg" msgid "Generate Config" msgstr "Wygeneruj konfigurację" @@ -1457,7 +1461,7 @@ msgid "Hang Up" msgstr "Rozłącz" msgid "Header Error Code Errors (HEC)" -msgstr "" +msgstr "Błędy kodu nagłówka (HEC)" msgid "" "Here you can configure the basic aspects of your device like its hostname or " @@ -1812,7 +1816,7 @@ msgid "LCP echo failure threshold" msgstr "Próg błędu echa LCP" msgid "LCP echo interval" -msgstr "Częstotliwość echa LCP" +msgstr "Interwał echa LCP" msgid "LLC" msgstr "LLC" @@ -1845,10 +1849,10 @@ msgid "Leasetime remaining" msgstr "Pozostały czas dzierżawy" msgid "Leave empty to autodetect" -msgstr "Pozostaw niewypełnione dla autodetekcji" +msgstr "Pozostaw puste, aby automatycznie wykryć" msgid "Leave empty to use the current WAN address" -msgstr "Pozostaw niewypełnione aby użyć bieżącego adresu WAN" +msgstr "Pozostaw puste, aby użyć bieżącego adresu WAN" msgid "Legend:" msgstr "Legenda:" @@ -1864,16 +1868,16 @@ msgid "Limit listening to these interfaces, and loopback." msgstr "Ogranicz nasłuchiwanie do tych interfesjów, oraz loopbacku." msgid "Line Attenuation (LATN)" -msgstr "" +msgstr "Tłumienie linii (LATN)" msgid "Line Mode" -msgstr "" +msgstr "Tryb linii" msgid "Line State" -msgstr "" +msgstr "Stan linii" msgid "Line Uptime" -msgstr "" +msgstr "Czas działania linii" msgid "Link On" msgstr "Połączenie aktywne" @@ -2000,7 +2004,7 @@ msgid "Logout" msgstr "Wyloguj" msgid "Loss of Signal Seconds (LOSS)" -msgstr "" +msgstr "Utrata sygnału (LOSS)" msgid "Lowest leased address as offset from the network address." msgstr "Najniższy wydzierżawiony adres jako offset dla adresu sieci." @@ -2049,7 +2053,7 @@ msgid "Manual" msgstr "" msgid "Max. Attainable Data Rate (ATTNDR)" -msgstr "" +msgstr "Max. Osiągalna przepustowość danych (ATTNDR)" msgid "Maximum allowed number of active DHCP leases" msgstr "Maksymalna dozwolona liczba aktywnych dzierżaw DHCP" @@ -2244,7 +2248,7 @@ msgid "No network name specified" msgstr "Nie podano nazwy sieci" msgid "No package lists available" -msgstr "Brak dostępu do listy pakietów" +msgstr "Lista pakietów nie jest dostępna" msgid "No password set!" msgstr "Nie ustawiono hasła!" @@ -2268,7 +2272,7 @@ msgid "Noise:" msgstr "Szum:" msgid "Non Pre-emtive CRC errors (CRC_P)" -msgstr "" +msgstr "Nieprzewidziane błedy CRC (CRC_P)" msgid "Non-wildcard" msgstr "Bez symboli wieloznacznych" @@ -2318,7 +2322,7 @@ msgid "Obfuscated Password" msgstr "" msgid "Obtain IPv6-Address" -msgstr "" +msgstr "Uzyskaj adres IPv6" msgid "Off-State Delay" msgstr "Zwłoka wyłączenia" @@ -2613,7 +2617,7 @@ msgid "Power Management Mode" msgstr "Tryb zarządzania energią" msgid "Pre-emtive CRC errors (CRCP_P)" -msgstr "" +msgstr "Przewidziane błedy CRC (CRCP_P)" msgid "Prefer LTE" msgstr "" @@ -2631,8 +2635,8 @@ msgid "" "Presume peer to be dead after given amount of LCP echo failures, use 0 to " "ignore failures" msgstr "" -"Zakładaj że klient jest martwy po danej ilości błedów odpowiedzi echa LCP, " -"wpisz 0 aby zignorować błędy" +"Przypuszczaj że klient może być martwy po zadanej ilości błedów echa LCP, " +"wpisz 0 aby zignorować te błędy" msgid "Prevent listening on these interfaces." msgstr "Zapobiegaj nasłuchiwaniu na tych interfejsach." @@ -2840,7 +2844,7 @@ msgid "Request IPv6-address" msgstr "Zażądaj adresu IPv6" msgid "Request IPv6-prefix of length" -msgstr "" +msgstr "Zażądaj długość prefiksu IPv6" msgid "Required" msgstr "Wymagany" @@ -3007,8 +3011,8 @@ msgid "" "Send LCP echo requests at the given interval in seconds, only effective in " "conjunction with failure threshold" msgstr "" -"Co podany czas (w sekundach) wyślij zapytania LCP echo, to ustawienie działa " -"tylko gdy ustawiony jest próg błędu LCP echo" +"Wysyłaj żądania echa LCP w określonym przedziale czasowym, " +"efektywne tylko wtedy gdy jest ustawiony próg błedu LCP" msgid "Separate Clients" msgstr "Rozdziel klientów" @@ -3046,7 +3050,7 @@ msgid "Setup DHCP Server" msgstr "Ustawienia serwera DHCP" msgid "Severely Errored Seconds (SES)" -msgstr "" +msgstr "Ilość poważnych błedów (SES)" msgid "Short GI" msgstr "" @@ -3064,7 +3068,7 @@ msgid "Signal" msgstr "Sygnał" msgid "Signal Attenuation (SATN)" -msgstr "" +msgstr "Tłumienie sygnału (SATN)" msgid "Signal:" msgstr "Sygnał:" @@ -3159,7 +3163,7 @@ msgid "Start priority" msgstr "Priorytet uruchomienia" msgid "Starting configuration apply…" -msgstr "" +msgstr "Zatwierdzanie konfiguracji…" msgid "Starting wireless scan..." msgstr "Rozpoczynanie skanowania..." @@ -3193,7 +3197,7 @@ msgstr "" "odpowiednim dzierżawami." msgid "Status" -msgstr "Stan" +msgstr "Status" msgid "Stop" msgstr "Stop" @@ -3365,10 +3369,9 @@ msgid "" "compare them with the original file to ensure data integrity.<br /> Click " "\"Proceed\" below to start the flash procedure." msgstr "" -"Obraz flash`a został przesłany. Poniżej znajduje się suma kontrolna i " -"rozmiar obrazu, porównaj je z sumą kontrolną i rozmiarem oryginału, aby " -"upewnić się, że został przesłany poprawnie.<br /> Wciśnij \"Wykonaj\" aby " -"kontynuować aktualizację." +"Obraz flash został przesłany. Poniżej znajduje się suma kontrolna i " +"rozmiar pliku, porównaj je z orginałem aby zapewnić integralność " +"danych.<br /> Wciśnij \"Wykonaj\" aby kontynuować aktualizację." msgid "The following changes have been reverted" msgstr "Następujące zmiany zostały odrzucone" @@ -3450,7 +3453,7 @@ msgid "There are no active leases." msgstr "Brak aktywnych dzierżaw." msgid "There are no changes to apply." -msgstr "Nie ma żadnych zmian do zastosowania." +msgstr "Brak zmian do zastosowania." msgid "There are no pending changes to revert!" msgstr "Brak oczekujących zmian do przywrócenia!" @@ -3569,7 +3572,7 @@ msgstr "" "\"Wykonaj reset\" (możliwe tylko w przypadku obrazu squashfs)." msgid "Tone" -msgstr "" +msgstr "Ton" msgid "Total Available" msgstr "Całkowicie dostępna" @@ -3656,7 +3659,7 @@ msgid "Unable to resolve peer host name" msgstr "Nie można rozpoznać nazwy peera" msgid "Unavailable Seconds (UAS)" -msgstr "" +msgstr "Czas niedostępnośći (UAS)" msgid "Unknown" msgstr "Nieznany" @@ -3861,7 +3864,7 @@ msgstr "Trwa wprowadzenie zmian..." msgid "Waiting for command to complete..." msgstr "Trwa wykonanie polecenia..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "Oczekiwanie na zastosowanie konfiguracji… %ds" msgid "Waiting for device..." diff --git a/modules/luci-base/po/pt-br/base.po b/modules/luci-base/po/pt-br/base.po index 63a8b2f340..1065865d4b 100644 --- a/modules/luci-base/po/pt-br/base.po +++ b/modules/luci-base/po/pt-br/base.po @@ -3950,7 +3950,7 @@ msgstr "Esperando a aplicação das mudanças..." msgid "Waiting for command to complete..." msgstr "Esperando o término do comando..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/pt/base.po b/modules/luci-base/po/pt/base.po index d548b7c8d5..a871405cf5 100644 --- a/modules/luci-base/po/pt/base.po +++ b/modules/luci-base/po/pt/base.po @@ -3769,7 +3769,7 @@ msgstr "A aguardar que as mudanças sejam aplicadas..." msgid "Waiting for command to complete..." msgstr "A aguardar que o comando termine..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/ro/base.po b/modules/luci-base/po/ro/base.po index a28235bbd7..a7c4cf03ae 100644 --- a/modules/luci-base/po/ro/base.po +++ b/modules/luci-base/po/ro/base.po @@ -3646,7 +3646,7 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/ru/base.po b/modules/luci-base/po/ru/base.po index 8d542e6018..892e838da8 100644 --- a/modules/luci-base/po/ru/base.po +++ b/modules/luci-base/po/ru/base.po @@ -3921,7 +3921,7 @@ msgstr "Ожидание применения изменений..." msgid "Waiting for command to complete..." msgstr "Ожидание завершения выполнения команды..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "Ожидание применения конфигурации... %d сек." msgid "Waiting for device..." diff --git a/modules/luci-base/po/sk/base.po b/modules/luci-base/po/sk/base.po index 7cf9f6febb..afabaf138e 100644 --- a/modules/luci-base/po/sk/base.po +++ b/modules/luci-base/po/sk/base.po @@ -3614,7 +3614,7 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/sv/base.po b/modules/luci-base/po/sv/base.po index 76b5825906..4792474f65 100644 --- a/modules/luci-base/po/sv/base.po +++ b/modules/luci-base/po/sv/base.po @@ -3641,7 +3641,7 @@ msgstr "Väntar på att ändringarna ska tillämpas..." msgid "Waiting for command to complete..." msgstr "Väntar på att kommandot ska avsluta..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/templates/base.pot b/modules/luci-base/po/templates/base.pot index 2dacedfe79..7cd1d9d7c9 100644 --- a/modules/luci-base/po/templates/base.pot +++ b/modules/luci-base/po/templates/base.pot @@ -3607,7 +3607,7 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/tr/base.po b/modules/luci-base/po/tr/base.po index 383c683068..23dbe531a5 100644 --- a/modules/luci-base/po/tr/base.po +++ b/modules/luci-base/po/tr/base.po @@ -3627,7 +3627,7 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/uk/base.po b/modules/luci-base/po/uk/base.po index e4cf1ed0a8..8dbcc8b399 100644 --- a/modules/luci-base/po/uk/base.po +++ b/modules/luci-base/po/uk/base.po @@ -3944,7 +3944,7 @@ msgstr "Очікуємо, доки зміни наберуть чинності. msgid "Waiting for command to complete..." msgstr "Очікуємо завершення виконання команди..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "Чекаємо на застосування конфігурації… %d c" msgid "Waiting for device..." diff --git a/modules/luci-base/po/vi/base.po b/modules/luci-base/po/vi/base.po index 6451853bb4..f9d0e85981 100644 --- a/modules/luci-base/po/vi/base.po +++ b/modules/luci-base/po/vi/base.po @@ -3669,7 +3669,7 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-base/po/zh-cn/base.po b/modules/luci-base/po/zh-cn/base.po index d142390e1a..b8734d7e6e 100644 --- a/modules/luci-base/po/zh-cn/base.po +++ b/modules/luci-base/po/zh-cn/base.po @@ -1,10 +1,18 @@ +# +# Yangfl <mmyangfl@gmail.com>, 2018. +# msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" -"Last-Translator: Hsing-Wang Liao <kuoruan@gmail.com>\n" +"Last-Translator: Yangfl <mmyangfl@gmail.com>\n" +"Language-Team: <debian-l10n-chinese@lists.debian.org>\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2018-08-07 14:59+0800\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "%.1f dB" -msgstr "" +msgstr "%.1f dB" msgid "%s is untagged in multiple VLANs!" msgstr "%s 在多个 VLAN 中均未标记!" @@ -40,7 +48,7 @@ msgid "-- match by uuid --" msgstr "-- 根据 UUID 匹配 --" msgid "-- please select --" -msgstr "" +msgstr "-- 请选择 --" msgid "1 Minute Load:" msgstr "1 分钟负载:" @@ -129,7 +137,7 @@ msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address" msgstr "<abbr title=\"Media Access Control\">MAC</abbr> 地址" msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>" -msgstr "" +msgstr "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>" msgid "" "<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration " @@ -258,13 +266,13 @@ msgid "Alert" msgstr "警戒" msgid "Alias Interface" -msgstr "" +msgstr "接口别名" msgid "Alias of \"%s\"" -msgstr "" +msgstr "\"%s\" 的别名" msgid "All Servers" -msgstr "" +msgstr "所有服务器" msgid "" "Allocate IP addresses sequentially, starting from the lowest available " @@ -278,7 +286,7 @@ msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication" msgstr "允许 <abbr title=\"Secure Shell\">SSH</abbr> 密码验证" msgid "Allow AP mode to disconnect STAs based on low ACK condition" -msgstr "" +msgstr "允许 AP 模式时在 low ACK 的情况下断开无线终端" msgid "Allow all except listed" msgstr "仅允许列表外" @@ -315,6 +323,7 @@ msgid "" "Always use 40MHz channels even if the secondary channel overlaps. Using this " "option does not comply with IEEE 802.11n-2009!" msgstr "" +"即使辅助信道重叠,也始终使用 40MHz 信道。使用此选项不符合 IEEE 802.11n-2009!" msgid "Annex" msgstr "Annex" @@ -395,7 +404,7 @@ msgid "Apply request failed with status <code>%h</code>" msgstr "应用请求失败,状态 <code>%h</code>" msgid "Apply unchecked" -msgstr "应用未选中" +msgstr "强制应用" msgid "Architecture" msgstr "架构" @@ -508,7 +517,7 @@ msgid "Band" msgstr "频宽" msgid "Beacon Interval" -msgstr "" +msgstr "Beacon 间隔" msgid "" "Below is the determined list of files to backup. It consists of changed " @@ -566,7 +575,7 @@ msgid "CPU usage (%)" msgstr "CPU 使用率(%)" msgid "Call failed" -msgstr "" +msgstr "调用失败" msgid "Cancel" msgstr "取消" @@ -578,16 +587,16 @@ msgid "Chain" msgstr "链" msgid "Changes" -msgstr "修改数" +msgstr "更改数" msgid "Changes applied." msgstr "更改已应用。" msgid "Changes have been reverted." -msgstr "更改已取消。" +msgstr "更改已恢复。" msgid "Changes the administrator password for accessing the device" -msgstr "修改访问设备的管理员密码" +msgstr "更改访问设备的管理员密码" msgid "Channel" msgstr "信道" @@ -646,10 +655,10 @@ msgid "" msgstr "在给定时间(秒)后关闭非活动链接,0 为保持连接" msgid "Close list..." -msgstr "关闭列表..." +msgstr "关闭列表…" msgid "Collecting data..." -msgstr "正在收集数据..." +msgstr "正在收集数据…" msgid "Command" msgstr "命令" @@ -671,7 +680,7 @@ msgid "Configuration" msgstr "配置" msgid "Configuration failed" -msgstr "" +msgstr "配置失败" msgid "Configuration files will be kept." msgstr "配置文件将被保留。" @@ -695,7 +704,7 @@ msgid "Connection Limit" msgstr "连接数限制" msgid "Connection attempt failed" -msgstr "" +msgstr "尝试连接失败" msgid "Connections" msgstr "连接" @@ -705,7 +714,7 @@ msgid "" "changes. You might need to reconnect if you modified network related " "settings such as the IP address or wireless security credentials." msgstr "" -"应用配置更改后,无法重新获得对设备的访问权限。如果您修改了网络相关设置如 IP " +"应用配置更改后,无法重新获得对设备的访问权限。如果您更改了网络相关设置如 IP " "地址或无线安全证书,则可能需要重新连接。" msgid "Country" @@ -812,7 +821,7 @@ msgid "DSL line mode" msgstr "DSL 线路模式" msgid "DTIM Interval" -msgstr "" +msgstr "DTIM 间隔" msgid "DUID" msgstr "DUID" @@ -853,7 +862,7 @@ msgid "Delete this network" msgstr "删除此网络" msgid "Delivery Traffic Indication Message Interval" -msgstr "" +msgstr "发送流量指示消息间隔" msgid "Description" msgstr "描述" @@ -871,13 +880,13 @@ msgid "Device Configuration" msgstr "设备配置" msgid "Device is rebooting..." -msgstr "设备正在重启..." +msgstr "设备正在重启…" msgid "Device unreachable!" msgstr "无法连接到设备" msgid "Device unreachable! Still waiting for device..." -msgstr "" +msgstr "无法连接到设备!仍旧等待设备…" msgid "Diagnostics" msgstr "网络诊断" @@ -911,16 +920,16 @@ msgid "Disabled" msgstr "已禁用" msgid "Disabled (default)" -msgstr "禁用(默认)" +msgstr "已禁用(默认)" msgid "Disassociate On Low Acknowledgement" -msgstr "" +msgstr "在低 Ack 应答时断开连接" msgid "Discard upstream RFC1918 responses" msgstr "丢弃 RFC1918 上行响应数据" msgid "Disconnection attempt failed" -msgstr "" +msgstr "尝试断开连接失败" msgid "Dismiss" msgstr "解除" @@ -975,7 +984,7 @@ msgstr "" "不转发没有 <abbr title=\"Domain Name System\">DNS</abbr> 名称的解析请求" msgid "Down" -msgstr "" +msgstr "向下" msgid "Download and install package" msgstr "下载并安装软件包" @@ -1018,7 +1027,7 @@ msgid "EAP-Method" msgstr "EAP 类型" msgid "Edit" -msgstr "修改" +msgstr "编辑" msgid "" "Edit the raw configuration data above to fix any error and hit \"Save\" to " @@ -1026,10 +1035,10 @@ msgid "" msgstr "编辑上方的原始配置数据来修复错误,点击“保存”按钮以重新载入此页面。" msgid "Edit this interface" -msgstr "修改此接口" +msgstr "编辑此接口" msgid "Edit this network" -msgstr "修改此网络" +msgstr "编辑此网络" msgid "Emergency" msgstr "紧急" @@ -1041,7 +1050,7 @@ msgid "" "Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> " "snooping" msgstr "" -"启用 <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> 窥探" +"启用 <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> 嗅探" msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>" msgstr "开启 <abbr title=\"Spanning Tree Protocol\">STP</abbr>" @@ -1092,7 +1101,7 @@ msgid "Enable this mount" msgstr "启用此挂载点" msgid "Enable this network" -msgstr "" +msgstr "启用此网络" msgid "Enable this swap" msgstr "启用此 swap 分区" @@ -1127,13 +1136,13 @@ msgid "Endpoint Port" msgstr "端点端口" msgid "Enter custom value" -msgstr "" +msgstr "输入自定义值" msgid "Enter custom values" -msgstr "" +msgstr "输入自定义值" msgid "Erasing..." -msgstr "擦除中..." +msgstr "擦除中…" msgid "Error" msgstr "错误" @@ -1182,16 +1191,16 @@ msgid "Extra SSH command options" msgstr "额外的 SSH 命令选项" msgid "FT over DS" -msgstr "" +msgstr "FT over DS" msgid "FT over the Air" -msgstr "" +msgstr "FT over the Air" msgid "FT protocol" msgstr "FT 协议" msgid "Failed to confirm apply within %ds, waiting for rollback…" -msgstr "在 %d 秒内确认应用失败,等待回滚..." +msgstr "在 %d 秒内确认应用失败,等待回滚…" msgid "File" msgstr "文件" @@ -1212,7 +1221,7 @@ msgid "Filter useless" msgstr "过滤无用包" msgid "Finalizing failed" -msgstr "" +msgstr "最终确认失败" msgid "" "Find all currently attached filesystems and swap and replace configuration " @@ -1253,7 +1262,7 @@ msgid "Flash Firmware" msgstr "刷新固件" msgid "Flash image..." -msgstr "刷写固件..." +msgstr "刷写固件…" msgid "Flash new firmware image" msgstr "刷写新的固件" @@ -1262,13 +1271,13 @@ msgid "Flash operations" msgstr "刷新操作" msgid "Flashing..." -msgstr "刷写中..." +msgstr "正在刷写…" msgid "Force" msgstr "强制" msgid "Force 40MHz mode" -msgstr "" +msgstr "强制 40MHz 模式" msgid "Force CCMP (AES)" msgstr "强制 CCMP(AES)" @@ -1335,7 +1344,7 @@ msgid "Gateway" msgstr "网关" msgid "Gateway address is invalid" -msgstr "" +msgstr "网关地址无效" msgid "Gateway ports" msgstr "网关端口" @@ -1371,7 +1380,7 @@ msgid "Global network options" msgstr "全局网络选项" msgid "Go to password configuration..." -msgstr "跳转到密码配置页..." +msgstr "跳转到密码配置页…" msgid "Go to relevant configuration page" msgstr "跳转到相关的配置页面" @@ -1423,7 +1432,7 @@ msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network" msgstr "主机 <abbr title=\"Internet Protocol Address\">IP</abbr> 或网络" msgid "Host-Uniq tag content" -msgstr "" +msgstr "Host-Uniq 标签内容" msgid "Hostname" msgstr "主机名" @@ -1447,10 +1456,10 @@ msgid "IP address" msgstr "IP 地址" msgid "IP address in invalid" -msgstr "" +msgstr "IP 地址无效" msgid "IP address is missing" -msgstr "" +msgstr "IP 地址缺失" msgid "IPv4" msgstr "IPv4" @@ -1622,7 +1631,7 @@ msgid "Info" msgstr "信息" msgid "Initialization failure" -msgstr "" +msgstr "初始化失败" msgid "Initscript" msgstr "启动脚本" @@ -1640,7 +1649,7 @@ msgid "Install package %q" msgstr "安装软件包 %q" msgid "Install protocol extensions..." -msgstr "安装扩展协议..." +msgstr "安装扩展协议…" msgid "Installed packages" msgstr "已安装软件包" @@ -1658,7 +1667,7 @@ msgid "Interface Overview" msgstr "接口总览" msgid "Interface is reconnecting..." -msgstr "正在重新连接接口..." +msgstr "正在重新连接接口…" msgid "Interface name" msgstr "接口名称" @@ -1860,7 +1869,7 @@ msgid "Loading" msgstr "加载中" msgid "Local IP address is invalid" -msgstr "" +msgstr "本地 IP 地址无效" msgid "Local IP address to assign" msgstr "要分配的本地 IP 地址" @@ -1927,7 +1936,7 @@ msgid "Lowest leased address as offset from the network address." msgstr "网络地址的起始分配基址。" msgid "MAC" -msgstr "" +msgstr "MAC" msgid "MAC-Address" msgstr "MAC 地址" @@ -1945,7 +1954,7 @@ msgid "MAP / LW4over6" msgstr "MAP / LW4over6" msgid "MAP rule is invalid" -msgstr "" +msgstr "MAP 规则无效" msgid "MB/s" msgstr "MB/s" @@ -2029,7 +2038,7 @@ msgid "Modem device" msgstr "调制解调器节点" msgid "Modem information query failed" -msgstr "" +msgstr "调制解调器信息查询失败" msgid "Modem init timeout" msgstr "调制解调器初始化超时" @@ -2127,13 +2136,13 @@ msgid "Network boot image" msgstr "网络启动镜像" msgid "Network device is not present" -msgstr "" +msgstr "网络设备不存在" msgid "Network without interfaces." msgstr "无接口的网络。" msgid "Next »" -msgstr "下一步 »" +msgstr "前进 »" msgid "No DHCP Server configured for this interface" msgstr "本接口未配置 DHCP 服务器" @@ -2151,7 +2160,7 @@ msgid "No information available" msgstr "无可用信息" msgid "No matching prefix delegation" -msgstr "" +msgstr "无匹配的前缀委托" msgid "No negative cache" msgstr "禁用无效信息缓存" @@ -2172,7 +2181,7 @@ msgid "No rules in this chain" msgstr "本链没有规则" msgid "No scan results available yet..." -msgstr "" +msgstr "还没有可用的扫描结果…" msgid "No zone assigned" msgstr "未指定区域" @@ -2269,7 +2278,7 @@ msgid "One or more required fields have no value!" msgstr "一个或多个必选项值为空!" msgid "Open list..." -msgstr "打开列表..." +msgstr "打开列表……" msgid "OpenConnect (CISCO AnyConnect)" msgstr "OpenConnect (CISCO AnyConnect)" @@ -2278,10 +2287,10 @@ msgid "Operating frequency" msgstr "工作频率" msgid "Option changed" -msgstr "修改的选项" +msgstr "选项已更改" msgid "Option removed" -msgstr "移除的选项" +msgstr "选项已移除" msgid "Optional" msgstr "可选" @@ -2311,7 +2320,7 @@ msgid "Optional. Create routes for Allowed IPs for this peer." msgstr "可选,为此 Peer 创建允许 IP 的路由。" msgid "Optional. Description of peer." -msgstr "" +msgstr "可选,Peer 的描述。" msgid "" "Optional. Host of peer. Names are resolved prior to bringing up the " @@ -2394,7 +2403,7 @@ msgid "PIN" msgstr "PIN" msgid "PIN code rejected" -msgstr "" +msgstr "PIN 码被拒绝" msgid "PMK R1 Push" msgstr "R1 推送 PMK" @@ -2454,7 +2463,7 @@ msgid "Password of inner Private Key" msgstr "内部私钥的密码" msgid "Password successfully changed!" -msgstr "密码修改成功!" +msgstr "密码更改成功!" msgid "Password2" msgstr "密码 2" @@ -2484,7 +2493,7 @@ msgid "Peer IP address to assign" msgstr "要分配的 Peer IP 地址" msgid "Peer address is missing" -msgstr "" +msgstr "Peer 地址缺失" msgid "Peers" msgstr "Peers" @@ -2606,6 +2615,7 @@ msgid "" "Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> " "servers" msgstr "" +"查询所有可用的上游 <abbr title=\"Domain Name System\">DNS</abbr> 服务器" msgid "R0 Key Lifetime" msgstr "R0 密钥生存期" @@ -2644,7 +2654,7 @@ msgid "Radius-Authentication-Server" msgstr "Radius 认证服务器" msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this" -msgstr "" +msgstr "原始 16 进制编码的字节。除非您的 ISP 要求,否则请留空" msgid "" "Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host " @@ -2657,13 +2667,14 @@ msgid "" "Really delete this interface? The deletion cannot be undone! You might lose " "access to this device if you are connected via this interface" msgstr "" +"确定要删除此接口?删除操作无法撤消!若您删除此接口,可能导致无法再访问此设备" msgid "" "Really delete this wireless network? The deletion cannot be undone! You " "might lose access to this device if you are connected via this network." msgstr "" -"确定要删除此无线网络?删除操作无法撤销!\\n删除此无线网络,可能导致无法再访问" -"路由器!" +"确定要删除此无线网络?删除操作无法撤销!若您删除此无线网络,可能导致无法再访" +"问此设备。" msgid "Really reset all changes?" msgstr "确定要放弃所有更改?" @@ -2696,7 +2707,7 @@ msgid "Reboot" msgstr "重启" msgid "Rebooting..." -msgstr "重启中..." +msgstr "正在重启…" msgid "Reboots the operating system of your device" msgstr "重启您设备上的系统" @@ -2806,7 +2817,7 @@ msgid "Restart Firewall" msgstr "重启防火墙" msgid "Restart radio interface" -msgstr "" +msgstr "重启无线接口" msgid "Restore" msgstr "恢复" @@ -2827,7 +2838,7 @@ msgid "Revert request failed with status <code>%h</code>" msgstr "恢复请求失败,状态 <code>%h</code>" msgid "Reverting configuration…" -msgstr "正在恢复配置..." +msgstr "正在恢复配置…" msgid "Root" msgstr "Root" @@ -2898,7 +2909,7 @@ msgid "Scan" msgstr "扫描" msgid "Scan request failed" -msgstr "" +msgstr "扫描请求失败" msgid "Scheduled Tasks" msgstr "计划任务" @@ -2943,10 +2954,10 @@ msgid "Set up Time Synchronization" msgstr "设置时间同步" msgid "Setting PLMN failed" -msgstr "" +msgstr "设置 PLMN 失败" msgid "Setting operation mode failed" -msgstr "" +msgstr "设置操作模式失败" msgid "Setup DHCP Server" msgstr "配置 DHCP 服务器" @@ -2958,7 +2969,7 @@ msgid "Short GI" msgstr "Short GI" msgid "Short Preamble" -msgstr "" +msgstr "Short Preamble" msgid "Show current backup file list" msgstr "显示当前备份文件列表" @@ -3061,10 +3072,10 @@ msgid "Start priority" msgstr "启动优先级" msgid "Starting configuration apply…" -msgstr "开始应用配置..." +msgstr "开始应用配置…" msgid "Starting wireless scan..." -msgstr "" +msgstr "正在启动无线扫描…" msgid "Startup" msgstr "启动项" @@ -3142,7 +3153,7 @@ msgid "Sync with browser" msgstr "同步浏览器时间" msgid "Synchronizing..." -msgstr "同步中..." +msgstr "正在同步…" msgid "System" msgstr "系统" @@ -3220,7 +3231,7 @@ msgstr "" "code>" msgid "The backup archive does not appear to be a valid gzip file." -msgstr "" +msgstr "备份存档似乎不是有效的 gzip 文件。" msgid "The configuration file could not be loaded due to the following error:" msgstr "由于以下错误,配置文件无法被加载:" @@ -3234,9 +3245,9 @@ msgid "" "or revert all pending changes to keep the currently working configuration " "state." msgstr "" -"在应用挂起的更改后 %d 秒内无法到达该设备,出于安全原因导致配置回滚。如果您认" -"为配置更改仍然正确,请执行未选中的配置应用。或者您可以在尝试再次应用之前解除" -"此警告并编辑更改,或者还原所有未完成的更改以保持当前正在工作的配置状态。" +"在应用挂起的更改后 %d 秒内无法连接到此设备,出于安全原因导致配置回滚。如果您" +"认为配置的更改是正确的,请执行强制应用。或者您可以在再次尝试应用之前解除此警" +"告并编辑配置,或者恢复所有挂起的更改以保持当前正在工作的配置状态。" msgid "" "The device file of the memory or partition (<abbr title=\"for example\">e.g." @@ -3260,7 +3271,7 @@ msgstr "" "过程中切勿断电!" msgid "The following changes have been reverted" -msgstr "以下更改已放弃" +msgstr "以下更改已恢复" msgid "The following rules are currently active on this system." msgstr "以下规则当前在系统中处于活动状态。" @@ -3276,10 +3287,10 @@ msgstr "本机的硬件不支持多 SSID,如果继续,现有配置将被替 msgid "" "The length of the IPv4 prefix in bits, the remainder is used in the IPv6 " "addresses." -msgstr "IPv4 前缀长度(bit),其余的用在 IPv6 地址。" +msgstr "IPv4 前缀长度(位),其余的用在 IPv6 地址。" msgid "The length of the IPv6 prefix in bits" -msgstr "IPv6 前缀长度(bit)" +msgstr "IPv6 前缀长度(位)" msgid "The local IPv4 address over which the tunnel is created (optional)." msgstr "所创建隧道的本地 IPv4 地址(可选)。" @@ -3314,7 +3325,7 @@ msgid "" "address of your computer to reach the device again, depending on your " "settings." msgstr "" -"正在刷新系统...<br />切勿关闭电源! DO NOT POWER OFF THE DEVICE!<br />等待数分" +"正在刷写系统…<br />切勿关闭电源! DO NOT POWER OFF THE DEVICE!<br />等待数分" "钟后即可尝试重新连接到路由。您可能需要更改计算机的 IP 地址以重新连接。" msgid "" @@ -3326,13 +3337,13 @@ msgid "There are no active leases." msgstr "没有已分配的租约。" msgid "There are no changes to apply." -msgstr "没有待生效的更改。" +msgstr "没有待应用的更改。" msgid "There are no pending changes to revert!" -msgstr "没有可放弃的更改!" +msgstr "没有挂起的更改可恢复!" msgid "There are no pending changes!" -msgstr "没有待生效的更改!" +msgstr "没有挂起的更改!" msgid "" "There is no device assigned yet, please attach a network device in the " @@ -3360,7 +3371,7 @@ msgid "" "include during sysupgrade. Modified files in /etc/config/ and certain other " "configurations are automatically preserved." msgstr "" -"系统升级时要保存的配置文件和目录的清单。目录 /etc/config/ 内修改过的文件以及" +"系统升级时要保存的配置文件和目录的清单。目录 /etc/config/ 内更改过的文件以及" "部分其他配置会被自动保存。" msgid "" @@ -3494,25 +3505,25 @@ msgid "UUID" msgstr "UUID" msgid "Unable to determine device name" -msgstr "" +msgstr "无法确认设备名称" msgid "Unable to determine external IP address" -msgstr "" +msgstr "无法确认外部 IP 地址" msgid "Unable to determine upstream interface" -msgstr "" +msgstr "无法确认上游接口" msgid "Unable to dispatch" msgstr "无法调度" msgid "Unable to obtain client ID" -msgstr "" +msgstr "无法获取客户端 ID" msgid "Unable to resolve AFTR host name" -msgstr "" +msgstr "无法解析 AFTR 主机名" msgid "Unable to resolve peer host name" -msgstr "" +msgstr "无法解析 Pear 主机名" msgid "Unavailable Seconds (UAS)" msgstr "不可用秒数(UAS)" @@ -3524,7 +3535,7 @@ msgid "Unknown Error, password not changed!" msgstr "未知错误,密码未更改!" msgid "Unknown error (%s)" -msgstr "" +msgstr "未知错误(%s)" msgid "Unmanaged" msgstr "不配置协议" @@ -3536,16 +3547,16 @@ msgid "Unsaved Changes" msgstr "未保存的配置" msgid "Unsupported MAP type" -msgstr "" +msgstr "不支持的 MAP 类型" msgid "Unsupported modem" -msgstr "" +msgstr "不支持的调制解调器" msgid "Unsupported protocol type." msgstr "不支持的协议类型" msgid "Up" -msgstr "" +msgstr "向上" msgid "Update lists" msgstr "刷新列表" @@ -3685,7 +3696,7 @@ msgid "Version" msgstr "版本" msgid "Virtual dynamic interface" -msgstr "" +msgstr "虚拟动态接口" msgid "WDS" msgstr "WDS" @@ -3713,16 +3724,16 @@ msgstr "" "点 Ad-Hoc 模式)。" msgid "Waiting for changes to be applied..." -msgstr "正在应用更改..." +msgstr "正在应用更改…" msgid "Waiting for command to complete..." -msgstr "等待命令执行完成..." +msgstr "等待命令执行完成…" -msgid "Waiting for configuration to get applied… %ds" -msgstr "等待应用配置... %d 秒" +msgid "Waiting for configuration to be applied… %ds" +msgstr "等待应用配置… %d 秒" msgid "Waiting for device..." -msgstr "等待设备..." +msgstr "等待设备…" msgid "Warning" msgstr "警告" @@ -3760,10 +3771,10 @@ msgid "Wireless is disabled" msgstr "无线未开启" msgid "Wireless is not associated" -msgstr "无线未未关联" +msgstr "无线未关联" msgid "Wireless is restarting..." -msgstr "无线重启中..." +msgstr "无线重启中…" msgid "Wireless network is disabled" msgstr "无线网络已禁用" @@ -3795,7 +3806,7 @@ msgid "" "or Safari." msgstr "" "您的 IE 浏览器太老了,无法正常显示这个页面!请更新到 IE7 及以上或使用其他浏览" -"器,例如:Chrome、Firefox、Opera、Safari。" +"器,如 Firefox、Opera、Safari。" msgid "any" msgstr "任意" @@ -3810,7 +3821,7 @@ msgid "bridged" msgstr "桥接的" msgid "create" -msgstr "" +msgstr "创建" msgid "create:" msgstr "创建:" @@ -3871,13 +3882,13 @@ msgid "kbit/s" msgstr "kbit/s" msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file" -msgstr "本地 <abbr title=\"Domain Name Syste\">DNS</abbr> 解析文件" +msgstr "本地 <abbr title=\"Domain Name System\">DNS</abbr> 解析文件" msgid "minutes" msgstr "分钟" msgid "mixed WPA/WPA2" -msgstr "" +msgstr "混合 WPA/WPA2" msgid "no" msgstr "否" @@ -3901,7 +3912,7 @@ msgid "open" msgstr "开放式" msgid "output" -msgstr "" +msgstr "输出" msgid "overlay" msgstr "覆盖" @@ -3919,13 +3930,13 @@ msgid "server mode" msgstr "服务器模式" msgid "stateful-only" -msgstr "有状态的" +msgstr "有状态" msgid "stateless" -msgstr "无状态的" +msgstr "无状态" msgid "stateless + stateful" -msgstr "无状态的 + 有状态的" +msgstr "无状态 + 有状态" msgid "tagged" msgstr "已标记" diff --git a/modules/luci-base/po/zh-tw/base.po b/modules/luci-base/po/zh-tw/base.po index 579d52656a..be6d86403f 100644 --- a/modules/luci-base/po/zh-tw/base.po +++ b/modules/luci-base/po/zh-tw/base.po @@ -3701,7 +3701,7 @@ msgstr "等待修改被啟用..." msgid "Waiting for command to complete..." msgstr "等待完整性指令..." -msgid "Waiting for configuration to get applied… %ds" +msgid "Waiting for configuration to be applied… %ds" msgstr "" msgid "Waiting for device..." diff --git a/modules/luci-mod-admin-full/luasrc/controller/admin/uci.lua b/modules/luci-mod-admin-full/luasrc/controller/admin/uci.lua index 9533ff5e6e..1d955dd982 100644 --- a/modules/luci-mod-admin-full/luasrc/controller/admin/uci.lua +++ b/modules/luci-mod-admin-full/luasrc/controller/admin/uci.lua @@ -9,7 +9,7 @@ function index() or table.concat(luci.dispatcher.context.request, "/") entry({"admin", "uci"}, nil, _("Configuration")) - entry({"admin", "uci", "changes"}, call("action_changes"), _("Changes"), 40).query = {redir=redir} + entry({"admin", "uci", "changes"}, post_on({ trigger_apply = true }, "action_changes"), _("Changes"), 40).query = {redir=redir} entry({"admin", "uci", "revert"}, post("action_revert"), _("Revert"), 30).query = {redir=redir} local node @@ -25,9 +25,9 @@ function index() node.cors = true node.sysauth_authenticator = authen - node = entry({"admin", "uci", "confirm"}, post("action_confirm"), nil) + node = entry({"admin", "uci", "confirm"}, call("action_confirm"), nil) node.cors = true - node.sysauth_authenticator = authen + node.sysauth = false end @@ -36,8 +36,9 @@ function action_changes() local changes = uci:changes() luci.template.render("admin_uci/changes", { - changes = next(changes) and changes, - timeout = timeout + changes = next(changes) and changes, + timeout = timeout, + trigger_apply = luci.http.formvalue("trigger_apply") and true or false }) end @@ -52,7 +53,8 @@ function action_revert() end luci.template.render("admin_uci/revert", { - changes = next(changes) and changes + changes = next(changes) and changes, + trigger_revert = true }) end @@ -84,8 +86,13 @@ end function action_apply_rollback() local uci = require "luci.model.uci" - local _, errstr = uci:apply(true) - ubus_state_to_http(errstr) + local token, errstr = uci:apply(true) + if token then + luci.http.prepare_content("application/json") + luci.http.write_json({ token = token }) + else + ubus_state_to_http(errstr) + end end function action_apply_unchecked() @@ -96,6 +103,7 @@ end function action_confirm() local uci = require "luci.model.uci" - local _, errstr = uci:confirm() + local token = luci.http.formvalue("token") + local _, errstr = uci:confirm(token) ubus_state_to_http(errstr) end diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi_overview.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi_overview.lua index 32bf1965f3..ad20f09187 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi_overview.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi_overview.lua @@ -70,7 +70,7 @@ local tpl_radio = tpl.Template(nil, [[ <!-- physical device --> <div class="tr cbi-rowstyle-2"> <div class="td col-2 center middle"> - <span class="ifacebadge"><img src="<%=resource%>/icons/wifi_toggled.png" id="<%=dev:name()%>-iw-upstate" /> <%=dev:name()%></span> + <span class="ifacebadge"><img src="<%=resource%>/icons/wifi_disabled.png" id="<%=dev:name()%>-iw-upstate" /> <%=dev:name()%></span> </div> <div class="td col-7 left middle"> <big><strong><%=hw%></strong></big><br /> @@ -115,8 +115,8 @@ local tpl_radio = tpl.Template(nil, [[ </div> <% end %> <% else %> - <div class="tr cbi-rowstyle-2"> - <div class="td left"> + <div class="tr placeholder"> + <div class="td"> <em><%:No network configured on this device%></em> </div> </div> diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview_status.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview_status.htm index bdf1c083ae..7427154a04 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview_status.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview_status.htm @@ -110,7 +110,7 @@ if (!ifc.is_dynamic && !ifc.is_alias) { if (ifc.macaddr) - html += String.format('<strong><%:MAC-Address%>:</strong> %s<br />', ifc.macaddr); + html += String.format('<strong><%:MAC%>:</strong> %s<br />', ifc.macaddr); html += String.format( '<strong><%:RX%>:</strong> %.2mB (%d <%:Pkts.%>)<br />' + diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_status.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_status.htm index 9c5173dae2..34be35dd20 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_status.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_status.htm @@ -17,7 +17,7 @@ html += String.format('<strong><%:Uptime%>:</strong> %t<br />', ifc.uptime); if (ifc.macaddr) - html += String.format('<strong><%:MAC-Address%>:</strong> %s<br />', ifc.macaddr); + html += String.format('<strong><%:MAC%>:</strong> %s<br />', ifc.macaddr); html += String.format( '<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />' + diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm index db8535086f..29a03f2554 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm @@ -221,63 +221,36 @@ <% end %> <% if has_dsl then %> - var dsl_i = document.getElementById('dsl_i'); - var dsl_s = document.getElementById('dsl_s'); - - var s = String.format( - '<strong><%:Status%>: </strong>%s<br />' + - '<strong><%:Line State%>: </strong>%s [0x%x]<br />' + - '<strong><%:Line Mode%>: </strong>%s<br />' + - '<strong><%:Annex%>: </strong>%s<br />' + - '<strong><%:Profile%>: </strong>%s<br />' + - '<strong><%:Data Rate%>: </strong>%s/s / %s/s<br />' + - '<strong><%:Max. Attainable Data Rate (ATTNDR)%>: </strong>%s/s / %s/s<br />' + - '<strong><%:Latency%>: </strong>%s / %s<br />' + - '<strong><%:Line Attenuation (LATN)%>: </strong>%s dB / %s dB<br />' + - '<strong><%:Signal Attenuation (SATN)%>: </strong>%s dB / %s dB<br />' + - '<strong><%:Noise Margin (SNR)%>: </strong>%s dB / %s dB<br />' + - '<strong><%:Aggregate Transmit Power(ACTATP)%>: </strong>%s dB / %s dB<br />' + - '<strong><%:Forward Error Correction Seconds (FECS)%>: </strong>%s / %s<br />' + - '<strong><%:Errored seconds (ES)%>: </strong>%s / %s<br />' + - '<strong><%:Severely Errored Seconds (SES)%>: </strong>%s / %s<br />' + - '<strong><%:Loss of Signal Seconds (LOSS)%>: </strong>%s / %s<br />' + - '<strong><%:Unavailable Seconds (UAS)%>: </strong>%s / %s<br />' + - '<strong><%:Header Error Code Errors (HEC)%>: </strong>%s / %s<br />' + - '<strong><%:Non Pre-emtive CRC errors (CRC_P)%>: </strong>%s / %s<br />' + - '<strong><%:Pre-emtive CRC errors (CRCP_P)%>: </strong>%s / %s<br />' + - '<strong><%:Line Uptime%>: </strong>%s<br />' + - '<strong><%:ATU-C System Vendor ID%>: </strong>%s<br />' + - '<strong><%:Power Management Mode%>: </strong>%s<br />', - info.dsl.line_state, info.dsl.line_state_detail, - info.dsl.line_state_num, - info.dsl.line_mode_s, - info.dsl.annex_s, - info.dsl.profile_s, - info.dsl.data_rate_down_s, info.dsl.data_rate_up_s, - info.dsl.max_data_rate_down_s, info.dsl.max_data_rate_up_s, - info.dsl.latency_num_down, info.dsl.latency_num_up, - info.dsl.line_attenuation_down, info.dsl.line_attenuation_up, - info.dsl.signal_attenuation_down, info.dsl.signal_attenuation_up, - info.dsl.noise_margin_down, info.dsl.noise_margin_up, - info.dsl.actatp_down, info.dsl.actatp_up, - info.dsl.errors_fec_near, info.dsl.errors_fec_far, - info.dsl.errors_es_near, info.dsl.errors_es_far, - info.dsl.errors_ses_near, info.dsl.errors_ses_far, - info.dsl.errors_loss_near, info.dsl.errors_loss_far, - info.dsl.errors_uas_near, info.dsl.errors_uas_far, - info.dsl.errors_hec_near, info.dsl.errors_hec_far, - info.dsl.errors_crc_p_near, info.dsl.errors_crc_p_far, - info.dsl.errors_crcp_p_near, info.dsl.errors_crcp_p_far, - info.dsl.line_uptime_s, - info.dsl.atuc_vendor_id, - info.dsl.power_mode_s - ); - - dsl_s.innerHTML = String.format('<small>%s</small>', s); - dsl_i.innerHTML = String.format( - '<img src="<%=resource%>/icons/ethernet.png" />' + - '<br /><small>DSL</small>' - ); + var ds = document.getElementById('dsl_status_table'); + + while (ds.lastElementChild) + ds.removeChild(ds.lastElementChild); + + ds.appendChild(renderBox( + '<%:DSL Status%>', + (info.dsl.line_state === 'UP'), [ ], + '<%:Line State%>', '%s [0x%x]'.format(info.dsl.line_state, info.dsl.line_state_detail), + '<%:Line Mode%>', info.dsl.line_mode_s || '-', + '<%:Line Uptime%>', info.dsl.line_uptime_s || '-', + '<%:Annex%>', info.dsl.annex_s || '-', + '<%:Profile%>', info.dsl.profile_s || '-', + '<%:Data Rate%>', '%s/s / %s/s'.format(info.dsl.data_rate_down_s, info.dsl.data_rate_up_s), + '<%:Max. Attainable Data Rate (ATTNDR)%>', '%s/s / %s/s'.format(info.dsl.max_data_rate_down_s, info.dsl.max_data_rate_up_s), + '<%:Latency%>', '%s / %s'.format(info.dsl.latency_num_down, info.dsl.latency_num_up), + '<%:Line Attenuation (LATN)%>', '%.1f dB / %.1f dB'.format(info.dsl.line_attenuation_down, info.dsl.line_attenuation_up), + '<%:Signal Attenuation (SATN)%>', '%.1f dB / %.1f dB'.format(info.dsl.signal_attenuation_down, info.dsl.signal_attenuation_up), + '<%:Noise Margin (SNR)%>', '%.1f dB / %.1f dB'.format(info.dsl.noise_margin_down, info.dsl.noise_margin_up), + '<%:Aggregate Transmit Power(ACTATP)%>', '%.1f dB / %.1f dB'.format(info.dsl.actatp_down, info.dsl.actatp_up), + '<%:Forward Error Correction Seconds (FECS)%>', '%d / %d'.format(info.dsl.errors_fec_near, info.dsl.errors_fec_far), + '<%:Errored seconds (ES)%>', '%d / %d'.format(info.dsl.errors_es_near, info.dsl.errors_es_far), + '<%:Severely Errored Seconds (SES)%>', '%d / %d'.format(info.dsl.errors_ses_near, info.dsl.errors_ses_far), + '<%:Loss of Signal Seconds (LOSS)%>', '%d / %d'.format(info.dsl.errors_loss_near, info.dsl.errors_loss_far), + '<%:Unavailable Seconds (UAS)%>', '%d / %d'.format(info.dsl.errors_uas_near, info.dsl.errors_uas_far), + '<%:Header Error Code Errors (HEC)%>', '%d / %d'.format(info.dsl.errors_hec_near, info.dsl.errors_hec_far), + '<%:Non Pre-emtive CRC errors (CRC_P)%>', '%d / %d'.format(info.dsl.errors_crc_p_near, info.dsl.errors_crc_p_far), + '<%:Pre-emtive CRC errors (CRCP_P)%>', '%d / %d'.format(info.dsl.errors_crcp_p_near, info.dsl.errors_crcp_p_far), + '<%:ATU-C System Vendor ID%>', info.dsl.atuc_vendor_id, + '<%:Power Management Mode%>', info.dsl.power_mode_s)); <% end %> <% if has_wifi then %> @@ -452,18 +425,8 @@ <div class="cbi-section"> <h3><%:DSL%></h3> - <div class="table" width="100%"> - <div class="tr"> - <div class="td left" width="33%" style="vertical-align:top"><%:DSL Status%></div> - <div class="td"> - <div class="table"> - <div class="tr"> - <div class="td" id="dsl_i" style="width:16px; text-align:center; padding:3px"><img src="<%=resource%>/icons/ethernet_disabled.png" /><br /><small>?</small></div> - <div class="td left" id="dsl_s" style="vertical-align:middle; padding: 3px"><em><%:Collecting data...%></em></div> - </div> - </div> - </div> - </div> + <div id="dsl_status_table" class="network-status-table"> + <p><em><%:Collecting data...%></em></p> </div> </div> <% end %> diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm b/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm index 1b959afc54..280eabb8ea 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm @@ -102,7 +102,7 @@ end <div class="cbi-value"> <label class="cbi-value-title"><%:Download and install package%>:</label> <div class="cbi-value-field"> - <input type="text" name="url" size="30" value="" /> + <span><input type="text" name="url" size="30" value="" /></span> <input class="cbi-button cbi-button-save" type="submit" name="go" value="<%:OK%>" /> </div> </div> @@ -110,7 +110,7 @@ end <div class="cbi-value cbi-value-last"> <label class="cbi-value-title"><%:Filter%>:</label> <div class="cbi-value-field"> - <input type="text" name="query" size="20" value="<%=pcdata(query)%>" /> + <span><input type="text" name="query" size="20" value="<%=pcdata(query)%>" /></span> <input type="submit" class="cbi-button cbi-button-action" name="search" value="<%:Find package%>" /> </div> </div> diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_uci/changes.htm b/modules/luci-mod-admin-full/luasrc/view/admin_uci/changes.htm index 6282244757..43bd7c23fb 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_uci/changes.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_uci/changes.htm @@ -8,11 +8,9 @@ <%- local node, redir_url = luci.dispatcher.lookup(luci.http.formvalue("redir")) + export("redirect", redir_url or url("admin/uci/changes")) - include("cbi/apply_widget") include("admin_uci/changelog") - - cbi_apply_widget(redir_url or url("admin/uci/changes")) -%> <h2 name="content"><%:Configuration%> / <%:Changes%></h2> @@ -32,7 +30,11 @@ </form> <% end %> - <input class="cbi-button cbi-button-save" type="button" id="apply_button" value="<%:Save & Apply%>" onclick="uci_apply(true); this.blur()" /> + <form method="post" action="<%=url("admin/uci/changes")%>"> + <input type="hidden" name="token" value="<%=token%>" /> + <input type="hidden" name="redir" value="<%=pcdata(luci.http.formvalue("redir"))%>" /> + <input class="cbi-button cbi-button-save" type="submit" name="trigger_apply" value="<%:Save & Apply%>" /> + </form> <form method="post" action="<%=url("admin/uci/revert")%>"> <input type="hidden" name="token" value="<%=token%>" /> <input type="hidden" name="redir" value="<%=pcdata(luci.http.formvalue("redir"))%>" /> diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_uci/revert.htm b/modules/luci-mod-admin-full/luasrc/view/admin_uci/revert.htm index ff23d568dc..d8fd3de01e 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_uci/revert.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_uci/revert.htm @@ -8,11 +8,9 @@ <%- local node, redir_url = luci.dispatcher.lookup(luci.http.formvalue("redir")) + export("redirect", redir_url or url("admin/uci/changes")) - include("cbi/apply_widget") include("admin_uci/changelog") - - cbi_apply_widget(redir_url or url("admin/uci/revert")) -%> <h2 name="content"><%:Configuration%> / <%:Revert%></h2> @@ -24,13 +22,6 @@ <p><strong><%:There are no pending changes to revert!%></strong></p> <% end %> -<div class="alert-message" id="cbi_apply_status" style="display:none"></div> -<script type="text/javascript"> - document.addEventListener("DOMContentLoaded", function() { - uci_revert(); - }); -</script> - <% if redir_url then %> <div class="cbi-page-actions"> <form class="inline" method="get" action="<%=luci.util.pcdata(redir_url)%>"> |