summaryrefslogtreecommitdiffstats
path: root/did-controller.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2010-04-06 15:15:15 +0000
committerTed Trask <ttrask01@yahoo.com>2010-04-06 15:15:15 +0000
commit9d6dc0dc33e4c7c5e9aaf096bb6b3bef9a0ae8cc (patch)
tree67358688e89d3e8ee5a989ea99662d15100a2b82 /did-controller.lua
parentdfaaa00e238905388d9cbe6ef630ec15a1e17347 (diff)
downloadacf-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.lua44
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)