bsw/jbe@1309: if not app.session.member.role then bsw/jbe@1309: return bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: ui.titleMember(_"Account access") bsw/jbe@1309: bsw/jbe@1309: ui.grid{ content = function() bsw/jbe@1309: bsw/jbe@1309: ui.cell_main{ content = function() bsw/jbe@1309: ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function() bsw/jbe@1309: ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function() bsw/jbe@1309: ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Agents" } bsw/jbe@1309: end } bsw/jbe@1309: ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function() bsw/jbe@1309: bsw/jbe@1309: local agents = Agent:new_selector() bsw/jbe@1309: :add_where{ "controlled_id = ?", app.session.member_id } bsw/jbe@1309: :exec() bsw/jbe@1309: bsw/jbe@1309: if #(agents) > 0 then bsw/jbe@1309: ui.list{ bsw/jbe@1309: records = agents, bsw/jbe@1309: columns = { bsw/jbe@1309: { bsw/jbe@1309: label = _"Account access by member", bsw/jbe@1309: content = function(record) bsw/jbe@1309: ui.tag{ content = record.controller.name } bsw/jbe@1309: end bsw/jbe@1309: }, bsw/jbe@1309: { bsw/jbe@1309: label = _"Status", bsw/jbe@1309: content = function(record) bsw/jbe@1309: local text bsw/jbe@1309: if record.accepted then bsw/jbe@1309: text = _"accepted" bsw/jbe@1309: elseif record.accepted == false then bsw/jbe@1309: text = _"rejected" bsw/jbe@1309: else bsw/jbe@1309: text = _"not decided yet" bsw/jbe@1309: end bsw/jbe@1309: ui.tag{ content = text } bsw/jbe@1309: end bsw/jbe@1309: }, bsw/jbe@1309: { bsw/jbe@1309: content = function(record) bsw/jbe@1309: ui.link{ content = _"Revoke", module = "member", action = "update_agent", params = { delete = true, controller_id = record.controller_id } } bsw/jbe@1309: end bsw/jbe@1309: }, bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: else bsw/jbe@1309: ui.container{ content = _"No other members are allowed to use this account." } bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: end } bsw/jbe@1309: ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function() bsw/jbe@1309: bsw/jbe@1309: ui.form{ bsw/jbe@1309: attr = { class = "wide" }, bsw/jbe@1309: module = "member", bsw/jbe@1309: action = "update_agent", bsw/jbe@1309: routing = { bsw/jbe@1309: ok = { bsw/jbe@1309: mode = "redirect", bsw/jbe@1309: module = "member", bsw/jbe@1309: view = "settings_agent" bsw/jbe@1309: } bsw/jbe@1309: }, bsw/jbe@1309: content = function() bsw/jbe@1309: bsw/jbe@1309: ui.container{ content = _"Add new account access privilege" } bsw/jbe@1309: bsw/jbe@1309: local contact_members = Member:build_selector{ bsw/jbe@1309: is_contact_of_member_id = app.session.member_id, bsw/jbe@1309: active = true, bsw/jbe@1309: order = "name" bsw/jbe@1309: }:add_where("NOT member.role"):exec() bsw/jbe@1309: bsw/jbe@1309: ui.field.select{ bsw/jbe@1309: name = "controller_id", bsw/jbe@1309: foreign_records = contact_members, bsw/jbe@1309: foreign_id = "id", bsw/jbe@1309: foreign_name = "name" bsw/jbe@1309: } bsw/jbe@1309: slot.put("
") bsw/jbe@1309: bsw/jbe@1309: ui.tag{ bsw/jbe@1309: tag = "input", bsw/jbe@1309: attr = { bsw/jbe@1309: type = "submit", bsw/jbe@1309: class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored", bsw/jbe@1309: value = _"Grant account access" bsw/jbe@1309: }, bsw/jbe@1309: content = "" bsw/jbe@1309: } bsw/jbe@1309: slot.put("   ") bsw/jbe@1309: ui.link { bsw/jbe@1309: attr = { class = "mdl-button mdl-js-button mdl-button--raised" }, bsw/jbe@1309: module = "member", view = "show", id = app.session.member_id, bsw/jbe@1309: content = _"Cancel" bsw/jbe@1309: } bsw/jbe@1309: end bsw/jbe@1309: } bsw/jbe@1309: bsw/jbe@1309: end } bsw/jbe@1309: end } bsw/jbe@1309: end } bsw/jbe@1309: bsw/jbe@1309: ui.cell_sidebar{ content = function() bsw/jbe@1309: execute.view { bsw/jbe@1309: module = "member", view = "_sidebar_whatcanido", params = { bsw/jbe@1309: member = app.session.member bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: end } bsw/jbe@1309: bsw/jbe@1309: end } bsw/jbe@1309: