liquid_feedback_frontend

annotate app/main/member/_show_thumb.lua @ 1503:64229f002a47

Added support for voting weight
author bsw
date Thu Jul 30 23:15:49 2020 +0200 (2020-07-30)
parents 32cc544d5a5b
children dcbe505ddf24
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/jbe@1309 104 ui.image{
bsw/jbe@1309 105 attr = {
bsw/jbe@1309 106 alt = _"Voting comment available",
bsw/jbe@1309 107 title = _"Voting comment available",
bsw/jbe@1309 108 class = "icon24 right"
bsw@1045 109 },
bsw/jbe@1309 110 static = "icons/16/comment.png"
bsw@1045 111 }
bsw@1045 112 end
bsw@1045 113
bsw/jbe@19 114
bsw/jbe@1309 115 if (issue or initiative) and weight > 0 then
bsw@1045 116 end
bsw@1045 117
bsw@1045 118 if member.supporter then
bsw/jbe@1309 119 ui.tag { attr = { class = "mdl-chip__action" }, content = function()
bsw/jbe@1309 120 if member.supporter_satisfied then
bsw/jbe@1309 121 local text = _"supporter"
bsw/jbe@1309 122 ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "thumb_up" }
bsw/jbe@1309 123 else
bsw/jbe@1309 124 local text = _"supporter with restricting suggestions"
bsw/jbe@1309 125 ui.tag{ tag = "i", attr = { class = "material-icons mdl-color-text--orange-900" }, content = "thumb_up" }
bsw/jbe@1309 126 end
bsw/jbe@1309 127 end }
bsw@1045 128 end
bsw/jbe@4 129
bsw@1045 130 if not member.active then
bsw@1045 131 slot.put ( " " )
bsw@1045 132 local text = _"member inactive"
bsw@1045 133 ui.image{
bsw@1045 134 attr = { alt = text, title = text },
bsw@1045 135 static = "icons/16/cross.png"
bsw@1045 136 }
bsw@1045 137 ui.tag{ content = _"inactive" }
bsw@1045 138 end
bsw@1045 139
bsw@1045 140 if initiator and initiator.accepted then
bsw@1045 141 if member.accepted == nil then
bsw@1045 142 slot.put(_"Invited")
bsw@1045 143 elseif member.accepted == false then
bsw@1045 144 slot.put(_"Rejected")
bsw@3 145 end
bsw@1045 146 end
bsw@1045 147
bsw@1045 148 if member.is_informed == false then
bsw@1045 149 local text = _"Member has not approved latest draft"
bsw@1045 150 ui.image{
bsw@1045 151 attr = { alt = text, title = text },
bsw@1045 152 static = "icons/16/help_yellow.png"
bsw@1045 153 }
bsw@1045 154 end
bsw@1045 155
bsw@2 156 end
bsw@3 157 }
bsw/jbe@1309 158
bsw/jbe@1309 159 if member.grade or (issue and weight > 1) or app.session.member_id or app.session:has_access("everything") then
bsw/jbe@1309 160 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 161 if (member.grade) then
bsw/jbe@1309 162 ui.tag{ tag = "li", attr = { class = "mdl-menu__item" }, content = function()
bsw/jbe@1309 163 ui.link{
bsw/jbe@1309 164 attr = { class = "mdl-menu__link" },
bsw/jbe@1309 165 module = "vote",
bsw/jbe@1309 166 view = "list",
bsw/jbe@1309 167 params = {
bsw/jbe@1309 168 issue_id = issue.id,
bsw/jbe@1309 169 member_id = member.id,
bsw/jbe@1309 170 },
bsw/jbe@1309 171 content = _"show ballot"
bsw/jbe@1309 172 }
bsw/jbe@1309 173 end }
bsw/jbe@1309 174 end
bsw/jbe@1309 175 if issue and weight > 1 then
bsw/jbe@1309 176 ui.tag{ tag = "li", attr = { class = "mdl-menu__item" }, content = function()
bsw/jbe@1309 177 local module = "interest"
bsw/jbe@1309 178 if member.voter_weight then
bsw/jbe@1309 179 module = "vote"
bsw/jbe@1309 180 end
bsw/jbe@1309 181 ui.link{ attr = { class = "mdl-menu__link" }, content = _"show incoming delegations", module = module, view = "show_incoming", params = {
bsw/jbe@1309 182 member_id = member.id,
bsw/jbe@1309 183 initiative_id = initiative and initiative.id or nil,
bsw/jbe@1309 184 issue_id = issue and issue.id or nil
bsw/jbe@1309 185 } }
bsw/jbe@1309 186 end }
bsw/jbe@1309 187 end
bsw/jbe@1309 188 if app.session:has_access("everything") then
bsw/jbe@1309 189 ui.tag{ tag = "li", attr = { class = "mdl-menu__item" }, content = function()
bsw/jbe@1309 190 ui.link{ attr = { class = "mdl-menu__link" }, content = _"show profile", module = "member", view = "show", id = member.id }
bsw/jbe@1309 191 end }
bsw/jbe@1309 192 end
bsw/jbe@1309 193 if app.session.member_id then
bsw/jbe@1309 194 ui.tag{ tag = "li", attr = { class = "mdl-menu__item" }, content = function()
bsw/jbe@1309 195 ui.link{
bsw/jbe@1309 196 attr = { class = "mdl-menu__link" },
bsw/jbe@1309 197 text = _"add to my list of private contacts",
bsw/jbe@1309 198 module = "contact",
bsw/jbe@1309 199 action = "add_member",
bsw/jbe@1309 200 id = member.id,
bsw/jbe@1309 201 routing = {
bsw/jbe@1309 202 default = {
bsw/jbe@1309 203 mode = "redirect",
bsw/jbe@1309 204 module = request.get_module(),
bsw/jbe@1309 205 view = request.get_view(),
bsw/jbe@1309 206 id = request.get_id_string(),
bsw/jbe@1309 207 params = request.get_param_strings()
bsw/jbe@1309 208 }
bsw/jbe@1309 209 }
bsw/jbe@1309 210 }
bsw/jbe@1309 211 end }
bsw/jbe@1309 212 end
bsw/jbe@1309 213 end }
bsw/jbe@1309 214 end

Impressum / About Us