diff options
author | Steven Barth <steven@midlink.org> | 2009-10-26 17:40:44 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2009-10-26 17:40:44 +0000 |
commit | 36e18e87ef0f9fc81124c9e0ee46127ee755af19 (patch) | |
tree | 73ca95b681e15ecb22460c602b446f9a1b6e8589 /libs/cbi/luasrc/cbi.lua | |
parent | c47765a6118b2a6eb0d74b95f5cb4abda23fe6db (diff) |
CBI: Cancelaction and event callbacks for Delegators
LuCId: Send Keep-Alive headers to avoid browser quirks
Diffstat (limited to 'libs/cbi/luasrc/cbi.lua')
-rw-r--r-- | libs/cbi/luasrc/cbi.lua | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index 1b22db0a8..13aad8d9e 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -506,6 +506,7 @@ function Delegator.__init__(self, ...) self.pageaction = false self.readinput = true self.allow_reset = false + self.allow_cancel = false self.allow_back = false self.allow_finish = false self.template = "cbi/delegator" @@ -559,6 +560,17 @@ function Delegator.get(self, name) end function Delegator.parse(self, ...) + if self.allow_cancel and Map.formvalue(self, "cbi.cancel") then + if self.on_cancel then + self:on_cancel() + return FORM_DONE + end + end + + if self.on_init and not Map.formvalue(self, "cbi.delg.current") then + self:on_init() + end + local newcurrent self.chain = self.chain or self:get_chain() self.current = self.current or self:get_active() @@ -587,6 +599,9 @@ function Delegator.parse(self, ...) if not Map.formvalue(self, "cbi.submit") then return FORM_NODATA elseif not newcurrent or not self:get(newcurrent) then + if self.on_done then + self:on_done() + end return FORM_DONE else self.current = newcurrent |