summaryrefslogtreecommitdiffhomepage
path: root/libs/web
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-10-26 02:17:45 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-10-26 02:17:45 +0000
commite12b8dbc1f8d4a0d820d89ab8ade4bc6f740bb63 (patch)
tree05076813df6ac4ce3a94d2a0c1d7997831db3f4a /libs/web
parent8c9aef1b2de7df6838b939c9eb314ad613bab3d9 (diff)
libs/web: move ifattr() and attr() helpers into dispatcher scope to make them avilable to all templates, remove duplicate exports in cbi tempalte scope
Diffstat (limited to 'libs/web')
-rw-r--r--libs/web/luasrc/cbi.lua25
-rw-r--r--libs/web/luasrc/dispatcher.lua18
2 files changed, 19 insertions, 24 deletions
diff --git a/libs/web/luasrc/cbi.lua b/libs/web/luasrc/cbi.lua
index 86658d702..8b9805f04 100644
--- a/libs/web/luasrc/cbi.lua
+++ b/libs/web/luasrc/cbi.lua
@@ -1325,29 +1325,8 @@ end
function AbstractValue.render(self, s, scope)
if not self.optional or self.section:has_tabs() or self:cfgvalue(s) or self:formcreated(s) then
scope = scope or {}
- scope.section = s
- scope.cbid = self:cbid(s)
- scope.striptags = luci.util.striptags
- scope.pcdata = luci.util.pcdata
-
- scope.ifattr = function(cond,key,val)
- if cond then
- return string.format(
- ' %s="%s"', tostring(key),
- luci.util.pcdata(tostring( val
- or scope[key]
- or (type(self[key]) ~= "function" and self[key])
- or "" ))
- )
- else
- return ''
- end
- end
-
- scope.attr = function(...)
- return scope.ifattr( true, ... )
- end
-
+ scope.section = s
+ scope.cbid = self:cbid(s)
Node.render(self, scope)
end
end
diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua
index c1e8d990f..b1ed62b82 100644
--- a/libs/web/luasrc/dispatcher.lua
+++ b/libs/web/luasrc/dispatcher.lua
@@ -281,6 +281,20 @@ function dispatch(request)
assert(media, "No valid theme found")
end
+ local function ifattr(cond, key, val)
+ if cond then
+ local env = getfenv(1)
+ return string.format(
+ ' %s="%s"', tostring(key),
+ luci.util.pcdata(tostring( val
+ or (type(env[key]) ~= "function" and env[key])
+ or "" ))
+ )
+ else
+ return ''
+ end
+ end
+
tpl.context.viewns = setmetatable({
write = luci.http.write;
include = function(name) tpl.Template(name):render(getfenv(2)) end;
@@ -290,7 +304,9 @@ function dispatch(request)
pcdata = util.pcdata;
media = media;
theme = fs.basename(media);
- resource = luci.config.main.resourcebase
+ resource = luci.config.main.resourcebase;
+ ifattr = ifattr;
+ attr = function(...) return ifattr(true, ...) end
}, {__index=function(table, key)
if key == "controller" then
return build_url()