From c7a06b61c778a9e24b67a1a89992c1dd77886a21 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Sat, 1 Nov 2008 18:32:02 +0000 Subject: [PATCH 1/1] Extend CBI state handling --- libs/cbi/luasrc/cbi.lua | 8 +++++--- 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 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}) -- 2.11.0