| rev | 
   line source | 
| 
bsw/jbe@0
 | 
     1 local member = Member:by_id(param.get_id())
 | 
| 
bsw/jbe@0
 | 
     2 
 | 
| 
bsw@286
 | 
     3 if not member or not member.activated then
 | 
| 
bsw@286
 | 
     4   error("access denied")
 | 
| 
bsw@286
 | 
     5 end
 | 
| 
bsw@286
 | 
     6 
 | 
| 
jorges@103
 | 
     7 app.html_title.title = member.name
 | 
| 
jorges@103
 | 
     8 app.html_title.subtitle = _("Member")
 | 
| 
jorges@103
 | 
     9 
 | 
| 
bsw@564
 | 
    10 slot.select("head", function()
 | 
| 
bsw@564
 | 
    11   ui.container{
 | 
| 
bsw@564
 | 
    12     attr = { class = "title" },
 | 
| 
bsw@564
 | 
    13     content = _("Member '#{member}'", { member =  member.name })
 | 
| 
bsw@426
 | 
    14   }
 | 
| 
bsw@564
 | 
    15 
 | 
| 
bsw@564
 | 
    16   ui.container{ attr = { class = "actions" }, content = function()
 | 
| 
bsw@564
 | 
    17 
 | 
| 
bsw@564
 | 
    18     if member.id == app.session.member_id then
 | 
| 
bsw@564
 | 
    19       ui.link{
 | 
| 
bsw@564
 | 
    20         content = function()
 | 
| 
bsw@564
 | 
    21           slot.put(encode.html(_"Edit profile"))
 | 
| 
bsw@564
 | 
    22         end,
 | 
| 
bsw@564
 | 
    23         module  = "member",
 | 
| 
bsw@564
 | 
    24         view    = "edit"
 | 
| 
bsw@564
 | 
    25       }
 | 
| 
bsw@564
 | 
    26       slot.put(" · ")
 | 
| 
bsw@564
 | 
    27       ui.link{
 | 
| 
bsw@564
 | 
    28         content = function()
 | 
| 
bsw@564
 | 
    29           slot.put(encode.html(_"Upload avatar/photo"))
 | 
| 
bsw@564
 | 
    30         end,
 | 
| 
bsw@564
 | 
    31         module  = "member",
 | 
| 
bsw@564
 | 
    32         view    = "edit_images"
 | 
| 
bsw@564
 | 
    33       }
 | 
| 
bsw@564
 | 
    34       slot.put(" · ")
 | 
| 
bsw@564
 | 
    35     end
 | 
| 
bsw@564
 | 
    36     ui.link{
 | 
| 
bsw@564
 | 
    37       content = function()
 | 
| 
bsw@564
 | 
    38         slot.put(encode.html(_"Show member history"))
 | 
| 
bsw@564
 | 
    39       end,
 | 
| 
bsw@564
 | 
    40       module  = "member",
 | 
| 
bsw@564
 | 
    41       view    = "history",
 | 
| 
bsw@564
 | 
    42       id      = member.id
 | 
| 
bsw@426
 | 
    43     }
 | 
| 
bsw@564
 | 
    44     if not member.active then
 | 
| 
bsw@564
 | 
    45       slot.put(" · ")
 | 
| 
bsw@564
 | 
    46       ui.tag{
 | 
| 
bsw@564
 | 
    47         attr = { class = "interest deactivated_member_info" },
 | 
| 
bsw@609
 | 
    48         content = _"This member is inactive"
 | 
| 
bsw@609
 | 
    49       }
 | 
| 
bsw@609
 | 
    50     end
 | 
| 
bsw@609
 | 
    51     if member.locked then
 | 
| 
bsw@609
 | 
    52       slot.put(" · ")
 | 
| 
bsw@609
 | 
    53       ui.tag{
 | 
| 
bsw@609
 | 
    54         attr = { class = "interest deactivated_member_info" },
 | 
| 
bsw@609
 | 
    55         content = _"This member is locked"
 | 
| 
bsw@564
 | 
    56       }
 | 
| 
bsw@564
 | 
    57     end
 | 
| 
bsw@813
 | 
    58     if app.session.member_id and not (member.id == app.session.member.id) then
 | 
| 
bsw@564
 | 
    59       slot.put(" · ")
 | 
| 
bsw@564
 | 
    60       --TODO performance
 | 
| 
bsw@564
 | 
    61       local contact = Contact:by_pk(app.session.member.id, member.id)
 | 
| 
bsw@564
 | 
    62       if contact then
 | 
| 
bsw@564
 | 
    63         ui.link{
 | 
| 
bsw@564
 | 
    64           text   = _"Remove from contacts",
 | 
| 
bsw@564
 | 
    65           module = "contact",
 | 
| 
bsw@564
 | 
    66           action = "remove_member",
 | 
| 
bsw@564
 | 
    67           id     = contact.other_member_id,
 | 
| 
bsw@564
 | 
    68           routing = {
 | 
| 
bsw@564
 | 
    69             default = {
 | 
| 
bsw@564
 | 
    70               mode = "redirect",
 | 
| 
bsw@564
 | 
    71               module = request.get_module(),
 | 
| 
bsw@564
 | 
    72               view = request.get_view(),
 | 
| 
bsw@564
 | 
    73               id = param.get_id_cgi(),
 | 
| 
bsw@564
 | 
    74               params = param.get_all_cgi()
 | 
| 
bsw@564
 | 
    75             }
 | 
| 
bsw@564
 | 
    76           }
 | 
| 
bsw@564
 | 
    77         }
 | 
| 
bsw@564
 | 
    78       elseif member.activated then
 | 
| 
bsw@564
 | 
    79         ui.link{
 | 
| 
bsw@564
 | 
    80           text    = _"Add to my contacts",
 | 
| 
bsw@564
 | 
    81           module  = "contact",
 | 
| 
bsw@564
 | 
    82           action  = "add_member",
 | 
| 
bsw@564
 | 
    83           id      = member.id,
 | 
| 
bsw@564
 | 
    84           routing = {
 | 
| 
bsw@564
 | 
    85             default = {
 | 
| 
bsw@564
 | 
    86               mode = "redirect",
 | 
| 
bsw@564
 | 
    87               module = request.get_module(),
 | 
| 
bsw@564
 | 
    88               view = request.get_view(),
 | 
| 
bsw@564
 | 
    89               id = param.get_id_cgi(),
 | 
| 
bsw@564
 | 
    90               params = param.get_all_cgi()
 | 
| 
bsw@564
 | 
    91             }
 | 
| 
bsw@564
 | 
    92           }
 | 
| 
bsw@564
 | 
    93         }
 | 
| 
bsw@564
 | 
    94       end
 | 
| 
bsw@564
 | 
    95     end
 | 
| 
bsw@813
 | 
    96     if app.session.member_id then
 | 
| 
bsw@813
 | 
    97       local ignored_member = IgnoredMember:by_pk(app.session.member.id, member.id)
 | 
| 
bsw@564
 | 
    98       slot.put(" · ")
 | 
| 
bsw@813
 | 
    99       if ignored_member then
 | 
| 
bsw@813
 | 
   100         ui.tag{
 | 
| 
bsw@813
 | 
   101           attr = { class = "interest" },
 | 
| 
bsw@813
 | 
   102           content = _"You have ignored this member"
 | 
| 
bsw@813
 | 
   103         }
 | 
| 
bsw@813
 | 
   104         slot.put(" · ")
 | 
| 
bsw@813
 | 
   105         ui.link{
 | 
| 
bsw@813
 | 
   106           text   = _"Stop ignoring member",
 | 
| 
bsw@813
 | 
   107           module = "member",
 | 
| 
bsw@813
 | 
   108           action = "update_ignore_member",
 | 
| 
bsw@813
 | 
   109           id     = member.id,
 | 
| 
bsw@813
 | 
   110           params = { delete = true },
 | 
| 
bsw@813
 | 
   111           routing = {
 | 
| 
bsw@813
 | 
   112             default = {
 | 
| 
bsw@813
 | 
   113               mode = "redirect",
 | 
| 
bsw@813
 | 
   114               module = request.get_module(),
 | 
| 
bsw@813
 | 
   115               view = request.get_view(),
 | 
| 
bsw@813
 | 
   116               id = param.get_id_cgi(),
 | 
| 
bsw@813
 | 
   117               params = param.get_all_cgi()
 | 
| 
bsw@813
 | 
   118             }
 | 
| 
bsw@3
 | 
   119           }
 | 
| 
bsw@3
 | 
   120         }
 | 
| 
bsw@813
 | 
   121       elseif member.activated then
 | 
| 
bsw@813
 | 
   122         ui.link{
 | 
| 
bsw@813
 | 
   123           attr = { class = "interest" },
 | 
| 
bsw@813
 | 
   124           text    = _"Ignore member",
 | 
| 
bsw@813
 | 
   125           module  = "member",
 | 
| 
bsw@813
 | 
   126           action  = "update_ignore_member",
 | 
| 
bsw@813
 | 
   127           id      = member.id,
 | 
| 
bsw@813
 | 
   128           routing = {
 | 
| 
bsw@813
 | 
   129             default = {
 | 
| 
bsw@813
 | 
   130               mode = "redirect",
 | 
| 
bsw@813
 | 
   131               module = request.get_module(),
 | 
| 
bsw@813
 | 
   132               view = request.get_view(),
 | 
| 
bsw@813
 | 
   133               id = param.get_id_cgi(),
 | 
| 
bsw@813
 | 
   134               params = param.get_all_cgi()
 | 
| 
bsw@813
 | 
   135             }
 | 
| 
bsw@3
 | 
   136           }
 | 
| 
bsw@3
 | 
   137         }
 | 
| 
bsw@813
 | 
   138       end
 | 
| 
bsw@57
 | 
   139     end
 | 
| 
bsw@564
 | 
   140   end }
 | 
| 
bsw@9
 | 
   141 end)
 | 
| 
bsw@9
 | 
   142 
 | 
| 
bsw/jbe@4
 | 
   143 util.help("member.show", _"Member page")
 | 
| 
bsw/jbe@0
 | 
   144 
 | 
| 
bsw/jbe@0
 | 
   145 execute.view{
 | 
| 
bsw/jbe@0
 | 
   146   module = "member",
 | 
| 
bsw/jbe@0
 | 
   147   view = "_show",
 | 
| 
bsw/jbe@0
 | 
   148   params = { member = member }
 | 
| 
bsw/jbe@0
 | 
   149 }
 | 
| 
bsw/jbe@0
 | 
   150 
 |