Overall CBI-UVL ineraction fixes
This commit is contained in:
parent
b69589fba3
commit
f9303705a0
4 changed files with 24 additions and 8 deletions
|
@ -75,6 +75,8 @@ function load(cbimap, ...)
|
||||||
if not instanceof(map, Node) then
|
if not instanceof(map, Node) then
|
||||||
error("CBI map returns no valid map object!")
|
error("CBI map returns no valid map object!")
|
||||||
return nil
|
return nil
|
||||||
|
else
|
||||||
|
map:prepare()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -166,6 +168,13 @@ function Node._i18n(self, config, section, option, title, description)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Prepare nodes
|
||||||
|
function Node.prepare(self, ...)
|
||||||
|
for k, child in ipairs(self.children) do
|
||||||
|
child:prepare(...)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Append child nodes
|
-- Append child nodes
|
||||||
function Node.append(self, obj)
|
function Node.append(self, obj)
|
||||||
table.insert(self.children, obj)
|
table.insert(self.children, obj)
|
||||||
|
@ -870,7 +879,9 @@ function AbstractValue.__init__(self, map, section, option, ...)
|
||||||
self.default = nil
|
self.default = nil
|
||||||
self.size = nil
|
self.size = nil
|
||||||
self.optional = false
|
self.optional = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function AbstractValue.prepare(self)
|
||||||
-- Use defaults from UVL
|
-- Use defaults from UVL
|
||||||
if not self.override_scheme
|
if not self.override_scheme
|
||||||
and self.map:get_scheme(self.section.sectiontype, self.option) then
|
and self.map:get_scheme(self.section.sectiontype, self.option) then
|
||||||
|
@ -1099,23 +1110,23 @@ function ListValue.__init__(self, ...)
|
||||||
self.vallist = {}
|
self.vallist = {}
|
||||||
self.size = 1
|
self.size = 1
|
||||||
self.widget = "select"
|
self.widget = "select"
|
||||||
|
end
|
||||||
|
|
||||||
|
function ListValue.prepare(self, ...)
|
||||||
|
AbstractValue.prepare(self, ...)
|
||||||
if not self.override_scheme
|
if not self.override_scheme
|
||||||
and self.map:get_scheme(self.section.sectiontype, self.option) then
|
and self.map:get_scheme(self.section.sectiontype, self.option) then
|
||||||
local vs = self.map:get_scheme(self.section.sectiontype, self.option)
|
local vs = self.map:get_scheme(self.section.sectiontype, self.option)
|
||||||
if self.value and vs.values and not self.override_values then
|
if self.value and vs.valuelist and not self.override_values then
|
||||||
if self.rmempty or self.optional then
|
for k, v in ipairs(vs.valuelist) do
|
||||||
self:value("")
|
|
||||||
end
|
|
||||||
for k, v in pairs(vs.values) do
|
|
||||||
local deps = {}
|
local deps = {}
|
||||||
if not self.override_dependencies
|
if not self.override_dependencies
|
||||||
and vs.enum_depends and vs.enum_depends[k] then
|
and vs.enum_depends and vs.enum_depends[v.value] then
|
||||||
for i, dep in ipairs(vs.enum_depends[k]) do
|
for i, dep in ipairs(vs.enum_depends[v.value]) do
|
||||||
table.insert(deps, _uvl_strip_remote_dependencies(dep))
|
table.insert(deps, _uvl_strip_remote_dependencies(dep))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
self:value(k, v, unpack(deps))
|
self:value(v.value, v.title or v.value, unpack(deps))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -633,8 +633,10 @@ function UVL._parse_enum(self, scheme, k, v)
|
||||||
|
|
||||||
if not t.values then
|
if not t.values then
|
||||||
t.values = { [v.value] = v.title or v.value }
|
t.values = { [v.value] = v.title or v.value }
|
||||||
|
t.valuelist = { {value = v.value, title = v.title} }
|
||||||
else
|
else
|
||||||
t.values[v.value] = v.title or v.value
|
t.values[v.value] = v.title or v.value
|
||||||
|
t.valuelist[#t.valuelist + 1] = {value = v.value, title = v.title}
|
||||||
end
|
end
|
||||||
|
|
||||||
if not t.enum_depends then
|
if not t.enum_depends then
|
||||||
|
|
|
@ -236,6 +236,7 @@ end
|
||||||
------------------- WiFI-Encryption -------------------
|
------------------- WiFI-Encryption -------------------
|
||||||
|
|
||||||
encr = s:option(ListValue, "encryption", translate("encryption"))
|
encr = s:option(ListValue, "encryption", translate("encryption"))
|
||||||
|
encr.override_values = true
|
||||||
encr:depends({mode="ap"})
|
encr:depends({mode="ap"})
|
||||||
encr:depends({mode="sta"})
|
encr:depends({mode="sta"})
|
||||||
encr:depends({mode="adhoc"})
|
encr:depends({mode="adhoc"})
|
||||||
|
|
|
@ -141,6 +141,7 @@ local hwtype = m:get(wifidevs[1], "type")
|
||||||
|
|
||||||
if hwtype == "atheros" then
|
if hwtype == "atheros" then
|
||||||
mode = s:option(ListValue, "mode", translate("mode"))
|
mode = s:option(ListValue, "mode", translate("mode"))
|
||||||
|
mode.override_values = true
|
||||||
mode:value("", "auto")
|
mode:value("", "auto")
|
||||||
mode:value("11b", "802.11b")
|
mode:value("11b", "802.11b")
|
||||||
mode:value("11g", "802.11g")
|
mode:value("11g", "802.11g")
|
||||||
|
@ -206,6 +207,7 @@ function mode.write(self, section, value)
|
||||||
end
|
end
|
||||||
|
|
||||||
encr = s:option(ListValue, "encryption", translate("encryption"))
|
encr = s:option(ListValue, "encryption", translate("encryption"))
|
||||||
|
encr.override_values = true
|
||||||
encr:value("none", "No Encryption")
|
encr:value("none", "No Encryption")
|
||||||
encr:value("wep", "WEP")
|
encr:value("wep", "WEP")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue