| rev | 
   line source | 
| 
bsw/jbe@1309
 | 
     1 if not app.session.member.role then
 | 
| 
bsw/jbe@1309
 | 
     2   return
 | 
| 
bsw/jbe@1309
 | 
     3 end
 | 
| 
bsw/jbe@1309
 | 
     4 
 | 
| 
bsw/jbe@1309
 | 
     5 ui.titleMember(_"Account access")
 | 
| 
bsw/jbe@1309
 | 
     6 
 | 
| 
bsw/jbe@1309
 | 
     7 ui.grid{ content = function()
 | 
| 
bsw/jbe@1309
 | 
     8 
 | 
| 
bsw/jbe@1309
 | 
     9   ui.cell_main{ content = function()
 | 
| 
bsw/jbe@1309
 | 
    10     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
 | 
| 
bsw/jbe@1309
 | 
    11       ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
 | 
| 
bsw/jbe@1309
 | 
    12         ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Agents" }
 | 
| 
bsw/jbe@1309
 | 
    13       end }
 | 
| 
bsw/jbe@1309
 | 
    14       ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
 | 
| 
bsw/jbe@1309
 | 
    15       
 | 
| 
bsw/jbe@1309
 | 
    16         local agents = Agent:new_selector()
 | 
| 
bsw/jbe@1309
 | 
    17           :add_where{ "controlled_id = ?", app.session.member_id }
 | 
| 
bsw/jbe@1309
 | 
    18           :exec()
 | 
| 
bsw/jbe@1309
 | 
    19           
 | 
| 
bsw/jbe@1309
 | 
    20         if #(agents) > 0 then
 | 
| 
bsw/jbe@1309
 | 
    21           ui.list{
 | 
| 
bsw/jbe@1309
 | 
    22             records = agents,
 | 
| 
bsw/jbe@1309
 | 
    23             columns = {
 | 
| 
bsw/jbe@1309
 | 
    24               {
 | 
| 
bsw/jbe@1309
 | 
    25                 label = _"Account access by member",
 | 
| 
bsw/jbe@1309
 | 
    26                 content = function(record)
 | 
| 
bsw/jbe@1309
 | 
    27                   ui.tag{ content = record.controller.name }
 | 
| 
bsw/jbe@1309
 | 
    28                 end
 | 
| 
bsw/jbe@1309
 | 
    29               },
 | 
| 
bsw/jbe@1309
 | 
    30               {
 | 
| 
bsw/jbe@1309
 | 
    31                 label = _"Status",
 | 
| 
bsw/jbe@1309
 | 
    32                 content = function(record)
 | 
| 
bsw/jbe@1309
 | 
    33                   local text
 | 
| 
bsw/jbe@1309
 | 
    34                   if record.accepted then
 | 
| 
bsw/jbe@1309
 | 
    35                     text = _"accepted"
 | 
| 
bsw/jbe@1309
 | 
    36                   elseif record.accepted == false then
 | 
| 
bsw/jbe@1309
 | 
    37                     text = _"rejected"
 | 
| 
bsw/jbe@1309
 | 
    38                   else
 | 
| 
bsw/jbe@1309
 | 
    39                     text = _"not decided yet"
 | 
| 
bsw/jbe@1309
 | 
    40                   end
 | 
| 
bsw/jbe@1309
 | 
    41                   ui.tag{ content = text }
 | 
| 
bsw/jbe@1309
 | 
    42                 end
 | 
| 
bsw/jbe@1309
 | 
    43               },
 | 
| 
bsw/jbe@1309
 | 
    44               {
 | 
| 
bsw/jbe@1309
 | 
    45                 content = function(record)
 | 
| 
bsw/jbe@1309
 | 
    46                   ui.link{ content = _"Revoke", module = "member", action = "update_agent", params = { delete = true, controller_id = record.controller_id } }
 | 
| 
bsw/jbe@1309
 | 
    47                 end
 | 
| 
bsw/jbe@1309
 | 
    48               },
 | 
| 
bsw/jbe@1309
 | 
    49             }
 | 
| 
bsw/jbe@1309
 | 
    50           }
 | 
| 
bsw/jbe@1309
 | 
    51         else
 | 
| 
bsw/jbe@1309
 | 
    52           ui.container{ content = _"No other members are allowed to use this account." }
 | 
| 
bsw/jbe@1309
 | 
    53         end
 | 
| 
bsw/jbe@1309
 | 
    54       
 | 
| 
bsw/jbe@1309
 | 
    55       end }
 | 
| 
bsw/jbe@1309
 | 
    56       ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
 | 
| 
bsw/jbe@1309
 | 
    57 
 | 
