local k, node
for k, node in ipairs(self.children) do
node.last_child = (k == #self.children)
+ node.index = k
node:render(...)
end
end
local k, node
for k, node in ipairs(self.tabs[tab].childs) do
node.last_child = (k == #self.tabs[tab].childs)
+ node.index = k
node:render(...)
end
end
self.tag_reqerror = {}
self.tag_error = {}
self.deps = {}
- self.subdeps = {}
--self.cast = "string"
self.track_missing = false
deps = field
end
- table.insert(self.deps, {deps=deps, add=""})
+ table.insert(self.deps, deps)
+end
+
+-- Serialize dependencies
+function AbstractValue.deplist2json(self, section, deplist)
+ local deps, i, d = { }
+
+ if type(self.deps) == "table" then
+ for i, d in ipairs(deplist or self.deps) do
+ local a, k, v = { }
+ for k, v in pairs(d) do
+ if k:find("!", 1, true) then
+ a[k] = v
+ elseif k:find(".", 1, true) then
+ a['cbid.%s' % k] = v
+ else
+ a['cbid.%s.%s.%s' %{ self.config, section, k }] = v
+ end
+ end
+ deps[#deps+1] = a
+ end
+ end
+
+ return util.serialize_json(deps)
end
-- Generates the unique CBID
AbstractValue.__init__(self, ...)
self.template = "cbi/lvalue"
- self.keylist = {}
- self.vallist = {}
self.size = 1
self.widget = "select"
+
+ self:reset_values()
end
function ListValue.reset_values(self)
self.keylist = {}
self.vallist = {}
+ self.deplist = {}
end
function ListValue.value(self, key, val, ...)
val = val or key
table.insert(self.keylist, tostring(key))
table.insert(self.vallist, tostring(val))
-
- for i, deps in ipairs({...}) do
- self.subdeps[#self.subdeps + 1] = {add = "-"..key, deps=deps}
- end
+ table.insert(self.deplist, {...})
end
function ListValue.validate(self, val)
AbstractValue.__init__(self, ...)
self.template = "cbi/mvalue"
- self.keylist = {}
- self.vallist = {}
-
self.widget = "checkbox"
self.delimiter = " "
+
+ self:reset_values()
end
function MultiValue.render(self, ...)
function MultiValue.reset_values(self)
self.keylist = {}
self.vallist = {}
+ self.deplist = {}
end
function MultiValue.value(self, key, val)
AbstractValue.__init__(self, ...)
self.template = "cbi/dynlist"
self.cast = "table"
- self.keylist = {}
- self.vallist = {}
+ self:reset_values()
end
function DynamicList.reset_values(self)