| rev | 
   line source | 
| 
bsw@526
 | 
     1 if not app.session.member_id then
 | 
| 
bsw@526
 | 
     2   return
 | 
| 
bsw@526
 | 
     3 end
 | 
| 
bsw@526
 | 
     4 
 | 
| 
bsw@525
 | 
     5 local unit  = param.get("unit", "table")
 | 
| 
bsw@525
 | 
     6 local area  = param.get("area", "table")
 | 
| 
bsw@525
 | 
     7 local issue = param.get("issue", "table")
 | 
| 
bsw@525
 | 
     8 
 | 
| 
bsw@525
 | 
     9 local unit_id  = unit  and unit.id  or nil
 | 
| 
bsw@525
 | 
    10 local area_id  = area  and area.id  or nil
 | 
| 
bsw@525
 | 
    11 local issue_id = issue and issue.id or nil
 | 
| 
bsw@525
 | 
    12 
 | 
| 
bsw@525
 | 
    13 local info
 | 
| 
bsw@525
 | 
    14 local delegation_text
 | 
| 
bsw@525
 | 
    15 
 | 
| 
bsw@525
 | 
    16 if unit then
 | 
| 
bsw@525
 | 
    17   unit:load_delegation_info_once_for_member_id(app.session.member_id)
 | 
| 
bsw@525
 | 
    18   info = unit.delegation_info
 | 
| 
bsw@525
 | 
    19   delegation_text = _"Delegate unit"
 | 
| 
bsw@525
 | 
    20 end
 | 
| 
bsw@525
 | 
    21 
 | 
| 
bsw@525
 | 
    22 if area then
 | 
| 
bsw@525
 | 
    23   area:load_delegation_info_once_for_member_id(app.session.member_id)
 | 
| 
bsw@525
 | 
    24   info = area.delegation_info
 | 
| 
bsw@525
 | 
    25   delegation_text = _"Delegate area"
 | 
| 
bsw@525
 | 
    26 end
 | 
| 
bsw@525
 | 
    27 
 | 
| 
bsw@525
 | 
    28 if issue then
 | 
| 
bsw@525
 | 
    29   issue:load_delegation_info_once_for_member_id(app.session.member_id)
 | 
| 
bsw@525
 | 
    30   info = issue.delegation_info
 | 
| 
bsw@525
 | 
    31   delegation_text = _"Delegate issue"
 | 
| 
bsw@525
 | 
    32 end
 | 
| 
bsw@525
 | 
    33 
 | 
