bsw/jbe@0: local members_selector = param.get("members_selector", "table") bsw@3: local initiative = param.get("initiative", "table") bsw@3: local issue = param.get("issue", "table") bsw@3: local trustee = param.get("trustee", "table") bsw@10: local initiator = param.get("initiator", "table") bsw@3: bsw@177: if initiative or issue then bsw@177: local issue_id = issue and issue.id or initiative.issue_id bsw@177: 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@177: members_selector:add_field("_member_list__delegating_interest.delegate_member_ids", "delegate_member_ids") bsw@177: end bsw@177: bsw/jbe@19: ui.add_partial_param_names{ "member_list" } bsw/jbe@19: bsw/jbe@19: local filter = { bsw/jbe@19: label = _"Order by", bsw/jbe@19: name = "member_list", bsw/jbe@19: { bsw/jbe@19: name = "name", bsw/jbe@19: label = _"A-Z", bsw/jbe@19: selector_modifier = function(selector) selector:add_order_by("name") end bsw/jbe@19: }, bsw/jbe@19: { bsw/jbe@19: name = "name_desc", bsw/jbe@19: label = _"Z-A", bsw/jbe@19: selector_modifier = function(selector) selector:add_order_by("name DESC") end bsw/jbe@19: }, bsw@3: { bsw@10: name = "newest", bsw@10: label = _"Newest", bsw/jbe@19: selector_modifier = function(selector) selector:add_order_by("created DESC, id DESC") end bsw@10: }, bsw@10: { bsw@10: name = "oldest", bsw@10: label = _"Oldest", bsw/jbe@19: selector_modifier = function(selector) selector:add_order_by("created, id") end bsw@3: }, bsw@3: } bsw@3: bsw@3: if initiative then bsw/jbe@19: filter[#filter] = { bsw@3: name = "delegations", bsw@3: label = _"Delegations", bsw/jbe@19: selector_modifier = function(selector) selector:add_order_by("weight DESC") end bsw@3: } bsw@3: end bsw/jbe@0: bsw/jbe@19: ui.filters{ bsw/jbe@19: label = _"Change order", bsw/jbe@0: selector = members_selector, bsw/jbe@19: filter, bsw@2: content = function() bsw@2: ui.paginate{ bsw@2: selector = members_selector, bsw@2: per_page = 100, bsw@2: content = function() bsw@2: ui.container{ bsw@2: attr = { class = "member_list" }, bsw@2: content = function() bsw@3: local members = members_selector:exec() bsw@3: bsw@3: for i, member in ipairs(members) do bsw@2: execute.view{ bsw@2: module = "member", bsw@2: view = "_show_thumb", bsw@10: params = { bsw@10: member = member, bsw@10: initiative = initiative, bsw@10: issue = issue, bsw@10: trustee = trustee, bsw@10: initiator = initiator bsw@10: } bsw/jbe@0: } bsw@2: end bsw/jbe@19: bsw@177: bsw/jbe@0: end bsw/jbe@0: } bsw@3: slot.put('
') bsw@2: end bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@19: }