mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Update to 18.06
This commit is contained in:
parent
ce9432d93b
commit
110470cb85
50 changed files with 335 additions and 367 deletions
|
@ -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))
|
||||
|
|
|
@ -627,6 +627,18 @@ function cbi_init() {
|
|||
s.parentNode.classList.add('cbi-tooltip-container');
|
||||
});
|
||||
|
||||
document.querySelectorAll('.cbi-section-remove > input[name^="cbi.rts"]').forEach(function(i) {
|
||||
var handler = function(ev) {
|
||||
var bits = this.name.split(/\./),
|
||||
section = document.getElementById('cbi-' + bits[2] + '-' + bits[3]);
|
||||
|
||||
section.style.opacity = (ev.type === 'mouseover') ? 0.5 : '';
|
||||
};
|
||||
|
||||
i.addEventListener('mouseover', handler);
|
||||
i.addEventListener('mouseout', handler);
|
||||
});
|
||||
|
||||
cbi_d_update();
|
||||
}
|
||||
|
||||
|
@ -818,9 +830,9 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
|
|||
t.placeholder = holder;
|
||||
}
|
||||
|
||||
var b = document.createElement('img');
|
||||
b.src = cbi_strings.path.resource + ((i+1) < values.length ? '/cbi/remove.gif' : '/cbi/add.gif');
|
||||
b.className = 'cbi-image-button';
|
||||
var b = E('div', {
|
||||
class: 'cbi-button cbi-button-' + ((i+1) < values.length ? 'remove' : 'add')
|
||||
}, (i+1) < values.length ? '×' : '+');
|
||||
|
||||
parent.appendChild(t);
|
||||
parent.appendChild(b);
|
||||
|
@ -986,8 +998,7 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
|
|||
input = input.previousSibling;
|
||||
}
|
||||
|
||||
if (se.src.indexOf('remove') > -1)
|
||||
{
|
||||
if (se.classList.contains('cbi-button-remove')) {
|
||||
input.value = '';
|
||||
|
||||
cbi_dynlist_keydown({
|
||||
|
@ -995,8 +1006,7 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
|
|||
keyCode: 8
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
cbi_dynlist_keydown({
|
||||
target: input,
|
||||
keyCode: 13
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
||||
|
@ -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) {
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<%-
|
||||
local title = luci.util.trim(striptags(self.title))
|
||||
local ftype = self.template and self.template:gsub("^.+/", "")
|
||||
local descr = luci.util.trim(striptags(self.description))
|
||||
local ftype = self.typename or (self.template and self.template:gsub("^.+/", ""))
|
||||
-%>
|
||||
<div class="td cbi-value-field<% if self.error and self.error[section] then %> cbi-value-error<% end %>"<%=
|
||||
attr("data-name", self.option) ..
|
||||
ifattr(ftype and #ftype > 0, "data-type", ftype) ..
|
||||
ifattr(title and #title > 0, "data-title", title)
|
||||
ifattr(title and #title > 0, "data-title", title) ..
|
||||
ifattr(descr and #descr > 0, "data-description", descr)
|
||||
%>>
|
||||
<div id="cbi-<%=self.config.."-"..section.."-"..self.option%>" data-index="<%=self.index%>" data-depends="<%=pcdata(self:deplist2json(section))%>">
|
||||
|
|
|
@ -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) %>
|
||||
|
|
|
@ -32,25 +32,25 @@
|
|||
|
||||
<% if self.optionals[section] and #self.optionals[section] > 0 or self.dynamic then %>
|
||||
<div class="cbi-optionals" data-index="<%=#self.children + 1%>">
|
||||
<%
|
||||
<%-
|
||||
if self.dynamic then
|
||||
local keys, vals, name, opt = { }, { }
|
||||
for name, opt in pairs(self.optionals[section]) do
|
||||
keys[#keys+1] = name
|
||||
vals[#vals+1] = opt.title
|
||||
end
|
||||
%>
|
||||
-%>
|
||||
<input type="text" id="cbi.opt.<%=self.config%>.<%=section%>" name="cbi.opt.<%=self.config%>.<%=section%>" data-type="uciname" data-optional="true"<%=
|
||||
ifattr(#keys > 0, "data-choices", luci.util.json_encode({keys, vals}))
|
||||
%> />
|
||||
<% else %>
|
||||
<%- else -%>
|
||||
<select id="cbi.opt.<%=self.config%>.<%=section%>" name="cbi.opt.<%=self.config%>.<%=section%>" data-optionals="true">
|
||||
<option><%: -- Additional Field -- %></option>
|
||||
<% for key, val in pairs(self.optionals[section]) do -%>
|
||||
<option id="cbi-<%=self.config.."-"..section.."-"..val.option%>" value="<%=val.option%>" data-index="<%=val.index%>" data-depends="<%=pcdata(val:deplist2json(section))%>"><%=striptags(val.title)%></option>
|
||||
<%- end %>
|
||||
</select>
|
||||
<% end %>
|
||||
<%- end -%>
|
||||
<input type="submit" class="cbi-button cbi-button-fieldadd" value="<%:Add%>" />
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
<%+cbi/valueheader%>
|
||||
<%- if self.password then -%>
|
||||
<input type="password" style="position:absolute; left:-1000px"<%=
|
||||
attr("name", "password." .. cbid)
|
||||
%> />
|
||||
<%- end -%>
|
||||
<input data-update="change"<%=
|
||||
attr("id", cbid) ..
|
||||
attr("name", cbid) ..
|
||||
attr("type", self.password and "password" or "text") ..
|
||||
attr("class", self.password and "cbi-input-password" or "cbi-input-text") ..
|
||||
attr("value", self:cfgvalue(section) or self.default) ..
|
||||
ifattr(self.password, "autocomplete", "new-password") ..
|
||||
ifattr(self.size, "size") ..
|
||||
ifattr(self.placeholder, "placeholder") ..
|
||||
ifattr(self.readonly, "readonly") ..
|
||||
|
@ -14,5 +20,7 @@
|
|||
ifattr(self.combobox_manual, "data-manual", self.combobox_manual) ..
|
||||
ifattr(#self.keylist > 0, "data-choices", { self.keylist, self.vallist })
|
||||
%> />
|
||||
<% if self.password then %><img src="<%=resource%>/cbi/reload.gif" style="vertical-align:middle" title="<%:Reveal/hide password%>" onclick="var e = document.getElementById('<%=cbid%>'); e.type = (e.type=='password') ? 'text' : 'password';" /><% end %>
|
||||
<%- if self.password then -%>
|
||||
<div class="cbi-button cbi-button-neutral" title="<%:Reveal/hide password%>" onclick="var e = this.previousElementSibling; e.type = (e.type === 'password') ? 'text' : 'password'">∗</div>
|
||||
<% end %>
|
||||
<%+cbi/valuefooter%>
|
||||
|
|
|
@ -4,4 +4,27 @@
|
|||
Licensed to the public under the Apache License 2.0.
|
||||
-%>
|
||||
|
||||
<% include("themes/" .. theme .. "/footer") %>
|
||||
<%
|
||||
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")
|
||||
%>
|
||||
|
|
|
@ -274,9 +274,6 @@ msgstr "Alerta"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -272,9 +272,6 @@ msgstr "Upozornění"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -271,9 +271,6 @@ msgid "Alert"
|
|||
msgstr "Alarm"
|
||||
|
||||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr "Alias-Schnittstelle"
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
|
|
|
@ -274,9 +274,6 @@ msgstr "Ειδοποίηση"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -271,9 +271,6 @@ msgstr "Alert"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -275,9 +275,6 @@ msgstr "Alerta"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -277,9 +277,6 @@ msgstr "Alerte"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -269,9 +269,6 @@ msgstr "אזעקה"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -272,9 +272,6 @@ msgstr "Riasztás"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -281,9 +281,6 @@ msgstr "Allerta"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -275,9 +275,6 @@ msgstr "警告"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -266,9 +266,6 @@ msgstr ""
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -261,9 +261,6 @@ msgstr ""
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -270,9 +270,6 @@ msgstr "Varsle"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -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-14 21:35+0200\n"
|
||||
"PO-Revision-Date: 2018-07-21 18:35+0200\n"
|
||||
"Last-Translator: Rixerx <krystian.kozak20@gmail.com>\n"
|
||||
"Language-Team: Polish\n"
|
||||
"Language: pl\n"
|
||||
|
@ -279,16 +279,13 @@ msgid "Alert"
|
|||
msgstr "Alarm"
|
||||
|
||||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr "Alias interfejsu"
|
||||
msgstr "Alias Interfejsu"
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
msgstr "Alias \"%s\""
|
||||
|
||||
msgid "All Servers"
|
||||
msgstr ""
|
||||
msgstr "Wszystkie serwery"
|
||||
|
||||
msgid ""
|
||||
"Allocate IP addresses sequentially, starting from the lowest available "
|
||||
|
@ -303,7 +300,7 @@ msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
|
|||
msgstr "Pozwól na logowanie <abbr title=\"Secure Shell\">SSH</abbr>"
|
||||
|
||||
msgid "Allow AP mode to disconnect STAs based on low ACK condition"
|
||||
msgstr ""
|
||||
msgstr "Pozwól aby tryb AP rozłączał stacje STA w oparciu o niski stan ACK"
|
||||
|
||||
msgid "Allow all except listed"
|
||||
msgstr "Pozwól wszystkim oprócz wymienionych"
|
||||
|
@ -342,6 +339,8 @@ msgid ""
|
|||
"Always use 40MHz channels even if the secondary channel overlaps. Using this "
|
||||
"option does not comply with IEEE 802.11n-2009!"
|
||||
msgstr ""
|
||||
"Zawsze używaj kanału 40 MHz, nawet jeśli kanał dodatkowy nachodzi na inny. "
|
||||
"Używanie tej opcji nie jest zgodne z IEEE 802.11n-2009!"
|
||||
|
||||
msgid "Annex"
|
||||
msgstr ""
|
||||
|
@ -541,7 +540,7 @@ msgid "Band"
|
|||
msgstr ""
|
||||
|
||||
msgid "Beacon Interval"
|
||||
msgstr ""
|
||||
msgstr "Interwał Beaconu"
|
||||
|
||||
msgid ""
|
||||
"Below is the determined list of files to backup. It consists of changed "
|
||||
|
@ -577,7 +576,6 @@ msgstr "Interfejs mostu"
|
|||
msgid "Bridge unit number"
|
||||
msgstr "Numer Mostu (urządzenia)"
|
||||
|
||||
# Podejrzewam że chodzi o interfejs? mam rację?
|
||||
msgid "Bring up on boot"
|
||||
msgstr "Podnieś przy stracie"
|
||||
|
||||
|
@ -860,7 +858,7 @@ msgid "DSL line mode"
|
|||
msgstr ""
|
||||
|
||||
msgid "DTIM Interval"
|
||||
msgstr ""
|
||||
msgstr "Interwał DTIM"
|
||||
|
||||
msgid "DUID"
|
||||
msgstr "DUID"
|
||||
|
@ -901,12 +899,11 @@ msgid "Delete this network"
|
|||
msgstr "Usuń tą sieć"
|
||||
|
||||
msgid "Delivery Traffic Indication Message Interval"
|
||||
msgstr ""
|
||||
msgstr "Interwał komunikatu o wskazaniu dostawy ruchu"
|
||||
|
||||
msgid "Description"
|
||||
msgstr "Opis"
|
||||
|
||||
# Ktoś tłumaczył bez zobaczenia tego w gui. Dotyczy zmiany motywu ten opis.
|
||||
msgid "Design"
|
||||
msgstr "Motyw"
|
||||
|
||||
|
@ -963,7 +960,7 @@ msgid "Disabled (default)"
|
|||
msgstr "Wyłączone (domyślnie)"
|
||||
|
||||
msgid "Disassociate On Low Acknowledgement"
|
||||
msgstr ""
|
||||
msgstr "Rozłączaj przy niskim stanie ramek ACK"
|
||||
|
||||
msgid "Discard upstream RFC1918 responses"
|
||||
msgstr "Odrzuć wychodzące odpowiedzi RFC1918"
|
||||
|
@ -990,15 +987,14 @@ msgstr ""
|
|||
msgid "Diversity"
|
||||
msgstr "Wielorakość"
|
||||
|
||||
# Nie wiem czy nie zamotałem ja rozumiem;)
|
||||
msgid ""
|
||||
"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
|
||||
"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
|
||||
"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
|
||||
"firewalls"
|
||||
msgstr ""
|
||||
"Dnsmasq jest to serwer <abbr title=\"Dynamic Host Configuration Protocol"
|
||||
"\">DHCP</abbr> połączony z serwerem <abbr title=\"Domain Name System\">DNS</"
|
||||
"Dnsmasq jest kombajnem serwera <abbr title=\"Dynamic Host Configuration Protocol"
|
||||
"\">DHCP</abbr> połączonym z serwerem <abbr title=\"Domain Name System\">DNS</"
|
||||
"abbr>. Jest to serwer przekazujący (Fowarder) dla firewalli <abbr title="
|
||||
"\"Network Address Translation\">NAT</abbr>"
|
||||
|
||||
|
@ -1055,7 +1051,6 @@ msgstr ""
|
|||
msgid "Dual-Stack Lite (RFC6333)"
|
||||
msgstr ""
|
||||
|
||||
# "n" brakowało...
|
||||
msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
|
||||
msgstr ""
|
||||
"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> dynamiczne"
|
||||
|
@ -1334,7 +1329,7 @@ msgid "Force"
|
|||
msgstr "Wymuś"
|
||||
|
||||
msgid "Force 40MHz mode"
|
||||
msgstr ""
|
||||
msgstr "Wymuś tryb 40MHz"
|
||||
|
||||
msgid "Force CCMP (AES)"
|
||||
msgstr "Wymuś CCMP (AES)"
|
||||
|
@ -1733,7 +1728,6 @@ msgstr ""
|
|||
msgid "Interface Configuration"
|
||||
msgstr "Konfiguracja Interfejsu"
|
||||
|
||||
# Tam jest lista interfejsów....
|
||||
msgid "Interface Overview"
|
||||
msgstr "Przegląd Interfejsów"
|
||||
|
||||
|
@ -1752,7 +1746,6 @@ msgstr "Interfejsy"
|
|||
msgid "Internal"
|
||||
msgstr ""
|
||||
|
||||
# Nadużycie tagu abbr uważam za uzasadnione.
|
||||
msgid "Internal Server Error"
|
||||
msgstr "Wewnętrzny błąd serwera"
|
||||
|
||||
|
@ -2013,7 +2006,7 @@ msgid "Lowest leased address as offset from the network address."
|
|||
msgstr "Najniższy wydzierżawiony adres jako offset dla adresu sieci."
|
||||
|
||||
msgid "MAC"
|
||||
msgstr ""
|
||||
msgstr "MAC"
|
||||
|
||||
msgid "MAC-Address"
|
||||
msgstr "Adres MAC"
|
||||
|
@ -2260,7 +2253,7 @@ msgid "No rules in this chain"
|
|||
msgstr "Brak zasad w tym łańcuchu"
|
||||
|
||||
msgid "No scan results available yet..."
|
||||
msgstr ""
|
||||
msgstr "Brak wyników skanowania..."
|
||||
|
||||
msgid "No zone assigned"
|
||||
msgstr "Brak przypisanej strefy"
|
||||
|
@ -2699,6 +2692,7 @@ msgid ""
|
|||
"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
|
||||
"servers"
|
||||
msgstr ""
|
||||
"Zapytaj o wszystkie dostępne serwery <abbr title=\"Domain Name System\">DNS</abbr> "
|
||||
|
||||
msgid "R0 Key Lifetime"
|
||||
msgstr ""
|
||||
|
@ -2995,11 +2989,10 @@ msgid "Scan"
|
|||
msgstr "Skanuj"
|
||||
|
||||
msgid "Scan request failed"
|
||||
msgstr ""
|
||||
msgstr "Próba skanowania nie powiodła się"
|
||||
|
||||
# Raczej nie stosuje się kilku dużych liter w tym samym
|
||||
msgid "Scheduled Tasks"
|
||||
msgstr "Zaplanowane zadania"
|
||||
msgstr "Zaplanowane Zadania"
|
||||
|
||||
msgid "Section added"
|
||||
msgstr "Dodano sekcję"
|
||||
|
@ -3059,7 +3052,7 @@ msgid "Short GI"
|
|||
msgstr ""
|
||||
|
||||
msgid "Short Preamble"
|
||||
msgstr ""
|
||||
msgstr "Krótki Wstęp"
|
||||
|
||||
msgid "Show current backup file list"
|
||||
msgstr "Pokaż aktualną listę plików do backupu"
|
||||
|
@ -3169,7 +3162,7 @@ msgid "Starting configuration apply…"
|
|||
msgstr ""
|
||||
|
||||
msgid "Starting wireless scan..."
|
||||
msgstr ""
|
||||
msgstr "Rozpoczynanie skanowania..."
|
||||
|
||||
msgid "Startup"
|
||||
msgstr "Autostart"
|
||||
|
@ -3935,7 +3928,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Tutaj można włączyć lub wyłączyć zainstalowane skrypty. Zmiany zostaną "
|
||||
"zastosowane po ponownym uruchomieniu urządzenia.<br /><strong>Ostrzeżenie: "
|
||||
"Jeśli wyłączysz podstawowe skrypty typu \"networks\", urządzenie może stać "
|
||||
"Jeśli wyłączysz podstawowe skrypty typu \"network\", urządzenie może stać "
|
||||
"się nieosiągalne!</strong>"
|
||||
|
||||
msgid ""
|
||||
|
@ -4033,7 +4026,7 @@ msgid "minutes"
|
|||
msgstr "minuty"
|
||||
|
||||
msgid "mixed WPA/WPA2"
|
||||
msgstr ""
|
||||
msgstr "mieszany WPA/WPA2"
|
||||
|
||||
msgid "no"
|
||||
msgstr "nie"
|
||||
|
|
|
@ -294,9 +294,6 @@ msgstr "Alerta"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -280,9 +280,6 @@ msgstr "Alerta"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -267,9 +267,6 @@ msgstr "Alerta"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -276,9 +276,6 @@ msgstr "Тревога"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -255,9 +255,6 @@ msgstr ""
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -263,9 +263,6 @@ msgstr "Varning"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -248,9 +248,6 @@ msgstr ""
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -266,9 +266,6 @@ msgstr "Uyarı"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -291,9 +291,6 @@ msgstr "Тривога"
|
|||
msgid "Alias Interface"
|
||||
msgstr "Інтерфейс псевдоніма"
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr "Інтерфейс псевдоніма"
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr "Псевдонім \"%s\""
|
||||
|
||||
|
|
|
@ -262,9 +262,6 @@ msgstr ""
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Hsing-Wang Liao <kuoruan@gmail.com>\n"
|
||||
|
||||
msgid "%.1f dB"
|
||||
msgstr ""
|
||||
msgstr "%.1f dB"
|
||||
|
||||
msgid "%s is untagged in multiple VLANs!"
|
||||
msgstr "%s 在多个 VLAN 中均未标记!"
|
||||
|
@ -40,7 +40,7 @@ msgid "-- match by uuid --"
|
|||
msgstr "-- 根据 UUID 匹配 --"
|
||||
|
||||
msgid "-- please select --"
|
||||
msgstr ""
|
||||
msgstr "-- 请选择 --"
|
||||
|
||||
msgid "1 Minute Load:"
|
||||
msgstr "1 分钟负载:"
|
||||
|
@ -258,16 +258,13 @@ msgid "Alert"
|
|||
msgstr "警戒"
|
||||
|
||||
msgid "Alias Interface"
|
||||
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 "
|
||||
|
@ -281,7 +278,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 "仅允许列表外"
|
||||
|
@ -318,6 +315,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"
|
||||
|
@ -398,7 +396,7 @@ msgid "Apply request failed with status <code>%h</code>"
|
|||
msgstr "应用请求失败,状态 <code>%h</code>"
|
||||
|
||||
msgid "Apply unchecked"
|
||||
msgstr "应用未选中"
|
||||
msgstr "强制应用"
|
||||
|
||||
msgid "Architecture"
|
||||
msgstr "架构"
|
||||
|
@ -511,7 +509,7 @@ msgid "Band"
|
|||
msgstr "频宽"
|
||||
|
||||
msgid "Beacon Interval"
|
||||
msgstr ""
|
||||
msgstr "Beacon 间隔"
|
||||
|
||||
msgid ""
|
||||
"Below is the determined list of files to backup. It consists of changed "
|
||||
|
@ -569,7 +567,7 @@ msgid "CPU usage (%)"
|
|||
msgstr "CPU 使用率(%)"
|
||||
|
||||
msgid "Call failed"
|
||||
msgstr ""
|
||||
msgstr "调用失败"
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
@ -581,16 +579,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 "信道"
|
||||
|
@ -674,7 +672,7 @@ msgid "Configuration"
|
|||
msgstr "配置"
|
||||
|
||||
msgid "Configuration failed"
|
||||
msgstr ""
|
||||
msgstr "配置失败"
|
||||
|
||||
msgid "Configuration files will be kept."
|
||||
msgstr "配置文件将被保留。"
|
||||
|
@ -698,7 +696,7 @@ msgid "Connection Limit"
|
|||
msgstr "连接数限制"
|
||||
|
||||
msgid "Connection attempt failed"
|
||||
msgstr ""
|
||||
msgstr "尝试连接失败"
|
||||
|
||||
msgid "Connections"
|
||||
msgstr "连接"
|
||||
|
@ -708,7 +706,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"
|
||||
|
@ -815,7 +813,7 @@ msgid "DSL line mode"
|
|||
msgstr "DSL 线路模式"
|
||||
|
||||
msgid "DTIM Interval"
|
||||
msgstr ""
|
||||
msgstr "DTIM 间隔"
|
||||
|
||||
msgid "DUID"
|
||||
msgstr "DUID"
|
||||
|
@ -856,7 +854,7 @@ msgid "Delete this network"
|
|||
msgstr "删除此网络"
|
||||
|
||||
msgid "Delivery Traffic Indication Message Interval"
|
||||
msgstr ""
|
||||
msgstr "发送流量指示消息间隔"
|
||||
|
||||
msgid "Description"
|
||||
msgstr "描述"
|
||||
|
@ -880,7 +878,7 @@ msgid "Device unreachable!"
|
|||
msgstr "无法连接到设备"
|
||||
|
||||
msgid "Device unreachable! Still waiting for device..."
|
||||
msgstr ""
|
||||
msgstr "无法连接到设备!仍旧等待设备..."
|
||||
|
||||
msgid "Diagnostics"
|
||||
msgstr "网络诊断"
|
||||
|
@ -914,16 +912,16 @@ msgid "Disabled"
|
|||
msgstr "已禁用"
|
||||
|
||||
msgid "Disabled (default)"
|
||||
msgstr "禁用(默认)"
|
||||
msgstr "已禁用(默认)"
|
||||
|
||||
msgid "Disassociate On Low Acknowledgement"
|
||||
msgstr ""
|
||||
msgstr "在 Low Acknowledgement 时断开连接"
|
||||
|
||||
msgid "Discard upstream RFC1918 responses"
|
||||
msgstr "丢弃 RFC1918 上行响应数据"
|
||||
|
||||
msgid "Disconnection attempt failed"
|
||||
msgstr ""
|
||||
msgstr "尝试断开连接失败"
|
||||
|
||||
msgid "Dismiss"
|
||||
msgstr "解除"
|
||||
|
@ -978,7 +976,7 @@ msgstr ""
|
|||
"不转发没有 <abbr title=\"Domain Name System\">DNS</abbr> 名称的解析请求"
|
||||
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
msgstr "向下"
|
||||
|
||||
msgid "Download and install package"
|
||||
msgstr "下载并安装软件包"
|
||||
|
@ -1021,7 +1019,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 "
|
||||
|
@ -1029,10 +1027,10 @@ msgid ""
|
|||
msgstr "编辑上方的原始配置数据来修复错误,点击“保存”按钮以重新载入此页面。"
|
||||
|
||||
msgid "Edit this interface"
|
||||
msgstr "修改此接口"
|
||||
msgstr "编辑此接口"
|
||||
|
||||
msgid "Edit this network"
|
||||
msgstr "修改此网络"
|
||||
msgstr "编辑此网络"
|
||||
|
||||
msgid "Emergency"
|
||||
msgstr "紧急"
|
||||
|
@ -1095,7 +1093,7 @@ msgid "Enable this mount"
|
|||
msgstr "启用此挂载点"
|
||||
|
||||
msgid "Enable this network"
|
||||
msgstr ""
|
||||
msgstr "启用此网络"
|
||||
|
||||
msgid "Enable this swap"
|
||||
msgstr "启用此 swap 分区"
|
||||
|
@ -1130,10 +1128,10 @@ msgid "Endpoint Port"
|
|||
msgstr "端点端口"
|
||||
|
||||
msgid "Enter custom value"
|
||||
msgstr ""
|
||||
msgstr "输入自定义值"
|
||||
|
||||
msgid "Enter custom values"
|
||||
msgstr ""
|
||||
msgstr "输入自定义值"
|
||||
|
||||
msgid "Erasing..."
|
||||
msgstr "擦除中..."
|
||||
|
@ -1185,10 +1183,10 @@ 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 协议"
|
||||
|
@ -1215,7 +1213,7 @@ msgid "Filter useless"
|
|||
msgstr "过滤无用包"
|
||||
|
||||
msgid "Finalizing failed"
|
||||
msgstr ""
|
||||
msgstr "最终确认失败"
|
||||
|
||||
msgid ""
|
||||
"Find all currently attached filesystems and swap and replace configuration "
|
||||
|
@ -1271,7 +1269,7 @@ msgid "Force"
|
|||
msgstr "强制"
|
||||
|
||||
msgid "Force 40MHz mode"
|
||||
msgstr ""
|
||||
msgstr "强制 40MHz 模式"
|
||||
|
||||
msgid "Force CCMP (AES)"
|
||||
msgstr "强制 CCMP(AES)"
|
||||
|
@ -1338,7 +1336,7 @@ msgid "Gateway"
|
|||
msgstr "网关"
|
||||
|
||||
msgid "Gateway address is invalid"
|
||||
msgstr ""
|
||||
msgstr "网关地址无效"
|
||||
|
||||
msgid "Gateway ports"
|
||||
msgstr "网关端口"
|
||||
|
@ -1426,7 +1424,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 "主机名"
|
||||
|
@ -1450,10 +1448,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"
|
||||
|
@ -1625,7 +1623,7 @@ msgid "Info"
|
|||
msgstr "信息"
|
||||
|
||||
msgid "Initialization failure"
|
||||
msgstr ""
|
||||
msgstr "初始化失败"
|
||||
|
||||
msgid "Initscript"
|
||||
msgstr "启动脚本"
|
||||
|
@ -1863,7 +1861,7 @@ msgid "Loading"
|
|||
msgstr "加载中"
|
||||
|
||||
msgid "Local IP address is invalid"
|
||||
msgstr ""
|
||||
msgstr "本地 IP 地址无效"
|
||||
|
||||
msgid "Local IP address to assign"
|
||||
msgstr "要分配的本地 IP 地址"
|
||||
|
@ -1930,7 +1928,7 @@ msgid "Lowest leased address as offset from the network address."
|
|||
msgstr "网络地址的起始分配基址。"
|
||||
|
||||
msgid "MAC"
|
||||
msgstr ""
|
||||
msgstr "MAC"
|
||||
|
||||
msgid "MAC-Address"
|
||||
msgstr "MAC 地址"
|
||||
|
@ -1948,7 +1946,7 @@ msgid "MAP / LW4over6"
|
|||
msgstr "MAP / LW4over6"
|
||||
|
||||
msgid "MAP rule is invalid"
|
||||
msgstr ""
|
||||
msgstr "MAP 规则无效"
|
||||
|
||||
msgid "MB/s"
|
||||
msgstr "MB/s"
|
||||
|
@ -2032,7 +2030,7 @@ msgid "Modem device"
|
|||
msgstr "调制解调器节点"
|
||||
|
||||
msgid "Modem information query failed"
|
||||
msgstr ""
|
||||
msgstr "调制解调器信息查询失败"
|
||||
|
||||
msgid "Modem init timeout"
|
||||
msgstr "调制解调器初始化超时"
|
||||
|
@ -2130,7 +2128,7 @@ msgid "Network boot image"
|
|||
msgstr "网络启动镜像"
|
||||
|
||||
msgid "Network device is not present"
|
||||
msgstr ""
|
||||
msgstr "网络设备不存在"
|
||||
|
||||
msgid "Network without interfaces."
|
||||
msgstr "无接口的网络。"
|
||||
|
@ -2154,7 +2152,7 @@ msgid "No information available"
|
|||
msgstr "无可用信息"
|
||||
|
||||
msgid "No matching prefix delegation"
|
||||
msgstr ""
|
||||
msgstr "无匹配的前缀委托"
|
||||
|
||||
msgid "No negative cache"
|
||||
msgstr "禁用无效信息缓存"
|
||||
|
@ -2175,7 +2173,7 @@ msgid "No rules in this chain"
|
|||
msgstr "本链没有规则"
|
||||
|
||||
msgid "No scan results available yet..."
|
||||
msgstr ""
|
||||
msgstr "还没有可用的扫描结果..."
|
||||
|
||||
msgid "No zone assigned"
|
||||
msgstr "未指定区域"
|
||||
|
@ -2281,10 +2279,10 @@ msgid "Operating frequency"
|
|||
msgstr "工作频率"
|
||||
|
||||
msgid "Option changed"
|
||||
msgstr "修改的选项"
|
||||
msgstr "选项已更改"
|
||||
|
||||
msgid "Option removed"
|
||||
msgstr "移除的选项"
|
||||
msgstr "选项已移除"
|
||||
|
||||
msgid "Optional"
|
||||
msgstr "可选"
|
||||
|
@ -2314,7 +2312,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 "
|
||||
|
@ -2397,7 +2395,7 @@ msgid "PIN"
|
|||
msgstr "PIN"
|
||||
|
||||
msgid "PIN code rejected"
|
||||
msgstr ""
|
||||
msgstr "PIN 码被拒绝"
|
||||
|
||||
msgid "PMK R1 Push"
|
||||
msgstr "R1 推送 PMK"
|
||||
|
@ -2457,7 +2455,7 @@ msgid "Password of inner Private Key"
|
|||
msgstr "内部私钥的密码"
|
||||
|
||||
msgid "Password successfully changed!"
|
||||
msgstr "密码修改成功!"
|
||||
msgstr "密码更改成功!"
|
||||
|
||||
msgid "Password2"
|
||||
msgstr "密码 2"
|
||||
|
@ -2487,7 +2485,7 @@ msgid "Peer IP address to assign"
|
|||
msgstr "要分配的 Peer IP 地址"
|
||||
|
||||
msgid "Peer address is missing"
|
||||
msgstr ""
|
||||
msgstr "Peer 地址缺失"
|
||||
|
||||
msgid "Peers"
|
||||
msgstr "Peers"
|
||||
|
@ -2608,7 +2606,7 @@ msgstr "质量"
|
|||
msgid ""
|
||||
"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
|
||||
"servers"
|
||||
msgstr ""
|
||||
msgstr "查询所有可用的上游 <abbr title=\"Domain Name System\">DNS</abbr> 服务器"
|
||||
|
||||
msgid "R0 Key Lifetime"
|
||||
msgstr "R0 密钥生存期"
|
||||
|
@ -2647,7 +2645,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 "
|
||||
|
@ -2660,13 +2658,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 "确定要放弃所有更改?"
|
||||
|
@ -2809,7 +2808,7 @@ msgid "Restart Firewall"
|
|||
msgstr "重启防火墙"
|
||||
|
||||
msgid "Restart radio interface"
|
||||
msgstr ""
|
||||
msgstr "重启无线接口"
|
||||
|
||||
msgid "Restore"
|
||||
msgstr "恢复"
|
||||
|
@ -2901,7 +2900,7 @@ msgid "Scan"
|
|||
msgstr "扫描"
|
||||
|
||||
msgid "Scan request failed"
|
||||
msgstr ""
|
||||
msgstr "扫描请求失败"
|
||||
|
||||
msgid "Scheduled Tasks"
|
||||
msgstr "计划任务"
|
||||
|
@ -2946,10 +2945,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 服务器"
|
||||
|
@ -2961,7 +2960,7 @@ msgid "Short GI"
|
|||
msgstr "Short GI"
|
||||
|
||||
msgid "Short Preamble"
|
||||
msgstr ""
|
||||
msgstr "Short Preamble"
|
||||
|
||||
msgid "Show current backup file list"
|
||||
msgstr "显示当前备份文件列表"
|
||||
|
@ -3067,7 +3066,7 @@ msgid "Starting configuration apply…"
|
|||
msgstr "开始应用配置..."
|
||||
|
||||
msgid "Starting wireless scan..."
|
||||
msgstr ""
|
||||
msgstr "正在启动无线扫描..."
|
||||
|
||||
msgid "Startup"
|
||||
msgstr "启动项"
|
||||
|
@ -3223,7 +3222,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 "由于以下错误,配置文件无法被加载:"
|
||||
|
@ -3237,9 +3236,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."
|
||||
|
@ -3263,7 +3262,7 @@ msgstr ""
|
|||
"过程中切勿断电!"
|
||||
|
||||
msgid "The following changes have been reverted"
|
||||
msgstr "以下更改已放弃"
|
||||
msgstr "以下更改已恢复"
|
||||
|
||||
msgid "The following rules are currently active on this system."
|
||||
msgstr "以下规则当前在系统中处于活动状态。"
|
||||
|
@ -3329,13 +3328,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 "
|
||||
|
@ -3363,7 +3362,7 @@ msgid ""
|
|||
"include during sysupgrade. Modified files in /etc/config/ and certain other "
|
||||
"configurations are automatically preserved."
|
||||
msgstr ""
|
||||
"系统升级时要保存的配置文件和目录的清单。目录 /etc/config/ 内修改过的文件以及"
|
||||
"系统升级时要保存的配置文件和目录的清单。目录 /etc/config/ 内更改过的文件以及"
|
||||
"部分其他配置会被自动保存。"
|
||||
|
||||
msgid ""
|
||||
|
@ -3497,25 +3496,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)"
|
||||
|
@ -3527,7 +3526,7 @@ msgid "Unknown Error, password not changed!"
|
|||
msgstr "未知错误,密码未更改!"
|
||||
|
||||
msgid "Unknown error (%s)"
|
||||
msgstr ""
|
||||
msgstr "未知错误(%s)"
|
||||
|
||||
msgid "Unmanaged"
|
||||
msgstr "不配置协议"
|
||||
|
@ -3539,16 +3538,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 "刷新列表"
|
||||
|
@ -3688,7 +3687,7 @@ msgid "Version"
|
|||
msgstr "版本"
|
||||
|
||||
msgid "Virtual dynamic interface"
|
||||
msgstr ""
|
||||
msgstr "虚拟动态接口"
|
||||
|
||||
msgid "WDS"
|
||||
msgstr "WDS"
|
||||
|
@ -3813,7 +3812,7 @@ msgid "bridged"
|
|||
msgstr "桥接的"
|
||||
|
||||
msgid "create"
|
||||
msgstr ""
|
||||
msgstr "创建"
|
||||
|
||||
msgid "create:"
|
||||
msgstr "创建:"
|
||||
|
@ -3880,7 +3879,7 @@ msgid "minutes"
|
|||
msgstr "分钟"
|
||||
|
||||
msgid "mixed WPA/WPA2"
|
||||
msgstr ""
|
||||
msgstr "mixed WPA/WPA2"
|
||||
|
||||
msgid "no"
|
||||
msgstr "否"
|
||||
|
@ -3904,7 +3903,7 @@ msgid "open"
|
|||
msgstr "开放式"
|
||||
|
||||
msgid "output"
|
||||
msgstr ""
|
||||
msgstr "输出"
|
||||
|
||||
msgid "overlay"
|
||||
msgstr "覆盖"
|
||||
|
|
|
@ -265,9 +265,6 @@ msgstr "警示"
|
|||
msgid "Alias Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Alias of \"%s\""
|
||||
msgstr ""
|
||||
|
||||
|
|
BIN
luci-base/src/po2lmo
Executable file
BIN
luci-base/src/po2lmo
Executable file
Binary file not shown.
BIN
luci-base/src/po2lmo.o
Normal file
BIN
luci-base/src/po2lmo.o
Normal file
Binary file not shown.
BIN
luci-base/src/template_lmo.o
Normal file
BIN
luci-base/src/template_lmo.o
Normal file
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -94,7 +94,7 @@
|
|||
if (ifc.is_dynamic)
|
||||
desc = '<%:Virtual dynamic interface%>';
|
||||
else if (ifc.is_alias)
|
||||
desc = '<%:Alias interface%>';
|
||||
desc = '<%:Alias Interface%>';
|
||||
|
||||
if (ifc.desc)
|
||||
desc = desc ? '%s (%s)'.format(desc, ifc.desc) : ifc.desc;
|
||||
|
@ -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 />' +
|
||||
|
|
|
@ -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 />' +
|
||||
|
|
|
@ -224,63 +224,36 @@
|
|||
<% end %>
|
||||
|
||||
<% if has_dsl then %>
|
||||
var dsl_i = document.getElementById('dsl_i');
|
||||
var dsl_s = document.getElementById('dsl_s');
|
||||
var ds = document.getElementById('dsl_status_table');
|
||||
|
||||
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
|
||||
);
|
||||
while (ds.lastElementChild)
|
||||
ds.removeChild(ds.lastElementChild);
|
||||
|
||||
dsl_s.innerHTML = String.format('<small>%s</small>', s);
|
||||
dsl_i.innerHTML = String.format(
|
||||
'<img src="<%=resource%>/icons/ethernet.png" />' +
|
||||
'<br /><small>DSL</small>'
|
||||
);
|
||||
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)%>', '%d dB / %d dB'.format(info.dsl.line_attenuation_down, info.dsl.line_attenuation_up),
|
||||
'<%:Signal Attenuation (SATN)%>', '%d dB / %d dB'.format(info.dsl.signal_attenuation_down, info.dsl.signal_attenuation_up),
|
||||
'<%:Noise Margin (SNR)%>', '%d dB / %d dB'.format(info.dsl.noise_margin_down, info.dsl.noise_margin_up),
|
||||
'<%:Aggregate Transmit Power(ACTATP)%>', '%d dB / %d 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 %>
|
||||
|
@ -457,18 +430,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 %>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"))%>" />
|
||||
|
|
|
@ -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)%>">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue