rev |
line source |
bsw@10
|
1 local initiator = param.get("initiator", "table")
|
bsw@2
|
2 local member = param.get("member", "table")
|
bsw@2
|
3
|
bsw@3
|
4 local issue = param.get("issue", "table")
|
bsw@3
|
5 local initiative = param.get("initiative", "table")
|
bsw@3
|
6 local trustee = param.get("trustee", "table")
|
bsw@3
|
7
|
bsw@1045
|
8 local class = param.get("class")
|
bsw@1045
|
9
|
bsw@606
|
10 local name_html
|
bsw@2
|
11 if member.name_highlighted then
|
bsw@606
|
12 name_html = encode.highlight(member.name_highlighted)
|
bsw@2
|
13 else
|
bsw@606
|
14 name_html = encode.html(member.name)
|
bsw@2
|
15 end
|
bsw@2
|
16
|
bsw/jbe@1309
|
17 local container_class = "mdl-chip mdl-chip--contact clickable mdl-badge mdl-badge--overlap"
|
bsw@10
|
18 if initiator and member.accepted ~= true then
|
bsw@10
|
19 container_class = container_class .. " not_accepted"
|
bsw@10
|
20 end
|
bsw@10
|
21
|
bsw/jbe@19
|
22 if member.is_informed == false then
|
bsw/jbe@19
|
23 container_class = container_class .. " not_informed"
|
bsw/jbe@19
|
24 end
|
bsw/jbe@19
|
25
|
bsw@1045
|
26 if class then
|
bsw@1045
|
27 container_class = container_class .. " " .. class
|
bsw@1045
|
28 end
|
bsw@1045
|
29
|
bsw@1045
|
30 local in_delegation_chain = member.in_delegation_chain
|
bsw@1045
|
31 --[[if member.delegate_member_ids then
|
bsw@177
|
32 for member_id in member.delegate_member_ids:gmatch("(%w+)") do
|
bsw@177
|
33 if tonumber(member_id) == member.id then
|
bsw@177
|
34 in_delegation_chain = true
|
bsw@177
|
35 end
|
bsw@177
|
36 end
|
bsw@177
|
37 end
|
bsw@1045
|
38 --]]
|
bsw@179
|
39 if in_delegation_chain or ((issue or initiative) and member.id == app.session.member_id) then
|
bsw@177
|
40 container_class = container_class .. " in_delegation_chain"
|
bsw@177
|
41 end
|
bsw@177
|
42
|
bsw/jbe@1309
|
43 local el_id = multirand.string(32, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
|
bsw/jbe@1309
|
44 local weight = 0
|
bsw@1503
|
45 local ownweight = member.ownweight
|
bsw/jbe@1309
|
46 if member.weight then
|
bsw/jbe@1309
|
47 weight = member.weight
|
bsw/jbe@1309
|
48 end
|
bsw/jbe@1309
|
49 if member.voter_weight then
|
bsw/jbe@1309
|
50 weight = member.voter_weight
|
bsw/jbe@1309
|
51 end
|
bsw@1503
|
52 local delegated_weight = weight - (ownweight or 0)
|
bsw@1503
|
53
|
bsw@1503
|
54 local weight_text = ""
|
bsw@1503
|
55
|
bsw@1503
|
56 if ownweight and ownweight > 1 then
|
bsw@1503
|
57 weight_text = weight_text .. ownweight
|
bsw@1503
|
58 end
|
bsw@1503
|
59
|
bsw@1503
|
60 if delegated_weight > 0 then
|
bsw@1503
|
61 weight_text = weight_text .. "+" .. delegated_weight
|
bsw@1503
|
62 end
|
bsw@1503
|
63
|
bsw@1503
|
64 if weight_text == "" then
|
bsw@1503
|
65 weight_text = nil
|
bsw@1503
|
66 end
|
bsw/jbe@1309
|
67
|
bsw@3
|
68 ui.container{
|
bsw@1503
|
69 attr = { id = el_id, class = container_class },
|
bsw@2
|
70 content = function()
|
bsw@1045
|
71
|
bsw/jbe@1309
|
72 execute.view{
|
bsw/jbe@1309
|
73 module = "member_image",
|
bsw/jbe@1309
|
74 view = "_show",
|
bsw/jbe@1309
|
75 params = {
|
bsw/jbe@1309
|
76 member = member,
|
bsw/jbe@1309
|
77 image_type = "avatar",
|
bsw/jbe@1309
|
78 show_dummy = true
|
bsw@1045
|
79 }
|
bsw/jbe@1309
|
80 }
|
bsw/jbe@1309
|
81 ui.tag{
|
bsw/jbe@1309
|
82 attr = { class = "mdl-chip__text" },
|
bsw@1503
|
83 content = function()
|
bsw@1503
|
84 slot.put(name_html)
|
bsw@1503
|
85 if weight_text then
|
bsw@1503
|
86 slot.put(" ")
|
bsw@1503
|
87 ui.tag{ attr = { class = "member_weight" }, content = weight_text }
|
bsw@1503
|
88 end
|
bsw@1503
|
89 end
|
bsw/jbe@1309
|
90 }
|
bsw@1045
|
91
|
bsw@1045
|
92 if member.grade then
|
bsw@1045
|
93 slot.put ( " " )
|
bsw/jbe@1309
|
94 if member.grade > 0 then
|
bsw/jbe@1309
|
95 ui.tag{ tag = "i", attr = { class = "material-icons icon-green" }, content = "thumb_up" }
|
bsw/jbe@1309
|
96 elseif member.grade < 0 then
|
bsw/jbe@1309
|
97 ui.tag{ tag = "i", attr = { class = "material-icons icon-red" }, content = "thumb_down" }
|
bsw/jbe@1309
|
98 else
|
bsw/jbe@1309
|
99 ui.tag{ tag = "i", attr = { class = "material-icons icon-yellow" }, content = "brightness_1" }
|
bsw/jbe@1309
|
100 end
|
bsw/jbe@1309
|
101 end
|
bsw/jbe@1309
|
102
|
bsw/jbe@1309
|
103 if (member.voter_comment) then
|
bsw@1606
|
104 local text = _"Voting comment available",
|
bsw@1606
|
105 ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "comment" }
|
bsw@1045
|
106 end
|
bsw@1045
|
107
|
bsw/jbe@19
|
108
|
bsw/jbe@1309
|
109 if (issue or initiative) and weight > 0 then
|
bsw@1045
|
110 end
|
bsw@1045
|
111
|
bsw@1045
|
112 if member.supporter then
|
bsw/jbe@1309
|
113 ui.tag { attr = { class = "mdl-chip__action" }, content = function()
|
bsw/jbe@1309
|
114 if member.supporter_satisfied then
|
bsw/jbe@1309
|
115 local text = _"supporter"
|
bsw/jbe@1309
|
116 ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "thumb_up" }
|
bsw/jbe@1309
|
117 else
|
bsw/jbe@1309
|
118 local text = _"supporter with restricting suggestions"
|
bsw/jbe@1309
|
119 ui.tag{ tag = "i", attr = { class = "material-icons mdl-color-text--orange-900" }, content = "thumb_up" }
|
bsw/jbe@1309
|
120 end
|
bsw/jbe@1309
|
121 end }
|
bsw@1045
|
122 end
|
bsw/jbe@4
|
123
|
bsw@1045
|
124 if not member.active then
|
bsw@1045
|
125 local text = _"member inactive"
|
bsw@1606
|
126 ui.tag{ tag = "i", attr = { class = "material-icons icon-red" }, content = "disabled_by_default" }
|
bsw@1045
|
127 end
|
bsw@1045
|
128
|
bsw@1045
|
129 if initiator and initiator.accepted then
|
bsw@1045
|
130 if member.accepted == nil then
|
bsw@1045
|
131 slot.put(_"Invited")
|
bsw@1045
|
132 elseif member.accepted == false then
|
bsw@1045
|
133 slot.put(_"Rejected")
|
bsw@3
|
134 end
|
bsw@1045
|
135 end
|
bsw@1045
|
136
|
bsw@1045
|
137 if member.is_informed == false then
|
bsw@1045
|
138 local text = _"Member has not approved latest draft"
|
bsw@1606
|
139 ui.tag{ tag = "i", attr = { class = "material-icons icon-yellow" }, content = "help" }
|
bsw@1045
|
140 end
|
bsw@1045
|
141
|
bsw@2
|
142 end
|
bsw@3
|
143 }
|
bsw/jbe@1309
|
144
|
bsw/jbe@1309
|
145 if member.grade or (issue and weight > 1) or app.session.member_id or app.session:has_access("everything") then
|
bsw/jbe@1309
|
146 ui.tag { tag = "ul", attr = { class = "mdl-menu mdl-menu--bottom-left mdl-js-menu mdl-js-ripple-effect", ["for"] = el_id }, content = function()
|
bsw/jbe@1309
|
147 if (member.grade) then
|
bsw/jbe@1309
|
148 ui.tag{ tag = "li", attr = { class = "mdl-menu__item" }, content = function()
|
bsw/jbe@1309
|
149 ui.link{
|
bsw/jbe@1309
|
150 attr = { class = "mdl-menu__link" },
|
bsw/jbe@1309
|
151 module = "vote",
|
bsw/jbe@1309
|
152 view = "list",
|
bsw/jbe@1309
|
153 params = {
|
bsw/jbe@1309
|
154 issue_id = issue.id,
|
bsw/jbe@1309
|
155 member_id = member.id,
|
bsw/jbe@1309
|
156 },
|
bsw/jbe@1309
|
157 content = _"show ballot"
|
bsw/jbe@1309
|
158 }
|
bsw/jbe@1309
|
159 end }
|
bsw/jbe@1309
|
160 end
|
bsw/jbe@1309
|
161 if issue and weight > 1 then
|
bsw/jbe@1309
|
162 ui.tag{ tag = "li", attr = { class = "mdl-menu__item" }, content = function()
|
bsw/jbe@1309
|
163 local module = "interest"
|
bsw/jbe@1309
|
164 if member.voter_weight then
|
bsw/jbe@1309
|
165 module = "vote"
|
bsw/jbe@1309
|
166 end
|
bsw/jbe@1309
|
167 ui.link{ attr = { class = "mdl-menu__link" }, content = _"show incoming delegations", module = module, view = "show_incoming", params = {
|
bsw/jbe@1309
|
168 member_id = member.id,
|
bsw/jbe@1309
|
169 initiative_id = initiative and initiative.id or nil,
|
bsw/jbe@1309
|
170 issue_id = issue and issue.id or nil
|
bsw/jbe@1309
|
171 } }
|
bsw/jbe@1309
|
172 end }
|
bsw/jbe@1309
|
173 end
|
bsw/jbe@1309
|
174 if app.session:has_access("everything") then
|
bsw/jbe@1309
|
175 ui.tag{ tag = "li", attr = { class = "mdl-menu__item" }, content = function()
|
bsw/jbe@1309
|
176 ui.link{ attr = { class = "mdl-menu__link" }, content = _"show profile", module = "member", view = "show", id = member.id }
|
bsw/jbe@1309
|
177 end }
|
bsw/jbe@1309
|
178 end
|
bsw/jbe@1309
|
179 if app.session.member_id then
|
bsw/jbe@1309
|
180 ui.tag{ tag = "li", attr = { class = "mdl-menu__item" }, content = function()
|
bsw/jbe@1309
|
181 ui.link{
|
bsw/jbe@1309
|
182 attr = { class = "mdl-menu__link" },
|
bsw/jbe@1309
|
183 text = _"add to my list of private contacts",
|
bsw/jbe@1309
|
184 module = "contact",
|
bsw/jbe@1309
|
185 action = "add_member",
|
bsw/jbe@1309
|
186 id = member.id,
|
bsw/jbe@1309
|
187 routing = {
|
bsw/jbe@1309
|
188 default = {
|
bsw/jbe@1309
|
189 mode = "redirect",
|
bsw/jbe@1309
|
190 module = request.get_module(),
|
bsw/jbe@1309
|
191 view = request.get_view(),
|
bsw/jbe@1309
|
192 id = request.get_id_string(),
|
bsw/jbe@1309
|
193 params = request.get_param_strings()
|
bsw/jbe@1309
|
194 }
|
bsw/jbe@1309
|
195 }
|
bsw/jbe@1309
|
196 }
|
bsw/jbe@1309
|
197 end }
|
bsw/jbe@1309
|
198 end
|
bsw/jbe@1309
|
199 end }
|
bsw/jbe@1309
|
200 end
|