liquid_feedback_frontend

annotate app/main/delegation/_show_box.lua @ 2:5c601807d397

Version alpha3

Dark green part of issue supporter bargraph represents all satisfied supporters, regardless of having seen the latest draft

Wiki formatting for drafts

Showing differences between two drafts of the same initiative

Display of outgoing delegation chains

Many other improvements
author bsw
date Mon Nov 23 12:00:00 2009 +0100 (2009-11-23)
parents 3bfb2fcf7ab9
children 80c215dbf076
rev   line source
bsw/jbe@0 1 slot.select("delegation", function()
bsw/jbe@0 2
bsw/jbe@0 3 local delegation
bsw/jbe@0 4 local area_id
bsw/jbe@0 5 local issue_id
bsw/jbe@0 6
bsw/jbe@0 7 local scope = "global"
bsw/jbe@0 8
bsw/jbe@0 9 if param.get("initiative_id", atom.integer) then
bsw/jbe@0 10 issue_id = Initiative:by_id(param.get("initiative_id", atom.integer)).issue_id
bsw/jbe@0 11 scope = "issue"
bsw/jbe@0 12 end
bsw/jbe@0 13
bsw/jbe@0 14 if param.get("issue_id", atom.integer) then
bsw/jbe@0 15 issue_id = param.get("issue_id", atom.integer)
bsw/jbe@0 16 scope = "issue"
bsw/jbe@0 17 end
bsw/jbe@0 18
bsw/jbe@0 19 if param.get("area_id", atom.integer) then
bsw/jbe@0 20 area_id = param.get("area_id", atom.integer)
bsw/jbe@0 21 scope = "area"
bsw/jbe@0 22 end
bsw/jbe@0 23
bsw/jbe@0 24
bsw/jbe@0 25
bsw/jbe@0 26 local delegation
bsw/jbe@0 27
bsw/jbe@0 28 if issue_id then
bsw/jbe@0 29 delegation = Delegation:by_pk(app.session.member.id, nil, issue_id)
bsw/jbe@0 30 if not delegation then
bsw/jbe@0 31 local issue = Issue:by_id(issue_id)
bsw/jbe@0 32 delegation = Delegation:by_pk(app.session.member.id, issue.area_id)
bsw/jbe@0 33 end
bsw/jbe@0 34 elseif area_id then
bsw/jbe@0 35 delegation = Delegation:by_pk(app.session.member.id, area_id)
bsw/jbe@0 36 end
bsw/jbe@0 37
bsw/jbe@0 38 if not delegation then
bsw/jbe@0 39 delegation = Delegation:by_pk(app.session.member.id)
bsw/jbe@0 40 end
bsw/jbe@0 41 if delegation then
bsw/jbe@0 42 ui.container{
bsw/jbe@0 43 attr = {
bsw/jbe@0 44 class = "head",
bsw/jbe@0 45 style = "cursor: pointer;",
bsw/jbe@0 46 onclick = "document.getElementById('delegation_content').style.display = 'block';"
bsw/jbe@0 47 },
bsw/jbe@0 48 content = _"Your vote is delegated. [more]"
bsw/jbe@0 49 }
bsw/jbe@0 50 ui.container{
bsw/jbe@0 51 attr = { class = "content", id = "delegation_content" },
bsw/jbe@0 52 content = function()
bsw@2 53 ui.container{
bsw@2 54 attr = {
bsw@2 55 class = "close",
bsw@2 56 style = "cursor: pointer;",
bsw@2 57 onclick = "document.getElementById('delegation_content').style.display = 'none';"
bsw@2 58 },
bsw@2 59 content = _"X"
bsw@2 60 }
bsw/jbe@0 61
bsw/jbe@0 62 local delegation_chain = db:query{ "SELECT * FROM delegation_chain(?, ?, ?) JOIN member ON member.id = member_id ORDER BY index", app.session.member.id, area_id, issue_id }
bsw/jbe@0 63
bsw/jbe@0 64 for i, record in ipairs(delegation_chain) do
bsw/jbe@0 65 local style
bsw@2 66 execute.view{
bsw@2 67 module = "member",
bsw@2 68 view = "_show_thumb",
bsw@2 69 params = { member = record }
bsw@2 70 }
bsw@2 71 slot.put("<br style='clear: left'/>")
bsw@2 72 if record.scope_out then
bsw@2 73 ui.container{
bsw@2 74 attr = { class = "delegation_info" },
bsw@2 75 content = function()
bsw@2 76 ui.image{
bsw@2 77 attr = { class = "delegation_arrow" },
bsw@2 78 static = "delegation_arrow_vertical.jpg"
bsw@2 79 }
bsw@2 80 ui.container{
bsw@2 81 attr = { class = "delegation_scope" },
bsw@2 82 content = function()
bsw@2 83 if record.scope_out == "global" then
bsw@2 84 slot.put(_"Global delegation")
bsw@2 85 elseif record.scope_out == "area" then
bsw@2 86 slot.put(_"Area delegation")
bsw@2 87 elseif record.scope_out == "issue" then
bsw@2 88 slot.put(_"Issue delegation")
bsw@2 89 end
bsw@2 90 end
bsw@2 91 }
bsw@2 92 if record.id == app.session.member.id then
bsw@2 93 ui.link{
bsw@2 94 attr = { class = "revoke" },
bsw@2 95 content = function()
bsw@2 96 ui.image{ static = "icons/16/delete.png" }
bsw@2 97 slot.put(_"Revoke")
bsw@2 98 end,
bsw@2 99 module = "delegation",
bsw@2 100 action = "update",
bsw@2 101 params = { issue_id = delegation.issue_id, area_id = delegation.area_id, delete = true },
bsw@2 102 routing = {
bsw@2 103 default = {
bsw@2 104 mode = "redirect",
bsw@2 105 module = request.get_module(),
bsw@2 106 view = request.get_view(),
bsw@2 107 id = param.get_id_cgi(),
bsw@2 108 params = param.get_all_cgi()
bsw@2 109 }
bsw@2 110 }
bsw@2 111 }
bsw@2 112 end
bsw@2 113 end
bsw/jbe@0 114 }
bsw/jbe@0 115 end
bsw/jbe@0 116 end
bsw/jbe@0 117 end
bsw/jbe@0 118 }
bsw/jbe@0 119 end
bsw/jbe@0 120
bsw/jbe@0 121 end)

Impressum / About Us