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@211: :join("delegation_chain(" .. app.session.member_id .. ", " .. area.id .. ", NULL)", "delegation_chain", "member.id = delegation_chain.member_id") bsw@211: :add_order_by("index") bsw@211: :exec() bsw@211: bsw@211: ui.box{ class = "area", content = function() bsw@211: bsw@211: ui.box_row{ class = "head", content = function() bsw@212: ui.box_col{ class = "head left name", content = area.name } 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@211: if area.description and #area.description > 0 then bsw@211: ui.box_row{ class = "description", content = function() ui.box_col{ content = area.description } end } 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@212: if trustees[1].scope_out == "area" then bsw@212: text = _"Change or revoke area delegation..." bsw@212: else bsw@212: text = _"Set area delegation..." bsw@212: end bsw@212: ui.box_col{ class = "right", content = function() bsw@212: ui.link{ bsw@212: text = text, bsw@212: module = "lf2", view = "delegation", params = { area_id = area.id } bsw@212: } 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@211: ui.image{ static = "lf2/icon_star.png" } bsw@211: slot.put(" ", _"You are member of this area") 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@211: end } bsw@211: ui.box_col{ class = "right", content = function() bsw@211: if membership then bsw@211: ui.link{ bsw@211: module = "membership", action = "update", params = { area_id = area.id, delete = true }, bsw@211: routing = { default = { bsw@211: mode = "redirect", module = "lf2", view = "area", id = area.id bsw@211: } }, bsw@211: text = _"Give up membership" bsw@211: } bsw@211: end bsw@212: if #trustees == 1 then bsw@211: if membership then bsw@211: slot.put(" · ") bsw@211: end bsw@212: ui.link{ bsw@212: text = _"Set area delegation...", bsw@212: module = "lf2", view = "delegation", params = { area_id = area.id } bsw@212: } bsw@211: end bsw@211: end } bsw@211: end } bsw@211: bsw@211: end }