summaryrefslogtreecommitdiffstats
path: root/did-controller.lua
diff options
context:
space:
mode:
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)