Preparing rewrite of WiFi configuration
This commit is contained in:
parent
1d08361bea
commit
97ce1ad8ad
12 changed files with 173 additions and 79 deletions
|
@ -1,3 +1,3 @@
|
||||||
0-59/1 * * * * /usr/bin/run-parts /etc/cron.minutely
|
* * * * * /usr/bin/run-parts /etc/cron.minutely
|
||||||
0 * * * * /usr/bin/run-parts /etc/cron.hourly
|
17 * * * * /usr/bin/run-parts /etc/cron.hourly
|
||||||
0 0 * * * /usr/bin/run-parts /etc/cron.daily
|
25 6 * * * /usr/bin/run-parts /etc/cron.daily
|
||||||
|
|
|
@ -279,3 +279,12 @@ mem_free = "free"
|
||||||
|
|
||||||
a_s_crontab = "Scheduled Tasks"
|
a_s_crontab = "Scheduled Tasks"
|
||||||
a_s_crontab1 = "This is the system crontab in which scheduled tasks can be defined."
|
a_s_crontab1 = "This is the system crontab in which scheduled tasks can be defined."
|
||||||
|
|
||||||
|
a_w_nasid = "NAS ID"
|
||||||
|
a_w_cacert = "Path to CA-Certificate"
|
||||||
|
a_w_eaptype = "EAP-Method"
|
||||||
|
a_w_tlsprivkey = "Path to Private Key"
|
||||||
|
a_w_tlsprivkeypwd = "Password of Private Key"
|
||||||
|
a_w_peapauth = "PEAP-Authentication"
|
||||||
|
a_w_peapidentity = "PEAP-Identity"
|
||||||
|
a_w_peappassword = "PEAP-Password"
|
|
@ -356,3 +356,10 @@ a_s_crontab = "Geplante Aufgaben"
|
||||||
a_s_crontab1 = "Dies ist die System-Crontab in der geplante Aufgaben definiert werden können."
|
a_s_crontab1 = "Dies ist die System-Crontab in der geplante Aufgaben definiert werden können."
|
||||||
|
|
||||||
a_w_nasid = "NAS ID"
|
a_w_nasid = "NAS ID"
|
||||||
|
a_w_cacert = "Pfad zum CA-Zertifikat"
|
||||||
|
a_w_eaptype = "EAP-Methode"
|
||||||
|
a_w_tlsprivkey = "Pfad zum Privaten Schlüssel"
|
||||||
|
a_w_tlsprivkeypwd = "Passwort des Privaten Schlüssels"
|
||||||
|
a_w_peapauth = "PEAP-Authentifizierung"
|
||||||
|
a_w_peapidentity = "PEAP-Identitäz"
|
||||||
|
a_w_peappassword = "PEAP-Passwort"
|
|
@ -1,38 +1,30 @@
|
||||||
var cbi_d = {};
|
var cbi_d = [];
|
||||||
|
|
||||||
function cbi_d_add(field, target, value) {
|
|
||||||
if (!cbi_d[target]) {
|
|
||||||
cbi_d[target] = {};
|
|
||||||
}
|
|
||||||
if (!cbi_d[target][value]) {
|
|
||||||
cbi_d[target][value] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
function cbi_d_add(field, dep) {
|
||||||
var obj = document.getElementById(field);
|
var obj = document.getElementById(field);
|
||||||
if (obj) {
|
if (obj) {
|
||||||
var entry = {
|
var entry
|
||||||
|
for (var i=0; i<cbi_d.length; i++) {
|
||||||
|
if (cbi_d[i].id == field) {
|
||||||
|
entry = cbi_d[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!entry) {
|
||||||
|
entry = {
|
||||||
|
"id": field,
|
||||||
"node": obj,
|
"node": obj,
|
||||||
"parent": obj.parentNode,
|
"parent": obj.parentNode,
|
||||||
"next": obj.nextSibling
|
"next": obj.nextSibling,
|
||||||
}
|
"deps": []
|
||||||
cbi_d[target][value].unshift(entry);
|
};
|
||||||
}
|
cbi_d.unshift(entry);
|
||||||
}
|
|
||||||
|
|
||||||
function cbi_d_update(target) {
|
|
||||||
if (!cbi_d[target]) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var x in cbi_d[target]) {
|
|
||||||
for (var i=0; i<cbi_d[target][x].length; i++) {
|
|
||||||
var entry = cbi_d[target][x][i];
|
|
||||||
if (entry.node.parentNode) {
|
|
||||||
entry.parent.removeChild(entry.node)
|
|
||||||
}
|
}
|
||||||
|
entry.deps.push(dep)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function cbi_d_value(target) {
|
||||||
var t = document.getElementById(target);
|
var t = document.getElementById(target);
|
||||||
var value
|
var value
|
||||||
|
|
||||||
|
@ -46,21 +38,39 @@ function cbi_d_update(target) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cbi_d[target][value]) {
|
return value
|
||||||
for (var i=0; i<cbi_d[target][value].length; i++) {
|
}
|
||||||
var entry = cbi_d[target][value][i];
|
|
||||||
|
function cbi_d_check(deps) {
|
||||||
|
for (var i=0; i<deps.length; i++) {
|
||||||
|
var istat = true
|
||||||
|
for (var j in deps[i]) {
|
||||||
|
istat = (istat && cbi_d_value(j) == deps[i][j])
|
||||||
|
}
|
||||||
|
if (istat) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function cbi_d_update() {
|
||||||
|
var state = false;
|
||||||
|
for (var i=0; i<cbi_d.length; i++) {
|
||||||
|
var entry = cbi_d[i];
|
||||||
|
if (entry.node.parentNode && !cbi_d_check(entry.deps)) {
|
||||||
|
entry.parent.removeChild(entry.node);
|
||||||
|
state = (state || !entry.node.parentNode)
|
||||||
|
} else if (!entry.node.parentNode && cbi_d_check(entry.deps)) {
|
||||||
if (!entry.next) {
|
if (!entry.next) {
|
||||||
entry.parent.appendChild(entry.node);
|
entry.parent.appendChild(entry.node);
|
||||||
} else {
|
} else {
|
||||||
entry.parent.insertBefore(entry.node, entry.next);
|
entry.parent.insertBefore(entry.node, entry.next);
|
||||||
}
|
}
|
||||||
|
state = (state || entry.node.parentNode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (state) {
|
||||||
|
cbi_d_update();
|
||||||
function cbi_d_init() {
|
|
||||||
for (var x in cbi_d) {
|
|
||||||
cbi_d_update(x);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -710,7 +710,15 @@ end
|
||||||
|
|
||||||
-- Add a dependencie to another section field
|
-- Add a dependencie to another section field
|
||||||
function AbstractValue.depends(self, field, value)
|
function AbstractValue.depends(self, field, value)
|
||||||
table.insert(self.deps, {field=field, value=value})
|
local deps
|
||||||
|
if type(field) == "string" then
|
||||||
|
deps = {}
|
||||||
|
deps[field] = value
|
||||||
|
else
|
||||||
|
deps = field
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(self.deps, {deps=deps, add=""})
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Generates the unique CBID
|
-- Generates the unique CBID
|
||||||
|
@ -897,10 +905,14 @@ function ListValue.__init__(self, ...)
|
||||||
self.widget = "select"
|
self.widget = "select"
|
||||||
end
|
end
|
||||||
|
|
||||||
function ListValue.value(self, key, val)
|
function ListValue.value(self, key, val, ...)
|
||||||
val = val or key
|
val = val or key
|
||||||
table.insert(self.keylist, tostring(key))
|
table.insert(self.keylist, tostring(key))
|
||||||
table.insert(self.vallist, tostring(val))
|
table.insert(self.vallist, tostring(val))
|
||||||
|
|
||||||
|
for i, deps in ipairs({...}) do
|
||||||
|
table.insert(self.deps, {add = "-"..key, deps=deps})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function ListValue.validate(self, val)
|
function ListValue.validate(self, val)
|
||||||
|
|
|
@ -25,7 +25,15 @@ $Id$
|
||||||
<% if #self.deps > 0 then -%>
|
<% if #self.deps > 0 then -%>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
<% for j, d in ipairs(self.deps) do -%>
|
<% for j, d in ipairs(self.deps) do -%>
|
||||||
cbi_d_add("cbi-<%=self.config.."-"..section.."-"..self.option%>", "cbid.<%=self.config.."."..section.."."..d.field%>", "<%=d.value%>");
|
cbi_d_add("cbi-<%=self.config.."-"..section.."-"..self.option..d.add%>", {
|
||||||
|
<%-
|
||||||
|
for k,v in pairs(d.deps) do
|
||||||
|
-%>
|
||||||
|
<%-=string.format('"cbid.%s.%s.%s"', self.config, section, k) .. ":" .. string.format("%q", v)-%>,
|
||||||
|
<%-
|
||||||
|
end
|
||||||
|
-%>
|
||||||
|
});
|
||||||
<%- end %>
|
<%- end %>
|
||||||
</script>
|
</script>
|
||||||
<%- end %>
|
<%- end %>
|
||||||
|
|
|
@ -17,7 +17,7 @@ $Id$
|
||||||
<input class="cbi-button cbi-button-apply" type="submit" name="cbi.apply" value="<%:saveapply%>" />
|
<input class="cbi-button cbi-button-apply" type="submit" name="cbi.apply" value="<%:saveapply%>" />
|
||||||
<input class="cbi-button cbi-button-save" type="submit" value="<%:save%>" />
|
<input class="cbi-button cbi-button-save" type="submit" value="<%:save%>" />
|
||||||
<input class="cbi-button cbi-button-reset" type="reset" value="<%:reset%>" />
|
<input class="cbi-button cbi-button-reset" type="reset" value="<%:reset%>" />
|
||||||
<script type="text/javascript">cbi_d_init();</script>
|
<script type="text/javascript">cbi_d_update();</script>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<%+footer%>
|
<%+footer%>
|
||||||
|
|
|
@ -34,7 +34,15 @@ $Id$
|
||||||
<% if #self.deps > 0 then -%>
|
<% if #self.deps > 0 then -%>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
<% for j, d in ipairs(self.deps) do -%>
|
<% for j, d in ipairs(self.deps) do -%>
|
||||||
cbi_d_add("cbi-<%=self.config.."-"..section.."-"..self.option%>", "cbid.<%=self.config.."."..section.."."..d.field%>", "<%=d.value%>");
|
cbi_d_add("cbi-<%=self.config.."-"..section.."-"..self.option..d.add%>", {
|
||||||
|
<%-
|
||||||
|
for k,v in pairs(d.deps) do
|
||||||
|
-%>
|
||||||
|
<%-=string.format('"cbid.%s.%s.%s"', self.config, section, k) .. ":" .. string.format("%q", v)-%>,
|
||||||
|
<%-
|
||||||
|
end
|
||||||
|
-%>
|
||||||
|
});
|
||||||
<%- end %>
|
<%- end %>
|
||||||
</script>
|
</script>
|
||||||
<%- end %>
|
<%- end %>
|
||||||
|
|
|
@ -16,7 +16,7 @@ $Id$
|
||||||
<% if self.widget == "select" then %>
|
<% if self.widget == "select" then %>
|
||||||
<select onchange="cbi_d_update(this.id)"<%= attr("id", cbid) .. attr("name", cbid) .. ifattr(self.size, "size") %>>
|
<select onchange="cbi_d_update(this.id)"<%= attr("id", cbid) .. attr("name", cbid) .. ifattr(self.size, "size") %>>
|
||||||
<% for i, key in pairs(self.keylist) do -%>
|
<% for i, key in pairs(self.keylist) do -%>
|
||||||
<option<%= attr("value", key) .. ifattr(self:cfgvalue(section) == key, "selected", "selected") %>><%=luci.util.pcdata(self.vallist[i])%></option>
|
<option id="cbi-<%=self.config.."-"..section.."-"..self.option.."-"..key%>"<%= attr("value", key) .. ifattr(self:cfgvalue(section) == key, "selected", "selected") %>><%=luci.util.pcdata(self.vallist[i])%></option>
|
||||||
<%- end %>
|
<%- end %>
|
||||||
</select>
|
</select>
|
||||||
<% elseif self.widget == "radio" then
|
<% elseif self.widget == "radio" then
|
||||||
|
|
|
@ -27,8 +27,17 @@ $Id$
|
||||||
<%- end %>
|
<%- end %>
|
||||||
</select>
|
</select>
|
||||||
<script type="text/javascript"><% for key, val in pairs(self.optionals[section]) do %>
|
<script type="text/javascript"><% for key, val in pairs(self.optionals[section]) do %>
|
||||||
<% if #val.deps > 0 then %><% for j, d in ipairs(val.deps) do %>cbi_d_add("cbi-<%=self.config.."-"..section.."-"..val.option%>", "cbid.<%=self.config.."."..section.."."..d.field%>", "<%=d.value%>");
|
<% if #val.deps > 0 then %><% for j, d in ipairs(val.deps) do -%>
|
||||||
<% end %><% end %>
|
cbi_d_add("cbi-<%=self.config.."-"..section.."-"..val.option..d.add%>", {
|
||||||
|
<%-
|
||||||
|
for k,v in pairs(d.deps) do
|
||||||
|
-%>
|
||||||
|
<%-=string.format('"cbid.%s.%s.%s"', self.config, section, k) .. ":" .. string.format("%q", v)-%>,
|
||||||
|
<%-
|
||||||
|
end
|
||||||
|
-%>
|
||||||
|
});
|
||||||
|
<%- end %><% end %>
|
||||||
<% end %></script>
|
<% end %></script>
|
||||||
<% end %>
|
<% end %>
|
||||||
<input type="submit" class="cbi-button cbi-button-fieldadd" value="<%:add%>" />
|
<input type="submit" class="cbi-button cbi-button-fieldadd" value="<%:add%>" />
|
||||||
|
|
|
@ -25,18 +25,7 @@ function en.cfgvalue(self, section)
|
||||||
return Flag.cfgvalue(self, section) or "0"
|
return Flag.cfgvalue(self, section) or "0"
|
||||||
end
|
end
|
||||||
|
|
||||||
t = s:option(ListValue, "type", translate("type"))
|
t = s:option(DummyValue, "type", translate("type"))
|
||||||
t:value("broadcom")
|
|
||||||
t:value("atheros")
|
|
||||||
t:value("mac80211")
|
|
||||||
t:value("prism2")
|
|
||||||
--[[
|
|
||||||
require("luci.sys")
|
|
||||||
local c = ". /etc/functions.sh;for i in /lib/wifi/*;do . $i;done;echo $DRIVERS"
|
|
||||||
for driver in luci.util.execl(c)[1]:gmatch("[^ ]+") do
|
|
||||||
t:value(driver)
|
|
||||||
end
|
|
||||||
]]--
|
|
||||||
|
|
||||||
mode = s:option(ListValue, "mode", translate("mode"))
|
mode = s:option(ListValue, "mode", translate("mode"))
|
||||||
mode:value("", "standard")
|
mode:value("", "standard")
|
||||||
|
|
|
@ -49,29 +49,71 @@ s:option(Flag, "bursting", translate("a_w_athburst")).optional = true
|
||||||
encr = s:option(ListValue, "encryption", translate("encryption"))
|
encr = s:option(ListValue, "encryption", translate("encryption"))
|
||||||
encr:value("none", "keine")
|
encr:value("none", "keine")
|
||||||
encr:value("wep", "WEP")
|
encr:value("wep", "WEP")
|
||||||
encr:value("psk", "WPA-PSK")
|
encr:value("PSK", "WPA-PSK")
|
||||||
encr:value("wpa", "WPA-Radius")
|
encr:value("WPA", "WPA-EAP", {mode="ap"}, {mode="sta"})
|
||||||
encr:value("psk2", "WPA2-PSK")
|
encr:value("PSK2", "WPA2-PSK")
|
||||||
encr:value("wpa2", "WPA2-Radius")
|
encr:value("WPA2", "WPA2-EAP", {mode="ap"}, {mode="sta"})
|
||||||
|
encr:depends("mode", "ap")
|
||||||
key = s:option(Value, "key", translate("key"))
|
encr:depends("mode", "sta")
|
||||||
key:depends("encryption", "wep")
|
encr:depends("mode", "wds")
|
||||||
key:depends("encryption", "psk")
|
|
||||||
key:depends("encryption", "wpa")
|
|
||||||
key:depends("encryption", "psk2")
|
|
||||||
key:depends("encryption", "wpa2")
|
|
||||||
key.rmempty = true
|
|
||||||
|
|
||||||
server = s:option(Value, "server", translate("a_w_radiussrv"))
|
server = s:option(Value, "server", translate("a_w_radiussrv"))
|
||||||
server:depends("encryption", "wpa")
|
server:depends({mode="ap", encryption="WPA"})
|
||||||
server:depends("encryption", "wpa2")
|
server:depends({mode="ap", encryption="WPA2"})
|
||||||
server.rmempty = true
|
server.rmempty = true
|
||||||
|
|
||||||
port = s:option(Value, "port", translate("a_w_radiusport"))
|
port = s:option(Value, "port", translate("a_w_radiusport"))
|
||||||
port:depends("encryption", "wpa")
|
port:depends({mode="ap", encryption="WPA"})
|
||||||
port:depends("encryption", "wpa2")
|
port:depends({mode="ap", encryption="WPA2"})
|
||||||
port.rmempty = true
|
port.rmempty = true
|
||||||
|
|
||||||
|
key = s:option(Value, "key", translate("key"))
|
||||||
|
key:depends("encryption", "wep")
|
||||||
|
key:depends("encryption", "PSK")
|
||||||
|
key:depends({mode="ap", encryption="WPA"})
|
||||||
|
key:depends("encryption", "PSK2")
|
||||||
|
key:depends({mode="ap", encryption="WPA2"})
|
||||||
|
key.rmempty = true
|
||||||
|
|
||||||
|
nasid = s:option(Value, "nasid", translate("a_w_nasid"))
|
||||||
|
nasid:depends({mode="ap", encryption="WPA"})
|
||||||
|
nasid:depends({mode="ap", encryption="WPA2"})
|
||||||
|
nasid.rmempty = true
|
||||||
|
|
||||||
|
eaptype = s:option(ListValue, "eap_type", translate("a_w_eaptype"))
|
||||||
|
eaptype:value("TLS")
|
||||||
|
eaptype:value("PEAP")
|
||||||
|
eaptype:depends({mode="sta", encryption="WPA"})
|
||||||
|
eaptype:depends({mode="sta", encryption="WPA2"})
|
||||||
|
|
||||||
|
cacert = s:option(Value, "ca_cert", translate("a_w_cacert"))
|
||||||
|
cacert:depends({mode="sta", encryption="WPA"})
|
||||||
|
cacert:depends({mode="sta", encryption="WPA2"})
|
||||||
|
|
||||||
|
privkey = s:option(Value, "priv_key", translate("a_w_tlsprivkey"))
|
||||||
|
privkey:depends({mode="sta", eap_type="TLS", encryption="WPA2"})
|
||||||
|
privkey:depends({mode="sta", eap_type="TLS", encryption="WPA"})
|
||||||
|
|
||||||
|
privkeypwd = s:option(Value, "priv_key_pwd", translate("a_w_tlsprivkeypwd"))
|
||||||
|
privkeypwd:depends({mode="sta", eap_type="TLS", encryption="WPA2"})
|
||||||
|
privkeypwd:depends({mode="sta", eap_type="TLS", encryption="WPA"})
|
||||||
|
|
||||||
|
|
||||||
|
auth = s:option(Value, "auth", translate("a_w_peapauth"))
|
||||||
|
auth:depends({mode="sta", eap_type="PEAP", encryption="WPA2"})
|
||||||
|
auth:depends({mode="sta", eap_type="PEAP", encryption="WPA"})
|
||||||
|
|
||||||
|
identity = s:option(Value, "identity", translate("a_w_peapidentity"))
|
||||||
|
identity:depends({mode="sta", eap_type="PEAP", encryption="WPA2"})
|
||||||
|
identity:depends({mode="sta", eap_type="PEAP", encryption="WPA"})
|
||||||
|
|
||||||
|
password = s:option(Value, "password", translate("a_w_peappassword"))
|
||||||
|
password:depends({mode="sta", eap_type="PEAP", encryption="WPA2"})
|
||||||
|
password:depends({mode="sta", eap_type="PEAP", encryption="WPA"})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
s:option(Flag, "isolate", translate("a_w_apisolation"), translate("a_w_apisolation1")).optional = true
|
s:option(Flag, "isolate", translate("a_w_apisolation"), translate("a_w_apisolation1")).optional = true
|
||||||
|
|
||||||
s:option(Flag, "hidden", translate("a_w_hideessid")).optional = true
|
s:option(Flag, "hidden", translate("a_w_hideessid")).optional = true
|
||||||
|
|
Loading…
Reference in a new issue