| rev | 
   line source | 
| 
bsw/jbe@19
 | 
     1 local member = param.get("member", "table")
 | 
| 
bsw/jbe@19
 | 
     2 
 | 
| 
bsw/jbe@19
 | 
     3 if not member then
 | 
| 
bsw/jbe@19
 | 
     4   local member_id = param.get("member_id", atom.integer)
 | 
| 
bsw/jbe@19
 | 
     5   if member_id then
 | 
| 
bsw/jbe@19
 | 
     6     member = Member:by_id(member_id)
 | 
| 
bsw/jbe@19
 | 
     7   end
 | 
| 
bsw/jbe@19
 | 
     8 end
 | 
| 
bsw/jbe@19
 | 
     9 
 | 
| 
bsw/jbe@19
 | 
    10 
 | 
| 
bsw/jbe@19
 | 
    11 ui.form{
 | 
| 
bsw/jbe@19
 | 
    12   attr = { class = "member vertical" },
 | 
| 
bsw/jbe@19
 | 
    13   record = member,
 | 
| 
bsw/jbe@19
 | 
    14   readonly = true,
 | 
| 
bsw/jbe@19
 | 
    15   content = function()
 | 
| 
bsw/jbe@19
 | 
    16 
 | 
| 
bsw/jbe@19
 | 
    17     ui.container{
 | 
| 
bsw/jbe@19
 | 
    18       attr = { class = "right" },
 | 
| 
bsw/jbe@19
 | 
    19       content = function()
 | 
| 
bsw/jbe@19
 | 
    20 
 | 
| 
bsw/jbe@19
 | 
    21       execute.view{
 | 
| 
bsw/jbe@19
 | 
    22         module = "member_image",
 | 
| 
bsw/jbe@19
 | 
    23         view = "_show",
 | 
| 
bsw/jbe@19
 | 
    24         params = {
 | 
| 
bsw/jbe@19
 | 
    25           member = member,
 | 
| 
bsw/jbe@19
 | 
    26           image_type = "photo"
 | 
| 
bsw/jbe@19
 | 
    27         }
 | 
| 
bsw/jbe@19
 | 
    28       }
 | 
| 
bsw/jbe@19
 | 
    29 
 | 
| 
bsw/jbe@19
 | 
    30       ui.container{
 | 
| 
bsw/jbe@19
 | 
    31         attr = { class = "contact_data" },
 | 
| 
bsw/jbe@19
 | 
    32         content = function()
 | 
| 
bsw/jbe@19
 | 
    33         end
 | 
| 
bsw/jbe@19
 | 
    34       }
 | 
| 
bsw/jbe@19
 | 
    35 
 | 
| 
bsw/jbe@19
 | 
    36       end
 | 
| 
bsw/jbe@19
 | 
    37     }
 | 
| 
bsw/jbe@19
 | 
    38 
 | 
| 
bsw/jbe@19
 | 
    39     if member.admin then
 | 
| 
bsw/jbe@19
 | 
    40       ui.field.boolean{ label = _"Admin?",       name = "admin" }
 | 
| 
bsw/jbe@19
 | 
    41     end
 | 
| 
bsw/jbe@19
 | 
    42     if member.locked then
 | 
| 
bsw/jbe@19
 | 
    43       ui.field.boolean{ label = _"Locked?",      name = "locked" }
 | 
| 
bsw/jbe@19
 | 
    44     end
 | 
| 
bsw/jbe@19
 | 
    45     if member.ident_number then
 | 
| 
bsw/jbe@19
 | 
    46       ui.field.text{    label = _"Ident number", name = "ident_number" }
 | 
| 
bsw/jbe@19
 | 
    47     end
 | 
| 
bsw/jbe@19
 | 
    48     ui.field.text{ label = _"Name", name = "name" }
 | 
| 
bsw/jbe@19
 | 
    49 
 | 
| 
bsw/jbe@19
 | 
    50     if member.realname and #member.realname > 0 then
 | 
| 
bsw/jbe@19
 | 
    51       ui.field.text{ label = _"Real name", name = "realname" }
 | 
| 
bsw/jbe@19
 | 
    52     end
 | 
| 
bsw/jbe@19
 | 
    53     if member.email and #member.email > 0 then
 | 
| 
bsw/jbe@19
 | 
    54       ui.field.text{ label = _"email", name = "email" }
 | 
| 
bsw/jbe@19
 | 
    55     end
 | 
| 
bsw/jbe@19
 | 
    56     if member.xmpp_address and #member.xmpp_address > 0 then
 | 
| 
bsw/jbe@19
 | 
    57       ui.field.text{ label = _"xmpp", name = "xmpp_address" }
 | 
| 
bsw/jbe@19
 | 
    58     end
 | 
| 
bsw/jbe@19
 | 
    59     if member.website and #member.website > 0 then
 | 
| 
bsw/jbe@19
 | 
    60       ui.field.text{ label = _"Website", name = "website" }
 | 
| 
bsw/jbe@19
 | 
    61     end
 | 
| 
bsw/jbe@19
 | 
    62     if member.phone and #member.phone > 0 then
 | 
| 
bsw/jbe@19
 | 
    63       ui.field.text{ label = _"Phone", name = "phone" }
 | 
| 
bsw/jbe@19
 | 
    64     end
 | 
| 
bsw/jbe@19
 | 
    65     if member.mobile_phone and #member.mobile_phone > 0 then
 | 
| 
bsw/jbe@19
 | 
    66       ui.field.text{ label = _"Mobile phone", name = "mobile_phone" }
 | 
| 
bsw/jbe@19
 | 
    67     end
 | 
| 
bsw/jbe@19
 | 
    68     if member.address and #member.address > 0 then
 | 
| 
bsw/jbe@19
 | 
    69       ui.container{
 | 
| 
bsw/jbe@19
 | 
    70         content = function()
 | 
| 
bsw/jbe@19
 | 
    71           ui.tag{
 | 
| 
bsw/jbe@19
 | 
    72             tag = "label",
 | 
| 
bsw/jbe@19
 | 
    73             attr = { class = "ui_field_label" },
 | 
| 
bsw/jbe@19
 | 
    74             content = _"Address"
 | 
| 
bsw/jbe@19
 | 
    75           }
 | 
| 
bsw/jbe@19
 | 
    76           ui.tag{
 | 
| 
bsw/jbe@19
 | 
    77             tag = "span",
 | 
| 
bsw/jbe@19
 | 
    78             content = function()
 | 
| 
bsw/jbe@19
 | 
    79               slot.put(encode.html_newlines(encode.html(member.address)))
 | 
| 
bsw/jbe@19
 | 
    80             end
 | 
| 
bsw/jbe@19
 | 
    81           }
 | 
| 
bsw/jbe@19
 | 
    82         end
 | 
| 
bsw/jbe@19
 | 
    83       }
 | 
| 
bsw/jbe@19
 | 
    84     end
 | 
| 
bsw/jbe@19
 | 
    85     if member.profession and #member.profession > 0 then
 | 
| 
bsw/jbe@19
 | 
    86       ui.field.text{ label = _"Profession", name = "profession" }
 | 
| 
bsw/jbe@19
 | 
    87     end
 | 
| 
bsw/jbe@19
 | 
    88     if member.birthday and #member.birthday > 0 then
 | 
| 
bsw/jbe@19
 | 
    89       ui.field.text{ label = _"Birthday", name = "birthday" }
 | 
| 
bsw/jbe@19
 | 
    90     end
 | 
| 
bsw/jbe@19
 | 
    91     if member.organizational_unit and #member.organizational_unit > 0 then
 | 
| 
bsw/jbe@19
 | 
    92       ui.field.text{ label = _"Organizational unit", name = "organizational_unit" }
 | 
| 
bsw/jbe@19
 | 
    93     end
 | 
| 
bsw/jbe@19
 | 
    94     if member.internal_posts and #member.internal_posts > 0 then
 | 
| 
bsw/jbe@19
 | 
    95       ui.field.text{ label = _"Internal posts", name = "internal_posts" }
 | 
| 
bsw/jbe@19
 | 
    96     end
 | 
| 
bsw/jbe@19
 | 
    97     if member.external_memberships and #member.external_memberships > 0 then
 | 
| 
bsw/jbe@19
 | 
    98       ui.field.text{ label = _"Memberships", name = "external_memberships", multiline = true }
 | 
| 
bsw/jbe@19
 | 
    99     end
 | 
| 
bsw/jbe@19
 | 
   100     if member.external_posts and #member.external_posts > 0 then
 | 
| 
bsw/jbe@19
 | 
   101       ui.field.text{ label = _"Posts", name = "external_posts", multiline = true }
 | 
| 
bsw/jbe@19
 | 
   102     end
 | 
| 
bsw/jbe@19
 | 
   103     slot.put('<br style="clear: right;" />')
 | 
| 
bsw/jbe@19
 | 
   104 
 | 
| 
bsw@205
 | 
   105     if member.statement and #member.statement > 0 then
 | 
| 
bsw@205
 | 
   106       ui.container{
 | 
| 
bsw@205
 | 
   107         attr = { class = "member_statement wiki" },
 | 
| 
bsw@205
 | 
   108         content = function()
 | 
| 
bsw@205
 | 
   109           slot.put(format.wiki_text(member.statement))
 | 
| 
bsw@205
 | 
   110         end
 | 
| 
bsw@205
 | 
   111       }
 | 
| 
bsw@205
 | 
   112     end
 | 
| 
bsw@205
 | 
   113     
 | 
| 
bsw@205
 | 
   114     ui.field.text{ label = _"Last usage (updated daily)", value = format.date(member.last_login_public) or _"not yet" }
 | 
| 
bsw@205
 | 
   115     
 | 
| 
bsw/jbe@19
 | 
   116   end
 | 
| 
bsw/jbe@19
 | 
   117 }
 |