liquid_feedback_frontend

annotate app/main/member/_list.lua @ 159:5d797c6706d5

implement quorum display

show the initiative quorum as a small 1px line in bargraph
allow to update your support on the diff page
better linked title in diff page
show absolute quorum numbers in detail pages of issue and initiative
author Daniel Poelzleithner <poelzi@poelzi.org>
date Sat Oct 09 03:42:48 2010 +0200 (2010-10-09)
parents 00d1004545f1
children b9c8503feff7
rev   line source
bsw/jbe@0 1 local members_selector = param.get("members_selector", "table")
bsw@3 2 local initiative = param.get("initiative", "table")
bsw@3 3 local issue = param.get("issue", "table")
bsw@3 4 local trustee = param.get("trustee", "table")
bsw@10 5 local initiator = param.get("initiator", "table")
bsw@3 6
bsw/jbe@19 7 ui.add_partial_param_names{ "member_list" }
bsw/jbe@19 8
bsw/jbe@19 9 local filter = {
bsw/jbe@19 10 label = _"Order by",
bsw/jbe@19 11 name = "member_list",
bsw/jbe@19 12 {
bsw/jbe@19 13 name = "name",
bsw/jbe@19 14 label = _"A-Z",
bsw/jbe@19 15 selector_modifier = function(selector) selector:add_order_by("name") end
bsw/jbe@19 16 },
bsw/jbe@19 17 {
bsw/jbe@19 18 name = "name_desc",
bsw/jbe@19 19 label = _"Z-A",
bsw/jbe@19 20 selector_modifier = function(selector) selector:add_order_by("name DESC") end
bsw/jbe@19 21 },
bsw@3 22 {
bsw@10 23 name = "newest",
bsw@10 24 label = _"Newest",
bsw/jbe@19 25 selector_modifier = function(selector) selector:add_order_by("created DESC, id DESC") end
bsw@10 26 },
bsw@10 27 {
bsw@10 28 name = "oldest",
bsw@10 29 label = _"Oldest",
bsw/jbe@19 30 selector_modifier = function(selector) selector:add_order_by("created, id") end
bsw@3 31 },
bsw@3 32 }
bsw@3 33
bsw@3 34 if initiative then
bsw/jbe@19 35 filter[#filter] = {
bsw@3 36 name = "delegations",
bsw@3 37 label = _"Delegations",
bsw/jbe@19 38 selector_modifier = function(selector) selector:add_order_by("weight DESC") end
bsw@3 39 }
bsw@3 40 end
bsw/jbe@0 41
bsw/jbe@19 42 ui.filters{
bsw/jbe@19 43 label = _"Change order",
bsw/jbe@0 44 selector = members_selector,
bsw/jbe@19 45 filter,
bsw@2 46 content = function()
bsw@2 47 ui.paginate{
bsw@2 48 selector = members_selector,
bsw@2 49 per_page = 100,
bsw@2 50 content = function()
bsw@2 51 ui.container{
bsw@2 52 attr = { class = "member_list" },
bsw@2 53 content = function()
bsw@3 54 local members = members_selector:exec()
bsw@3 55 local columns = {
bsw@3 56 {
bsw@3 57 label = _"Name",
bsw@3 58 content = function(member)
bsw@3 59 ui.link{
bsw@3 60 module = "member",
bsw@3 61 view = "show",
bsw@3 62 id = member.id,
bsw@3 63 content = function()
bsw@3 64 ui.image{
bsw@3 65 attr = { width = 48, height = 48 },
bsw@3 66 module = "member",
bsw@3 67 view = "avatar",
bsw@3 68 id = member.id,
bsw@3 69 extension = "jpg"
bsw@3 70 }
bsw@3 71 end
bsw@3 72 }
bsw@3 73 end
bsw@3 74 },
bsw@3 75 {
bsw@3 76 label = _"Name",
bsw@3 77 content = function(member)
bsw@3 78 ui.link{
bsw@3 79 module = "member",
bsw@3 80 view = "show",
bsw@3 81 id = member.id,
bsw@3 82 content = member.name
bsw@3 83 }
bsw@3 84 if member.admin then
bsw@3 85 ui.image{
bsw@3 86 attr = {
bsw@3 87 alt = _"Administrator",
bsw@3 88 title = _"Administrator"
bsw@3 89 },
bsw@3 90 static = "icons/16/cog.png"
bsw@3 91 }
bsw@3 92 end
bsw@3 93 -- TODO performance
bsw@3 94 local contact = Contact:by_pk(app.session.member.id, member.id)
bsw@3 95 if contact then
bsw@3 96 ui.image{
bsw@3 97 attr = {
bsw@3 98 alt = _"Saved as contact",
bsw@3 99 title = _"Saved as contact"
bsw@3 100 },
bsw@3 101 static = "icons/16/book_edit.png"
bsw@3 102 }
bsw@3 103 end
bsw@3 104 end
bsw@3 105 }
bsw@3 106 }
bsw@3 107
bsw@3 108 if initiative then
bsw@3 109 columns[#columns+1] = {
bsw@3 110 label = _"Delegations",
bsw@3 111 field_attr = { style = "text-align: right;" },
bsw@3 112 content = function(member)
bsw@3 113 if member.weight > 1 then
bsw@3 114 ui.link{
bsw@3 115 content = member.weight,
bsw@3 116 module = "support",
bsw@3 117 view = "show_incoming",
bsw@3 118 params = { member_id = member.id, initiative_id = initiative.id }
bsw@3 119 }
bsw@3 120 end
bsw@3 121 end
bsw@3 122 }
bsw@3 123 end
bsw@3 124
bsw@3 125 for i, member in ipairs(members) do
bsw@2 126 execute.view{
bsw@2 127 module = "member",
bsw@2 128 view = "_show_thumb",
bsw@10 129 params = {
bsw@10 130 member = member,
bsw@10 131 initiative = initiative,
bsw@10 132 issue = issue,
bsw@10 133 trustee = trustee,
bsw@10 134 initiator = initiator
bsw@10 135 }
bsw/jbe@0 136 }
bsw@2 137 end
bsw/jbe@19 138
bsw/jbe@0 139 end
bsw/jbe@0 140 }
bsw@3 141 slot.put('<br style="clear: left;" />')
bsw@2 142 end
bsw/jbe@0 143 }
bsw/jbe@0 144 end
bsw/jbe@19 145 }

Impressum / About Us