- local tpl = require("luci.template")
- local viewns = {}
- tpl.context.viewns = viewns
- viewns.write = luci.http.write
- viewns.translate = function(...) return require("luci.i18n").translate(...) end
- viewns.controller = luci.http.getenv("SCRIPT_NAME")
- viewns.media = luci.config.main.mediaurlbase
- viewns.resource = luci.config.main.resourcebase
- viewns.REQUEST_URI = luci.http.getenv("SCRIPT_NAME") .. (luci.http.getenv("PATH_INFO") or "")
-
- if track.dependent then
- local stat, err = pcall(assert, not track.auto)
- if not stat then
- error500(err)
- return
+ if (c and c.index) or not track.notemplate then
+ local tpl = require("luci.template")
+ local media = track.mediaurlbase or luci.config.main.mediaurlbase
+ if not pcall(tpl.Template, "themes/%s/header" % fs.basename(media)) then
+ media = nil
+ for name, theme in pairs(luci.config.themes) do
+ if name:sub(1,1) ~= "." and pcall(tpl.Template,
+ "themes/%s/header" % fs.basename(theme)) then
+ media = theme
+ end
+ end
+ assert(media, "No valid theme found")