self.template = "cbi/map"
self.apply_on_parse = nil
self.readinput = true
+ self.proceed = false
self.uci = uci.cursor()
self.save = true
for i, config in ipairs(self.parsechain) do
self.uci:save(config)
end
- if self:submitstate() and (self.autoapply or luci.http.formvalue("cbi.apply")) then
+ if self:submitstate() and not self.proceed and (self.autoapply or luci.http.formvalue("cbi.apply")) then
for i, config in ipairs(self.parsechain) do
self.uci:commit(config)
end
end
- if self:submitstate() then
+ if self.proceed then
+ self.state = FORM_PROCEED
+ elseif self:submitstate() then
if self.save then
self.state = self.changed and FORM_CHANGED or FORM_VALID
else
if field == v.option then
field = nil
else
+ self.map.proceed = true
table.insert(self.optionals[section], v)
end
end
end
if create and key:sub(1, 1) ~= "." then
+ self.map.proceed = true
self:add_dynamic(key, true)
end
end
-- Removes the section
function AbstractSection.remove(self, section)
- self.map.autoapply = false
+ self.map.proceed = true
return self.map:del(section)
end
end
end
- self.map.autoapply = false
+ self.map.proceed = true
return stat
end
table.insert(self.vallist, tostring(val))
end
+function DynamicList.write(self, ...)
+ self.map.proceed = true
+ return AbstractValue.write(self, ...)
+end
+
function DynamicList.formvalue(self, section)
local value = AbstractValue.formvalue(self, section)
value = (type(value) == "table") and value or {value}