# 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