local track = {}
local args = {}
- context.args = args
+ ctx.args = args
+ ctx.requestargs = ctx.requestargs or args
local n
for i, s in ipairs(request) do
-- @param path Controller base directory
-- @param suffix Controller file suffix
function createindex_plain(path, suffix)
+ local controllers = util.combine(
+ luci.fs.glob(path .. "*" .. suffix) or {},
+ luci.fs.glob(path .. "*/*" .. suffix) or {}
+ )
+
if indexcache then
local cachedate = fs.mtime(indexcache)
- if cachedate and cachedate > fs.mtime(path) then
+ if cachedate then
+ local realdate = 0
+ for _, obj in ipairs(controllers) do
+ local omtime = fs.mtime(path .. "/" .. obj)
+ realdate = (omtime and omtime > realdate) and omtime or realdate
+ end
- assert(
- sys.process.info("uid") == fs.stat(indexcache, "uid")
- and fs.stat(indexcache, "mode") == "rw-------",
- "Fatal: Indexcache is not sane!"
- )
+ if cachedate > realdate then
+ assert(
+ sys.process.info("uid") == fs.stat(indexcache, "uid")
+ and fs.stat(indexcache, "mode") == "rw-------",
+ "Fatal: Indexcache is not sane!"
+ )
- index = loadfile(indexcache)()
- return index
+ index = loadfile(indexcache)()
+ return index
+ end
end
end
index = {}
- local controllers = util.combine(
- luci.fs.glob(path .. "*" .. suffix) or {},
- luci.fs.glob(path .. "*/*" .. suffix) or {}
- )
-
for i,c in ipairs(controllers) do
local module = "luci.controller." .. c:sub(#path+1, #c-#suffix):gsub("/", ".")
local mod = require(module)
end
end
+ if config.on_valid_to and state and state > 0 and state < 2 then
+ luci.http.redirect(config.on_valid_to)
+ return
+ end
+
+ if config.on_changed_to and state and state > 1 then
+ luci.http.redirect(config.on_changed_to)
+ return
+ end
+
+ if config.on_success_to and state and state > 0 then
+ luci.http.redirect(config.on_success_to)
+ return
+ end
+
if config.state_handler then
if not config.state_handler(state, maps) then
return