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