liquid_feedback_frontend
view app/main/delegation/_info.lua @ 1590:8b3375b7f590
Fixed invalid condition for showing action element in issues
| author | bsw | 
|---|---|
| date | Wed Jan 27 10:07:05 2021 +0100 (2021-01-27) | 
| parents | 3ab878ba277e | 
| children | d14462e2b38b | 
 line source
     1 if not app.session.member_id then
     2   return
     3 end
     5 local member = param.get("member", "table") or app.session.member
     7 local unit  = param.get("unit", "table")
     8 local area  = param.get("area", "table")
     9 local issue = param.get("issue", "table")
    11 local for_title = param.get("for_title", "boolean")
    13 local unit_id  = unit  and unit.id  or nil
    14 local area_id  = area  and area.id  or nil
    15 local issue_id = issue and issue.id or nil
    17 local info
    18 local delegation_text
    20 if unit then
    21   info = unit.delegation_info
    22   delegation_text = _"Delegate unit"
    23 end
    25 if area then
    26   info = area.delegation_info
    27   delegation_text = _"Delegate area"
    28 end
    30 if issue then
    31   info = issue.member_info
    32   delegation_text = _"Delegate issue"
    33 end
    35 if not info then
    36   --return
    37 end
    39 local function print_delegation_info()
    40   local participant_occured = info.own_participation
    42   if not (issue and issue.state == "voting" and info.own_participation) then
    44     if info.first_trustee_id then
    46       local text = _"delegates to"
    47       ui.image{
    48         attr = { class = "delegation_arrow", alt = text, title = text },
    49         static = "delegation_arrow_24_horizontal.png"
    50       }
    52       local class = "micro_avatar"
    53       if not participant_occured and info.first_trustee_participation then
    54         participant_occured = true
    55         class = class .. " highlighted"
    56       end
    58       execute.view{ module = "member_image", view = "_show", params = {
    59         member_id = info.first_trustee_id, class = class, popup_text = info.first_trustee_name,
    60         image_type = "avatar", show_dummy = true,
    61       } }
    63     end
    65     if info.first_trustee_ellipsis then
    67       local text = _"delegates to"
    68       ui.image{
    69         attr = { class = "delegation_arrow", alt = text, title = text },
    70         static = "delegation_arrow_24_horizontal.png"
    71       }
    73       slot.put("...")
    75     end
    77     if info.other_trustee_id then
    79       local text = _"delegates to"
    80       ui.image{
    81         attr = { class = "delegation_arrow", alt = text, title = text },
    82         static = "delegation_arrow_24_horizontal.png"
    83       }
    85       local class = "micro_avatar"
    86       if not participant_occured and info.other_trustee_participation then
    87         participant_occured = true
    88         class = class .. " highlighted"
    89       end
    91       execute.view{ module = "member_image", view = "_show", params = {
    92         member_id = info.other_trustee_id, class = class, popup_text = info.other_trustee_name,
    93         image_type = "avatar", show_dummy = true,
    94       } }
    96     end
    98     if info.other_trustee_ellipsis then
   100       local text = _"delegates to"
   101       ui.image{
   102         attr = { class = "delegation_arrow", alt = text, title = text },
   103         static = "delegation_arrow_24_horizontal.png"
   104       }
   106       slot.put("...")
   108     end
   110     local trailing_ellipsis = info.other_trustee_ellipsis or
   111       (info.first_trustee_ellipsis and not info.other_trustee_id)
   113     if info.delegation_loop == "own" then
   115       local text = _"delegates to"
   116       ui.image{
   117         attr = { class = "delegation_arrow", alt = text, title = text },
   118         static = "delegation_arrow_24_horizontal.png"
   119       }
   121       execute.view{ module = "member_image", view = "_show", params = {
   122         member = member, class = "micro_avatar", popup_text = member.name,
   123         image_type = "avatar", show_dummy = true,
   124       } }
   126     elseif info.delegation_loop == "first" then
   127       if info.first_trustee_ellipsis then
   128         if not trailing_ellipsis then
   130           local text = _"delegates to"
   131           ui.image{
   132             attr = { class = "delegation_arrow", alt = text, title = text },
   133             static = "delegation_arrow_24_horizontal.png"
   134           }
   136           slot.put("...")
   137         end
   139       else
   141         local text = _"delegates to"
   142         ui.image{
   143           attr = { class = "delegation_arrow", alt = text, title = text },
   144           static = "delegation_arrow_24_horizontal.png"
   145         }
   147         execute.view{
   148           module = "member_image", view = "_show", params = {
   149             member_id = info.first_trustee_id, 
   150             class = "micro_avatar", 
   151             popup_text = info.first_trustee_name,
   152             image_type = "avatar",
   153             show_dummy = true,
   154           }
   155         }
   156       end
   159     elseif info.delegation_loop and not trailing_ellipsis then
   160       local text = _"delegates to"
   161       ui.image{
   162         attr = { class = "delegation_arrow", alt = text, title = text },
   163         static = "delegation_arrow_24_horizontal.png"
   164       }
   166       slot.put("...")
   167     end
   169   end
   170 end
   172 if not param.get("no_star", "boolean") then
   174   if info.own_participation then
   175     if issue and issue.fully_frozen then
   176       ui.link{
   177         attr = { class = "mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--underlined" },
   178         module = "vote", view = "list", params = {
   179           issue_id = issue.id
   180         },
   181         content = function ()
   182           ui.tag { content = _"you voted" }
   183         end
   184       }
   185     else
   186       if issue then
   187         ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "star" }
   188         slot.put(" ")
   189         ui.tag{ content = _"you are interested" }
   190         if not issue.closed and info.own_participation and info.weight and info.weight > 1 then
   191           slot.put(" ")
   192           ui.link { 
   193             attr = { class = "right" }, content = "+" .. (info.weight - 1),
   194             module = "interest", view = "show_incoming", params = { 
   195               issue_id = issue.id, member_id = member.id
   196             }
   197           }
   198         end
   199       else
   200         local text = _"you are subscribed"
   201         ui.image { attr = { class = "icon24 star", title = text, alt = text }, static = "icons/48/star.png" }
   202       end
   203       slot.put(" ")
   204     end
   205   end
   206 end
   209 if info.own_participation or info.first_trustee_id then
   210   local class = "delegation_info"
   211   if info.own_participation then
   212     class = class .. " suspended"
   213   end
   215   local voting_member_id
   216   local voting_member_name
   217   if issue and issue.fully_frozen and issue.closed then
   218     if issue.member_info.first_trustee_participation then
   219       voting_member_id = issue.member_info.first_trustee_id
   220       voting_member_name = issue.member_info.first_trustee_name
   221     elseif issue.member_info.other_trustee_participation then
   222       voting_member_id = issue.member_info.other_trustee_id
   223       voting_member_name = issue.member_info.other_trustee_name
   224     end
   225   end
   227   if app.session.member_id == member.id then
   229     if voting_member_id  then
   230       ui.link{
   231         module = "vote", view = "list", params = {
   232           issue_id = issue.id,
   233           member_id = voting_member_id
   234         },
   235         attr = { class = class }, content = function()
   236           print_delegation_info()
   237         end
   238       }
   240     else
   241       ui.link{
   242         module = "delegation", view = "show", params = {
   243           unit_id = unit_id,
   244           area_id = area_id,
   245           issue_id = issue_id
   246         },
   247         attr = { class = class }, content = function()
   248           print_delegation_info()
   249         end
   250       }
   251     end
   252   else
   253     ui.container{
   254       attr = { class = class }, content = function()
   255         print_delegation_info()
   256       end
   257     }
   258   end
   259 end
   261 if issue and app.session.member and issue.fully_frozen and not issue.closed and not issue.member_info.direct_voted and app.session.member:has_voting_right_for_unit_id(issue.area.unit_id) then
   262     ui.link{
   263       attr = { class = "mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--underlined" },
   264       module = "vote", view = "list", params = {
   265         issue_id = issue.id
   266       },
   267       content = function ()
   268         ui.tag { content = _"vote now" }
   269       end
   270     }
   271   else
   272 end
