1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
module(..., package.seeall)
-- Load libraries
require("controllerfunctions")
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)
if self.clientdata.q then
self.conf.viewtype = "text"
end
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 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 createdefinition(self)
return handle_form(self, function() return self.model.getdefinition(self, sessiondata.userinfo.userid) end, function(...) return self.model.savedefinition(self, sessiondata.userinfo.userid, ...) end, self.clientdata, "Save", "Create DID Number")
end
function assigndefinition(self)
self.conf.viewtype = self.clientdata.viewtype or self.conf.viewtype
return controllerfunctions.handle_form(self, function() return self.model.getdefinition(self, sessiondata.userinfo.userid, self.clientdata.did) end, function(value) return self.model.updatedefinition(self, sessiondata.userinfo.userid, value) end, self.clientdata, "Save", "Assign DID Number")
end
function newdefinition(self)
local retval = controllerfunctions.handle_form(self, self.model.getunuseddefinition, function(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 controllerfunctions.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 controllerfunctions.handle_form(self, function()
return self.model:getuserpermissions(self.clientdata.userid)
end, function(value)
return self.model:setuserpermissions(value)
end, self.clientdata, "Save", "Edit User Permissions", "User permissions set")
end
function editrolepermissions(self)
return controllerfunctions.handle_form(self, function()
return self.model:getrolepermissions(self.clientdata.role)
end, function(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
|