libs/web: move ifattr() and attr() helpers into dispatcher scope to make them avilable to all templates, remove duplicate exports in cbi tempalte scope
This commit is contained in:
parent
8c9aef1b2d
commit
e12b8dbc1f
2 changed files with 19 additions and 24 deletions
|
@ -1325,29 +1325,8 @@ end
|
||||||
function AbstractValue.render(self, s, scope)
|
function AbstractValue.render(self, s, scope)
|
||||||
if not self.optional or self.section:has_tabs() or self:cfgvalue(s) or self:formcreated(s) then
|
if not self.optional or self.section:has_tabs() or self:cfgvalue(s) or self:formcreated(s) then
|
||||||
scope = scope or {}
|
scope = scope or {}
|
||||||
scope.section = s
|
scope.section = s
|
||||||
scope.cbid = self:cbid(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
|
|
||||||
|
|
||||||
Node.render(self, scope)
|
Node.render(self, scope)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -281,6 +281,20 @@ function dispatch(request)
|
||||||
assert(media, "No valid theme found")
|
assert(media, "No valid theme found")
|
||||||
end
|
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({
|
tpl.context.viewns = setmetatable({
|
||||||
write = luci.http.write;
|
write = luci.http.write;
|
||||||
include = function(name) tpl.Template(name):render(getfenv(2)) end;
|
include = function(name) tpl.Template(name):render(getfenv(2)) end;
|
||||||
|
@ -290,7 +304,9 @@ function dispatch(request)
|
||||||
pcdata = util.pcdata;
|
pcdata = util.pcdata;
|
||||||
media = media;
|
media = media;
|
||||||
theme = fs.basename(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)
|
}, {__index=function(table, key)
|
||||||
if key == "controller" then
|
if key == "controller" then
|
||||||
return build_url()
|
return build_url()
|
||||||
|
|
Loading…
Reference in a new issue