bsw@217: local unit = param.get("unit", "table") bsw@217: bsw@215: local current_area_id = param.get("current_area_id", atom.integer) bsw@215: local current_phase = param.get_all_cgi()["phase"] bsw@215: bsw@217: local records = { bsw@217: { id = 0, name = _"All units" }, bsw@217: { id = "disabled", name = "" }, bsw@217: { id = "disabled", name = _"Units, you are member of:" }, bsw@215: } bsw@215: bsw@217: bsw@217: for i, unit in ipairs(Unit:get_flattened_tree()) do bsw@217: records[#records+1] = { id = unit.id, name = unit.flattened_tree_name } bsw@215: end bsw@215: bsw@217: records[#records+1] = { id = "disabled", name = "" } bsw@217: records[#records+1] = { id = -1, name = _"Other units..." } bsw@217: bsw@217: ui.box{ content = function() bsw@212: ui.box_row{ class = "head", content = function() bsw@217: ui.box_col{ class = "head", content = function() bsw@217: ui.form{ bsw@217: method = "GET", bsw@217: module = "lf2", view = "index", bsw@217: content = function() bsw@217: ui.field.select{ bsw@217: attr = { onchange = "this.form.submit();" }, bsw@217: name = "_webmcp_id", bsw@217: foreign_records = records, bsw@217: foreign_id = "id", bsw@217: foreign_name = "name", bsw@217: disabled_records = { disabled = true }, bsw@217: value = unit and unit.id or 0 bsw@217: } bsw@217: end bsw@217: } bsw@217: end } bsw@212: end } bsw@217: bsw@217: if unit then bsw@217: local trustees = Member:new_selector() bsw@217: :add_field("delegation_chain.*") bsw@217: :join({ "delegation_chain(?, ?, NULL, NULL)", app.session.member.id, unit.id }, "delegation_chain", "member.id = delegation_chain.member_id") bsw@217: :add_order_by("index") bsw@217: :exec() bsw@217: bsw@217: if #trustees > 1 then bsw@217: ui.box_row{ content = function() ui.box_col{ content = function() bsw@217: execute.view{ module = "lf2", view = "_avatars", params = { members = trustees, arrows = true, size = "small" } } bsw@217: end } end } bsw@217: end bsw@217: bsw@212: ui.box_row{ content = function() ui.box_col{ content = function() bsw@217: if trustees[1].scope_out == "global" then bsw@217: text = _"Change or revoke unit delegation" bsw@217: else bsw@217: text = _"Set unit delegation" bsw@217: end bsw@217: ui.link{ bsw@217: text = text, bsw@217: module = "lf2", view = "delegation", params = { unit_id = unit.id } bsw@217: } bsw@212: end } end } bsw@212: end bsw@217: bsw@217: end } bsw@217: bsw@217: if unit then bsw@217: local member_areas_selector = Area:build_selector{ bsw@217: unit_id = unit.id, bsw@217: member_id = app.session.member_id, bsw@217: order = "name" bsw@217: } bsw@217: local other_areas_selector = Area:build_selector{ bsw@217: unit_id = unit.id, bsw@217: not_member_id = app.session.member_id, bsw@217: order = "name" bsw@217: } bsw@217: bsw@217: if member_areas_selector:count() > 0 then bsw@217: ui.box{ content = function() bsw@217: ui.box_row{ class = "head", content = function() ui.box_col{ class = "head", content = function() bsw@218: ui.link{ text = _"Areas, you are member of", module = "lf2", view = "index", id = unit.id } bsw@215: end } end } bsw@215: bsw@215: execute.view{ bsw@215: module = "lf2", view = "_areas", params = { bsw@215: areas_selector = member_areas_selector, bsw@215: current_area_id = current_area_id, bsw@215: current_phase = current_phase bsw@215: } bsw@215: } bsw@217: end } bsw@217: end bsw@215: bsw@217: if other_areas_selector:count() > 0 then bsw@217: ui.box{ content = function() bsw@217: ui.box_row{ class = "head", content = function() ui.box_col{ class = "head", content = function() bsw@218: --ui.link{ content = _"Areas", module = "lf2", view = "index", view = "index", id = unit.id } bsw@218: ui.tag{ content = _"Areas" } bsw@215: end } end } bsw@215: bsw@215: execute.view{ bsw@215: module = "lf2", view = "_areas", params = { bsw@215: areas_selector = other_areas_selector, bsw@215: current_area_id = current_area_id, bsw@215: current_phase = current_phase bsw@215: } bsw@215: } bsw@217: end } bsw@217: end bsw@217: end bsw@215: bsw@215: execute.view{ module = "lf2", view = "_search", params = { area = area } }