| rev | 
   line source | 
| 
bsw/jbe@0
 | 
     1 local id = param.get_id()
 | 
| 
bsw/jbe@0
 | 
     2 
 | 
| 
bsw@193
 | 
     3 local member = Member:by_id(id)
 | 
| 
bsw@193
 | 
     4 
 | 
| 
bsw@1088
 | 
     5 local deactivated = member and member.locked and member.login == nil and member.authority_login == nil
 | 
| 
bsw@1088
 | 
     6 
 | 
| 
bsw@1184
 | 
     7 ui.titleAdmin(_"Member")
 | 
| 
bsw/jbe@0
 | 
     8 
 | 
| 
bsw@513
 | 
     9 local units_selector = Unit:new_selector()
 | 
| 
bsw@512
 | 
    10   
 | 
| 
bsw@513
 | 
    11 if member then
 | 
| 
bsw@513
 | 
    12   units_selector
 | 
| 
bsw@513
 | 
    13     :left_join("privilege", nil, { "privilege.member_id = ? AND privilege.unit_id = unit.id", member.id })
 | 
| 
bsw@513
 | 
    14     :add_field("privilege.voting_right", "voting_right")
 | 
| 
bsw@513
 | 
    15 end
 | 
| 
bsw@513
 | 
    16 
 | 
| 
bsw@513
 | 
    17 local units = units_selector:exec()
 | 
| 
bsw@512
 | 
    18   
 | 
