liquid_feedback_frontend
annotate app/main/delegation/_show_box.lua @ 9:0ee1e0c42d4c
Version beta5
Minor security fix: Added missing security filter for admin section. Reading of member listing including login names was possible for all users. Write access has not been possible though.
Changing of name and login is possible while a history of these changes is written and accessible by all users.
Statistics shown in area list
Trimming of user input also converts multiple whitespaces to single space character.
Minor security fix: Added missing security filter for admin section. Reading of member listing including login names was possible for all users. Write access has not been possible though.
Changing of name and login is possible while a history of these changes is written and accessible by all users.
Statistics shown in area list
Trimming of user input also converts multiple whitespaces to single space character.
author | bsw |
---|---|
date | Mon Jan 04 12:00:00 2010 +0100 (2010-01-04) |
parents | afd9f769c7ae |
children | 00d1004545f1 |
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) |