summaryrefslogtreecommitdiffhomepage
path: root/libs/web/luasrc/dispatcher.lua
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2008-09-29 15:38:13 +0000
committerSteven Barth <steven@midlink.org>2008-09-29 15:38:13 +0000
commit40540257aec8d0a32ef68b499ea2fe6416199a19 (patch)
tree2ef1fe458776a5ef50999436ce5088f54224a352 /libs/web/luasrc/dispatcher.lua
parent590f88b6fa117f8fa5c05e9ed4bf8a1287a72668 (diff)
Fallback to working theme if selected one does not exist
Diffstat (limited to 'libs/web/luasrc/dispatcher.lua')
-rw-r--r--libs/web/luasrc/dispatcher.lua14
1 files changed, 13 insertions, 1 deletions
diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua
index 236bc9c15d..fc568969b2 100644
--- a/libs/web/luasrc/dispatcher.lua
+++ b/libs/web/luasrc/dispatcher.lua
@@ -163,6 +163,18 @@ function dispatch(request)
-- Init template engine
if not track.notemplate then
local tpl = require("luci.template")
+ local media = 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")
+ end
+
local viewns = setmetatable({}, {__index=_G})
tpl.context.viewns = viewns
viewns.write = luci.http.write
@@ -170,7 +182,7 @@ function dispatch(request)
viewns.translate = function(...) return require("luci.i18n").translate(...) end
viewns.striptags = util.striptags
viewns.controller = luci.http.getenv("SCRIPT_NAME")
- viewns.media = luci.config.main.mediaurlbase
+ viewns.media = media
viewns.resource = luci.config.main.resourcebase
viewns.REQUEST_URI = (luci.http.getenv("SCRIPT_NAME") or "") .. (luci.http.getenv("PATH_INFO") or "")
end