| 
bsw/jbe@0
 | 
    19 ui.form{
 | 
| 
bsw@1045
 | 
    20   attr = { class = "vertical section" },
 | 
| 
bsw/jbe@0
 | 
    21   module = "admin",
 | 
| 
bsw/jbe@0
 | 
    22   action = "member_update",
 | 
| 
bsw/jbe@0
 | 
    23   id = member and member.id,
 | 
| 
bsw/jbe@0
 | 
    24   record = member,
 | 
| 
bsw/jbe@0
 | 
    25   readonly = not app.session.member.admin,
 | 
| 
bsw/jbe@0
 | 
    26   routing = {
 | 
| 
bsw/jbe@0
 | 
    27     default = {
 | 
| 
bsw/jbe@0
 | 
    28       mode = "redirect",
 | 
| 
bsw/jbe@0
 | 
    29       modules = "admin",
 | 
| 
bsw@1045
 | 
    30       view = "index"
 | 
| 
bsw/jbe@0
 | 
    31     }
 | 
| 
bsw/jbe@0
 | 
    32   },
 | 
| 
bsw/jbe@0
 | 
    33   content = function()
 | 
| 
bsw@310
 | 
    34 
 | 
| 
bsw@1045
 | 
    35     ui.sectionHead( function()
 | 
| 
bsw@1088
 | 
    36       ui.heading { level = 1, content = member and (member.name or member.id) or _"New member" }
 | 
| 
bsw@1045
 | 
    37       if member and member.identification then
 | 
| 
bsw@1045
 | 
    38         ui.heading { level = 3, content = member.identification }
 | 
| 
bsw@1045
 | 
    39       end
 | 
| 
bsw@1045
 | 
    40     end )
 | 
| 
bsw@1045
 | 
    41   
 | 
| 
bsw@1045
 | 
    42     ui.sectionRow( function()
 | 
| 
bsw@1045
 | 
    43       ui.field.text{     label = _"Identification", name = "identification" }
 | 
| 
bsw/jbe@1309
 | 
    44       ui.field.text{     label = _"Notification email (confirmed)", name = "notify_email" }
 | 
| 
bsw/jbe@1309
 | 
    45       ui.field.text{     label = _"Notification email (unconfirmed)", name = "notify_email_unconfirmed" }
 | 
| 
bsw@1045
 | 
    46       if member and member.activated then
 | 
| 
bsw@1045
 | 
    47         ui.field.text{     label = _"Screen name",        name = "name" }
 | 
| 
bsw@1088
 | 
    48       end
 | 
| 
bsw@1088
 | 
    49       
 | 
| 
bsw@1088
 | 
    50       if member and member.activated and not deactivated then
 | 
| 
bsw@1045
 | 
    51         ui.field.text{     label = _"Login name",        name = "login" }
 | 
| 
bsw@1045
 | 
    52       end
 | 
| 
bsw@1088
 | 
    53 
 | 
| 
bsw@1045
 | 
    54       for i, unit in ipairs(units) do
 | 
| 
bsw@1045
 | 
    55         ui.field.boolean{
 | 
| 
bsw@1045
 | 
    56           name = "unit_" .. unit.id,
 | 
| 
bsw@1045
 | 
    57           label = unit.name,
 | 
| 
bsw@1045
 | 
    58           value = unit.voting_right
 | 
| 
bsw@1045
 | 
    59         }
 | 
| 
bsw@1045
 | 
    60       end
 | 
| 
bsw@1045
 | 
    61       slot.put("<br /><br />")
 | 
| 
bsw@1045
 | 
    62 
 | 
| 
bsw@1088
 | 
    63       if member then
 | 
| 
bsw@1088
 | 
    64         ui.field.text{  label = _"Activated",       name = "activated", readonly = true }
 | 
| 
bsw@1088
 | 
    65       end
 | 
| 
bsw@1088
 | 
    66          
 | 
| 
bsw@1045
 | 
    67       if not member or not member.activated then
 | 
| 
bsw@1045
 | 
    68         ui.field.boolean{  label = _"Send invite?",       name = "invite_member" }
 | 
| 
bsw@1045
 | 
    69       end
 | 
| 
bsw@1045
 | 
    70       
 | 
| 
bsw@1088
 | 
    71       if member then
 | 
| 
bsw@1088
 | 
    72         ui.field.boolean{ 
 | 
| 
bsw@1088
 | 
    73           label = _"Member inactive?", name = "deactivate",
 | 
| 
bsw@1088
 | 
    74           readonly = true, 
 | 
| 
bsw@1088
 | 
    75           value = member and member.active == false
 | 
| 
bsw@1088
 | 
    76         }
 | 
| 
bsw@1045
 | 
    77       end
 | 
| 
bsw@1045
 | 
    78       
 | 
| 
bsw@1088
 | 
    79       if member then
 | 
| 
bsw@1088
 | 
    80         ui.field.boolean{
 | 
| 
bsw@1088
 | 
    81           label = _"Lock member?", name = "locked",
 | 
| 
bsw@1088
 | 
    82         }
 | 
| 
bsw@1088
 | 
    83       end
 | 
| 
bsw@1045
 | 
    84       
 | 
| 
bsw@1045
 | 
    85       slot.put("<br />")
 | 
| 
bsw@1193
 | 
    86       ui.field.boolean{  label = _"Admin?", name = "admin" }
 | 
| 
bsw@1045
 | 
    87       slot.put("<br />")
 | 
| 
bsw@1045
 | 
    88       ui.submit{         text  = _"update member" }
 | 
| 
bsw@1045
 | 
    89       slot.put(" ")
 | 
| 
bsw@1088
 | 
    90       if member then
 | 
| 
bsw@1088
 | 
    91         ui.link { module = "admin", view = "member_deactivate", content = _"Deactivate member", id = member.id }
 | 
| 
bsw@1088
 | 
    92         slot.put(" ")
 | 
| 
bsw@1088
 | 
    93       end
 | 
| 
bsw@1045
 | 
    94       ui.link { module = "admin", view = "index", content = _"cancel" }
 | 
| 
bsw@1045
 | 
    95     end )
 | 
| 
bsw/jbe@0
 | 
    96   end
 | 
| 
bsw/jbe@0
 | 
    97 }
 | 
| 
bsw@1088
 | 
    98 
 |