projects
/
oweals
/
luci.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libs/web: align interface related widgets to changed network model api
[oweals/luci.git]
/
libs
/
web
/
luasrc
/
cbi.lua
diff --git
a/libs/web/luasrc/cbi.lua
b/libs/web/luasrc/cbi.lua
index 8bb3488a7066c23d92328cc38050054268ac73dc..5aa2f5a092ef604c8628d1e1b96ec1455fd70ff9 100644
(file)
--- a/
libs/web/luasrc/cbi.lua
+++ b/
libs/web/luasrc/cbi.lua
@@
-51,6
+51,7
@@
AUTO = true
CREATE_PREFIX = "cbi.cts."
REMOVE_PREFIX = "cbi.rts."
RESORT_PREFIX = "cbi.sts."
CREATE_PREFIX = "cbi.cts."
REMOVE_PREFIX = "cbi.rts."
RESORT_PREFIX = "cbi.sts."
+FEXIST_PREFIX = "cbi.cbe."
-- Loads a CBI map from given file, creating an environment and returns it
function load(cbimap, ...)
-- Loads a CBI map from given file, creating an environment and returns it
function load(cbimap, ...)
@@
-210,7
+211,9
@@
end
-- Render the children
function Node.render_children(self, ...)
-- Render the children
function Node.render_children(self, ...)
+ local k, node
for k, node in ipairs(self.children) do
for k, node in ipairs(self.children) do
+ node.last_child = (k == #self.children)
node:render(...)
end
end
node:render(...)
end
end
@@
-804,7
+807,9
@@
function AbstractSection.render_tab(self, tab, ...)
assert(tab and self.tabs and self.tabs[tab],
"Cannot render not existing tab %q" % tostring(tab))
assert(tab and self.tabs and self.tabs[tab],
"Cannot render not existing tab %q" % tostring(tab))
- for _, node in ipairs(self.tabs[tab].childs) do
+ local k, node
+ for k, node in ipairs(self.tabs[tab].childs) do
+ node.last_child = (k == #self.tabs[tab].childs)
node:render(...)
end
end
node:render(...)
end
end
@@
-1481,29
+1486,31
@@
function Flag.__init__(self, ...)
AbstractValue.__init__(self, ...)
self.template = "cbi/fvalue"
AbstractValue.__init__(self, ...)
self.template = "cbi/fvalue"
- self.enabled = "1"
+ self.enabled
= "1"
self.disabled = "0"
self.disabled = "0"
+ self.default = self.disabled
end
-- A flag can only have two states: set or unset
function Flag.parse(self, section)
end
-- A flag can only have two states: set or unset
function Flag.parse(self, section)
- local fvalue = self:formvalue(section)
-
- if fvalue then
- fvalue = self.enabled
- else
- fvalue = self.disabled
- end
+ local fexists = self.map:formvalue(
+ FEXIST_PREFIX .. self.config .. "." .. section .. "." .. self.option)
- if fvalue == self.enabled or (not self.optional and not self.rmempty) then
- if not(fvalue == self:cfgvalue(section)) then
+ if fexists then
+ local fvalue = self:formvalue(section) and self.enabled or self.disabled
+ if fvalue ~= self.default or (not self.optional and not self.rmempty) then
self:write(section, fvalue)
self:write(section, fvalue)
+ else
+ self:remove(section)
end
else
self:remove(section)
end
end
end
else
self:remove(section)
end
end
+function Flag.cfgvalue(self, section)
+ return AbstractValue.cfgvalue(self, section) or self.default
+end
--[[
--[[