# HG changeset patch # User bsw # Date 1427398688 -3600 # Node ID 8c65f5a029b06bdec4dae17b401a28a47fae9f2e # Parent 1390a21eb084b8722d59af95f3ea15e28157d683 Unified navigation in admin area diff -r 1390a21eb084 -r 8c65f5a029b0 app/main/admin/area_list.lua --- a/app/main/admin/area_list.lua Thu Mar 26 20:37:47 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -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{ unit_id = unit_id, active = not show_not_in_use }:exec() - - -ui.title(_("Area list of '#{unit_name}'", { unit_name = unit.name })) - - -ui.actions(function() - - if show_not_in_use then - ui.link{ - text = _"Show areas in use", - module = "admin", - view = "area_list", - params = { unit_id = unit_id } - } - - else - ui.link{ - text = _"Create new area", - module = "admin", - view = "area_show", - params = { unit_id = unit_id } - } - - slot.put(" · ") - - ui.link{ - text = _"Show areas not in use", - module = "admin", - view = "area_list", - params = { show_not_in_use = true, unit_id = unit_id } - } - end - -end) - - -ui.list{ - records = areas, - columns = { - - { label = _"Area", name = "name" }, - - { content = function(record) - if app.session.member.admin then - ui.link{ - attr = { class = { "action admin_only" } }, - text = _"Edit", - module = "admin", - view = "area_show", - id = record.id - } - end - end - } - - } -} \ No newline at end of file diff -r 1390a21eb084 -r 8c65f5a029b0 app/main/admin/index.lua --- a/app/main/admin/index.lua Thu Mar 26 20:37:47 2015 +0100 +++ b/app/main/admin/index.lua Thu Mar 26 20:38:08 2015 +0100 @@ -1,7 +1,10 @@ -local units = Unit:get_flattened_tree{ active = true } +local inactive = param.get("inactive", atom.boolean) + +local units = Unit:get_flattened_tree{ include_inactive = inactive } + local policies = Policy:build_selector{}:add_order_by("index"):exec() -slot.put_into("title", _"Manage system settings") +ui.titleAdmin() ui.sidebar( "tab-members", function() ui.sidebarHead( function() @@ -102,12 +105,26 @@ attr = { style = "margin-left: " .. ((unit.depth - 1)* 2) .. "em;" }, content = function () ui.heading { level = 1, content = function () - ui.link{ text = unit.name, module = "admin", view = "unit_edit", id = unit.id } + local class + if unit.active == false then + class = "inactive" + end + ui.link{ attr = { class = class }, text = unit.name, module = "admin", view = "unit_edit", id = unit.id } end } ui.tag { tag = "ul", attr = { class = "ul" }, content = function () - for i, area in ipairs(unit:get_reference_selector("areas"):add_order_by("name"):exec()) do + local areas + if not inactive then + areas = unit:get_reference_selector("areas"):add_order_by("name"):add_where("active"):exec() + else + areas = unit:get_reference_selector("areas"):add_order_by("name"):exec() + end + for i, area in ipairs(areas) do ui.tag { tag = "li", content = function () - ui.link{ text = area.name, module = "admin", view = "area_show", id = area.id } + local class + if area.active == false then + class = "inactive" + end + ui.link{ attr = { class = class }, text = area.name, module = "admin", view = "area_show", id = area.id } end } end ui.tag { tag = "li", content = function () @@ -121,6 +138,14 @@ slot.put("
") ui.link { module = "admin", view = "unit_edit", content = _"+ add new organizational unit" } + slot.put("
") + slot.put("
") + + if (not inactive) then + ui.link { module = "admin", view = "index", params = { inactive = true }, content = _"Show inactive" } + else + ui.link { module = "admin", view = "index", content = _"Hide inactive" } + end end) end) diff -r 1390a21eb084 -r 8c65f5a029b0 app/main/admin/member_edit.lua --- a/app/main/admin/member_edit.lua Thu Mar 26 20:37:47 2015 +0100 +++ b/app/main/admin/member_edit.lua Thu Mar 26 20:38:08 2015 +0100 @@ -4,7 +4,7 @@ local deactivated = member and member.locked and member.login == nil and member.authority_login == nil -ui.title(_"Member") +ui.titleAdmin(_"Member") local units_selector = Unit:new_selector() diff -r 1390a21eb084 -r 8c65f5a029b0 app/main/admin/policy_show.lua --- a/app/main/admin/policy_show.lua Thu Mar 26 20:37:47 2015 +0100 +++ b/app/main/admin/policy_show.lua Thu Mar 26 20:38:08 2015 +0100 @@ -2,12 +2,12 @@ local hint = not policy.id -ui.titleAdmin(policy.name or _"New policy") +ui.titleAdmin(_"Policy") ui.section( function() ui.sectionHead( function() - ui.heading { level = 1, content = _"Policy" } + ui.heading { level = 1, content = policy and policy.name or _"New policy" } end ) ui.sectionRow( function() ui.form{ diff -r 1390a21eb084 -r 8c65f5a029b0 app/main/admin/unit_edit.lua --- a/app/main/admin/unit_edit.lua Thu Mar 26 20:37:47 2015 +0100 +++ b/app/main/admin/unit_edit.lua Thu Mar 26 20:38:08 2015 +0100 @@ -2,9 +2,7 @@ local unit = Unit:by_id(id) -if unit then - ui.titleAdmin(_"Organizational unit") -end +ui.titleAdmin(_"Organizational unit") local units = { { id = nil, name = "" } diff -r 1390a21eb084 -r 8c65f5a029b0 app/main/admin/unit_list.lua --- a/app/main/admin/unit_list.lua Thu Mar 26 20:37:47 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -local inactive = param.get("inactive", atom.boolean) - -local units = Unit:get_flattened_tree{ include_inactive = inactive } - -ui.title(_"Unit list") - -ui.actions(function() - ui.link{ - text = _"Create new unit", - module = "admin", - view = "unit_edit" - } - slot.put(" · ") - if inactive then - ui.link{ - text = _"Hide active units", - module = "admin", - view = "unit_list" - } - else - ui.link{ - text = _"Show inactive units", - module = "admin", - view = "unit_list", - params = { inactive = true } - } - end -end) - -ui.list{ - records = units, - columns = { - { - content = function(unit) - for i = 1, unit.depth - 1 do - slot.put("     ") - end - local style = "" - if not unit.active then - style = "text-decoration: line-through;" - end - ui.link{ - attr = { style = "font-weight: bold;" .. style }, - text = unit.name, - module = "admin", view = "unit_edit", id = unit.id - } - slot.put(" · ") - ui.link{ - text = _"Edit areas", - module = "admin", view = "area_list", params = { unit_id = unit.id } - } - end - } - } -} \ No newline at end of file diff -r 1390a21eb084 -r 8c65f5a029b0 env/ui/titleAdmin.lua --- a/env/ui/titleAdmin.lua Thu Mar 26 20:37:47 2015 +0100 +++ b/env/ui/titleAdmin.lua Thu Mar 26 20:38:08 2015 +0100 @@ -1,8 +1,13 @@ function ui.titleAdmin(title) ui.title(function() - ui.link { module = "admin", view = "index", content = _"System administration" } if title then - ui.tag { tag = "span", content = content } + ui.link { module = "admin", view = "index", content = _"System administration" } + else + ui.tag{ content = _"System administration" } + end + if title then + slot.put ( " ยป " ) + ui.tag { tag = "span", content = title } end end) end \ No newline at end of file