liquid_feedback_frontend

annotate app/main/member/_list.lua @ 118:93f4e465b50d

add initiator support in delegation

if a delegation is issued from the initiative view, the initiators
from that one are added to the delegation target list. this makes it easier to delegate to the author without the need to add him to the contact list.
author Daniel Poelzleithner <poelzi@poelzi.org>
date Mon Sep 20 20:32:04 2010 +0200 (2010-09-20)
parents 00d1004545f1
children b9c8503feff7
rev   line source
bsw/jbe@0 1 local members_selector = param.get("members_selector", "table")
bsw@3 2 local initiative = param.get("initiative", "table")
bsw@3 3 local issue = param.get("issue", "table")
bsw@3 4 local trustee = param.get("trustee", "table")
bsw@10 5 local initiator = param.get("initiator", "table")
bsw@3 6
bsw/jbe@19 7 ui.add_partial_param_names{ "member_list" }
bsw/jbe@19 8
bsw/jbe@19 9 local filter = {
bsw/jbe@19 10 label = _"Order by",
bsw/jbe@19 11 name = "member_list",
bsw/jbe@19 12 {
bsw/jbe@19 13 name = "name",
bsw/jbe@19 14 label = _"A-Z",
bsw/jbe@19 15 selector_modifier = function(selector) selector:add_order_by("name") end
bsw/jbe@19 16 },
bsw/jbe@19 17 {
bsw/jbe@19 18 name = "name_desc",
bsw/jbe@19 19 label = _"Z-A",
bsw/jbe@19 20 selector_modifier = function(selector) selector:add_order_by("name DESC") end
bsw/jbe@19 21 },
bsw@3 22 {
bsw@10 23 name = "newest",
bsw@10 24 label = _"Newest",
bsw/jbe@19 25 selector_modifier = function(selector) selector:add_order_by("created DESC, id DESC") end
bsw@10 26 },
bsw@10 27 {
bsw@10 28 name = "oldest",
bsw@10 29 label = _"Oldest",
bsw/jbe@19 30 selector_modifier = function(selector) selector:add_order_by("created, id") end
bsw@3 31 },
bsw@3 32 }
bsw@3 33
bsw@3 34 if initiative then
bsw/jbe@19 35 filter[#filter] = {
bsw@3 36 name = "delegations",
bsw@3 37 label = _"Delegations",
bsw/jbe@19 38 selector_modifier = function(selector) selector:add_order_by("weight DESC") end
bsw@3 39 }
bsw@3 40 end
bsw/jbe@0 41
bsw/jbe@19 42 ui.filters{
bsw/jbe@19 43 label = _"Change order",
bsw/jbe@0 44 selector = members_selector,
bsw/jbe@19 45 filter,
bsw@2 46 content = function()
bsw@2 47 ui.paginate{
bsw@2 48 selector = members_selector,
bsw@2 49 per_page = 100,
bsw@2 50 content = function()
bsw@2 51 ui.container{
bsw@2 52 attr = { class = "member_list" },
bsw@2 53 content = function()
bsw@3 54 local members = members_selector:exec()
bsw@3 55 local columns = {
bsw@3 56 {
bsw@3 57 label = _"Name",
bsw@3 58 content = function(member)
bsw@3 59 ui.link{
bsw@3 60 module = "member",
bsw@3 61 view = "show",
bsw@3 62 id = member.id,
bsw@3 63 content = function()
bsw@3 64 ui.image{
bsw@3 65 attr = { width = 48, height = 48 },
bsw@3 66 module = "member",
bsw@3 67 view = "avatar",
bsw@3 68 id = member.id,
bsw@3 69 extension = "jpg"
bsw@3 70 }
bsw@3 71 end
bsw@3 72 }
bsw@3 73 end
bsw@3 74 },
bsw@3 75 {
bsw@3 76 label = _"Name",
bsw@3 77 content = function(member)
bsw@3 78 ui.link{
bsw@3 79 module = "member",
bsw@3 80 view = "show",
bsw@3 81 id = member.id,
bsw@3 82 content = member.name
bsw@3 83 }
bsw@3 84 if member.admin then
bsw@3 85 ui.image{
bsw@3 86 attr = {
bsw@3 87 alt = _"Administrator",
bsw@3 88 title = _"Administrator"
bsw@3 89 },
bsw@3 90 static = "icons/16/cog.png"
bsw@3 91 }
bsw@3 92 end
bsw@3 93 -- TODO performance
bsw@3 94 local contact = Contact:by_pk(app.session.member.id, member.id)
bsw@3 95 if contact then
bsw@3 96 ui.image{
bsw@3 97 attr = {
bsw@3 98 alt = _"Saved as contact",
bsw@3 99 title = _"Saved as contact"
bsw@3 100 },
bsw@3 101 static = "icons/16/book_edit.png"
bsw@3 102 }
bsw@3 103 end
bsw@3 104 end
bsw@3 105 }
bsw@3 106 }
bsw@3 107
bsw@3 108 if initiative then
bsw@3 109 columns[#columns+1] = {
bsw@3 110 label = _"Delegations",
bsw@3 111 field_attr = { style = "text-align: right;" },
bsw@3 112 content = function(member)
bsw@3 113 if member.weight > 1 then
bsw@3 114 ui.link{
bsw@3 115 content = member.weight,
bsw@3 116 module = "support",
bsw@3 117 view = "show_incoming",
bsw@3 118 params = { member_id = member.id, initiative_id = initiative.id }
bsw@3 119 }
bsw@3 120 end
bsw@3 121 end
bsw@3 122 }
bsw@3 123 end
bsw@3 124
bsw@3 125 for i, member in ipairs(members) do
bsw@2 126 execute.view{
bsw@2 127 module = "member",
bsw@2 128 view = "_show_thumb",
bsw@10 129 params = {
bsw@10 130 member = member,
bsw@10 131 initiative = initiative,
bsw@10 132 issue = issue,
bsw@10 133 trustee = trustee,
bsw@10 134 initiator = initiator
bsw@10 135 }
bsw/jbe@0 136 }
bsw@2 137 end
bsw/jbe@19 138
bsw/jbe@0 139 end
bsw/jbe@0 140 }
bsw@3 141 slot.put('<br style="clear: left;" />')
bsw@2 142 end
bsw/jbe@0 143 }
bsw/jbe@0 144 end
bsw/jbe@19 145 }

Impressum / About Us