liquid_feedback_frontend
view app/main/member/_list.lua @ 172:165f4bd02cf3
don't show the first draft of a new initiative as a new draft event in the timeline
new draft should only show changes of drafts drafts of new initiatives as they are handled by the new initiative event
new draft should only show changes of drafts drafts of new initiatives as they are handled by the new initiative event
| author | Daniel Poelzleithner <poelzi@poelzi.org> |
|---|---|
| date | Sun Oct 10 19:40:32 2010 +0200 (2010-10-10) |
| 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 }
