end
function Map.formvalue(self, key)
- return self.readinput and luci.http.formvalue(key)
+ return self.readinput and luci.http.formvalue(key) or nil
end
function Map.formvaluetable(self, key)
end
-- Parse optional options
-function AbstractSection.parse_optionals(self, section)
+function AbstractSection.parse_optionals(self, section, noparse)
if not self.optional then
return
end
self.optionals[section] = {}
- local field = self.map:formvalue("cbi.opt."..self.config.."."..section)
+ local field = nil
+ if not noparse then
+ field = self.map:formvalue("cbi.opt."..self.config.."."..section)
+ end
+
for k,v in ipairs(self.children) do
if v.optional and not v:cfgvalue(section) and not self:has_tabs() then
if field == v.option then
self.section = section
end
+function NamedSection.prepare(self)
+ AbstractSection.prepare(self)
+ AbstractSection.parse_optionals(self, self.section, true)
+end
+
function NamedSection.parse(self, novld)
local s = self.section
local active = self:cfgvalue(s)
self.anonymous = false
end
+function TypedSection.prepare(self)
+ AbstractSection.prepare(self)
+
+ local i, s
+ for i, s in ipairs(self:cfgsections()) do
+ AbstractSection.parse_optionals(self, s, true)
+ end
+end
+
-- Return all matching UCI sections for this TypedSection
function TypedSection.cfgsections(self)
local sections = {}