lib/cbi: Added support for multiple CBI maps per model
This commit is contained in:
parent
97ff4a156f
commit
d0a622dce8
3 changed files with 18 additions and 12 deletions
|
@ -57,14 +57,16 @@ function load(cbimap)
|
||||||
luci.util.extfenv(func, "translate", luci.i18n.translate)
|
luci.util.extfenv(func, "translate", luci.i18n.translate)
|
||||||
luci.util.extfenv(func, "translatef", luci.i18n.translatef)
|
luci.util.extfenv(func, "translatef", luci.i18n.translatef)
|
||||||
|
|
||||||
local map = func()
|
local maps = {func()}
|
||||||
|
|
||||||
if not instanceof(map, Map) then
|
for i, map in ipairs(maps) do
|
||||||
error("CBI map returns no valid map object!")
|
if not instanceof(map, Map) then
|
||||||
return nil
|
error("CBI map returns no valid map object!")
|
||||||
|
return nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return map
|
return maps
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Node pseudo abstract class
|
-- Node pseudo abstract class
|
||||||
|
|
|
@ -381,20 +381,24 @@ function cbi(model)
|
||||||
require("luci.template")
|
require("luci.template")
|
||||||
|
|
||||||
return function()
|
return function()
|
||||||
local stat, res = luci.util.copcall(luci.cbi.load, model)
|
local stat, maps = luci.util.copcall(luci.cbi.load, model)
|
||||||
if not stat then
|
if not stat then
|
||||||
error500(res)
|
error500(maps)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
local stat, err = luci.util.copcall(res.parse, res)
|
for i, res in ipairs(maps) do
|
||||||
if not stat then
|
local stat, err = luci.util.copcall(res.parse, res)
|
||||||
error500(err)
|
if not stat then
|
||||||
return true
|
error500(err)
|
||||||
|
return true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
luci.template.render("cbi/header")
|
luci.template.render("cbi/header")
|
||||||
res:render()
|
for i, res in ipairs(maps) do
|
||||||
|
res:render()
|
||||||
|
end
|
||||||
luci.template.render("cbi/footer")
|
luci.template.render("cbi/footer")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue