liquid_feedback_frontend

annotate app/main/member/_list.lua @ 720:cdd0bcbbef8b

Improved paginators on initiative view, optical improvements
author bsw
date Wed Jun 27 19:28:39 2012 +0200 (2012-06-27)
parents cc64a4fc6ab6
children 701a5cf6b067
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 }

Impressum / About Us