libs/cbi: Fixed CBI handling of "Save & Apply"
This commit is contained in:
parent
8c3ee6f9b7
commit
5c7ab64306
2 changed files with 29 additions and 6 deletions
|
@ -144,20 +144,44 @@ function Map.__init__(self, config, ...)
|
|||
Node._i18n(self, config, nil, nil, ...)
|
||||
|
||||
self.config = config
|
||||
self.parsechain = {self.config}
|
||||
self.template = "cbi/map"
|
||||
if not uci.load(self.config) then
|
||||
error("Unable to read UCI data: " .. self.config)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Chain foreign config
|
||||
function Map.chain(self, config)
|
||||
table.insert(self.parsechain, config)
|
||||
end
|
||||
|
||||
-- Use optimized UCI writing
|
||||
function Map.parse(self, ...)
|
||||
Node.parse(self, ...)
|
||||
uci.save(self.config)
|
||||
if luci.http.formvalue("cbi.apply") then
|
||||
uci.commit(self.config)
|
||||
for i, config in ipairs(self.parsechain) do
|
||||
uci.save(config)
|
||||
end
|
||||
if luci.http.formvalue("cbi.apply") then
|
||||
for i, config in ipairs(self.parsechain) do
|
||||
uci.commit(config)
|
||||
if luci.config.uci_oncommit and luci.config.uci_oncommit[config] then
|
||||
luci.sys.exec(luci.config.uci_oncommit[config])
|
||||
end
|
||||
|
||||
-- Refresh data because commit changes section names
|
||||
uci.unload(config)
|
||||
uci.load(config)
|
||||
end
|
||||
|
||||
-- Reparse sections
|
||||
Node.parse(self, ...)
|
||||
|
||||
end
|
||||
for i, config in ipairs(self.parsechain) do
|
||||
uci.unload(config)
|
||||
end
|
||||
uci.unload(self.config)
|
||||
end
|
||||
|
||||
-- Creates a child section
|
||||
|
|
|
@ -13,6 +13,7 @@ You may obtain a copy of the License at
|
|||
$Id$
|
||||
]]--
|
||||
m = Map("wireless", translate("wifi"), translate("a_w_devices1"))
|
||||
m:chain("network")
|
||||
|
||||
s = m:section(TypedSection, "wifi-device", translate("devices"))
|
||||
|
||||
|
@ -67,8 +68,6 @@ function mode.write(self, section, value)
|
|||
luci.model.uci.set("network", "wan", "_ifname", oldif)
|
||||
end
|
||||
luci.model.uci.set("network", "wan", "ifname", " ")
|
||||
luci.model.uci.save("network")
|
||||
luci.model.uci.unload("network")
|
||||
|
||||
self.map:set(section, "network", "wan")
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue