# HG changeset patch # User bsw # Date 1328634780 -3600 # Node ID f42d16567c5d21a48249037db7c17a8b417316ee # Parent 7ef1e03e4057c7284cd9ab30e61867ac4f602e00 Added admin section for units, added unit support to areas in admin section diff -r 7ef1e03e4057 -r f42d16567c5d app/main/admin/_action/area_update.lua --- a/app/main/admin/_action/area_update.lua Tue Feb 07 17:54:00 2012 +0100 +++ b/app/main/admin/_action/area_update.lua Tue Feb 07 18:13:00 2012 +0100 @@ -1,6 +1,6 @@ local area = Area:by_id(param.get_id()) or Area:new() -param.update(area, "name", "description", "active") +param.update(area, "unit_id", "name", "description", "active") area:save() diff -r 7ef1e03e4057 -r f42d16567c5d app/main/admin/area_list.lua --- a/app/main/admin/area_list.lua Tue Feb 07 17:54:00 2012 +0100 +++ b/app/main/admin/area_list.lua Tue Feb 07 18:13:00 2012 +0100 @@ -1,19 +1,30 @@ +local unit_id = param.get("unit_id", atom.integer) +local unit = Unit:by_id(unit_id) + local show_not_in_use = param.get("show_not_in_use", atom.boolean) or false -local areas = Area:build_selector{ active = not show_not_in_use }:exec() +local areas = Area:build_selector{ unit_id = unit_id, active = not show_not_in_use }:exec() -slot.put_into("title", _"Area list") +slot.put_into("title", _("Area list of '#{unit_name}'", { unit_name = unit.name})) slot.select("actions", function() + ui.link{ + attr = { class = { "admin_only" } }, + text = _"Back to unit list", + module = "admin", + view = "unit_list" + } + if show_not_in_use then ui.link{ attr = { class = { "admin_only" } }, text = _"Show areas in use", module = "admin", - view = "area_list" + view = "area_list", + params = { unit_id = unit_id } } else @@ -21,14 +32,15 @@ attr = { class = { "admin_only" } }, text = _"Create new area", module = "admin", - view = "area_show" + view = "area_show", + params = { unit_id = unit_id } } ui.link{ attr = { class = { "admin_only" } }, text = _"Show areas not in use", module = "admin", view = "area_list", - params = { show_not_in_use = true } + params = { show_not_in_use = true, unit_id = unit_id } } end diff -r 7ef1e03e4057 -r f42d16567c5d app/main/admin/area_show.lua --- a/app/main/admin/area_show.lua Tue Feb 07 17:54:00 2012 +0100 +++ b/app/main/admin/area_show.lua Tue Feb 07 18:13:00 2012 +0100 @@ -2,6 +2,10 @@ local area = Area:by_id(id) or Area:new() +if not area.unit_id then + area.unit_id = param.get("unit_id", atom.integer) +end + slot.put_into("title", _"Create / edit area") slot.select("actions", function() @@ -9,7 +13,8 @@ attr = { class = { "admin_only" } }, text = _"Cancel", module = "admin", - view = "area_list" + view = "area_list", + params = { unit_id = area.unit_id } } end) @@ -22,7 +27,8 @@ default = { mode = "redirect", module = "admin", - view = "area_list" + view = "area_list", + params = { unit_id = area.unit_id } } }, id = id, @@ -38,8 +44,9 @@ def_policy[#def_policy+1] = record end + ui.field.hidden{ name = "unit_id", value = area.unit_id } + ui.field.text{ label = _"Unit", value = area.unit.name, readonly = true } ui.field.text{ label = _"Name", name = "name" } - ui.field.boolean{ label = _"Active?", name = "active" } ui.field.text{ label = _"Description", name = "description", multiline = true } ui.field.select{ label = _"Default Policy", name = "default_policy", value=area.default_policy and area.default_policy.id or "-1", @@ -54,6 +61,8 @@ connecting_records = area.allowed_policies or {}, foreign_reference = "id", } + slot.put("

") + ui.field.boolean{ label = _"Active?", name = "active" } ui.submit{ text = _"Save" } end } diff -r 7ef1e03e4057 -r f42d16567c5d app/main/admin/index.lua --- a/app/main/admin/index.lua Tue Feb 07 17:54:00 2012 +0100 +++ b/app/main/admin/index.lua Tue Feb 07 18:13:00 2012 +0100 @@ -1,21 +1,5 @@ slot.put_into("title", _"Admin menu") -ui.link{ - text = _"Members", - module = "admin", - view = "member_list", -} - -slot.put("

") - -ui.link{ - text = _"Areas", - module = "admin", - view = "area_list", -} - -slot.put("

") - ui.link{ text = _"Policies", @@ -23,3 +7,20 @@ view = "policy_list", } +slot.put("

") + + +ui.link{ + text = _"Units", + module = "admin", + view = "unit_list", +} + + slot.put("

") + +ui.link{ + text = _"Members", + module = "admin", + view = "member_list", +} + diff -r 7ef1e03e4057 -r f42d16567c5d app/main/admin/unit_list.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/main/admin/unit_list.lua Tue Feb 07 18:13:00 2012 +0100 @@ -0,0 +1,24 @@ +local units = Unit:get_flattened_tree{ active = true } + +slot.put_into("title", _"Unit list") + +slot.select("actions", function() + ui.link{ + attr = { class = { "admin_only" } }, + text = _"Create new unit", + module = "admin", + view = "unit_edit" + } +end) + +ui.list{ + records = units, + columns = { + { + label = "name", + content = function(unit) + ui.link{ text = unit.name, module = "admin", view = "area_list", params = { unit_id = unit.id } } + end + } + } +} \ No newline at end of file