-- Loads a CBI map from given file, creating an environment and returns it
-function load(cbimap)
+function load(cbimap, ...)
require("luci.fs")
require("luci.i18n")
require("luci.config")
- require("luci.sys")
+ require("luci.util")
- local cbidir = luci.sys.libpath() .. "/model/cbi/"
+ local cbidir = luci.util.libpath() .. "/model/cbi/"
local func, err = loadfile(cbidir..cbimap..".lua")
if not func then
luci.util.updfenv(func, luci.cbi)
luci.util.extfenv(func, "translate", luci.i18n.translate)
luci.util.extfenv(func, "translatef", luci.i18n.translatef)
+ luci.util.extfenv(func, "arg", {...})
local maps = {func()}
for i, config in ipairs(self.parsechain) do
uci.commit(config)
if luci.config.uci_oncommit and luci.config.uci_oncommit[config] then
- luci.sys.exec(luci.config.uci_oncommit[config])
+ luci.util.exec(luci.config.uci_oncommit[config])
end
-- Refresh data because commit changes section names
self.template = "cbi/tsection"
self.deps = {}
- self.excludes = {}
self.anonymous = false
end
table.insert(self.deps, {option=option, value=value})
end
--- Excludes several sections by name
-function TypedSection.exclude(self, field)
- self.excludes[field] = true
-end
-
function TypedSection.parse(self)
if self.addremove then
-- Create
-- Verifies scope of sections
function TypedSection.checkscope(self, section)
-- Check if we are not excluded
- if self.excludes[section] then
+ if self.filter and not self.filter(section) then
return nil
end