bsw@211: local area = param.get("area", "table") bsw@211: bsw@211: local membership = Membership:by_pk(area.id, app.session.member_id) bsw@211: bsw@211: local trustees = Member:new_selector() bsw@211: :add_field("delegation_chain.*") bsw@217: :join({ "delegation_chain(?, null, ?, null)", app.session.member_id, area.id }, "delegation_chain", "member.id = delegation_chain.member_id") bsw@211: :add_order_by("index") bsw@211: :exec() bsw@211: bsw@217: bsw@211: ui.box{ class = "area", content = function() bsw@211: ui.box_row{ class = "head", content = function() bsw@217: ui.box_col{ class = "head left name", content = function() bsw@217: if membership then bsw@217: local text = _"You are member of this area" bsw@217: ui.image{ attr = { title = text, alt = text }, static = "lf2/icon_star.png" } bsw@217: else bsw@217: end bsw@217: slot.put(" ") bsw@217: ui.tag{ content = area.name } bsw@217: end } bsw@212: ui.box_col{ class = "right", content = _("#{direct_count}+#{delegated_count} members", { bsw@211: direct_count = area.direct_member_count, bsw@211: delegated_count = area.member_weight - area.direct_member_count bsw@211: } ) } bsw@211: end } bsw@211: bsw@212: if #trustees > 1 then bsw@212: ui.box_row{ content = function() bsw@212: ui.box_col{ class = "left", content = function() bsw@212: execute.view{ module = "lf2", view = "_avatars", params = { members = trustees, arrows = true, size = "small" } } bsw@212: end } bsw@211: end } bsw@212: end bsw@211: bsw@211: ui.box_row{ content = function() bsw@211: ui.box_col{ class = "left", content = function() bsw@211: if membership then bsw@217: ui.link{ bsw@217: module = "membership", action = "update", params = { area_id = area.id, delete = true }, bsw@217: routing = { default = { bsw@217: mode = "redirect", module = "lf2", view = "area", id = area.id bsw@217: } }, bsw@217: text = _"Give up area membership" bsw@217: } bsw@211: else bsw@211: ui.link{ bsw@211: module = "membership", action = "update", params = { area_id = area.id }, bsw@211: routing = { default = { bsw@211: mode = "redirect", module = "lf2", view = "area", id = area.id bsw@211: } }, bsw@211: text = _"Become a member of this area" bsw@211: } bsw@211: end bsw@217: slot.put(" · ") bsw@217: if trustees[1].scope_out == "area" then bsw@217: text = _"Change or revoke area delegation" bsw@217: else bsw@217: text = _"Set area delegation" bsw@217: end bsw@217: ui.link{ bsw@217: text = text, bsw@217: module = "lf2", view = "delegation", params = { area_id = area.id } bsw@217: } bsw@211: end } bsw@211: end } bsw@211: bsw@217: if area.description and #area.description > 0 then bsw@217: -- ui.box_row{ class = "description", content = function() ui.box_col{ content = area.description } end } bsw@217: end bsw@217: bsw@211: end }