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 }
|