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