From 5c36f2175179f2dae03b8d2f31677186c41efcd2 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Wed, 5 Nov 2008 14:53:37 +0000 Subject: Handle empty fields correctly --- libs/cbi/luasrc/cbi.lua | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'libs') 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 -- cgit v1.2.3