liquid_feedback_frontend

annotate app/main/issue/_sidebar_whatcanido.lua @ 1045:701a5cf6b067

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

Impressum / About Us