bsw/jbe@0: local areas_selector = param.get("areas_selector", "table") bsw/jbe@0: bsw/jbe@0: ui.order{ bsw/jbe@0: name = name, bsw/jbe@0: selector = areas_selector, bsw/jbe@0: options = { bsw/jbe@0: { bsw/jbe@0: name = "member_weight", bsw/jbe@0: label = _"Population", bsw/jbe@0: order_by = "area.member_weight DESC" bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: name = "direct_member_count", bsw/jbe@0: label = _"Direct member count", bsw/jbe@0: order_by = "area.direct_member_count DESC" bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: name = "az", bsw/jbe@0: label = _"A-Z", bsw/jbe@0: order_by = "area.name" bsw/jbe@0: }, bsw/jbe@0: { bsw/jbe@0: name = "za", bsw/jbe@0: label = _"Z-A", bsw/jbe@0: order_by = "area.name DESC" bsw/jbe@0: } bsw/jbe@0: }, bsw/jbe@0: content = function() bsw/jbe@0: ui.list{ bsw/jbe@0: records = areas_selector:exec(), bsw/jbe@0: columns = { bsw/jbe@0: { bsw/jbe@0: content = function(record) bsw/jbe@0: if record.member_weight and record.direct_member_count then bsw/jbe@0: local max_value = MemberCount:get() bsw/jbe@0: ui.bargraph{ bsw/jbe@0: max_value = max_value, bsw/jbe@4: width = 100, bsw/jbe@0: bars = { bsw/jbe@0: { color = "#444", value = record.direct_member_count }, bsw/jbe@0: { color = "#777", value = record.member_weight - record.direct_member_count }, bsw/jbe@0: { color = "#ddd", value = max_value - record.member_weight }, 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: text = record.name, bsw/jbe@0: module = "area", bsw/jbe@0: view = "show", bsw/jbe@0: id = record.id bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@4: } bsw/jbe@4: bsw/jbe@4: ui.bargraph_legend{ bsw/jbe@4: width = 25, bsw/jbe@4: bars = { bsw/jbe@4: { color = "#444", label = _"Direct membership" }, bsw/jbe@4: { color = "#777", label = _"Membership by delegation" }, bsw/jbe@4: { color = "#ddd", label = _"No membership at all" }, bsw/jbe@4: } bsw/jbe@4: } bsw/jbe@4: