bsw/jbe@0: slot.put_into("title", _"Member list") bsw/jbe@0: bsw/jbe@0: slot.select("actions", function() bsw/jbe@0: ui.link{ bsw/jbe@0: attr = { class = { "admin_only" } }, bsw/jbe@0: text = _"Register new member", bsw/jbe@0: module = "admin", bsw/jbe@0: view = "member_edit" bsw/jbe@0: } bsw/jbe@0: if param.get("show_locked") then bsw/jbe@0: ui.link{ bsw/jbe@0: attr = { class = { "admin_only" } }, bsw/jbe@0: text = _"Show active members", bsw/jbe@0: module = "admin", bsw/jbe@0: view = "member_list" bsw/jbe@0: } bsw/jbe@0: else bsw/jbe@0: ui.link{ bsw/jbe@0: attr = { class = { "admin_only" } }, bsw/jbe@0: text = _"Show locked members", bsw/jbe@0: module = "admin", bsw/jbe@0: view = "member_list", bsw/jbe@0: params = { show_locked = true } bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: end) bsw/jbe@0: bsw/jbe@0: local members_selector bsw/jbe@0: bsw/jbe@0: if param.get("show_locked", atom.boolean) then bsw/jbe@0: members_selector = Member:new_selector() bsw/jbe@0: :add_where("not active") bsw/jbe@0: :add_order_by("login") bsw/jbe@0: else bsw/jbe@0: members_selector = Member:new_selector() bsw/jbe@0: :add_where("active") bsw/jbe@0: :add_order_by("login") bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: ui.paginate{ bsw/jbe@0: selector = members_selector, bsw/jbe@0: content = function() bsw/jbe@0: ui.list{ bsw/jbe@0: records = members_selector:exec(), bsw/jbe@0: columns = { bsw/jbe@0: { bsw/jbe@0: field_attr = { style = "text-align: right;" }, bsw/jbe@0: label = _"Id", bsw/jbe@0: name = "id" bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: label = _"Login", bsw/jbe@0: name = "login" bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: label = _"Name", bsw/jbe@0: content = function(record) bsw/jbe@0: util.put_highlighted_string(record.name) bsw/jbe@0: end bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: label = _"Ident number", bsw/jbe@0: name = "ident_number" bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: label = _"Admin?", bsw/jbe@0: name = "admin" bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: content = function(record) bsw/jbe@0: if app.session.member.admin and not record.active then bsw/jbe@0: ui.field.text{ value = "locked" } bsw/jbe@0: end bsw/jbe@0: end bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: content = function(record) bsw/jbe@0: if app.session.member.admin then bsw/jbe@0: ui.link{ bsw/jbe@0: attr = { class = "action admin_only" }, bsw/jbe@0: text = _"Edit", bsw/jbe@0: module = "admin", bsw/jbe@0: view = "member_edit", bsw/jbe@0: id = record.id bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: end bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: }