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