liquid_feedback_frontend
annotate app/main/member/_list.lua @ 143:a33abf457d29
add initiative_id selector in suggestion api
fixes bug #301
fixes bug #301
| author | Daniel Poelzleithner <poelzi@poelzi.org> | 
|---|---|
| date | Wed Oct 06 16:35:33 2010 +0200 (2010-10-06) | 
| 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 } |