diff options
author | Steven Barth <steven@midlink.org> | 2008-11-01 18:32:02 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-11-01 18:32:02 +0000 |
commit | c7a06b61c778a9e24b67a1a89992c1dd77886a21 (patch) | |
tree | 1d07fd5e18d4818a1cd9b030d68a64a3c52d02dc /libs | |
parent | ae6fd93b8ce6b47d68a9ad96e0984edb91ee1716 (diff) |
Extend CBI state handling
Diffstat (limited to 'libs')
-rw-r--r-- | libs/cbi/luasrc/cbi.lua | 8 | ||||
-rw-r--r-- | libs/web/luasrc/dispatcher.lua | 6 |
2 files changed, 11 insertions, 3 deletions
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index ff5296e35f..328722f9ab 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -352,13 +352,15 @@ function Map.parse(self) if self:submitstate() then if self.save then - return self.changed and FORM_CHANGED or FORM_VALID + self.state = self.changed and FORM_CHANGED or FORM_VALID else - return FORM_INVALID + self.state = FORM_INVALID end else - return FORM_NODATA + self.state = FORM_NODATA end + + return self.state end function Map.render(self, ...) diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index 51f6d9695f..22d9dd9bc3 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -521,6 +521,12 @@ function cbi(model, config) end end + if config.state_handler then + if not config.state_handler(state, maps) then + return + end + end + local pageaction = true http.header("X-CBI-State", state or 0) luci.template.render("cbi/header", {state = state}) |