bsw@198: local contacts_selector = Contact:build_selector{ bsw@198: member_id = app.session.member_id, bsw@198: order = "name" bsw@198: } bsw@198: bsw@564: ui.title(_"Contacts") bsw/jbe@0: bsw/jbe@1309: ui.grid{ content = function() bsw/jbe@1309: ui.cell_main{ content = function() bsw@198: 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 = _"Contacts" } 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: bsw/jbe@1309: ui.paginate{ bsw/jbe@1309: selector = contacts_selector, bsw/jbe@1309: content = function() bsw/jbe@1309: local contacts = contacts_selector:exec() bsw/jbe@1309: if #contacts == 0 then bsw/jbe@1309: ui.field.text{ value = _"You didn't save any member as contact yet." } bsw/jbe@1309: else bsw/jbe@1309: ui.list{ bsw/jbe@1309: attr = { class = "mdl-data-table mdl-js-data-table mdl-shadow--2dp" }, bsw/jbe@1309: records = contacts, bsw/jbe@1309: columns = { bsw/jbe@1309: { bsw/jbe@1309: label = _"Name", bsw/jbe@1309: content = function(record) bsw/jbe@1309: ui.link{ bsw/jbe@1309: text = record.other_member.name, bsw/jbe@1309: module = "member", bsw/jbe@1309: view = "show", bsw/jbe@1309: id = record.other_member_id bsw/jbe@1309: } bsw/jbe@1309: end bsw/jbe@1309: }, bsw/jbe@1309: { bsw/jbe@1309: label = _"Published", bsw/jbe@1309: content = function(record) bsw/jbe@1309: ui.field.boolean{ value = record.public } bsw/jbe@1309: end bsw/jbe@1309: }, bsw/jbe@1309: { bsw/jbe@1309: content = function(record) bsw/jbe@1309: if record.public then bsw/jbe@1309: ui.link{ bsw/jbe@1309: attr = { class = "action" }, bsw/jbe@1309: text = _"Hide", bsw/jbe@1309: module = "contact", bsw/jbe@1309: action = "add_member", bsw/jbe@1309: id = record.other_member_id, bsw/jbe@1309: params = { public = false }, bsw/jbe@1309: routing = { bsw/jbe@1309: default = { bsw/jbe@1309: mode = "redirect", bsw/jbe@1309: module = request.get_module(), bsw/jbe@1309: view = request.get_view(), bsw/jbe@1309: id = request.get_id_string(), bsw/jbe@1309: params = request.get_param_strings() bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: else bsw/jbe@1309: ui.link{ bsw/jbe@1309: attr = { class = "action" }, bsw/jbe@1309: text = _"Publish", bsw/jbe@1309: module = "contact", bsw/jbe@1309: action = "add_member", bsw/jbe@1309: id = record.other_member_id, bsw/jbe@1309: params = { public = true }, bsw/jbe@1309: routing = { bsw/jbe@1309: default = { bsw/jbe@1309: mode = "redirect", bsw/jbe@1309: module = request.get_module(), bsw/jbe@1309: view = request.get_view(), bsw/jbe@1309: id = request.get_id_string(), bsw/jbe@1309: params = request.get_param_strings() bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: end bsw/jbe@1309: end bsw/jbe@1309: }, bsw/jbe@1309: { bsw/jbe@1309: content = function(record) bsw/jbe@1309: ui.link{ bsw/jbe@1309: attr = { class = "action" }, bsw/jbe@1309: text = _"Remove", bsw/jbe@1309: module = "contact", bsw/jbe@1309: action = "remove_member", bsw/jbe@1309: id = record.other_member_id, bsw/jbe@1309: routing = { bsw/jbe@1309: default = { bsw/jbe@1309: mode = "redirect", bsw/jbe@1309: module = request.get_module(), bsw/jbe@1309: view = request.get_view(), bsw/jbe@1309: id = request.get_id_string(), bsw/jbe@1309: params = request.get_param_strings() bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: end bsw/jbe@1309: }, bsw@198: } bsw@198: } bsw@198: end bsw/jbe@1309: end bsw@198: } bsw/jbe@1309: bsw/jbe@1309: end } bsw/jbe@1309: end } bsw/jbe@1309: end } bsw/jbe@1309: end }