liquid_feedback_frontend
view app/main/member/_list.lua @ 3:768faea1096d
Version alpha4
Members interested in an issue or supporting an initiative have a weight information attached. Browsing the members causing that weight is possible.
Initiatives may provide a link to an external discussion platform
Direct link on every initiative page to create an alternative initiative
Bugfix: No error when clicking "neutral", when "neutral" is currently selected
Members interested in an issue or supporting an initiative have a weight information attached. Browsing the members causing that weight is possible.
Initiatives may provide a link to an external discussion platform
Direct link on every initiative page to create an alternative initiative
Bugfix: No error when clicking "neutral", when "neutral" is currently selected
author | bsw |
---|---|
date | Mon Nov 30 12:00:00 2009 +0100 (2009-11-30) |
parents | 5c601807d397 |
children | 72c5e0ee7c98 |
line source
1 local members_selector = param.get("members_selector", "table")
2 local initiative = param.get("initiative", "table")
3 local issue = param.get("issue", "table")
4 local trustee = param.get("trustee", "table")
6 local options = {
7 {
8 name = "name",
9 label = _"A-Z",
10 order_by = "name"
11 },
12 {
13 name = "name_desc",
14 label = _"Z-A",
15 order_by = "name DESC"
16 },
17 }
19 if initiative then
20 options[#options+1] = {
21 name = "delegations",
22 label = _"Delegations",
23 order_by = "weight DESC"
24 }
25 end
27 ui.order{
28 name = "member_list",
29 selector = members_selector,
30 options = options,
31 content = function()
32 ui.paginate{
33 selector = members_selector,
34 per_page = 100,
35 content = function()
36 ui.container{
37 attr = { class = "member_list" },
38 content = function()
39 local members = members_selector:exec()
40 local columns = {
41 {
42 label = _"Name",
43 content = function(member)
44 ui.link{
45 module = "member",
46 view = "show",
47 id = member.id,
48 content = function()
49 ui.image{
50 attr = { width = 48, height = 48 },
51 module = "member",
52 view = "avatar",
53 id = member.id,
54 extension = "jpg"
55 }
56 end
57 }
58 end
59 },
60 {
61 label = _"Name",
62 content = function(member)
63 ui.link{
64 module = "member",
65 view = "show",
66 id = member.id,
67 content = member.name
68 }
69 if member.admin then
70 ui.image{
71 attr = {
72 alt = _"Administrator",
73 title = _"Administrator"
74 },
75 static = "icons/16/cog.png"
76 }
77 end
78 -- TODO performance
79 local contact = Contact:by_pk(app.session.member.id, member.id)
80 if contact then
81 ui.image{
82 attr = {
83 alt = _"Saved as contact",
84 title = _"Saved as contact"
85 },
86 static = "icons/16/book_edit.png"
87 }
88 end
89 end
90 }
91 }
93 if initiative then
94 columns[#columns+1] = {
95 label = _"Delegations",
96 field_attr = { style = "text-align: right;" },
97 content = function(member)
98 if member.weight > 1 then
99 ui.link{
100 content = member.weight,
101 module = "support",
102 view = "show_incoming",
103 params = { member_id = member.id, initiative_id = initiative.id }
104 }
105 end
106 end
107 }
108 end
110 --[[ ui.list{
111 records = members,
112 columns = columns
113 }
114 --]]
115 ---[[
116 for i, member in ipairs(members) do
117 execute.view{
118 module = "member",
119 view = "_show_thumb",
120 params = { member = member, initiative = initiative, issue = issue, trustee = trustee }
121 }
122 end
123 ---]]
124 end
125 }
126 slot.put('<br style="clear: left;" />')
127 if issue then
128 ui.field.timestamp{ label = _"Last snapshot:", value = issue.snapshot }
129 end
130 if initiative then
131 ui.field.timestamp{ label = _"Last snapshot:", value = initiative.issue.snapshot }
132 end
133 end
134 }
135 end
136 }