| 
bsw/jbe@1309
 | 
    58         ui.form{
 | 
| 
bsw/jbe@1309
 | 
    59           attr = { class = "wide" },
 | 
| 
bsw/jbe@1309
 | 
    60           module = "member",
 | 
| 
bsw/jbe@1309
 | 
    61           action = "update_agent",
 | 
| 
bsw/jbe@1309
 | 
    62           routing = {
 | 
| 
bsw/jbe@1309
 | 
    63             ok = {
 | 
| 
bsw/jbe@1309
 | 
    64               mode = "redirect",
 | 
| 
bsw/jbe@1309
 | 
    65               module = "member",
 | 
| 
bsw/jbe@1309
 | 
    66               view = "settings_agent"
 | 
| 
bsw/jbe@1309
 | 
    67             }
 | 
| 
bsw/jbe@1309
 | 
    68           },
 | 
| 
bsw/jbe@1309
 | 
    69           content = function()
 | 
| 
bsw/jbe@1309
 | 
    70           
 | 
| 
bsw/jbe@1309
 | 
    71             ui.container{ content = _"Add new account access privilege" }
 | 
| 
bsw/jbe@1309
 | 
    72           
 | 
| 
bsw/jbe@1309
 | 
    73             local contact_members = Member:build_selector{
 | 
| 
bsw/jbe@1309
 | 
    74               is_contact_of_member_id = app.session.member_id,
 | 
| 
bsw/jbe@1309
 | 
    75               active = true,
 | 
| 
bsw/jbe@1309
 | 
    76               order = "name"
 | 
| 
bsw/jbe@1309
 | 
    77             }:add_where("NOT member.role"):exec()
 | 
| 
bsw/jbe@1309
 | 
    78 
 | 
| 
bsw/jbe@1309
 | 
    79             ui.field.select{
 | 
| 
bsw/jbe@1309
 | 
    80               name = "controller_id",
 | 
| 
bsw/jbe@1309
 | 
    81               foreign_records = contact_members,
 | 
| 
bsw/jbe@1309
 | 
    82               foreign_id = "id",
 | 
| 
bsw/jbe@1309
 | 
    83               foreign_name = "name"
 | 
| 
bsw/jbe@1309
 | 
    84             }            
 | 
| 
bsw/jbe@1309
 | 
    85             slot.put("<br />")
 | 
| 
bsw/jbe@1309
 | 
    86             
 | 
| 
bsw/jbe@1309
 | 
    87             ui.tag{
 | 
| 
bsw/jbe@1309
 | 
    88               tag = "input",
 | 
| 
bsw/jbe@1309
 | 
    89               attr = {
 | 
| 
bsw/jbe@1309
 | 
    90                 type = "submit",
 | 
| 
bsw/jbe@1309
 | 
    91                 class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored",
 | 
| 
bsw/jbe@1309
 | 
    92                 value = _"Grant account access"
 | 
| 
bsw/jbe@1309
 | 
    93               },
 | 
| 
bsw/jbe@1309
 | 
    94               content = ""
 | 
| 
bsw/jbe@1309
 | 
    95             }
 | 
| 
bsw/jbe@1309
 | 
    96             slot.put("   ")
 | 
| 
bsw/jbe@1309
 | 
    97             ui.link {
 | 
| 
bsw/jbe@1309
 | 
    98               attr = { class = "mdl-button mdl-js-button mdl-button--raised" },
 | 
| 
bsw/jbe@1309
 | 
    99               module = "member", view = "show", id = app.session.member_id,
 | 
| 
bsw/jbe@1309
 | 
   100               content = _"Cancel"
 | 
| 
bsw/jbe@1309
 | 
   101             }
 | 
| 
bsw/jbe@1309
 | 
   102           end
 | 
| 
bsw/jbe@1309
 | 
   103         }
 | 
| 
bsw/jbe@1309
 | 
   104 
 | 
| 
bsw/jbe@1309
 | 
   105       end }
 | 
| 
bsw/jbe@1309
 | 
   106     end }
 | 
| 
bsw/jbe@1309
 | 
   107   end }
 | 
| 
bsw/jbe@1309
 | 
   108 
 | 
| 
bsw/jbe@1309
 | 
   109   ui.cell_sidebar{ content = function()
 | 
| 
bsw/jbe@1309
 | 
   110     execute.view {
 | 
| 
bsw/jbe@1309
 | 
   111       module = "member", view = "_sidebar_whatcanido", params = {
 | 
| 
bsw/jbe@1309
 | 
   112         member = app.session.member
 | 
| 
bsw/jbe@1309
 | 
   113       }
 | 
| 
bsw/jbe@1309
 | 
   114     }
 | 
| 
bsw/jbe@1309
 | 
   115   end }
 | 
| 
bsw/jbe@1309
 | 
   116   
 | 
| 
bsw/jbe@1309
 | 
   117 end }
 | 
| 
bsw/jbe@1309
 | 
   118       
 |