rev |
line source |
bsw/jbe@0
|
1 local members_selector = param.get("members_selector", "table")
|
bsw@286
|
2 members_selector:add_where("member.activated NOTNULL")
|
bsw@286
|
3
|
bsw@3
|
4 local initiative = param.get("initiative", "table")
|
bsw@3
|
5 local issue = param.get("issue", "table")
|
bsw@3
|
6 local trustee = param.get("trustee", "table")
|
bsw@10
|
7 local initiator = param.get("initiator", "table")
|
bsw@190
|
8 local for_votes = param.get("for_votes", atom.boolean)
|
bsw@183
|
9
|
bsw@720
|
10 local paginator_name = param.get("paginator_name")
|
bsw@720
|
11
|
bsw@177
|
12 if initiative or issue then
|
bsw@190
|
13 if for_votes then
|
bsw@190
|
14 members_selector:left_join("delegating_voter", "_member_list__delegating_voter", { "_member_list__delegating_voter.issue_id = issue.id AND _member_list__delegating_voter.member_id = ?", app.session.member_id })
|
bsw@190
|
15 members_selector:add_field("_member_list__delegating_voter.delegate_member_ids", "delegate_member_ids")
|
bsw@190
|
16 else
|
bsw@190
|
17 members_selector:left_join("delegating_interest_snapshot", "_member_list__delegating_interest", { "_member_list__delegating_interest.event = issue.latest_snapshot_event AND _member_list__delegating_interest.issue_id = issue.id AND _member_list__delegating_interest.member_id = ?", app.session.member_id })
|
bsw@190
|
18 members_selector:add_field("_member_list__delegating_interest.delegate_member_ids", "delegate_member_ids")
|
bsw@190
|
19 end
|
bsw@177
|
20 end
|
bsw@177
|
21
|
bsw/jbe@19
|
22 ui.add_partial_param_names{ "member_list" }
|
bsw/jbe@19
|
23
|
bsw@452
|
24 local filter = { name = "member_list" }
|
bsw@3
|
25
|
bsw@452
|
26 if issue or initiative then
|
bsw@3
|
27 end
|
bsw/jbe@0
|
28
|
bsw@452
|
29 filter[#filter+1] = {
|
bsw@452
|
30 name = "newest",
|
bsw@452
|
31 label = _"Newest",
|
bsw@452
|
32 selector_modifier = function(selector) selector:add_order_by("activated DESC, id DESC") end
|
bsw@452
|
33 }
|
bsw@452
|
34 filter[#filter+1] = {
|
bsw@452
|
35 name = "oldest",
|
bsw@452
|
36 label = _"Oldest",
|
bsw@452
|
37 selector_modifier = function(selector) selector:add_order_by("activated, id") end
|
bsw@452
|
38 }
|
bsw@452
|
39
|
bsw@452
|
40 filter[#filter+1] = {
|
bsw@452
|
41 name = "name",
|
bsw@452
|
42 label = _"A-Z",
|
bsw@452
|
43 selector_modifier = function(selector) selector:add_order_by("name") end
|
bsw@452
|
44 }
|
bsw@452
|
45 filter[#filter+1] = {
|
bsw@452
|
46 name = "name_desc",
|
bsw@452
|
47 label = _"Z-A",
|
bsw@452
|
48 selector_modifier = function(selector) selector:add_order_by("name DESC") end
|
bsw@452
|
49 }
|
bsw@452
|
50
|
bsw@718
|
51 local ui_filters = ui.filters
|
bsw@718
|
52 if issue or initiative then
|
bsw@718
|
53 ui_filters = function(args) args.content() end
|
bsw@718
|
54 if for_votes then
|
bsw@718
|
55 members_selector:add_order_by("voter_weight DESC, name, id")
|
bsw@718
|
56 else
|
bsw@718
|
57 members_selector:add_order_by("weight DESC, name, id")
|
bsw@718
|
58 end
|
bsw@718
|
59 end
|
bsw@718
|
60
|
bsw@718
|
61 ui_filters{
|
bsw/jbe@19
|
62 label = _"Change order",
|
bsw/jbe@0
|
63 selector = members_selector,
|
bsw/jbe@19
|
64 filter,
|
bsw@2
|
65 content = function()
|
bsw@2
|
66 ui.paginate{
|
bsw@720
|
67 name = paginator_name,
|
bsw@720
|
68 anchor = paginator_name,
|
bsw@2
|
69 selector = members_selector,
|
bsw@720
|
70 per_page = 50,
|
bsw@2
|
71 content = function()
|
bsw@2
|
72 ui.container{
|
bsw@2
|
73 attr = { class = "member_list" },
|
bsw@2
|
74 content = function()
|
bsw@3
|
75 local members = members_selector:exec()
|
bsw@3
|
76
|
bsw@3
|
77 for i, member in ipairs(members) do
|
bsw@2
|
78 execute.view{
|
bsw@2
|
79 module = "member",
|
bsw@2
|
80 view = "_show_thumb",
|
bsw@10
|
81 params = {
|
bsw@10
|
82 member = member,
|
bsw@10
|
83 initiative = initiative,
|
bsw@10
|
84 issue = issue,
|
bsw@10
|
85 trustee = trustee,
|
bsw@10
|
86 initiator = initiator
|
bsw@10
|
87 }
|
bsw/jbe@0
|
88 }
|
bsw@2
|
89 end
|
bsw/jbe@19
|
90
|
bsw@177
|
91
|
bsw/jbe@0
|
92 end
|
bsw/jbe@0
|
93 }
|
bsw@3
|
94 slot.put('<br style="clear: left;" />')
|
bsw@2
|
95 end
|
bsw/jbe@0
|
96 }
|
bsw/jbe@0
|
97 end
|
bsw/jbe@19
|
98 }
|