module(..., package.seeall) default_action = "viewrecords" function listuseddefinitions(self) return self.model.getuseddefinitionlist(self, sessiondata.userinfo.userid, self.clientdata.did, self.clientdata.extension, self.clientdata.identification, self.clientdata.description, self.clientdata.department, self.clientdata.page) end function listunuseddefinitions(self) return self.model.getunuseddefinitionlist(self, sessiondata.userinfo.userid, self.clientdata.did, self.clientdata.identification, self.clientdata.description, self.clientdata.department, self.clientdata.page) end function listdefinitions(self) return self.model.getdefinitionlist(self, sessiondata.userinfo.userid, self.clientdata.did, self.clientdata.extension, self.clientdata.identification, self.clientdata.description, self.clientdata.department, self.clientdata.page) end function searchdefinitionlist(self) self.clientdata.did = self.clientdata.q or self.clientdata.did local result = self.model.searchdefinitions(self, sessiondata.userinfo.userid, self.clientdata.did) return result end local function handle_form(self, getFunction, setFunction, clientdata, option, label, descr) local form = getFunction() if clientdata["Save"] or clientdata["Test"] then self.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 handle_form(self, function() return self.model.getdefinition(self, sessiondata.userinfo.userid, self.clientdata.did) end, function(...) return self.model.updatedefinition(self, sessiondata.userinfo.userid, ...) end, self.clientdata, "Save", "Edit DID Number") end function editdefinitionextension(self) return editdefinition(self) end function createdefinition(self) return handle_form(self, function() return self.model.getdefinition(self, sessiondata.userinfo.userid) end, function(self, ...) return self.model.savedefinition(self, sessiondata.userinfo.userid, ...) end, self.clientdata, "Save", "Create DID Number") end function assigndefinition(self) return self.handle_form(self, function() return self.model.getdefinition(self, sessiondata.userinfo.userid, self.clientdata.did) end, function(self, value) return self.model.updatedefinition(self, sessiondata.userinfo.userid, value) end, self.clientdata, "Save", "Assign DID Number") end function newdefinition(self) local retval = self.handle_form(self, self.model.getunuseddefinition, function(self, value) return self.model.setunuseddefinition(self, sessiondata.userinfo.userid, value) end, self.clientdata, "Select", "Create New DID Number") if retval.value.did and not retval.errtxt then -- Successfully found an unused did, redirect to edit it self:redirect("editdefinition?did="..retval.value.did.value.."&redir=listdefinitions") end return retval end function deletedefinition(self) return self:redirect_to_referrer(self.model.deletedefinition(self, sessiondata.userinfo.userid, self.clientdata.did)) end function publish(self) return self:redirect_to_referrer(self.model.publishdefinition(self.clientdata.did)) end function publishall(self) return self:redirect_to_referrer(self.model.publishalldefinitions()) end function status(self) return self.model.testdatabase() end function createdatabase(self) return self.handle_form(self, self.model.getnewdatabase, self.model.create_database, self.clientdata, "Create", "Create New Database", "Database Created") end function viewactivitylog(self) return self.model.getactivitylog() end function listpermissions(self) return self.model:getpermissionslist() end function edituserpermissions(self) return self.handle_form(self, function() return self.model:getuserpermissions(self.clientdata.userid) end, function(self, value) return self.model:setuserpermissions(value) end, self.clientdata, "Save", "Edit User Permissions", "User permissions set") end function editrolepermissions(self) return self.handle_form(self, function() return self.model:getrolepermissions(self.clientdata.role) end, function(self, value) return self.model:setrolepermissions(value) end, self.clientdata, "Save", "Edit Role Permissions", "Role permissions set") end function requestdid(self) return self:redirect_to_referrer(self.model.requestdid(self, sessiondata.userinfo.userid)) end