liquid_feedback_frontend

view app/main/member/_list.lua @ 60:7bc629bc1c20

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

Impressum / About Us