projects
/
project
/
luci.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
CBI: Allow lazy loading of wizard pages (improving RAM usage)
[project/luci.git]
/
libs
/
cbi
/
luasrc
/
cbi.lua
diff --git
a/libs/cbi/luasrc/cbi.lua
b/libs/cbi/luasrc/cbi.lua
index 5a1d923853381cb8b8cbe952b3dc3f806d83af9e..9b947cb2f0fe841dacab2316c334e6732db2c54c 100644
(file)
--- a/
libs/cbi/luasrc/cbi.lua
+++ b/
libs/cbi/luasrc/cbi.lua
@@
-519,10
+519,6
@@
function Delegator.__init__(self, ...)
end
function Delegator.set(self, name, node)
end
function Delegator.set(self, name, node)
- if type(node) == "table" and getmetatable(node) == nil then
- node = Compound(unpack(node))
- end
- assert(type(node) == "function" or instanceof(node, Compound), "Invalid")
assert(not self.nodes[name], "Duplicate entry")
self.nodes[name] = node
assert(not self.nodes[name], "Duplicate entry")
self.nodes[name] = node
@@
-562,7
+558,17
@@
function Delegator.set_route(self, ...)
end
function Delegator.get(self, name)
end
function Delegator.get(self, name)
- return self.nodes[name]
+ local node = self.nodes[name]
+
+ if type(node) == "string" then
+ node = load(node)
+ end
+
+ if type(node) == "table" and getmetatable(node) == nil then
+ node = Compound(unpack(node))
+ end
+
+ return node
end
function Delegator.parse(self, ...)
end
function Delegator.parse(self, ...)