summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--libs/cbi/luasrc/cbi.lua8
-rw-r--r--libs/cbi/luasrc/view/cbi/simpleform.htm6
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_system/passwd.lua9
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