liquid_feedback_frontend

annotate app/main/issue/_sidebar_whatcanido.lua @ 1145:904f6807f7fa

Added support for upcoming moonbridge bases WebMCP
author bsw
date Sat Mar 21 15:26:39 2015 +0100 (2015-03-21)
parents e4df22c3a69f
children 32cc544d5a5b
rev   line source
bsw@1045 1 local issue = param.get("issue", "table")
bsw@1045 2 local initiative = param.get("initiative", "table")
bsw@1045 3 local member = param.get("member", "table") or app.session.member
bsw@1045 4
bsw@1045 5 if initiative then
bsw@1045 6 issue = initiative.issue
bsw@1045 7 end
bsw@1045 8
bsw@1045 9 local privileged_to_vote = app.session.member and app.session.member:has_voting_right_for_unit_id(issue.area.unit_id)
bsw@1045 10
bsw@1045 11 local active_trustee_id
bsw@1045 12 if member then
bsw@1045 13 if not issue.member_info.own_participation then
bsw@1045 14 if issue.member_info.first_trustee_participation then
bsw@1045 15 active_trustee_id = issue.member_info.first_trustee_id
bsw@1045 16 elseif issue.member_info.other_trustee_participation then
bsw@1045 17 active_trustee_id = issue.member_info.other_trustee_id
bsw@1045 18 end
bsw@1045 19 end
bsw@1045 20 end
bsw@1045 21
bsw@1045 22 ui.sidebar ( "tab-whatcanido", function ()
bsw@1045 23
bsw@1045 24 ui.sidebarHeadWhatCanIDo()
bsw@1045 25
bsw@1045 26 local supporter
bsw@1045 27
bsw@1045 28 if initiative and app.session.member_id then
bsw@1045 29 supporter = app.session.member:get_reference_selector("supporters")
bsw@1045 30 :add_where{ "initiative_id = ?", initiative.id }
bsw@1045 31 :optional_object_mode()
bsw@1045 32 :exec()
bsw@1045 33 end
bsw@1045 34
bsw@1045 35 local view_module
bsw@1045 36 local view_id
bsw@1045 37
bsw@1045 38 if initiative then
bsw@1045 39 issue = issue
bsw@1045 40 view_module = "initiative"
bsw@1045 41 view_id = initiative.id
bsw@1045 42 else
bsw@1045 43 view_module = "issue"
bsw@1045 44 view_id = issue.id
bsw@1045 45 end
bsw@1045 46
bsw@1045 47 local initiator
bsw@1045 48 if initiative and app.session.member_id then
bsw@1045 49 initiator = Initiator:by_pk(initiative.id, app.session.member.id)
bsw@1045 50 end
bsw@1045 51
bsw@1045 52 local initiators
bsw@1045 53
bsw@1045 54 if initiative then
bsw@1045 55 local initiators_members_selector = initiative:get_reference_selector("initiating_members")
bsw@1045 56 :add_field("initiator.accepted", "accepted")
bsw@1045 57 :add_order_by("member.name")
bsw@1045 58 if initiator and initiator.accepted then
bsw@1045 59 initiators_members_selector:add_where("initiator.accepted ISNULL OR initiator.accepted")
bsw@1045 60 else
bsw@1045 61 initiators_members_selector:add_where("initiator.accepted")
bsw@1045 62 end
bsw@1045 63
bsw@1045 64 initiators = initiators_members_selector:exec()
bsw@1045 65 end
bsw@1045 66
bsw@1045 67 if initiator and
bsw@1045 68 initiator.accepted and
bsw@1045 69 not issue.fully_frozen and
bsw@1045 70 not issue.closed and
bsw@1045 71 not initiative.revoked
bsw@1045 72 then
bsw@1045 73
bsw@1045 74 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 75 ui.heading { level = 3, content = function()
bsw@1045 76 ui.tag { content = _"You are initiator of this initiative" }
bsw@1045 77 end }
bsw@1045 78 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1135 79 if issue.half_frozen then
bsw@1135 80 ui.tag { tag = "li", content = _"this issue is in verification phase, therefore the initiative text cannot be updated anymore" }
bsw@1135 81 else
bsw@1135 82 ui.tag { tag = "li", content = function ()
bsw@1135 83 ui.link{
bsw@1135 84 module = "draft", view = "new",
bsw@1135 85 params = { initiative_id = initiative.id },
bsw@1135 86 content = _"edit proposal and/or reasons"
bsw@1135 87 }
bsw@1135 88 end }
bsw@1045 89 ui.tag { tag = "li", content = function ()
bsw@1045 90 ui.link{
bsw@1135 91 attr = { class = "action" },
bsw@1135 92 module = "initiative", view = "add_initiator",
bsw@1045 93 params = { initiative_id = initiative.id },
bsw@1135 94 content = _"invite another initiator"
bsw@1135 95 }
bsw@1135 96 end }
bsw@1135 97 if #initiative.initiators > 1 then
bsw@1135 98 ui.tag { tag = "li", content = function ()
bsw@1135 99 ui.link{
bsw@1135 100 module = "initiative", view = "remove_initiator",
bsw@1135 101 params = { initiative_id = initiative.id },
bsw@1135 102 content = _"remove an initiator"
bsw@1135 103 }
bsw@1135 104 end }
bsw@1135 105 end
bsw@1135 106 ui.tag { tag = "li", content = function ()
bsw@1135 107 ui.link{
bsw@1135 108 module = "initiative", view = "revoke", id = initiative.id,
bsw@1135 109 content = _"revoke initiative"
bsw@1045 110 }
bsw@1045 111 end }
bsw@1045 112 end
bsw@1045 113 end }
bsw@1045 114 end }
bsw@1045 115 end
bsw@1045 116
bsw@1045 117 -- invited as initiator
bsw@1045 118 if initiator and initiator.accepted == nil and not initiative.issue.half_frozen and not initiative.issue.closed then
bsw@1045 119 ui.container { attr = { class = "sidebarRow highlighted" }, content = function ()
bsw@1045 120 ui.heading { level = 3, content = function()
bsw@1045 121 ui.tag { content = _"You are invited to become initiator of this initiative" }
bsw@1045 122 end }
bsw@1045 123 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 124 ui.tag{ tag = "li", content = function ()
bsw@1045 125 ui.link{
bsw@1045 126 content = _"accept invitation",
bsw@1045 127 module = "initiative",
bsw@1045 128 action = "accept_invitation",
bsw@1045 129 id = initiative.id,
bsw@1045 130 routing = {
bsw@1045 131 default = {
bsw@1045 132 mode = "redirect",
bsw@1045 133 module = request.get_module(),
bsw@1045 134 view = request.get_view(),
bsw@1145 135 id = request.get_id_string(),
bsw@1145 136 params = request.get_param_strings()
bsw@1045 137 }
bsw@1045 138 }
bsw@1045 139 }
bsw@1045 140 end }
bsw@1045 141
bsw@1045 142 ui.tag{ tag = "li", content = function ()
bsw@1045 143 ui.link{
bsw@1045 144 content = _"refuse invitation",
bsw@1045 145 module = "initiative",
bsw@1045 146 action = "reject_initiator_invitation",
bsw@1045 147 params = {
bsw@1045 148 initiative_id = initiative.id,
bsw@1045 149 member_id = app.session.member.id
bsw@1045 150 },
bsw@1045 151 routing = {
bsw@1045 152 default = {
bsw@1045 153 mode = "redirect",
bsw@1045 154 module = request.get_module(),
bsw@1045 155 view = request.get_view(),
bsw@1145 156 id = request.get_id_string(),
bsw@1145 157 params = request.get_param_strings()
bsw@1045 158 }
bsw@1045 159 }
bsw@1045 160 }
bsw@1045 161 end }
bsw@1045 162 end }
bsw@1045 163 end }
bsw@1045 164 end
bsw@1045 165
bsw@1045 166
bsw@1045 167 if privileged_to_vote and issue.member_info.first_trustee_id then
bsw@1045 168 local member = Member:by_id(issue.member_info.first_trustee_id)
bsw@1045 169 ui.sidebarSection( function ()
bsw@1045 170 ui.container { attr = { class = "right" }, content = function()
bsw@1045 171 execute.view{
bsw@1045 172 module = "member_image",
bsw@1045 173 view = "_show",
bsw@1045 174 params = {
bsw@1045 175 member = member,
bsw@1045 176 image_type = "avatar",
bsw@1045 177 show_dummy = true
bsw@1045 178 }
bsw@1045 179 }
bsw@1045 180 end }
bsw@1045 181 if issue.member_info.own_delegation_scope == "unit" then
bsw@1045 182 ui.heading{ level = 3, content = _"You delegated this organizational unit" }
bsw@1045 183 elseif issue.member_info.own_delegation_scope == "area" then
bsw@1045 184 ui.heading{ level = 3, content = _"You delegated this subject area" }
bsw@1045 185 elseif issue.member_info.own_delegation_scope == "issue" then
bsw@1045 186 ui.heading{ level = 3, content = _"You delegated this issue" }
bsw@1045 187 end
bsw@1045 188
bsw@1045 189 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 190 if issue.member_info.own_delegation_scope == "area" or
bsw@1045 191 issue.member_info.own_delegation_scope == "unit" then
bsw@1045 192 ui.tag { tag = "li", content = function ()
bsw@1045 193 ui.link {
bsw@1045 194 module = "delegation", view = "show", params = {
bsw@1045 195 issue_id = issue.id,
bsw@1045 196 initiative_id = initiative and initiative.id or nil
bsw@1045 197 },
bsw@1045 198 content = _"change/revoke delegation only for this issue"
bsw@1045 199 }
bsw@1045 200 end }
bsw@1045 201 end
bsw@1045 202 if issue.member_info.own_delegation_scope == "unit" then
bsw@1045 203 ui.tag { tag = "li", content = function ()
bsw@1045 204 ui.link {
bsw@1045 205 module = "delegation", view = "show", params = {
bsw@1045 206 unit_id = issue.area.unit_id,
bsw@1045 207 },
bsw@1045 208 content = _("change/revoke delegation of organizational unit", {
bsw@1045 209 unit_name = issue.area.unit.name
bsw@1045 210 })
bsw@1045 211 }
bsw@1045 212 end }
bsw@1045 213 elseif issue.member_info.own_delegation_scope == "area" then
bsw@1045 214 ui.tag { tag = "li", content = function ()
bsw@1045 215 ui.link {
bsw@1045 216 module = "delegation", view = "show", params = {
bsw@1045 217 area_id = issue.area_id,
bsw@1045 218 },
bsw@1045 219 content = _"change/revoke delegation of subject area"
bsw@1045 220 }
bsw@1045 221 end }
bsw@1045 222 end
bsw@1045 223 if issue.member_info.own_delegation_scope == nil then
bsw@1045 224 ui.tag { tag = "li", content = function ()
bsw@1045 225 ui.link {
bsw@1045 226 module = "delegation", view = "show", params = {
bsw@1045 227 issue_id = issue.id,
bsw@1045 228 initiative_id = initiative and initiative.id or nil
bsw@1045 229 },
bsw@1045 230 content = _"choose issue delegatee"
bsw@1045 231 }
bsw@1045 232 end }
bsw@1045 233 elseif issue.member_info.own_delegation_scope == "issue" then
bsw@1045 234 ui.tag { tag = "li", content = function ()
bsw@1045 235 ui.link {
bsw@1045 236 module = "delegation", view = "show", params = {
bsw@1045 237 issue_id = issue.id,
bsw@1045 238 initiative_id = initiative and initiative.id or nil
bsw@1045 239 },
bsw@1045 240 content = _"change/revoke issue delegation"
bsw@1045 241 }
bsw@1045 242 end }
bsw@1045 243 end
bsw@1045 244 end }
bsw@1045 245
bsw@1045 246 if issue.member_info.first_trustee_id and issue.member_info.own_participation then
bsw@1045 247 local text = _"As long as you are interested in this issue yourself, the delegation is suspended for this issue, but it will be applied again in the voting phase unless you vote yourself."
bsw@1045 248 if issue.state == "voting" then
bsw@1045 249 text = _"This delegation is suspended, because you voted yourself."
bsw@1045 250 end
bsw@1045 251 ui.container { content = text }
bsw@1045 252 end
bsw@1045 253 end )
bsw@1045 254 end
bsw@1045 255
bsw@1045 256 if privileged_to_vote and not issue.closed and not issue.fully_frozen then
bsw@1045 257 if issue.member_info.own_participation then
bsw@1045 258 ui.sidebarSection( function ()
bsw@1045 259 ui.container{ attr = { class = "right" }, content = function()
bsw@1045 260 ui.image{ attr = { class = "right" }, static = "icons/48/eye.png" }
bsw@1045 261 if issue.member_info.weight and issue.member_info.weight > 1 then
bsw@1045 262 slot.put("<br />")
bsw@1045 263 ui.tag{
bsw@1045 264 attr = { class = "right" },
bsw@1045 265 content = "+" .. issue.member_info.weight - 1
bsw@1045 266 }
bsw@1045 267 end
bsw@1045 268 end }
bsw@1045 269 ui.heading{ level = 3, content = _("You are interested in this issue", { id = issue.id }) }
bsw@1045 270 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 271 if issue.member_info.weight and issue.member_info.weight > 1 then
bsw@1045 272 ui.tag { tag = "li", content = function ()
bsw@1045 273 ui.link {
bsw@1045 274 module = "delegation", view = "show_incoming",
bsw@1045 275 params = { issue_id = issue.id, member_id = app.session.member_id },
bsw@1045 276 content = _("you have #{count} incoming delegations", {
bsw@1045 277 count = issue.member_info.weight - 1
bsw@1045 278 })
bsw@1045 279 }
bsw@1045 280 end }
bsw@1045 281 end
bsw@1045 282 ui.tag { tag = "li", content = function ()
bsw@1045 283 ui.link {
bsw@1045 284 module = "interest", action = "update",
bsw@1045 285 routing = { default = {
bsw@1045 286 mode = "redirect", module = view_module, view = "show", id = view_id
bsw@1045 287 } },
bsw@1045 288 params = { issue_id = issue.id, delete = true },
bsw@1045 289 text = _"remove my interest"
bsw@1045 290 }
bsw@1045 291 end }
bsw@1045 292 end }
bsw@1045 293 end )
bsw@1045 294 else
bsw@1045 295 ui.sidebarSection( function ()
bsw@1045 296 ui.heading{ level = 3, content = _("I want to participate in this issue", { id = issue.id }) }
bsw@1045 297 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 298 ui.tag { tag = "li", content = function ()
bsw@1045 299 ui.link {
bsw@1045 300 module = "interest", action = "update",
bsw@1045 301 params = { issue_id = issue.id },
bsw@1045 302 routing = { default = {
bsw@1045 303 mode = "redirect", module = view_module, view = "show", id = view_id
bsw@1045 304 } },
bsw@1045 305 text = _"add my interest"
bsw@1045 306 }
bsw@1045 307 end }
bsw@1045 308 ui.tag { tag = "li", content = _"browse through the competing initiatives" }
bsw@1045 309 end }
bsw@1045 310 end )
bsw@1045 311 end
bsw@1045 312
bsw@1045 313 if initiative then
bsw@1045 314
bsw@1045 315 if not initiative.member_info.supported or active_trustee_id then
bsw@1045 316 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 317 ui.heading { level = 3, content = function()
bsw@1045 318 ui.tag { content = _"I like this initiative and I want to support it" }
bsw@1045 319 end }
bsw@1045 320 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 321 ui.tag { tag = "li", content = function ()
bsw@1045 322 ui.link {
bsw@1045 323 module = "initiative", action = "add_support",
bsw@1045 324 routing = { default = {
bsw@1045 325 mode = "redirect", module = "initiative", view = "show", id = initiative.id
bsw@1045 326 } },
bsw@1045 327 id = initiative.id,
bsw@1045 328 text = _"add my support"
bsw@1045 329 }
bsw@1045 330 end }
bsw@1045 331 end }
bsw@1045 332 end }
bsw@1045 333
bsw@1045 334 else -- if not supported
bsw@1045 335 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 336 if initiative.member_info.satisfied then
bsw@1045 337 ui.image{ attr = { class = "right icon48" }, static = "icons/32/support_satisfied.png" }
bsw@1045 338 else
bsw@1045 339 ui.image{ attr = { class = "right icon48" }, static = "icons/32/support_unsatisfied.png" }
bsw@1045 340 end
bsw@1045 341 ui.heading { level = 3, content = _"You are supporting this initiative" }
bsw@1045 342 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 343 if not initiative.member_info.satisfied then
bsw@1045 344 ui.tag { tag = "li", content = function ()
bsw@1045 345 ui.tag { content = function ()
bsw@1045 346 ui.link {
bsw@1045 347 external = "#suggestions",
bsw@1045 348 content = _"you restricted your support by rating suggestions as must or must not"
bsw@1045 349 }
bsw@1045 350 end }
bsw@1045 351 end }
bsw@1045 352 end
bsw@1045 353 ui.tag { tag = "li", content = function ()
bsw@1045 354 ui.tag { content = function ()
bsw@1045 355 ui.link {
bsw@1045 356 xattr = { class = "btn btn-remove" },
bsw@1045 357 module = "initiative", action = "remove_support",
bsw@1045 358 routing = { default = {
bsw@1045 359 mode = "redirect", module = "initiative", view = "show", id = initiative.id
bsw@1045 360 } },
bsw@1045 361 id = initiative.id,
bsw@1045 362 text = _"remove my support"
bsw@1045 363 }
bsw@1045 364 end }
bsw@1045 365 end }
bsw@1045 366 end }
bsw@1045 367 end }
bsw@1045 368
bsw@1045 369 end -- not supported
bsw@1045 370
bsw@1045 371 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 372 ui.heading { level = 3, content = _"I want to improve this initiative" }
bsw@1045 373 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 374 if issue.state == "verification" then
bsw@1045 375 ui.tag { tag = "li", content = _"this issue is in verification phase, therefore the initiative text cannot be updated anymore" }
bsw@1045 376 elseif issue.state == "voting" then
bsw@1045 377 ui.tag { tag = "li", content = _"this issue is in voting phase, therefore the initiative text cannot be updated anymore" }
bsw@1045 378 else
bsw@1045 379
bsw@1045 380 if initiative.member_info.initiated then
bsw@1045 381 ui.tag { tag = "li", content =_"take a look at the suggestions of your supporters" }
bsw@1045 382 ui.tag { tag = "li", content =_"if you like to implement a suggestion in your proposal and/or reasons, update your initiative draft" }
bsw@1045 383 ui.tag { tag = "li", content =_"to argue about suggestions, just add your arguments to your reasons in the initiative draft, so your supporters can learn about your opinion" }
bsw@1045 384 end
bsw@1045 385
bsw@1045 386 if not initiative.member_info.supported or active_trustee_id then
bsw@1045 387 ui.tag { tag = "li", content =_"add your support (see above) and rate or write new suggestions (and thereby restrict your support to certain conditions if necessary)" }
bsw@1045 388 else
bsw@1045 389 ui.tag { tag = "li", content = _"take a look at the suggestions (see left) and rate them" }
bsw@1045 390 ui.tag { tag = "li", content = function ()
bsw@1045 391 ui.link {
bsw@1045 392 module = "suggestion", view = "new", params = {
bsw@1045 393 initiative_id = initiative.id
bsw@1045 394 },
bsw@1045 395 content = _"write a new suggestion"
bsw@1045 396 }
bsw@1045 397 end }
bsw@1045 398 end
bsw@1045 399 end
bsw@1045 400 end }
bsw@1045 401 end }
bsw@1045 402
bsw@1045 403 end
bsw@1045 404
bsw@1045 405 if
bsw@1045 406 (issue.state == "admission" or
bsw@1045 407 issue.state == "discussion" or
bsw@1045 408 issue.state == "verification")
bsw@1045 409 then
bsw@1045 410 ui.sidebarSection( function ()
bsw@1045 411 if initiative then
bsw@1045 412 ui.heading{ level = 3, content = _"I don't like this initiative and I want to add my opinion or counter proposal" }
bsw@1045 413 else
bsw@1045 414 ui.heading{ level = 3, content = _"I don't like any of the initiative in this issue and I want to add my opinion or counter proposal" }
bsw@1045 415 end
bsw@1045 416 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 417 ui.tag { tag = "li", content = function ()
bsw@1045 418 ui.link {
bsw@1045 419 module = "issue", view = "show", id = issue.id,
bsw@1045 420 content = _"take a look at the competing initiatives"
bsw@1045 421 }
bsw@1045 422 end }
bsw@1045 423 ui.tag { tag = "li", content = function ()
bsw@1045 424 ui.link {
bsw@1045 425 module = "initiative", view = "new",
bsw@1045 426 params = { issue_id = issue.id },
bsw@1045 427 content = _"start a new competing initiative"
bsw@1045 428 }
bsw@1045 429 end }
bsw@1045 430 end }
bsw@1045 431 end )
bsw@1045 432 end
bsw@1045 433
bsw@1138 434 end
bsw@1138 435
bsw@1138 436 if privileged_to_vote and not issue.closed then
bsw@1138 437
bsw@1045 438 if not issue.member_info.first_trustee_id then
bsw@1045 439 ui.sidebarSection( function ()
bsw@1045 440 ui.heading{ level = 3, content = _"I want to delegate this issue" }
bsw@1045 441
bsw@1045 442 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 443 ui.tag { tag = "li", content = function ()
bsw@1045 444 ui.link {
bsw@1045 445 module = "delegation", view = "show", params = {
bsw@1045 446 issue_id = issue.id,
bsw@1045 447 initiative_id = initiative and initiative.id or nil
bsw@1045 448 },
bsw@1045 449 content = _"choose issue delegatee"
bsw@1045 450 }
bsw@1045 451 end }
bsw@1045 452 end }
bsw@1045 453 end )
bsw@1045 454 end
bsw@1045 455
bsw@1045 456 end
bsw@1045 457
bsw@1045 458 if initiator and initiator.accepted == false then
bsw@1045 459 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 460 ui.heading { level = 3, content = function()
bsw@1045 461 ui.tag { content = _"You refused to become initiator of this initiative" }
bsw@1045 462 end }
bsw@1045 463 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 464 ui.tag{ tag = "li", content = function ()
bsw@1045 465 ui.link{
bsw@1045 466 text = _"allow invitation again",
bsw@1045 467 module = "initiative",
bsw@1045 468 action = "remove_initiator",
bsw@1045 469 params = {
bsw@1045 470 initiative_id = initiative.id,
bsw@1045 471 member_id = app.session.member.id
bsw@1045 472 },
bsw@1045 473 routing = {
bsw@1045 474 ok = {
bsw@1045 475 mode = "redirect",
bsw@1045 476 module = "initiative",
bsw@1045 477 view = "show",
bsw@1045 478 id = initiative.id
bsw@1045 479 }
bsw@1045 480 }
bsw@1045 481 }
bsw@1045 482 end }
bsw@1045 483 end }
bsw@1045 484 end }
bsw@1045 485 end
bsw@1045 486
bsw@1045 487
bsw@1045 488
bsw@1045 489 if privileged_to_vote then
bsw@1045 490
bsw@1045 491 if initiative and
bsw@1045 492 (issue.state == "admission" or
bsw@1045 493 issue.state == "discussion" or
bsw@1045 494 issue.state == "verification")
bsw@1045 495 then
bsw@1045 496
bsw@1045 497 elseif issue.state == "verification" then
bsw@1045 498
bsw@1045 499 elseif issue.state == "voting" then
bsw@1045 500 if not issue.member_info.direct_voted then
bsw@1045 501 if not issue.member_info.non_voter then
bsw@1045 502 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 503 ui.heading { level = 3, content = _"I like to vote on this issue:" }
bsw@1045 504 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 505 ui.tag { tag = "li", content = function ()
bsw@1045 506 ui.tag { content = function ()
bsw@1045 507 if not issue.closed then
bsw@1045 508 ui.link {
bsw@1045 509 xattr = { class = "btn btn-vote" },
bsw@1045 510 module = "vote", view = "list",
bsw@1045 511 params = { issue_id = issue.id },
bsw@1045 512 text = _"vote now"
bsw@1045 513 }
bsw@1045 514 end
bsw@1045 515 end }
bsw@1045 516 end }
bsw@1045 517 end }
bsw@1045 518 end }
bsw@1045 519 end
bsw@1045 520 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 521 if not issue.member_info.non_voter then
bsw@1045 522 ui.heading { level = 3, content = _"I don't like to vote this issue (myself):" }
bsw@1045 523 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 524 ui.tag { tag = "li", content = function ()
bsw@1045 525 ui.link{
bsw@1045 526 content = _"do not notify me about this voting anymore",
bsw@1045 527 module = "vote",
bsw@1045 528 action = "non_voter",
bsw@1045 529 params = { issue_id = issue.id },
bsw@1045 530 routing = {
bsw@1045 531 default = {
bsw@1045 532 mode = "redirect",
bsw@1045 533 module = request.get_module(),
bsw@1045 534 view = request.get_view(),
bsw@1145 535 id = request.get_id_string(),
bsw@1145 536 params = request.get_param_strings()
bsw@1045 537 }
bsw@1045 538 }
bsw@1045 539 }
bsw@1045 540 end }
bsw@1045 541 end }
bsw@1045 542 else
bsw@1045 543 ui.heading { level = 3, content = _"You do not like to vote this issue (yourself)" }
bsw@1045 544 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 545 ui.tag { tag = "li", content = function ()
bsw@1045 546 ui.link{
bsw@1045 547 in_brackets = true,
bsw@1045 548 content = _"discard",
bsw@1045 549 module = "vote",
bsw@1045 550 action = "non_voter",
bsw@1045 551 params = { issue_id = issue.id, delete = true },
bsw@1045 552 routing = {
bsw@1045 553 default = {
bsw@1045 554 mode = "redirect",
bsw@1045 555 module = request.get_module(),
bsw@1045 556 view = request.get_view(),
bsw@1145 557 id = request.get_id_string(),
bsw@1145 558 params = request.get_param_strings()
bsw@1045 559 }
bsw@1045 560 }
bsw@1045 561 }
bsw@1045 562 end }
bsw@1045 563 end }
bsw@1045 564 end
bsw@1045 565 end }
bsw@1045 566 else
bsw@1045 567 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 568 ui.heading { level = 3, content = _"I like to change/revoke my vote:" }
bsw@1045 569 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 570 ui.tag { tag = "li", content = function ()
bsw@1045 571 ui.tag { content = function ()
bsw@1045 572 if not issue.closed then
bsw@1045 573 ui.link {
bsw@1045 574 xattr = { class = "btn btn-vote" },
bsw@1045 575 module = "vote", view = "list",
bsw@1045 576 params = { issue_id = issue.id },
bsw@1045 577 text = _"change my vote"
bsw@1045 578 }
bsw@1045 579 end
bsw@1045 580 end }
bsw@1045 581 end }
bsw@1045 582 ui.tag { tag = "li", content = function ()
bsw@1045 583 ui.tag { content = function ()
bsw@1045 584 if not issue.closed then
bsw@1045 585 ui.link {
bsw@1045 586 module = "vote", action = "update",
bsw@1045 587 params = {
bsw@1045 588 issue_id = issue.id,
bsw@1045 589 discard = true
bsw@1045 590 },
bsw@1045 591 routing = {
bsw@1045 592 default = {
bsw@1045 593 mode = "redirect",
bsw@1045 594 module = "issue",
bsw@1045 595 view = "show",
bsw@1045 596 id = issue.id
bsw@1045 597 }
bsw@1045 598 },
bsw@1045 599 text = _"discard my vote"
bsw@1045 600 }
bsw@1045 601 end
bsw@1045 602 end }
bsw@1045 603 end }
bsw@1045 604 end }
bsw@1045 605
bsw@1045 606 end }
bsw@1045 607
bsw@1045 608 end
bsw@1045 609 end
bsw@1045 610 end
bsw@1045 611
bsw@1045 612 if app.session.member and not privileged_to_vote then
bsw@1045 613 ui.sidebarSection( _"You are not entitled to vote in this unit" )
bsw@1045 614 end
bsw@1045 615
bsw@1045 616 if issue.closed then
bsw@1045 617 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 618 ui.heading { level = 3, content = _"This issue is closed" }
bsw@1045 619 end }
bsw@1045 620 end
bsw@1045 621
bsw@1045 622 if initiative and config.tell_others and config.tell_others.initiative then
bsw@1045 623 ui.container { attr = { class = "sidebarRow" }, content = function ()
bsw@1045 624
bsw@1045 625 ui.heading { level = 3, content = _"Tell others about this initiative:" }
bsw@1045 626 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
bsw@1045 627
bsw@1045 628 for i, link in ipairs (config.tell_others.initiative(initiative)) do
bsw@1045 629 ui.tag { tag = "li", content = function ()
bsw@1045 630 ui.link ( link )
bsw@1045 631 end }
bsw@1045 632 end
bsw@1045 633
bsw@1045 634 end }
bsw@1045 635 end }
bsw@1045 636 end
bsw@1045 637
bsw@1045 638
bsw@1045 639 end )

Impressum / About Us