From: Steven Barth Date: Sat, 1 Nov 2008 18:32:02 +0000 (+0000) Subject: Extend CBI state handling X-Git-Tag: 0.9.0~1031 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=c7a06b61c778a9e24b67a1a89992c1dd77886a21;hp=ae6fd93b8ce6b47d68a9ad96e0984edb91ee1716 Extend CBI state handling --- diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index ff5296e35..328722f9a 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 51f6d9695..22d9dd9bc 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})