| 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@1426
 | 
    56         module = "member", view = "list", params = {
 | 
| 
bsw@1426
 | 
    57           unit_id = unit_id
 | 
| 
bsw@1426
 | 
    58         }
 | 
| 
bsw/jbe@1309
 | 
    59       }
 | 
| 
bsw/jbe@1309
 | 
    60     end }
 | 
| 
bsw/jbe@1309
 | 
    61   end
 | 
| 
bsw/jbe@1309
 | 
    62 end }
 |