diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/cbi/luasrc/cbi.lua | 12 | ||||
-rw-r--r-- | libs/web/luasrc/dispatcher.lua | 18 |
2 files changed, 18 insertions, 12 deletions
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index 6e08455655..7370a04c46 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -57,14 +57,16 @@ function load(cbimap) luci.util.extfenv(func, "translate", luci.i18n.translate) luci.util.extfenv(func, "translatef", luci.i18n.translatef) - local map = func() + local maps = {func()} - if not instanceof(map, Map) then - error("CBI map returns no valid map object!") - return nil + for i, map in ipairs(maps) do + if not instanceof(map, Map) then + error("CBI map returns no valid map object!") + return nil + end end - return map + return maps end -- Node pseudo abstract class diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index 689d060d52..735e2a7150 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -381,20 +381,24 @@ function cbi(model) require("luci.template") 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 - error500(res) + error500(maps) return true end - local stat, err = luci.util.copcall(res.parse, res) - if not stat then - error500(err) - return true + for i, res in ipairs(maps) do + local stat, err = luci.util.copcall(res.parse, res) + if not stat then + error500(err) + return true + end end luci.template.render("cbi/header") - res:render() + for i, res in ipairs(maps) do + res:render() + end luci.template.render("cbi/footer") end end |