diff options
-rw-r--r-- | libs/cbi/luasrc/cbi.lua | 8 | ||||
-rw-r--r-- | libs/cbi/luasrc/view/cbi/simpleform.htm | 6 | ||||
-rw-r--r-- | modules/admin-full/luasrc/model/cbi/admin_system/passwd.lua | 9 |
3 files changed, 15 insertions, 8 deletions
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index 3b5a7c1b7..3bb56f36c 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -287,6 +287,7 @@ end function SimpleForm.field(self, class, ...) if instanceof(class, AbstractValue) then local obj = class(self, ...) + obj.track_missing = true self:append(obj) return obj else @@ -616,6 +617,7 @@ function AbstractValue.__init__(self, map, option, ...) self.tag_missing = {} self.deps = {} + self.track_missing = false self.rmempty = false self.default = nil self.size = nil @@ -657,14 +659,14 @@ function AbstractValue.parse(self, section) if not fvalue then self.tag_invalid[section] = true end - if fvalue and not (fvalue == self:cfgvalue(section)) then + if fvalue and not (fvalue == cvalue) then self:write(section, fvalue) end else -- Unset the UCI or error if self.rmempty or self.optional then self:remove(section) - elseif not fvalue or fvalue ~= cvalue then - --self.tag_missing[section] = true + elseif self.track_missing and not fvalue or fvalue ~= cvalue then + self.tag_missing[section] = true end end end diff --git a/libs/cbi/luasrc/view/cbi/simpleform.htm b/libs/cbi/luasrc/view/cbi/simpleform.htm index 68c8cc916..d2ae401c9 100644 --- a/libs/cbi/luasrc/view/cbi/simpleform.htm +++ b/libs/cbi/luasrc/view/cbi/simpleform.htm @@ -29,6 +29,12 @@ $Id$ </fieldset> <br /> </div> +<%- if self.message then %> + <div><%=self.message%></div> +<%- end %> +<%- if self.errmessage then %> + <div class="error"><%=self.errmessage%></div> +<%- end %> <div> <%- if self.submit ~= false then %> <input class="cbi-button-save" type="submit" value=" diff --git a/modules/admin-full/luasrc/model/cbi/admin_system/passwd.lua b/modules/admin-full/luasrc/model/cbi/admin_system/passwd.lua index 7e766d5eb..8ff18cb5c 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_system/passwd.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_system/passwd.lua @@ -27,16 +27,15 @@ end function f.handle(self, state, data) if state == FORM_VALID then local stat = luci.sys.user.setpasswd("root", data.pw1) == 0 - local x = f:field(DummyValue, "_stat") if stat then - x.value = translate("a_s_changepw_changed") + f.message = translate("a_s_changepw_changed") else - x.value = translate("unknownerror") + f.errmessage = translate("unknownerror") end - pw1.render = function() end - pw2.render = pw1.render + data.pw1 = nil + data.pw2 = nil end return true end |