liquid_feedback_frontend

annotate app/main/delegation/_show_box.lua @ 277:bde068b37608

Dropdown boxes except of delegation box removed, optical enhancements and repositioning of elements
author bsw
date Mon Feb 13 00:16:42 2012 +0100 (2012-02-13)
parents 7196685f9dd7
children b77e6a17ca77
rev   line source
bsw@248 1 function change_delegation(scope, unit_id, area_id, issue, delegation, initiative_id)
bsw/jbe@19 2 local image
bsw/jbe@19 3 local text
bsw@248 4 if scope == "unit" and delegation and delegation.unit_id then
bsw/jbe@19 5 image = { static = "icons/16/table_go.png" }
bsw@264 6 text = config.single_unit_id and _"Change global delegation" or _"Change unit delegation"
bsw@248 7 elseif scope == "unit" and not (delegation and delegation.unit_id) then
bsw/jbe@19 8 image = { static = "icons/16/table_go.png" }
bsw@264 9 text = config.single_unit_id and _"Set global delegation" or _"Set unit 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@248 38 area_id = area_id,
bsw@248 39 unit_id = unit_id
bsw/jbe@19 40 },
bsw/jbe@19 41 }
bsw/jbe@19 42 if delegation then
bsw/jbe@19 43 ui.link{
bsw/jbe@19 44 image = { static = "icons/16/delete.png" },
bsw/jbe@19 45 text = _"Revoke",
bsw/jbe@19 46 module = "delegation",
bsw/jbe@19 47 action = "update",
bsw@248 48 params = { issue_id = delegation.issue_id, area_id = delegation.area_id, unit_id = delegation.unit_id, delete = true },
bsw/jbe@19 49 routing = {
bsw/jbe@19 50 default = {
bsw/jbe@19 51 mode = "redirect",
bsw/jbe@19 52 module = request.get_module(),
bsw/jbe@19 53 view = request.get_view(),
bsw/jbe@19 54 id = param.get_id_cgi(),
bsw/jbe@19 55 params = param.get_all_cgi()
bsw/jbe@19 56 }
bsw/jbe@19 57 }
bsw/jbe@19 58 }
bsw/jbe@19 59 end
bsw/jbe@19 60 end
bsw/jbe@19 61 }
bsw/jbe@19 62 end
bsw/jbe@5 63
bsw/jbe@19 64 local delegation
bsw@248 65 local unit_id
bsw/jbe@19 66 local area_id
bsw/jbe@19 67 local issue_id
poelzi@111 68 local initiative_id
bsw/jbe@19 69
bsw@248 70 local scope = "unit"
bsw@248 71
bsw@248 72 unit_id = param.get("unit_id", atom.integer)
bsw/jbe@5 73
bsw@273 74 local inline = param.get("inline", atom.boolean)
bsw@273 75
bsw/jbe@19 76 if param.get("initiative_id", atom.integer) then
poelzi@111 77 initiative_id = param.get("initiative_id", atom.integer)
poelzi@111 78 issue_id = Initiative:by_id(initiative_id).issue_id
bsw/jbe@19 79 scope = "issue"
bsw/jbe@19 80 end
bsw/jbe@5 81
bsw/jbe@19 82 if param.get("issue_id", atom.integer) then
bsw/jbe@19 83 issue_id = param.get("issue_id", atom.integer)
bsw/jbe@19 84 scope = "issue"
bsw/jbe@19 85 end
bsw/jbe@19 86
bsw/jbe@19 87 if param.get("area_id", atom.integer) then
bsw/jbe@19 88 area_id = param.get("area_id", atom.integer)
bsw/jbe@19 89 scope = "area"
bsw/jbe@19 90 end
bsw/jbe@5 91
bsw/jbe@5 92
bsw/jbe@5 93
bsw/jbe@19 94 local delegation
bsw/jbe@19 95 local issue
poelzi@111 96
bsw/jbe@19 97 if issue_id then
bsw/jbe@19 98 issue = Issue:by_id(issue_id)
bsw@248 99 delegation = Delegation:by_pk(app.session.member.id, nil, nil, issue_id)
bsw/jbe@19 100 if not delegation then
bsw@248 101 delegation = Delegation:by_pk(app.session.member.id, nil, issue.area_id)
bsw/jbe@5 102 end
bsw@273 103 if not delegation then
bsw@273 104 delegation = Delegation:by_pk(app.session.member.id, issue.area.unit_id)
bsw@273 105 end
bsw/jbe@19 106 elseif area_id then
bsw@248 107 delegation = Delegation:by_pk(app.session.member.id, nil, area_id)
bsw@273 108 if not delegation then
bsw@273 109 local area = Area:by_id(area_id)
bsw@273 110 delegation = Delegation:by_pk(app.session.member.id, area.unit_id)
bsw@273 111 end
bsw/jbe@19 112 end
bsw/jbe@5 113
bsw/jbe@19 114 if not delegation then
bsw@248 115 delegation = Delegation:by_pk(app.session.member.id, unit_id)
bsw/jbe@19 116 end
bsw/jbe@19 117
bsw@273 118 local slot_name = "actions"
bsw/jbe@19 119
bsw@273 120 if inline then
bsw@273 121 slot_name = "default"
bsw@273 122 end
bsw@273 123
bsw@273 124 slot.select(slot_name, function()
bsw/jbe@19 125
bsw/jbe@5 126 if delegation then
bsw/jbe@5 127 ui.container{
bsw/jbe@5 128 attr = { class = "delegation vote_info"},
bsw/jbe@5 129 content = function()
bsw@2 130 ui.container{
bsw@2 131 attr = {
bsw/jbe@4 132 title = _"Click for details",
bsw/jbe@4 133 class = "head head_active",
bsw@2 134 style = "cursor: pointer;",
bsw/jbe@4 135 onclick = "document.getElementById('delegation_content').style.display = 'block';"
bsw@2 136 },
bsw/jbe@4 137 content = function()
bsw@180 138 if delegation.trustee_id then
bsw@180 139 ui.image{
bsw@180 140 static = "icons/16/table_go.png"
bsw@180 141 }
mail@251 142 local member = Member:new_selector()
mail@251 143 :reset_fields()
mail@251 144 :add_field("name", "delegation_name")
mail@251 145 :add_where({ "id = ?", delegation.trustee_id })
mail@251 146 :single_object_mode()
mail@251 147 :exec()
bsw@180 148 if delegation.issue_id then
mail@251 149 slot.put( _("Issue delegated to '#{name}'", { name = member.delegation_name }) )
bsw@180 150 elseif delegation.area_id then
mail@251 151 slot.put( _("Area delegated to '#{name}'", { name = member.delegation_name }) )
bsw@180 152 else
bsw@264 153 if config.single_unit_id then
bsw@264 154 slot.put( _("Global delegation set to '#{name}'", { name = member.delegation_name }) )
bsw@264 155 else
bsw@264 156 slot.put( _("Unit delegated to '#{name}'", { name = member.delegation_name }) )
bsw@264 157 end
bsw@180 158 end
mail@251 159
bsw/jbe@4 160 else
bsw@180 161 ui.image{
bsw@180 162 static = "icons/16/table_go_crossed.png"
bsw@180 163 }
bsw@180 164 if delegation.issue_id then
bsw@180 165 slot.put(_"Delegation turned off for issue")
bsw@180 166 elseif delegation.area_id then
bsw@180 167 slot.put(_"Delegation turned off for area")
bsw@180 168 end
bsw/jbe@4 169 end
bsw/jbe@4 170 ui.image{
bsw/jbe@4 171 static = "icons/16/dropdown.png"
bsw/jbe@4 172 }
bsw/jbe@4 173 end
bsw@2 174 }
bsw/jbe@4 175 ui.container{
bsw/jbe@4 176 attr = { class = "content", id = "delegation_content" },
bsw/jbe@4 177 content = function()
bsw@2 178 ui.container{
bsw/jbe@4 179 attr = {
bsw/jbe@4 180 class = "close",
bsw/jbe@4 181 style = "cursor: pointer;",
bsw/jbe@4 182 onclick = "document.getElementById('delegation_content').style.display = 'none';"
bsw/jbe@4 183 },
bsw@2 184 content = function()
bsw/jbe@4 185 ui.image{ static = "icons/16/cross.png" }
bsw/jbe@4 186 end
bsw/jbe@4 187 }
bsw/jbe@4 188
bsw/jbe@4 189 local delegation_chain = Member:new_selector()
bsw/jbe@4 190 :add_field("delegation_chain.*")
bsw@246 191 :join("delegation_chain(" .. tostring(app.session.member.id) .. ", " .. tostring(unit_id or "NULL") .. ", " .. tostring(area_id or "NULL") .. ", " .. tostring(issue_id or "NULL") .. ")", "delegation_chain", "member.id = delegation_chain.member_id")
bsw/jbe@4 192 :add_order_by("index")
bsw/jbe@4 193 :exec()
bsw/jbe@4 194
bsw/jbe@19 195 if not issue or (issue.state ~= "finished" and issue.state ~= "cancelled") then
bsw@248 196 change_delegation(scope, unit_id, area_id, issue, delegation, initiative_id)
bsw@277 197 slot.put("<br style='clear: left'/>")
bsw/jbe@19 198 end
bsw/jbe@19 199
bsw/jbe@4 200 for i, record in ipairs(delegation_chain) do
bsw/jbe@4 201 local style
bsw/jbe@4 202 local overridden = record.overridden
bsw/jbe@4 203 if record.scope_in then
bsw@2 204 ui.container{
bsw/jbe@4 205 attr = { class = "delegation_info" },
bsw@2 206 content = function()
bsw/jbe@4 207 if not overridden then
bsw/jbe@4 208 ui.image{
bsw/jbe@4 209 attr = { class = "delegation_arrow" },
bsw/jbe@4 210 static = "delegation_arrow_vertical.jpg"
bsw/jbe@4 211 }
bsw/jbe@4 212 else
bsw/jbe@4 213 ui.image{
bsw/jbe@4 214 attr = { class = "delegation_arrow delegation_arrow_overridden" },
bsw/jbe@4 215 static = "delegation_arrow_vertical.jpg"
bsw/jbe@4 216 }
bsw/jbe@4 217 end
bsw/jbe@4 218 ui.container{
bsw/jbe@4 219 attr = { class = "delegation_scope" .. (overridden and " delegation_scope_overridden" or "") },
bsw/jbe@4 220 content = function()
bsw@248 221 if record.scope_in == "unit" then
bsw@264 222 slot.put(config.single_object_mode and _"Global delegation" or _"Unit delegation")
bsw/jbe@4 223 elseif record.scope_in == "area" then
bsw/jbe@4 224 slot.put(_"Area delegation")
bsw/jbe@4 225 elseif record.scope_in == "issue" then
bsw/jbe@4 226 slot.put(_"Issue delegation")
bsw/jbe@4 227 end
bsw/jbe@4 228 end
bsw/jbe@4 229 }
bsw@2 230 end
bsw@2 231 }
bsw/jbe@4 232 end
bsw/jbe@4 233 ui.container{
bsw/jbe@4 234 attr = { class = overridden and "delegation_overridden" or "" },
bsw/jbe@4 235 content = function()
bsw/jbe@4 236 execute.view{
bsw/jbe@4 237 module = "member",
bsw/jbe@4 238 view = "_show_thumb",
bsw/jbe@4 239 params = { member = record }
bsw@2 240 }
bsw@2 241 end
bsw/jbe@4 242 }
bsw/jbe@4 243 if record.participation and not record.overridden then
bsw/jbe@4 244 ui.container{
bsw/jbe@4 245 attr = { class = "delegation_participation" },
bsw/jbe@4 246 content = function()
bsw/jbe@19 247 slot.put(_"This member is participating, the rest of delegation chain is suspended while discussing")
bsw/jbe@4 248 end
bsw/jbe@4 249 }
bsw@2 250 end
bsw/jbe@4 251 slot.put("<br style='clear: left'/>")
bsw/jbe@4 252 end
bsw/jbe@0 253 end
bsw/jbe@4 254 }
bsw/jbe@0 255 end
bsw/jbe@5 256 }
bsw/jbe@19 257 else
bsw@248 258 change_delegation(scope, unit_id, area_id, issue, nil, initiative_id)
bsw/jbe@5 259 end
bsw/jbe@0 260 end)

Impressum / About Us