CBI: Delegators: Don't proceed when step is not completed yet
authorSteven Barth <steven@midlink.org>
Wed, 28 Oct 2009 17:38:11 +0000 (17:38 +0000)
committerSteven Barth <steven@midlink.org>
Wed, 28 Oct 2009 17:38:11 +0000 (17:38 +0000)
libs/cbi/luasrc/cbi.lua

index 2c8cb53e456d1bbb78d295877e97b0ad162c61b0..7c20129be8a1a64404a67b638fefda8a1aa6e087 100644 (file)
@@ -614,11 +614,12 @@ function Delegator.parse(self, ...)
 
        if not Map.formvalue(self, "cbi.submit") then
                return FORM_NODATA
-       elseif not newcurrent or not self:get(newcurrent) then
+       elseif stat > FORM_PROCEED 
+       and (not newcurrent or not self:get(newcurrent)) then
                self:_run_hooks("on_done")
                return FORM_DONE
        else
-               self.current = newcurrent
+               self.current = newcurrent or self.current
                self.active = self:get(self.current)
                if type(self.active) ~= "function" then
                        self.active:parse(false)