| rev |
line source |
|
bsw/jbe@4
|
1 slot.select("actions", function()
|
|
bsw/jbe@0
|
2
|
|
bsw/jbe@5
|
3 local delegation
|
|
bsw/jbe@5
|
4 local area_id
|
|
bsw/jbe@5
|
5 local issue_id
|
|
bsw/jbe@5
|
6
|
|
bsw/jbe@5
|
7 local scope = "global"
|
|
bsw/jbe@5
|
8
|
|
bsw/jbe@5
|
9 if param.get("initiative_id", atom.integer) then
|
|
bsw/jbe@5
|
10 issue_id = Initiative:by_id(param.get("initiative_id", atom.integer)).issue_id
|
|
bsw/jbe@5
|
11 scope = "issue"
|
|
bsw/jbe@5
|
12 end
|
|
bsw/jbe@5
|
13
|
|
bsw/jbe@5
|
14 if param.get("issue_id", atom.integer) then
|
|
bsw/jbe@5
|
15 issue_id = param.get("issue_id", atom.integer)
|
|
bsw/jbe@5
|
16 scope = "issue"
|
|
bsw/jbe@5
|
17 end
|
|
bsw/jbe@5
|
18
|
|
bsw/jbe@5
|
19 if param.get("area_id", atom.integer) then
|
|
bsw/jbe@5
|
20 area_id = param.get("area_id", atom.integer)
|
|
bsw/jbe@5
|
21 scope = "area"
|
|
bsw/jbe@5
|
22 end
|
|
bsw/jbe@5
|
23
|
|
bsw/jbe@5
|
24
|
|
bsw/jbe@5
|
25
|
|
bsw/jbe@5
|
26 local delegation
|
|
bsw/jbe@5
|
27 local issue
|
|
bsw/jbe@5
|
28 if issue_id then
|
|
bsw/jbe@5
|
29 issue = Issue:by_id(issue_id)
|
|
bsw/jbe@5
|
30 delegation = Delegation:by_pk(app.session.member.id, nil, issue_id)
|
|
bsw/jbe@5
|
31 if not delegation then
|
|
bsw/jbe@5
|
32 delegation = Delegation:by_pk(app.session.member.id, issue.area_id)
|
|
bsw/jbe@5
|
33 end
|
|
bsw/jbe@5
|
34 elseif area_id then
|
|
bsw/jbe@5
|
35 delegation = Delegation:by_pk(app.session.member.id, area_id)
|
|
bsw/jbe@5
|
36 end
|
|
bsw/jbe@5
|
37
|
|
bsw/jbe@5
|
38 if not delegation then
|
|
bsw/jbe@5
|
39 delegation = Delegation:by_pk(app.session.member.id)
|
|
bsw/jbe@5
|
40 end
|
|
bsw/jbe@5
|
41 if delegation then
|
|
bsw/jbe@5
|
42 ui.container{
|
|
bsw/jbe@5
|
43 attr = { class = "delegation vote_info"},
|
|
bsw/jbe@5
|
44 content = function()
|
|
bsw@2
|
45 ui.container{
|
|
bsw@2
|
46 attr = {
|
|
bsw/jbe@4
|
47 title = _"Click for details",
|
|
bsw/jbe@4
|
48 class = "head head_active",
|
|
bsw@2
|
49 style = "cursor: pointer;",
|
|
bsw/jbe@4
|
50 onclick = "document.getElementById('delegation_content').style.display = 'block';"
|
|
bsw@2
|
51 },
|
|
bsw/jbe@4
|
52 content = function()
|
|
bsw/jbe@4
|
53 ui.image{
|
|
bsw/jbe@4
|
54 static = "icons/16/error.png"
|
|
bsw/jbe@4
|
55 }
|
|
bsw/jbe@4
|
56 if delegation.issue_id then
|
|
bsw/jbe@4
|
57 slot.put(_"Issue delegation active")
|
|
bsw/jbe@4
|
58 elseif delegation.area_id then
|
|
bsw/jbe@4
|
59 slot.put(_"Area wide delegation active")
|
|
bsw/jbe@4
|
60 else
|
|
bsw/jbe@4
|
61 slot.put(_"Global delegation active")
|
|
bsw/jbe@4
|
62 end
|
|
bsw/jbe@4
|
63 ui.image{
|
|
bsw/jbe@4
|
64 static = "icons/16/dropdown.png"
|
|
bsw/jbe@4
|
65 }
|
|
bsw/jbe@4
|
66 end
|
|
bsw@2
|
67 }
|
|
bsw/jbe@4
|
68 ui.container{
|
|
bsw/jbe@4
|
69 attr = { class = "content", id = "delegation_content" },
|
|
bsw/jbe@4
|
70 content = function()
|
|
bsw@2
|
71 ui.container{
|
|
bsw/jbe@4
|
72 attr = {
|
|
bsw/jbe@4
|
73 class = "close",
|
|
bsw/jbe@4
|
74 style = "cursor: pointer;",
|
|
bsw/jbe@4
|
75 onclick = "document.getElementById('delegation_content').style.display = 'none';"
|
|
bsw/jbe@4
|
76 },
|
|
bsw@2
|
77 content = function()
|
|
bsw/jbe@4
|
78 ui.image{ static = "icons/16/cross.png" }
|
|
bsw/jbe@4
|
79 end
|
|
bsw/jbe@4
|
80 }
|
|
bsw/jbe@4
|
81
|
|
bsw/jbe@4
|
82 local delegation_chain = Member:new_selector()
|
|
bsw/jbe@4
|
83 :add_field("delegation_chain.*")
|
|
bsw/jbe@4
|
84 :join("delegation_chain(" .. tostring(app.session.member.id) .. ", " .. tostring(area_id or "NULL") .. ", " .. tostring(issue_id or "NULL") .. ")", "delegation_chain", "member.id = delegation_chain.member_id")
|
|
bsw/jbe@4
|
85 :add_order_by("index")
|
|
bsw/jbe@4
|
86 :exec()
|
|
bsw/jbe@4
|
87
|
|
bsw/jbe@4
|
88 for i, record in ipairs(delegation_chain) do
|
|
bsw/jbe@4
|
89 local style
|
|
bsw/jbe@4
|
90 local overridden = record.overridden
|
|
bsw/jbe@4
|
91 if record.scope_in then
|
|
bsw@2
|
92 ui.container{
|
|
bsw/jbe@4
|
93 attr = { class = "delegation_info" },
|
|
bsw@2
|
94 content = function()
|
|
bsw/jbe@4
|
95 if not overridden then
|
|
bsw/jbe@4
|
96 ui.image{
|
|
bsw/jbe@4
|
97 attr = { class = "delegation_arrow" },
|
|
bsw/jbe@4
|
98 static = "delegation_arrow_vertical.jpg"
|
|
bsw/jbe@4
|
99 }
|
|
bsw/jbe@4
|
100 else
|
|
bsw/jbe@4
|
101 ui.image{
|
|
bsw/jbe@4
|
102 attr = { class = "delegation_arrow delegation_arrow_overridden" },
|
|
bsw/jbe@4
|
103 static = "delegation_arrow_vertical.jpg"
|
|
bsw/jbe@4
|
104 }
|
|
bsw/jbe@4
|
105 end
|
|
bsw/jbe@4
|
106 ui.container{
|
|
bsw/jbe@4
|
107 attr = { class = "delegation_scope" .. (overridden and " delegation_scope_overridden" or "") },
|
|
bsw/jbe@4
|
108 content = function()
|
|
bsw/jbe@4
|
109 if record.scope_in == "global" then
|
|
bsw/jbe@4
|
110 slot.put(_"Global delegation")
|
|
bsw/jbe@4
|
111 elseif record.scope_in == "area" then
|
|
bsw/jbe@4
|
112 slot.put(_"Area delegation")
|
|
bsw/jbe@4
|
113 elseif record.scope_in == "issue" then
|
|
bsw/jbe@4
|
114 slot.put(_"Issue delegation")
|
|
bsw/jbe@4
|
115 end
|
|
bsw/jbe@4
|
116 end
|
|
bsw/jbe@4
|
117 }
|
|
bsw/jbe@4
|
118 if i == 2 then
|
|
bsw/jbe@5
|
119 if not issue or (issue.state ~= "finished" and issue.state ~= "cancelled") then
|
|
bsw/jbe@5
|
120 ui.link{
|
|
bsw/jbe@5
|
121 attr = { class = "revoke" },
|
|
bsw/jbe@5
|
122 content = function()
|
|
bsw/jbe@5
|
123 ui.image{ static = "icons/16/delete.png" }
|
|
bsw/jbe@5
|
124 slot.put(_"Revoke")
|
|
bsw/jbe@5
|
125 end,
|
|
bsw/jbe@5
|
126 module = "delegation",
|
|
bsw/jbe@5
|
127 action = "update",
|
|
bsw/jbe@5
|
128 params = { issue_id = delegation.issue_id, area_id = delegation.area_id, delete = true },
|
|
bsw/jbe@5
|
129 routing = {
|
|
bsw/jbe@5
|
130 default = {
|
|
bsw/jbe@5
|
131 mode = "redirect",
|
|
bsw/jbe@5
|
132 module = request.get_module(),
|
|
bsw/jbe@5
|
133 view = request.get_view(),
|
|
bsw/jbe@5
|
134 id = param.get_id_cgi(),
|
|
bsw/jbe@5
|
135 params = param.get_all_cgi()
|
|
bsw/jbe@5
|
136 }
|
|
bsw/jbe@4
|
137 }
|
|
bsw/jbe@4
|
138 }
|
|
bsw/jbe@5
|
139 end
|
|
bsw@2
|
140 end
|
|
bsw@2
|
141 end
|
|
bsw@2
|
142 }
|
|
bsw/jbe@4
|
143 end
|
|
bsw/jbe@4
|
144 ui.container{
|
|
bsw/jbe@4
|
145 attr = { class = overridden and "delegation_overridden" or "" },
|
|
bsw/jbe@4
|
146 content = function()
|
|
bsw/jbe@4
|
147 execute.view{
|
|
bsw/jbe@4
|
148 module = "member",
|
|
bsw/jbe@4
|
149 view = "_show_thumb",
|
|
bsw/jbe@4
|
150 params = { member = record }
|
|
bsw@2
|
151 }
|
|
bsw@2
|
152 end
|
|
bsw/jbe@4
|
153 }
|
|
bsw/jbe@4
|
154 if record.participation and not record.overridden then
|
|
bsw/jbe@4
|
155 ui.container{
|
|
bsw/jbe@4
|
156 attr = { class = "delegation_participation" },
|
|
bsw/jbe@4
|
157 content = function()
|
|
bsw/jbe@4
|
158 slot.put("<br /><br />-----> Participation<br />")
|
|
bsw/jbe@4
|
159 end
|
|
bsw/jbe@4
|
160 }
|
|
bsw@2
|
161 end
|
|
bsw/jbe@4
|
162 slot.put("<br style='clear: left'/>")
|
|
bsw/jbe@4
|
163 end
|
|
bsw/jbe@0
|
164 end
|
|
bsw/jbe@4
|
165 }
|
|
bsw/jbe@0
|
166 end
|
|
bsw/jbe@5
|
167 }
|
|
bsw/jbe@5
|
168
|
|
bsw/jbe@5
|
169
|
|
bsw/jbe@5
|
170 end
|
|
bsw/jbe@5
|
171 ui.link{
|
|
bsw/jbe@5
|
172 content = function()
|
|
bsw/jbe@5
|
173 if scope == "global" and delegation then
|
|
bsw/jbe@5
|
174 ui.image{ static = "icons/16/table_go.png" }
|
|
bsw/jbe@5
|
175 slot.put(_"Change global delegation")
|
|
bsw/jbe@5
|
176 elseif scope == "global" and not delegation then
|
|
bsw/jbe@5
|
177 ui.image{ static = "icons/16/table_go.png" }
|
|
bsw/jbe@5
|
178 slot.put(_"Set global delegation")
|
|
bsw/jbe@5
|
179 elseif scope == "area" and delegation and delegation.area_id then
|
|
bsw/jbe@5
|
180 ui.image{ static = "icons/16/table_go.png" }
|
|
bsw/jbe@5
|
181 slot.put(_"Change area delegation")
|
|
bsw/jbe@5
|
182 elseif scope == "area" and not (delegation and delegation.area_id) then
|
|
bsw/jbe@5
|
183 ui.image{ static = "icons/16/table_go.png" }
|
|
bsw/jbe@5
|
184 slot.put(_"Set area delegation")
|
|
bsw/jbe@5
|
185 elseif scope == "issue" then
|
|
bsw/jbe@5
|
186 if delegation and delegation.issue_id then
|
|
bsw/jbe@4
|
187 ui.image{ static = "icons/16/table_go.png" }
|
|
bsw/jbe@5
|
188 slot.put(_"Change issue delegation")
|
|
bsw/jbe@5
|
189 elseif issue.state ~= "finished" and issue.state ~= "cancelled" then
|
|
bsw/jbe@5
|
190 ui.image{ static = "icons/16/table_go.png" }
|
|
bsw/jbe@5
|
191 slot.put(_"Set issue delegation")
|
|
bsw/jbe@5
|
192 end
|
|
bsw/jbe@5
|
193 end
|
|
bsw/jbe@5
|
194 end,
|
|
bsw/jbe@5
|
195 module = "delegation",
|
|
bsw/jbe@5
|
196 view = "new",
|
|
bsw/jbe@5
|
197 params = {
|
|
bsw/jbe@5
|
198 area_id = area_id,
|
|
bsw/jbe@5
|
199 issue_id = issue_id
|
|
bsw/jbe@5
|
200 }
|
|
bsw/jbe@4
|
201 }
|
|
bsw/jbe@0
|
202 end)
|