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