| 
bsw@525
 | 
    34 ui.link{
 | 
| 
bsw@525
 | 
    35   module = "delegation", view = "show", params = {
 | 
| 
bsw@525
 | 
    36     unit_id = unit_id,
 | 
| 
bsw@525
 | 
    37     area_id = area_id,
 | 
| 
bsw@525
 | 
    38     issue_id = issue_id
 | 
| 
bsw@525
 | 
    39   },
 | 
| 
bsw@525
 | 
    40   attr = { class = "delegation_info" }, content = function()
 | 
| 
bsw@525
 | 
    41     
 | 
| 
bsw@525
 | 
    42 
 | 
| 
bsw@525
 | 
    43     local participant_occured = false
 | 
| 
bsw@525
 | 
    44     
 | 
| 
bsw@525
 | 
    45     if info.own_participation or info.first_trustee_id then
 | 
| 
bsw@525
 | 
    46       
 | 
| 
bsw@525
 | 
    47       local class = "micro_avatar"
 | 
| 
bsw@525
 | 
    48       if info.own_participation then
 | 
| 
bsw@525
 | 
    49         participant_occured = true
 | 
| 
bsw@525
 | 
    50         class = class .. " highlighted"
 | 
| 
bsw@525
 | 
    51       end
 | 
| 
bsw@525
 | 
    52       
 | 
| 
bsw@525
 | 
    53       execute.view{ module = "member_image", view = "_show", params = {
 | 
| 
bsw@525
 | 
    54         member = app.session.member, class = class, popup_text = app.session.member.name,
 | 
| 
bsw@525
 | 
    55         image_type = "avatar", show_dummy = true,
 | 
| 
bsw@525
 | 
    56       } }
 | 
| 
bsw@525
 | 
    57 
 | 
| 
bsw@525
 | 
    58     end
 | 
| 
bsw@525
 | 
    59 
 | 
| 
bsw@525
 | 
    60     if not info.first_trustee_id and (not issue or not issue.closed) then
 | 
| 
bsw@525
 | 
    61       slot.put(" ")
 | 
| 
bsw@525
 | 
    62       ui.tag{ attr = { class = "link" }, content = delegation_text }
 | 
| 
bsw@525
 | 
    63     end
 | 
| 
bsw@525
 | 
    64 
 | 
| 
bsw@525
 | 
    65     if not (issue and issue.state == "voting" and info.own_participation) then
 | 
| 
bsw@525
 | 
    66       
 | 
| 
bsw@525
 | 
    67       if info.first_trustee_id then
 | 
| 
bsw@525
 | 
    68       
 | 
| 
bsw@525
 | 
    69         local text = _"delegates to"
 | 
| 
bsw@525
 | 
    70         ui.image{
 | 
| 
bsw@525
 | 
    71           attr = { class = "delegation_arrow", alt = text, title = text },
 | 
| 
bsw@525
 | 
    72           static = "delegation_arrow_24_horizontal.png"
 | 
| 
bsw@525
 | 
    73         }
 | 
| 
bsw@525
 | 
    74 
 | 
| 
bsw@525
 | 
    75         local class = "micro_avatar"
 | 
| 
bsw@525
 | 
    76         if not participant_occured and info.first_trustee_participation then
 | 
| 
bsw@525
 | 
    77           participant_occured = true
 | 
| 
bsw@525
 | 
    78           class = class .. " highlighted"
 | 
| 
bsw@525
 | 
    79         end
 | 
| 
bsw@525
 | 
    80         
 | 
| 
bsw@525
 | 
    81         execute.view{ module = "member_image", view = "_show", params = {
 | 
| 
bsw@525
 | 
    82           member_id = info.first_trustee_id, class = class, popup_text = info.first_trustee_name,
 | 
| 
bsw@525
 | 
    83           image_type = "avatar", show_dummy = true,
 | 
| 
bsw@525
 | 
    84         } }
 | 
| 
bsw@525
 | 
    85 
 | 
| 
bsw@525
 | 
    86       end
 | 
| 
bsw@525
 | 
    87             
 | 
| 
bsw@525
 | 
    88       if info.first_trustee_ellipsis then
 | 
| 
bsw@525
 | 
    89 
 | 
| 
bsw@525
 | 
    90         local text = _"delegates to"
 | 
| 
bsw@525
 | 
    91         ui.image{
 | 
| 
bsw@525
 | 
    92           attr = { class = "delegation_arrow", alt = text, title = text },
 | 
| 
bsw@525
 | 
    93           static = "delegation_arrow_24_horizontal.png"
 | 
| 
bsw@525
 | 
    94         }
 | 
| 
bsw@525
 | 
    95 
 | 
| 
bsw@525
 | 
    96         slot.put("...")
 | 
| 
bsw@525
 | 
    97         
 | 
| 
bsw@525
 | 
    98       end
 | 
| 
bsw@525
 | 
    99       
 | 
| 
bsw@525
 | 
   100       if info.other_trustee_id then
 | 
| 
bsw@525
 | 
   101       
 | 
| 
bsw@525
 | 
   102         local text = _"delegates to"
 | 
| 
bsw@525
 | 
   103         ui.image{
 | 
| 
bsw@525
 | 
   104           attr = { class = "delegation_arrow", alt = text, title = text },
 | 
| 
bsw@525
 | 
   105           static = "delegation_arrow_24_horizontal.png"
 | 
| 
bsw@525
 | 
   106         }
 | 
| 
bsw@525
 | 
   107 
 | 
| 
bsw@525
 | 
   108         local class = "micro_avatar"
 | 
| 
bsw@525
 | 
   109         if not participant_occured and info.other_trustee_participation then
 | 
| 
bsw@525
 | 
   110           participant_occured = true
 | 
| 
bsw@525
 | 
   111           class = class .. " highlighted"
 | 
| 
bsw@525
 | 
   112         end
 | 
| 
bsw@525
 | 
   113         
 | 
| 
bsw@525
 | 
   114         execute.view{ module = "member_image", view = "_show", params = {
 | 
| 
bsw@525
 | 
   115           member_id = info.other_trustee_id, class = class, popup_text = info.other_trustee_name,
 | 
| 
bsw@525
 | 
   116           image_type = "avatar", show_dummy = true,
 | 
| 
bsw@525
 | 
   117         } }
 | 
| 
bsw@525
 | 
   118 
 | 
| 
bsw@525
 | 
   119       end
 | 
| 
bsw@525
 | 
   120             
 | 
| 
bsw@525
 | 
   121       if info.other_trustee_ellipsis then
 | 
| 
bsw@525
 | 
   122 
 | 
| 
bsw@525
 | 
   123         local text = _"delegates to"
 | 
| 
bsw@525
 | 
   124         ui.image{
 | 
| 
bsw@525
 | 
   125           attr = { class = "delegation_arrow", alt = text, title = text },
 | 
| 
bsw@525
 | 
   126           static = "delegation_arrow_24_horizontal.png"
 | 
| 
bsw@525
 | 
   127         }
 | 
| 
bsw@525
 | 
   128 
 | 
| 
bsw@525
 | 
   129         slot.put("...")
 | 
| 
bsw@525
 | 
   130         
 | 
| 
bsw@525
 | 
   131       end
 | 
| 
bsw@525
 | 
   132       
 | 
| 
bsw@525
 | 
   133       local trailing_ellipsis = info.other_trustee_ellipsis or
 | 
| 
bsw@525
 | 
   134         (info.first_trustee_ellipsis and not info.other_trustee_id)
 | 
| 
bsw@525
 | 
   135       
 | 
| 
bsw@525
 | 
   136       if info.delegation_loop == "own" then
 | 
| 
bsw@525
 | 
   137         
 | 
| 
bsw@525
 | 
   138         local text = _"delegates to"
 | 
| 
bsw@525
 | 
   139         ui.image{
 | 
| 
bsw@525
 | 
   140           attr = { class = "delegation_arrow", alt = text, title = text },
 | 
| 
bsw@525
 | 
   141           static = "delegation_arrow_24_horizontal.png"
 | 
| 
bsw@525
 | 
   142         }
 | 
| 
bsw@525
 | 
   143 
 | 
| 
bsw@525
 | 
   144         execute.view{ module = "member_image", view = "_show", params = {
 | 
| 
bsw@525
 | 
   145           member = app.session.member, class = "micro_avatar", popup_text = app.session.member.name,
 | 
| 
bsw@525
 | 
   146           image_type = "avatar", show_dummy = true,
 | 
| 
bsw@525
 | 
   147         } }
 | 
| 
bsw@525
 | 
   148 
 | 
| 
bsw@525
 | 
   149       elseif info.delegation_loop == "first" then
 | 
| 
bsw@525
 | 
   150         if info.first_trustee_ellipsis then
 | 
| 
bsw@525
 | 
   151           if not trailing_ellipsis then
 | 
| 
bsw@525
 | 
   152 
 | 
| 
bsw@525
 | 
   153             local text = _"delegates to"
 | 
| 
bsw@525
 | 
   154             ui.image{
 | 
| 
bsw@525
 | 
   155               attr = { class = "delegation_arrow", alt = text, title = text },
 | 
| 
bsw@525
 | 
   156               static = "delegation_arrow_24_horizontal.png"
 | 
| 
bsw@525
 | 
   157             }
 | 
| 
bsw@525
 | 
   158 
 | 
| 
bsw@525
 | 
   159             slot.put("...")
 | 
| 
bsw@525
 | 
   160           end
 | 
| 
bsw@525
 | 
   161             
 | 
| 
bsw@525
 | 
   162         else
 | 
| 
bsw@525
 | 
   163             
 | 
| 
bsw@525
 | 
   164           local text = _"delegates to"
 | 
| 
bsw@525
 | 
   165           ui.image{
 | 
| 
bsw@525
 | 
   166             attr = { class = "delegation_arrow", alt = text, title = text },
 | 
| 
bsw@525
 | 
   167             static = "delegation_arrow_24_horizontal.png"
 | 
| 
bsw@525
 | 
   168           }
 | 
| 
bsw@525
 | 
   169 
 | 
| 
bsw@525
 | 
   170           execute.view{ module = "member_image", view = "_show", params = {
 | 
| 
bsw@525
 | 
   171             member_id = info.first_trustee_id, class = "micro_avatar", popup_text = info.first_trustee_name,
 | 
| 
bsw@525
 | 
   172             image_type = "avatar", show_dummy = true,
 | 
| 
bsw@525
 | 
   173           } }
 | 
| 
bsw@525
 | 
   174         end
 | 
| 
bsw@525
 | 
   175       
 | 
| 
bsw@525
 | 
   176           
 | 
| 
bsw@525
 | 
   177       elseif info.delegation_loop and not trailing_ellipsis then
 | 
| 
bsw@525
 | 
   178         local text = _"delegates to"
 | 
| 
bsw@525
 | 
   179         ui.image{
 | 
| 
bsw@525
 | 
   180           attr = { class = "delegation_arrow", alt = text, title = text },
 | 
| 
bsw@525
 | 
   181           static = "delegation_arrow_24_horizontal.png"
 | 
| 
bsw@525
 | 
   182         }
 | 
| 
bsw@525
 | 
   183 
 | 
| 
bsw@525
 | 
   184         slot.put("...")
 | 
| 
bsw@525
 | 
   185       end
 | 
| 
bsw@525
 | 
   186 
 | 
| 
bsw@525
 | 
   187     end
 | 
| 
bsw@525
 | 
   188 
 | 
| 
bsw@525
 | 
   189   end
 | 
| 
bsw@525
 | 
   190       
 | 
| 
bsw@525
 | 
   191 }
 | 
| 
bsw@525
 | 
   192 
 |