From: Steven Barth Date: Wed, 5 Nov 2008 14:53:37 +0000 (+0000) Subject: Handle empty fields correctly X-Git-Tag: 0.9.0~1009 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=5c36f2175179f2dae03b8d2f31677186c41efcd2 Handle empty fields correctly --- diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index 2d439b8bc..c1e4a7650 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -1174,7 +1174,12 @@ function AbstractValue.parse(self, section) if fvalue and #fvalue > 0 then -- If we have a form value, write it to UCI fvalue = self:transform(self:validate(fvalue, section)) if not fvalue then - self.tag_invalid[section] = true + if self.error then + self.error[section] = "invalid" + else + self.error = { [section] = "invalid" } + end + self.map.save = false end if fvalue and not (fvalue == cvalue) then if self:write(section, fvalue) then @@ -1190,8 +1195,14 @@ function AbstractValue.parse(self, section) self.section.changed = true --luci.util.append(self.map.events, self.events) end - elseif self.track_missing and (not fvalue or fvalue ~= cvalue) then - self.tag_missing[section] = true + elseif cvalue ~= fvalue then + self:write(section, fvalue) + if self.error then + self.error[section] = "missing" + else + self.error = { [section] = "missing" } + end + self.map.save = false end end end