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