rev |
line source |
bsw/jbe@1309
|
1 local limit = 50
|
bsw/jbe@1309
|
2
|
bsw@1045
|
3 if not app.session:has_access("all_pseudonymous") then
|
bsw@1045
|
4 return
|
bsw@1045
|
5 end
|
bsw@1045
|
6
|
bsw/jbe@1309
|
7 local unit_id = request.get_param{ name = "unit" }
|
bsw/jbe@1309
|
8 if unit_id == "all" then
|
bsw/jbe@1309
|
9 unit_id = nil
|
bsw/jbe@1309
|
10 end
|
bsw@1075
|
11
|
bsw/jbe@1309
|
12 local selector = Member:new_selector()
|
bsw/jbe@1309
|
13 :add_where("active")
|
bsw/jbe@1309
|
14 :add_order_by("last_login DESC NULLS LAST, id DESC")
|
bsw/jbe@1309
|
15
|
bsw/jbe@1309
|
16 if unit_id then
|
bsw/jbe@1309
|
17 selector:join("privilege", nil, "privilege.member_id = member.id")
|
bsw/jbe@1309
|
18 selector:add_where{ "privilege.unit_id = ?", unit_id }
|
bsw@1075
|
19 end
|
bsw@1075
|
20
|
bsw/jbe@1309
|
21 local member_count = selector:count()
|
bsw/jbe@1309
|
22
|
bsw/jbe@1309
|
23 selector:limit(limit)
|
bsw/jbe@1309
|
24
|
bsw/jbe@1309
|
25
|
bsw/jbe@1309
|
26 ui.container{ attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function()
|
bsw/jbe@1309
|
27
|
bsw/jbe@1309
|
28 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
|
bsw/jbe@1309
|
29 local text
|
bsw/jbe@1309
|
30 if unit_id then
|
bsw/jbe@1309
|
31 text = _("Eligible members (#{count})", { count = selector:count() })
|
bsw/jbe@1309
|
32 else
|
bsw/jbe@1309
|
33 text = _("Registered members (#{count})", { count = selector:count() })
|
bsw/jbe@1309
|
34 end
|
bsw/jbe@1309
|
35 ui.container{
|
bsw/jbe@1309
|
36 attr = { class = "mdl-card__title-text" },
|
bsw/jbe@1309
|
37 content = text
|
bsw@1045
|
38 }
|
bsw/jbe@1309
|
39 end }
|
bsw@1045
|
40
|
bsw/jbe@1309
|
41 ui.container{ attr = { class = "mdl-card__content" }, content = function()
|
bsw/jbe@1309
|
42 execute.view {
|
bsw/jbe@1309
|
43 module = 'member', view = '_list', params = {
|
bsw/jbe@1309
|
44 members_selector = selector,
|
bsw/jbe@1309
|
45 no_filter = true, no_paginate = true,
|
bsw/jbe@1309
|
46 member_class = "sidebarRow sidebarRowNarrow"
|
bsw/jbe@1309
|
47 }
|
bsw@1045
|
48 }
|
bsw/jbe@1309
|
49 end }
|
bsw@1045
|
50
|
bsw/jbe@1309
|
51 if member_count > limit then
|
bsw/jbe@1309
|
52 ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
|
bsw/jbe@1309
|
53 ui.link {
|
bsw/jbe@1309
|
54 attr = { class = "mdl-button mdl-js-button" },
|
bsw/jbe@1309
|
55 text = _"Show full member list",
|
bsw/jbe@1309
|
56 module = "member", view = "list"
|
bsw/jbe@1309
|
57 }
|
bsw/jbe@1309
|
58 end }
|
bsw/jbe@1309
|
59 end
|
bsw/jbe@1309
|
60 end }
|