From: Steven Barth Date: Tue, 15 Jul 2008 13:17:28 +0000 (+0000) Subject: lib/cbi: Added support for multiple CBI maps per model X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=d0a622dce8163cb1f9d0a178127b7abda6c4e818;p=openwrt-luci.git lib/cbi: Added support for multiple CBI maps per model --- 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 diff --git a/modules/admin-mini/luasrc/controller/index.lua b/modules/admin-mini/luasrc/controller/mini/index.lua similarity index 100% rename from modules/admin-mini/luasrc/controller/index.lua rename to modules/admin-mini/luasrc/controller/mini/index.lua