diff options
author | Ted Trask <ttrask01@yahoo.com> | 2010-04-06 15:15:15 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2010-04-06 15:15:15 +0000 |
commit | 9d6dc0dc33e4c7c5e9aaf096bb6b3bef9a0ae8cc (patch) | |
tree | 67358688e89d3e8ee5a989ea99662d15100a2b82 /did-controller.lua | |
parent | dfaaa00e238905388d9cbe6ef630ec15a1e17347 (diff) | |
download | acf-did-9d6dc0dc33e4c7c5e9aaf096bb6b3bef9a0ae8cc.tar.bz2 acf-did-9d6dc0dc33e4c7c5e9aaf096bb6b3bef9a0ae8cc.tar.xz |
Added test button to editdefinition.
Test and Cancel are now handled in customized handler in controller.
Added some rule testing code to sort them into priority order.
Diffstat (limited to 'did-controller.lua')
-rw-r--r-- | did-controller.lua | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/did-controller.lua b/did-controller.lua index e829dfd..1d243e4 100644 --- a/did-controller.lua +++ b/did-controller.lua @@ -29,12 +29,52 @@ function searchdefinitionlist(self) return result end +local function handle_form(self, getFunction, setFunction, clientdata, option, label, descr) + local form = getFunction() + + if clientdata["Save"] or clientdata["Test"] then + controllerfunctions.handle_clientdata(form, clientdata) + + if clientdata["Test"] then + form = setFunction(form, true) + else + form = setFunction(form) + end + if not form.errtxt and descr then + form.descr = descr + end + + if clientdata.redir then + form.value.redir = cfe({ type="hidden", value=clientdata.redir, label="" }) + end + form = self:redirect_to_referrer(form) + if clientdata.redir and not form.errtxt and not clientdata["Test"] then + form.value = form.descr -- make it a command result + form.descr = nil + self:redirect(clientdata.redir, form) + end + elseif clientdata["Cancel"] and clientdata.redir then + self:redirect(clientdata.redir, nil) + else + if clientdata.redir then + form.value.redir = cfe({ type="hidden", value=clientdata.redir, label="" }) + end + form = self:redirect_to_referrer() or form + end + + form.type = "form" + form.option = option + form.label = label + + return form +end + function editdefinition(self) - return controllerfunctions.handle_form(self, function() return self.model.getdefinition(self.clientdata.did) end, self.model.updatedefinition, self.clientdata, "Save", "Edit DID Number") + return handle_form(self, function() return self.model.getdefinition(self.clientdata.did) end, self.model.updatedefinition, self.clientdata, "Save", "Edit DID Number") end function createdefinition(self) - return controllerfunctions.handle_form(self, self.model.getdefinition, self.model.savedefinition, self.clientdata, "Save", "Create DID Number") + return handle_form(self, self.model.getdefinition, self.model.savedefinition, self.clientdata, "Save", "Create DID Number") end function assigndefinition(self) |