bsw/jbe@0: bsw/jbe@0: local contacts_selector = Contact:new_selector() bsw/jbe@0: :add_where{ "member_id = ?", app.session.member.id } bsw/jbe@0: :join("member", nil, "member.id = contact.other_member_id") bsw/jbe@4: :add_order_by("member.name") bsw/jbe@0: bsw/jbe@0: ui.paginate{ bsw/jbe@0: selector = contacts_selector, bsw/jbe@0: content = function() bsw/jbe@0: local contacts = contacts_selector:exec() bsw/jbe@0: if #contacts == 0 then bsw/jbe@0: ui.field.text{ value = _"You didn't saved any member as contact yet." } bsw/jbe@0: else bsw/jbe@0: ui.list{ bsw/jbe@0: records = contacts, bsw/jbe@0: columns = { bsw/jbe@0: { bsw/jbe@0: label = _"Name", bsw/jbe@0: content = function(record) bsw/jbe@0: ui.link{ bsw/jbe@0: text = record.other_member.name, bsw/jbe@0: module = "member", bsw/jbe@0: view = "show", bsw/jbe@0: id = record.other_member_id bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: label = _"Published", bsw/jbe@0: content = function(record) bsw/jbe@0: ui.field.boolean{ value = record.public } bsw/jbe@0: end bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: content = function(record) bsw/jbe@0: if record.public then bsw/jbe@0: ui.link{ bsw/jbe@0: attr = { class = "action" }, bsw/jbe@0: text = _"Hide", bsw/jbe@0: module = "contact", bsw/jbe@0: action = "add_member", bsw/jbe@0: id = record.other_member_id, bsw/jbe@0: params = { public = false }, bsw/jbe@0: routing = { bsw/jbe@0: default = { bsw/jbe@0: mode = "redirect", bsw/jbe@0: module = request.get_module(), bsw/jbe@0: view = request.get_view(), bsw/jbe@0: id = param.get_id_cgi(), bsw/jbe@0: params = param.get_all_cgi() bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: else bsw/jbe@0: ui.link{ bsw/jbe@0: attr = { class = "action" }, bsw/jbe@0: text = _"Publish", bsw/jbe@0: module = "contact", bsw/jbe@0: action = "add_member", bsw/jbe@0: id = record.other_member_id, bsw/jbe@0: params = { public = true }, bsw/jbe@0: routing = { bsw/jbe@0: default = { bsw/jbe@0: mode = "redirect", bsw/jbe@0: module = request.get_module(), bsw/jbe@0: view = request.get_view(), bsw/jbe@0: id = param.get_id_cgi(), bsw/jbe@0: params = param.get_all_cgi() bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: end bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: content = function(record) bsw/jbe@0: ui.link{ bsw/jbe@0: attr = { class = "action" }, bsw/jbe@0: text = _"Remove", bsw/jbe@0: module = "contact", bsw/jbe@0: action = "remove_member", bsw/jbe@0: id = record.other_member_id, bsw/jbe@0: routing = { bsw/jbe@0: default = { bsw/jbe@0: mode = "redirect", bsw/jbe@0: module = request.get_module(), bsw/jbe@0: view = request.get_view(), bsw/jbe@0: id = param.get_id_cgi(), bsw/jbe@0: params = param.get_all_cgi() bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: }, bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: end bsw/jbe@4: }