diff options
author | Steven Barth <steven@midlink.org> | 2008-11-05 14:53:37 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-11-05 14:53:37 +0000 |
commit | 5c36f2175179f2dae03b8d2f31677186c41efcd2 (patch) | |
tree | 8e9efb2d525ce08c7e410e3445a31eb53ea42e40 /libs/cbi/luasrc | |
parent | eb7c1f337d5bcff341a22b26c0793683bf075889 (diff) |
Handle empty fields correctly
Diffstat (limited to 'libs/cbi/luasrc')
-rw-r--r-- | libs/cbi/luasrc/cbi.lua | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index 2d439b8bc6..c1e4a7650c 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 |