liquid_feedback_frontend
diff app/main/index/_sidebar_members.lua @ 1309:32cc544d5a5b
Cumulative patch for upcoming frontend version 4
| author | bsw/jbe |
|---|---|
| date | Sun Jul 15 14:07:29 2018 +0200 (2018-07-15) |
| parents | a85f7ea61ef6 |
| children | a964cf74e02f |
line diff
1.1 --- a/app/main/index/_sidebar_members.lua Thu Jun 23 03:30:57 2016 +0200 1.2 +++ b/app/main/index/_sidebar_members.lua Sun Jul 15 14:07:29 2018 +0200 1.3 @@ -1,38 +1,60 @@ 1.4 +local limit = 50 1.5 + 1.6 if not app.session:has_access("all_pseudonymous") then 1.7 return 1.8 end 1.9 1.10 -local member_count = MemberCount:get() 1.11 +local unit_id = request.get_param{ name = "unit" } 1.12 +if unit_id == "all" then 1.13 + unit_id = nil 1.14 +end 1.15 1.16 -if not member_count then 1.17 - return 1.18 +local selector = Member:new_selector() 1.19 + :add_where("active") 1.20 + :add_order_by("last_login DESC NULLS LAST, id DESC") 1.21 + 1.22 +if unit_id then 1.23 + selector:join("privilege", nil, "privilege.member_id = member.id") 1.24 + selector:add_where{ "privilege.unit_id = ?", unit_id } 1.25 end 1.26 1.27 -ui.sidebar ( "tab-members", function () 1.28 - ui.sidebarHead( function() 1.29 - ui.heading { 1.30 - level = 2, 1.31 - content = _("Registered members (#{count})", { count = member_count }) 1.32 +local member_count = selector:count() 1.33 + 1.34 +selector:limit(limit) 1.35 + 1.36 + 1.37 +ui.container{ attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function() 1.38 + 1.39 + ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function() 1.40 + local text 1.41 + if unit_id then 1.42 + text = _("Eligible members (#{count})", { count = selector:count() }) 1.43 + else 1.44 + text = _("Registered members (#{count})", { count = selector:count() }) 1.45 + end 1.46 + ui.container{ 1.47 + attr = { class = "mdl-card__title-text" }, 1.48 + content = text 1.49 } 1.50 - end ) 1.51 - 1.52 - local selector = Member:new_selector() 1.53 - :add_where("active") 1.54 - :add_order_by("last_login DESC NULLS LAST, id DESC") 1.55 - :limit(50) 1.56 + end } 1.57 1.58 - execute.view { 1.59 - module = 'member', view = '_list', params = { 1.60 - members_selector = selector, 1.61 - no_filter = true, no_paginate = true, 1.62 - member_class = "sidebarRow sidebarRowNarrow" 1.63 + ui.container{ attr = { class = "mdl-card__content" }, content = function() 1.64 + execute.view { 1.65 + module = 'member', view = '_list', params = { 1.66 + members_selector = selector, 1.67 + no_filter = true, no_paginate = true, 1.68 + member_class = "sidebarRow sidebarRowNarrow" 1.69 + } 1.70 } 1.71 - } 1.72 + end } 1.73 1.74 - ui.link { 1.75 - attr = { class = "sidebarRow moreLink" }, 1.76 - text = _"Show full member list", 1.77 - module = "member", view = "list" 1.78 - } 1.79 - 1.80 -end ) 1.81 + if member_count > limit then 1.82 + ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function() 1.83 + ui.link { 1.84 + attr = { class = "mdl-button mdl-js-button" }, 1.85 + text = _"Show full member list", 1.86 + module = "member", view = "list" 1.87 + } 1.88 + end } 1.89 + end 1.90 +end }