[Rt-commit] rt branch, menu-redo, updated. ae485c6d149ac41fd06afc5b70868d8803dc3e06

jesse jesse at bestpractical.com
Wed Oct 21 14:21:00 EDT 2009


The branch, menu-redo has been updated
       via  ae485c6d149ac41fd06afc5b70868d8803dc3e06 (commit)
       via  68131b5a187a0469163abbacf7bb35a82bf7c79a (commit)
       via  a8a5638b99b5a6ad11ed2d0ec44dbe3b65dffb03 (commit)
       via  437d3007b92d02a1f813fed30aade339ca87dc2a (commit)
       via  6a4993f3f5c17a3ba50ef18a3d2d1eca2ebdfc9c (commit)
       via  aa74b3b6a1a1b08e72c107f1286b1a0b5d335611 (commit)
       via  45037d9ada186d020b5bee314cec4e29409b3703 (commit)
      from  c40ee3c368a658bcac4d6b978ae6e285ec912c30 (commit)

Summary of changes:
 lib/RT/Dispatcher.pm                               |  856 ++++++++++----------
 share/html/Admin/CustomFields/GroupRights.html     |    2 +-
 share/html/Admin/CustomFields/Modify.html          |    2 +-
 share/html/Admin/CustomFields/Objects.html         |    2 +-
 share/html/Admin/CustomFields/UserRights.html      |    2 +-
 share/html/Admin/CustomFields/index.html           |    2 +-
 share/html/Admin/Elements/ObjectCustomFields       |    2 +-
 share/html/Admin/Global/CustomFields/Groups.html   |    2 +-
 .../Admin/Global/CustomFields/Queue-Tickets.html   |    2 +-
 .../Global/CustomFields/Queue-Transactions.html    |    2 +-
 share/html/Admin/Global/CustomFields/Queues.html   |    2 +-
 share/html/Admin/Global/CustomFields/Users.html    |    2 +-
 share/html/Admin/Global/CustomFields/index.html    |    2 +-
 share/html/Admin/Global/GroupRights.html           |    2 +-
 share/html/Admin/Global/Jifty.html                 |    2 +-
 share/html/Admin/Global/MyRT.html                  |    2 +-
 share/html/Admin/Global/System.html                |    2 +-
 share/html/Admin/Global/Template.html              |    2 +-
 share/html/Admin/Global/Templates.html             |    2 +-
 share/html/Admin/Global/UserRights.html            |    2 +-
 share/html/Admin/Global/Workflows/Interface.html   |    2 +-
 .../html/Admin/Global/Workflows/Localization.html  |    2 +-
 share/html/Admin/Global/Workflows/Mappings.html    |    2 +-
 share/html/Admin/Global/Workflows/Statuses.html    |    2 +-
 share/html/Admin/Global/Workflows/Summary.html     |    2 +-
 share/html/Admin/Global/Workflows/Transitions.html |    2 +-
 share/html/Admin/Global/Workflows/index.html       |    2 +-
 share/html/Admin/Global/index.html                 |    2 +-
 share/html/Admin/Groups/GroupRights.html           |    2 +-
 share/html/Admin/Groups/History.html               |    2 +-
 share/html/Admin/Groups/Members.html               |    2 +-
 share/html/Admin/Groups/Modify.html                |    2 +-
 share/html/Admin/Groups/UserRights.html            |    2 +-
 share/html/Admin/Groups/index.html                 |    2 +-
 share/html/Admin/Queues/CustomField.html           |    2 +-
 share/html/Admin/Queues/CustomFields.html          |    2 +-
 share/html/Admin/Queues/GroupRights.html           |    2 +-
 share/html/Admin/Queues/Modify.html                |    2 +-
 share/html/Admin/Queues/People.html                |    2 +-
 share/html/Admin/Queues/Template.html              |    2 +-
 share/html/Admin/Queues/Templates.html             |    2 +-
 share/html/Admin/Queues/UserRights.html            |    2 +-
 share/html/Admin/Queues/index.html                 |    2 +-
 share/html/Admin/Tools/Configuration.html          |    2 +-
 .../Admin/Tools/Shredder/Elements/Error/NoRights   |    2 +-
 .../Admin/Tools/Shredder/Elements/Error/NoStorage  |    2 +-
 share/html/Admin/Tools/Shredder/index.html         |    2 +-
 share/html/Admin/Tools/index.html                  |    2 +-
 share/html/Admin/Users/CustomFields.html           |    2 +-
 share/html/Admin/Users/GnuPG.html                  |    2 +-
 share/html/Admin/Users/History.html                |    2 +-
 share/html/Admin/Users/Memberships.html            |    2 +-
 share/html/Admin/Users/Modify.html                 |    2 +-
 share/html/Admin/Users/MyRT.html                   |    2 +-
 share/html/Admin/Users/index.html                  |    2 +-
 share/html/Admin/index.html                        |    2 +-
 share/html/Approvals/Display.html                  |    2 +-
 share/html/Approvals/index.html                    |    2 +-
 share/html/Dashboards/Modify.html                  |    2 +-
 share/html/Dashboards/Queries.html                 |    2 +-
 share/html/Dashboards/Render.html                  |    2 +-
 share/html/Dashboards/Subscription.html            |    2 +-
 share/html/Dashboards/index.html                   |    2 +-
 share/html/Elements/Header                         |    2 +
 share/html/Elements/Tabs                           |    1 +
 share/html/Prefs/MyRT.html                         |    2 +-
 share/html/Prefs/Other.html                        |    2 +-
 share/html/Prefs/Quicksearch.html                  |    2 +-
 share/html/Prefs/Search.html                       |    2 +-
 share/html/Prefs/SearchOptions.html                |    2 +-
 share/html/Search/Build.html                       |    2 +-
 share/html/Search/Bulk.html                        |    2 +-
 share/html/Search/Chart.html                       |    2 +-
 share/html/Search/Edit.html                        |    2 +-
 share/html/Search/Results.html                     |    2 +-
 share/html/SelfService/Elements/Header             |    2 +-
 share/html/Ticket/Display.html                     |    2 +-
 share/html/Ticket/Forward.html                     |    2 +-
 share/html/Ticket/GnuPG.html                       |    2 +-
 share/html/Ticket/Graphs/index.html                |    2 +-
 share/html/Ticket/History.html                     |    2 +-
 share/html/Ticket/Modify.html                      |    2 +-
 share/html/Ticket/ModifyAll.html                   |    2 +-
 share/html/Ticket/ModifyDates.html                 |    2 +-
 share/html/Ticket/ModifyLinks.html                 |    2 +-
 share/html/Ticket/ModifyPeople.html                |    2 +-
 share/html/Ticket/Reminders.html                   |    2 +-
 share/html/Ticket/Update.html                      |    2 +-
 share/html/Tools/MyDay.html                        |    2 +-
 share/html/Tools/Reports/CreatedByDates.html       |    2 +-
 share/html/Tools/Reports/ResolvedByDates.html      |    2 +-
 share/html/Tools/Reports/ResolvedByOwner.html      |    2 +-
 share/html/Tools/Reports/index.html                |    2 +-
 share/html/Tools/index.html                        |    2 +-
 share/html/User/Prefs.html                         |    2 +-
 share/web/static/css/nav.css                       |  148 ----
 96 files changed, 528 insertions(+), 663 deletions(-)
 create mode 100644 share/html/Elements/Tabs

- Log -----------------------------------------------------------------
commit 45037d9ada186d020b5bee314cec4e29409b3703
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Oct 21 13:16:37 2009 -0400

    Replace all old calls to local tabs subcomponents with a placeholder as we remove them

diff --git a/share/html/Admin/CustomFields/GroupRights.html b/share/html/Admin/CustomFields/GroupRights.html
index 5971a03..d424798 100644
--- a/share/html/Admin/CustomFields/GroupRights.html
+++ b/share/html/Admin/CustomFields/GroupRights.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/CustomFieldTabs,
+<& /Elements/Tabs,
     id => $id,
     current_tab => "Admin/CustomFields/GroupRights.html?id=".$id,
     title => $title
diff --git a/share/html/Admin/CustomFields/Modify.html b/share/html/Admin/CustomFields/Modify.html
index 0e6fcc2..cdcb34e 100644
--- a/share/html/Admin/CustomFields/Modify.html
+++ b/share/html/Admin/CustomFields/Modify.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/CustomFieldTabs,
+<& /Elements/Tabs,
     id => $CustomFieldObj->id ,
     current_tab => $current_tab,
     title => $title &>
diff --git a/share/html/Admin/CustomFields/Objects.html b/share/html/Admin/CustomFields/Objects.html
index 4743b1d..116b93a 100644
--- a/share/html/Admin/CustomFields/Objects.html
+++ b/share/html/Admin/CustomFields/Objects.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/CustomFieldTabs,
+<& /Elements/Tabs,
     id => $id,
     current_tab => "Admin/CustomFields/Objects.html?id=".$id,
     title => $title
diff --git a/share/html/Admin/CustomFields/UserRights.html b/share/html/Admin/CustomFields/UserRights.html
index da957fe..fd0ea1f 100644
--- a/share/html/Admin/CustomFields/UserRights.html
+++ b/share/html/Admin/CustomFields/UserRights.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/CustomFieldTabs, id => $id, 
+<& /Elements/Tabs, id => $id, 
 current_tab => "Admin/CustomFields/UserRights.html?id=".$id,
 title => $title, &>
 <& /Elements/ListActions, actions => \@results &>
diff --git a/share/html/Admin/CustomFields/index.html b/share/html/Admin/CustomFields/index.html
index 7283be1..6590ea5 100644
--- a/share/html/Admin/CustomFields/index.html
+++ b/share/html/Admin/CustomFields/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('Select a Custom Field') &>
-<& /Admin/Elements/CustomFieldTabs,
+<& /Elements/Tabs,
     current_tab => 'Admin/CustomFields/', 
     title => _('Select a Custom Field') &>
 
diff --git a/share/html/Admin/Elements/ObjectCustomFields b/share/html/Admin/Elements/ObjectCustomFields
index 8d13a75..96a9af0 100644
--- a/share/html/Admin/Elements/ObjectCustomFields
+++ b/share/html/Admin/Elements/ObjectCustomFields
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <& /Admin/Elements/Header, title => $title &>
-<& $objectTabs,
+<& /Elements/Tabs,
 $id ? (
     id => $object->id, 
     current_tab => "Admin/$Types/CustomFields.html?$sub_type_url&id=".$id, 
diff --git a/share/html/Admin/Global/CustomFields/Groups.html b/share/html/Admin/Global/CustomFields/Groups.html
index 934cbcc..6c2a57f 100644
--- a/share/html/Admin/Global/CustomFields/Groups.html
+++ b/share/html/Admin/Global/CustomFields/Groups.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/GlobalCustomFieldTabs,
+<& /Elements/Tabs,
     current_tab => "Admin/Global/CustomFields/Groups.html",
     current_subtab => "Admin/Global/CustomFields/Groups.html",
     title => $title
diff --git a/share/html/Admin/Global/CustomFields/Queue-Tickets.html b/share/html/Admin/Global/CustomFields/Queue-Tickets.html
index fbed7bf..39ccdc9 100755
--- a/share/html/Admin/Global/CustomFields/Queue-Tickets.html
+++ b/share/html/Admin/Global/CustomFields/Queue-Tickets.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/GlobalCustomFieldTabs,
+<& /Elements/Tabs,
     current_tab => "Admin/Global/CustomFields/Queue-Tickets.html",
     current_subtab => "Admin/Global/CustomFields/Queue-Tickets.html",
     title => $title
diff --git a/share/html/Admin/Global/CustomFields/Queue-Transactions.html b/share/html/Admin/Global/CustomFields/Queue-Transactions.html
index 85044a1..8fc9680 100755
--- a/share/html/Admin/Global/CustomFields/Queue-Transactions.html
+++ b/share/html/Admin/Global/CustomFields/Queue-Transactions.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/GlobalCustomFieldTabs,
+<& /Elements/Tabs,
     current_tab => "Admin/Global/CustomFields/Queue-Transactions.html",
     current_subtab => "Admin/Global/CustomFields/Queue-Transactions.html",
     title => $title
diff --git a/share/html/Admin/Global/CustomFields/Queues.html b/share/html/Admin/Global/CustomFields/Queues.html
index 204b20d..9bd6d34 100644
--- a/share/html/Admin/Global/CustomFields/Queues.html
+++ b/share/html/Admin/Global/CustomFields/Queues.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/GlobalCustomFieldTabs,
+<& /Elements/Tabs,
     current_tab => "Admin/Global/CustomFields/Queues.html",
     current_subtab => "Admin/Global/CustomFields/Queues.html",
     title => $title
diff --git a/share/html/Admin/Global/CustomFields/Users.html b/share/html/Admin/Global/CustomFields/Users.html
index 7877e1a..660cdee 100644
--- a/share/html/Admin/Global/CustomFields/Users.html
+++ b/share/html/Admin/Global/CustomFields/Users.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/GlobalCustomFieldTabs,
+<& /Elements/Tabs,
     current_tab => "Admin/Global/CustomFields/Users.html",
     current_subtab => "Admin/Global/CustomFields/Users.html",
     title => $title
diff --git a/share/html/Admin/Global/CustomFields/index.html b/share/html/Admin/Global/CustomFields/index.html
index 51c7591..32f8a5d 100644
--- a/share/html/Admin/Global/CustomFields/index.html
+++ b/share/html/Admin/Global/CustomFields/index.html
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 % $m->callback( %ARGS, tabs => $tabs );
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/GlobalCustomFieldTabs, title => $title &>
+<& /Elements/Tabs, title => $title &>
 
 <ul>
 % foreach my $key (sort keys %$tabs) {
diff --git a/share/html/Admin/Global/GroupRights.html b/share/html/Admin/Global/GroupRights.html
index ed1c485..2ce12ae 100755
--- a/share/html/Admin/Global/GroupRights.html
+++ b/share/html/Admin/Global/GroupRights.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('Modify global group rights') &>
-<& /Admin/Elements/SystemTabs, 
+<& /Elements/Tabs, 
     current_tab => 'Admin/Global/GroupRights.html', 
     title => _('Modify global group rights') &>  
 <& /Elements/ListActions, actions => \@results &>
diff --git a/share/html/Admin/Global/Jifty.html b/share/html/Admin/Global/Jifty.html
index 5ccabb9..ab6609d 100644
--- a/share/html/Admin/Global/Jifty.html
+++ b/share/html/Admin/Global/Jifty.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/SystemTabs, 
+<& /Elements/Tabs, 
     current_tab => 'Admin/Global/Jifty.html', 
     current_subtab => 'Admin/Global/Jifty.html', 
     title => $title &>
diff --git a/share/html/Admin/Global/MyRT.html b/share/html/Admin/Global/MyRT.html
index d112910..95a37ef 100644
--- a/share/html/Admin/Global/MyRT.html
+++ b/share/html/Admin/Global/MyRT.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _("RT at a glance") &>
-<& /Admin/Elements/SystemTabs,
+<& /Elements/Tabs,
     current_tab => 'Admin/Global/MyRT.html',
     title => _("RT at a glance"),
 &>
diff --git a/share/html/Admin/Global/System.html b/share/html/Admin/Global/System.html
index 751b009..7e6b08d 100644
--- a/share/html/Admin/Global/System.html
+++ b/share/html/Admin/Global/System.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/SystemTabs, 
+<& /Elements/Tabs, 
     current_tab => 'Admin/Global/System.html', 
     current_subtab => 'Admin/Global/System.html', 
     subtabs => $subtabs, 
diff --git a/share/html/Admin/Global/Template.html b/share/html/Admin/Global/Template.html
index 99a5fd2..1875723 100755
--- a/share/html/Admin/Global/Template.html
+++ b/share/html/Admin/Global/Template.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/SystemTabs, 
+<& /Elements/Tabs, 
     current_tab => 'Admin/Global/Templates.html', 
     current_subtab => $current_subtab, 
     subtabs => $subtabs, 
diff --git a/share/html/Admin/Global/Templates.html b/share/html/Admin/Global/Templates.html
index a5baeb7..0cf2691 100755
--- a/share/html/Admin/Global/Templates.html
+++ b/share/html/Admin/Global/Templates.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title, feed_uri => 'templates' &>
-<& /Admin/Elements/SystemTabs, 
+<& /Elements/Tabs, 
     current_tab => 'Admin/Global/Templates.html', 
     current_subtab => 'Admin/Global/Templates.html', 
     subtabs => $subtabs, 
diff --git a/share/html/Admin/Global/UserRights.html b/share/html/Admin/Global/UserRights.html
index 89e42f4..c085ac5 100755
--- a/share/html/Admin/Global/UserRights.html
+++ b/share/html/Admin/Global/UserRights.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('Modify global user rights') &>
-<& /Admin/Elements/SystemTabs, 
+<& /Elements/Tabs, 
     current_tab => 'Admin/Global/UserRights.html',
     title => _('Modify global user rights') &>  
 <& /Elements/ListActions, actions => \@results &>
diff --git a/share/html/Admin/Global/Workflows/Interface.html b/share/html/Admin/Global/Workflows/Interface.html
index 31028b2..ad1cbe8 100644
--- a/share/html/Admin/Global/Workflows/Interface.html
+++ b/share/html/Admin/Global/Workflows/Interface.html
@@ -1,6 +1,6 @@
 <&| /Admin/Elements/Header, title => $title &>
 
-<& Elements/Tabs,
+<& /Elements/Tabs,
     title       => $title,
     schema      => $schema,
     current_tab => 'Admin/Global/Workflows/Interface.html',
diff --git a/share/html/Admin/Global/Workflows/Localization.html b/share/html/Admin/Global/Workflows/Localization.html
index 7d5bf20..1d6c1a4 100644
--- a/share/html/Admin/Global/Workflows/Localization.html
+++ b/share/html/Admin/Global/Workflows/Localization.html
@@ -1,6 +1,6 @@
 <&| /Admin/Elements/Header, title => $title &>
 
-<& Elements/Tabs,
+<& /Elements/Tabs,
     title       => $title,
     current_tab => 'Admin/Global/Workflows/Localization.html',
 &>
diff --git a/share/html/Admin/Global/Workflows/Mappings.html b/share/html/Admin/Global/Workflows/Mappings.html
index 7be09a0..49c18ee 100644
--- a/share/html/Admin/Global/Workflows/Mappings.html
+++ b/share/html/Admin/Global/Workflows/Mappings.html
@@ -1,6 +1,6 @@
 <&| /Admin/Elements/Header, title => $title &>
 
-<& Elements/Tabs,
+<& /Elements/Tabs,
     title       => $title,
     current_tab => 'Admin/Global/Workflows/Mappings.html',
 &>
diff --git a/share/html/Admin/Global/Workflows/Statuses.html b/share/html/Admin/Global/Workflows/Statuses.html
index c5a98aa..c169a24 100644
--- a/share/html/Admin/Global/Workflows/Statuses.html
+++ b/share/html/Admin/Global/Workflows/Statuses.html
@@ -1,6 +1,6 @@
 <&| /Admin/Elements/Header, title => $title &>
 
-<& Elements/Tabs,
+<& /Elements/Tabs,
     title       => $title,
     schema      => $schema,
     current_tab => 'Admin/Global/Workflows/Statuses.html',
diff --git a/share/html/Admin/Global/Workflows/Summary.html b/share/html/Admin/Global/Workflows/Summary.html
index 3d001e2..dc7c5b9 100644
--- a/share/html/Admin/Global/Workflows/Summary.html
+++ b/share/html/Admin/Global/Workflows/Summary.html
@@ -1,6 +1,6 @@
 <&| /Admin/Elements/Header, title => $title &>
 
-<& Elements/Tabs,
+<& /Elements/Tabs,
     title       => $title,
     schema      => $schema,
     current_tab => 'Admin/Global/Workflows/Summary.html',
diff --git a/share/html/Admin/Global/Workflows/Transitions.html b/share/html/Admin/Global/Workflows/Transitions.html
index 772ede3..dd6de8f 100644
--- a/share/html/Admin/Global/Workflows/Transitions.html
+++ b/share/html/Admin/Global/Workflows/Transitions.html
@@ -1,6 +1,6 @@
 <&| /Admin/Elements/Header, title => $title &>
 
-<& Elements/Tabs,
+<& /Elements/Tabs,
     title       => $title,
     schema      => $schema,
     current_tab => 'Admin/Global/Workflows/Transitions.html',
diff --git a/share/html/Admin/Global/Workflows/index.html b/share/html/Admin/Global/Workflows/index.html
index b1c5036..aad48c8 100644
--- a/share/html/Admin/Global/Workflows/index.html
+++ b/share/html/Admin/Global/Workflows/index.html
@@ -1,6 +1,6 @@
 <&| /Admin/Elements/Header, title => $title &>
 
-<& Elements/Tabs,
+<& /Elements/Tabs,
     title       => $title,
     current_tab => 'Admin/Global/Workflows/index.html',
 &>
diff --git a/share/html/Admin/Global/index.html b/share/html/Admin/Global/index.html
index 2c10888..d1ac570 100755
--- a/share/html/Admin/Global/index.html
+++ b/share/html/Admin/Global/index.html
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 % $m->callback( %ARGS, tabs => $tabs );
 <&| /Admin/Elements/Header, title => _('Admin/Global configuration') &>
-<& /Admin/Elements/SystemTabs, 
+<& /Elements/Tabs, 
     title => _('Admin/Global configuration') &>
 <& /Elements/ListMenu, items => $tabs &>
 </&>
diff --git a/share/html/Admin/Groups/GroupRights.html b/share/html/Admin/Groups/GroupRights.html
index 966680c..b599a80 100755
--- a/share/html/Admin/Groups/GroupRights.html
+++ b/share/html/Admin/Groups/GroupRights.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('Modify group rights for group %1', $GroupObj->name) &>
-<& /Admin/Elements/GroupTabs, 
+<& /Elements/Tabs, 
     group_obj => $GroupObj, 
     current_tab => 'Admin/Groups/GroupRights.html?id='.$id, 
     title => _('Modify group rights for group %1', $GroupObj->name) &>
diff --git a/share/html/Admin/Groups/History.html b/share/html/Admin/Groups/History.html
index 860fe84..8a1b40c 100644
--- a/share/html/Admin/Groups/History.html
+++ b/share/html/Admin/Groups/History.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title  &>
-<& /Admin/Elements/GroupTabs, 
+<& /Elements/Tabs, 
     id => $id, 
     group_obj => $GroupObj,
     current_subtab => $current_tab, 
diff --git a/share/html/Admin/Groups/Members.html b/share/html/Admin/Groups/Members.html
index 5bde294..f69b23a 100755
--- a/share/html/Admin/Groups/Members.html
+++ b/share/html/Admin/Groups/Members.html
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('RT/Admin/Edit the group %1', $Group->name) &>
 
-<& /Admin/Elements/GroupTabs, group_obj => $Group, 
+<& /Elements/Tabs, group_obj => $Group, 
     current_tab => 'Admin/Groups/Members.html?id='.$id, 
     title => "RT/Admin/Edit the group ". $Group->name &>
 <& /Elements/ListActions, actions => \@results &>
diff --git a/share/html/Admin/Groups/Modify.html b/share/html/Admin/Groups/Modify.html
index 61bd928..c4fa7bb 100755
--- a/share/html/Admin/Groups/Modify.html
+++ b/share/html/Admin/Groups/Modify.html
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title  &>
 
-<& /Admin/Elements/GroupTabs, 
+<& /Elements/Tabs, 
     group_obj => $Group, 
     current_tab => $current_tab, 
     title => $title &>
diff --git a/share/html/Admin/Groups/UserRights.html b/share/html/Admin/Groups/UserRights.html
index 5f547a7..a0f1f7b 100755
--- a/share/html/Admin/Groups/UserRights.html
+++ b/share/html/Admin/Groups/UserRights.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('Modify user rights for group %1', $GroupObj->name) &>
-<& /Admin/Elements/GroupTabs, 
+<& /Elements/Tabs, 
     group_obj => $GroupObj, 
     current_tab => 'Admin/Groups/UserRights.html?id='.$id, 
     title => _('Modify user rights for group %1', $GroupObj->name) &>  
diff --git a/share/html/Admin/Groups/index.html b/share/html/Admin/Groups/index.html
index 79fcfb3..53cde1b 100755
--- a/share/html/Admin/Groups/index.html
+++ b/share/html/Admin/Groups/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/GroupTabs, current_tab => 'Admin/Groups/',
+<& /Elements/Tabs, current_tab => 'Admin/Groups/',
     current_subtab => 'Admin/Groups/', 
     title => $title &>
 <% $caption %>:<br />
diff --git a/share/html/Admin/Queues/CustomField.html b/share/html/Admin/Queues/CustomField.html
index 3c9b60f..b40228b 100755
--- a/share/html/Admin/Queues/CustomField.html
+++ b/share/html/Admin/Queues/CustomField.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/QueueTabs, id => $queue_obj->id, 
+<& /Elements/Tabs, id => $queue_obj->id, 
     queue_obj => $queue_obj,                                                      
     current_tab => 'Admin/Queues/CustomFields.html?id='.$queue_obj->id, 
     current_subtab => $current_subtab, 
diff --git a/share/html/Admin/Queues/CustomFields.html b/share/html/Admin/Queues/CustomFields.html
index df8827e..455ee5f 100755
--- a/share/html/Admin/Queues/CustomFields.html
+++ b/share/html/Admin/Queues/CustomFields.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<&    /Admin/Elements/QueueTabs,
+<& /Elements/Tabs,
     id => $object->id, 
     current_tab => "Admin/Queues/CustomFields.html?sub_type=$sub_type&id=$id", 
     current_subtab => "Admin/Queues/CustomFields.html?sub_type=$sub_type&id=$id", 
diff --git a/share/html/Admin/Queues/GroupRights.html b/share/html/Admin/Queues/GroupRights.html
index c7cf05c..1814ba9 100755
--- a/share/html/Admin/Queues/GroupRights.html
+++ b/share/html/Admin/Queues/GroupRights.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('Modify group rights for queue %1', $queue_obj->name) &>
-<& /Admin/Elements/QueueTabs, id => $id, 
+<& /Elements/Tabs, id => $id, 
     queue_obj => $queue_obj,                                                      
     current_tab => $current_tab, 
     title => _('Modify group rights for queue %1', $queue_obj->name) &>
diff --git a/share/html/Admin/Queues/Modify.html b/share/html/Admin/Queues/Modify.html
index 59de733..632cdb1 100755
--- a/share/html/Admin/Queues/Modify.html
+++ b/share/html/Admin/Queues/Modify.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/QueueTabs, id => $queue_obj->id, 
+<& /Elements/Tabs, id => $queue_obj->id, 
     queue_obj => $queue_obj,
     current_tab => $current_tab, 
     title => $title &>
diff --git a/share/html/Admin/Queues/People.html b/share/html/Admin/Queues/People.html
index df03643..4a3c052 100755
--- a/share/html/Admin/Queues/People.html
+++ b/share/html/Admin/Queues/People.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _('Modify people related to queue %1', $queue_obj->name) &>
-<& /Admin/Elements/QueueTabs, id => $id, 
+<& /Elements/Tabs, id => $id, 
     queue_obj => $queue_obj,                                                      
     current_tab => $current_tab, 
     title => _('Modify people related to queue %1', $queue_obj->name) &>
diff --git a/share/html/Admin/Queues/Template.html b/share/html/Admin/Queues/Template.html
index 848dd9d..3408970 100755
--- a/share/html/Admin/Queues/Template.html
+++ b/share/html/Admin/Queues/Template.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/QueueTabs, id => $queue, 
+<& /Elements/Tabs, id => $queue, 
     queue_obj => $queue_obj,
      current_tab => 'Admin/Queues/Templates.html?id='.$queue,
      current_subtab => $current_subtab, 
diff --git a/share/html/Admin/Queues/Templates.html b/share/html/Admin/Queues/Templates.html
index e75ead3..d0ee8fa 100755
--- a/share/html/Admin/Queues/Templates.html
+++ b/share/html/Admin/Queues/Templates.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/QueueTabs, id => $queue_obj->id, 
+<& /Elements/Tabs, id => $queue_obj->id, 
     current_tab => 'Admin/Queues/Templates.html?id='.$id, 
     current_subtab => 'Admin/Queues/Templates.html?id='.$id, 
         queue_obj => $queue_obj,
diff --git a/share/html/Admin/Queues/UserRights.html b/share/html/Admin/Queues/UserRights.html
index f28c358..d7acf88 100755
--- a/share/html/Admin/Queues/UserRights.html
+++ b/share/html/Admin/Queues/UserRights.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('Modify user rights for queue %1', $queue_obj->name) &>
-<& /Admin/Elements/QueueTabs, id => $id,
+<& /Elements/Tabs, id => $id,
     queue_obj => $queue_obj,                                                      
     current_tab => $current_tab, 
     title => _('Modify user rights for queue %1', $queue_obj->name) &>
diff --git a/share/html/Admin/Queues/index.html b/share/html/Admin/Queues/index.html
index b9f5479..6f177d3 100755
--- a/share/html/Admin/Queues/index.html
+++ b/share/html/Admin/Queues/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _("Admin queues") &>
-<& /Admin/Elements/QueueTabs, current_tab => 'Admin/Queues/', 
+<& /Elements/Tabs, current_tab => 'Admin/Queues/', 
     current_subtab => 'Admin/Queues/', 
     title => _("Admin queues") &>
 
diff --git a/share/html/Admin/Tools/Configuration.html b/share/html/Admin/Tools/Configuration.html
index 9cdc980..e8e2a57 100644
--- a/share/html/Admin/Tools/Configuration.html
+++ b/share/html/Admin/Tools/Configuration.html
@@ -55,7 +55,7 @@ unless (Jifty->web->current_user->has_right( object=> RT->system, right => 'Supe
 
 </%init>
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/ToolTabs, 
+<& /Elements/Tabs, 
     current_tab => 'Admin/Tools/Configuration.html',
     current_subtab => 'Admin/Tools/Configuration.html', 
     title => $title &>
diff --git a/share/html/Admin/Tools/Shredder/Elements/Error/NoRights b/share/html/Admin/Tools/Shredder/Elements/Error/NoRights
index 41fb9e0..9dbdd40 100644
--- a/share/html/Admin/Tools/Shredder/Elements/Error/NoRights
+++ b/share/html/Admin/Tools/Shredder/Elements/Error/NoRights
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <& /Admin/Elements/Header, title => 'Error' &>
-<& /Admin/Elements/ToolTabs,
+<& /Elements/Tabs,
 	current_tab => 'Admin/Tools/Shredder',
 	current_subtab => 'Admin/Tools/Shredder',
 	title => 'Error',
diff --git a/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage b/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage
index 7ff3788..829d4d3 100644
--- a/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage
+++ b/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage
@@ -49,7 +49,7 @@
 $path => ''
 </%ARGS>
 <& /Admin/Elements/Header, title => 'Error' &>
-<& /Admin/Elements/ToolTabs,
+<& /Elements/Tabs,
 	current_tab => 'Admin/Tools/Shredder',
 	current_subtab => 'Admin/Tools/Shredder',
 	title => 'Error',
diff --git a/share/html/Admin/Tools/Shredder/index.html b/share/html/Admin/Tools/Shredder/index.html
index 444119c..a68b29a 100644
--- a/share/html/Admin/Tools/Shredder/index.html
+++ b/share/html/Admin/Tools/Shredder/index.html
@@ -52,7 +52,7 @@ $wipeout => ''
 @wipeout_object => ()
 </%ARGS>
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/ToolTabs,
+<& /Elements/Tabs,
     current_tab => 'Admin/Tools/Shredder',
     current_subtab => 'Admin/Tools/Shredder',
     title => $title,
diff --git a/share/html/Admin/Tools/index.html b/share/html/Admin/Tools/index.html
index a813abb..4589080 100644
--- a/share/html/Admin/Tools/index.html
+++ b/share/html/Admin/Tools/index.html
@@ -49,7 +49,7 @@
 my $title = _('System Tools');
 </%init>
 <&| /Admin/Elements/Header, title => $title &>
-<& /Admin/Elements/ToolTabs, 
+<& /Elements/Tabs, 
     current_tab => 'Admin/Tools/index.html',
     current_subtab => 'Admin/Tools/Configuration.html', 
     title => $title &>
diff --git a/share/html/Admin/Users/CustomFields.html b/share/html/Admin/Users/CustomFields.html
index 06510aa..b9e8566 100644
--- a/share/html/Admin/Users/CustomFields.html
+++ b/share/html/Admin/Users/CustomFields.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title &>
-<&    /Admin/Elements/UserTabs,
+<& /Elements/Tabs,
     id => $object->id, 
     current_tab => "Admin/Users/CustomFields.html?$id=".$id, 
     current_subtab => "Admin/Users/CustomFields.html?id=".$id, 
diff --git a/share/html/Admin/Users/GnuPG.html b/share/html/Admin/Users/GnuPG.html
index 7d1918d..1a02779 100644
--- a/share/html/Admin/Users/GnuPG.html
+++ b/share/html/Admin/Users/GnuPG.html
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 
 <&| /Admin/Elements/Header, title => $title  &>
-<& /Admin/Elements/UserTabs, 
+<& /Elements/Tabs, 
     id          => $id, 
     user_object     => $user_object,
     current_tab => 'Admin/Users/GnuPG.html?id='. $id,
diff --git a/share/html/Admin/Users/History.html b/share/html/Admin/Users/History.html
index 1bb9904..8664068 100644
--- a/share/html/Admin/Users/History.html
+++ b/share/html/Admin/Users/History.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title  &>
-<& /Admin/Elements/UserTabs, 
+<& /Elements/Tabs, 
     id => $id, 
     user_object => $user_object,
     current_tab => $current_tab, 
diff --git a/share/html/Admin/Users/Memberships.html b/share/html/Admin/Users/Memberships.html
index f31bc40..5dcbfa0 100644
--- a/share/html/Admin/Users/Memberships.html
+++ b/share/html/Admin/Users/Memberships.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title  &>
-<& /Admin/Elements/UserTabs, 
+<& /Elements/Tabs, 
     id => $id, 
     user_object => $user_object,
     current_tab => $current_tab, 
diff --git a/share/html/Admin/Users/Modify.html b/share/html/Admin/Users/Modify.html
index cf8bc34..e4c49fa 100755
--- a/share/html/Admin/Users/Modify.html
+++ b/share/html/Admin/Users/Modify.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title  &>
-<& /Admin/Elements/UserTabs, 
+<& /Elements/Tabs, 
     id => $id, 
     user_object => $user_object,
     current_tab => $current_tab, 
diff --git a/share/html/Admin/Users/MyRT.html b/share/html/Admin/Users/MyRT.html
index f87f13a..597cf82 100644
--- a/share/html/Admin/Users/MyRT.html
+++ b/share/html/Admin/Users/MyRT.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => $title  &>
-<& /Admin/Elements/UserTabs, 
+<& /Elements/Tabs, 
     id => $id, 
     user_object => $user_object,
     current_tab => $current_tab, 
diff --git a/share/html/Admin/Users/index.html b/share/html/Admin/Users/index.html
index 19594a1..389c240 100755
--- a/share/html/Admin/Users/index.html
+++ b/share/html/Admin/Users/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('Select a user') &>
-<& /Admin/Elements/UserTabs, current_tab => 'Admin/Users/', 
+<& /Elements/Tabs, current_tab => 'Admin/Users/', 
     current_subtab => 'Admin/Users/',
     title => _('Select a user') &>
 
diff --git a/share/html/Admin/index.html b/share/html/Admin/index.html
index e6634e3..18d7e19 100755
--- a/share/html/Admin/index.html
+++ b/share/html/Admin/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /Admin/Elements/Header, title => _('RT Administration') &>
-<& /Admin/Elements/Tabs, title => _('RT Administration') &>
+<& /Elements/Tabs, title => _('RT Administration') &>
 
 <& /Elements/ListMenu, items => $tabs &>
 </&>
diff --git a/share/html/Approvals/Display.html b/share/html/Approvals/Display.html
index b713a58..a3ac676 100755
--- a/share/html/Approvals/Display.html
+++ b/share/html/Approvals/Display.html
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title =>  $title &>
 
-<& Elements/Tabs, 
+<& /Elements/Tabs, 
     current_tab => "Approvals/Display.html", 
     title =>  $title &>
 <form method="post" action="<%RT->config->get('web_path')%>/Approvals/index.html">
diff --git a/share/html/Approvals/index.html b/share/html/Approvals/index.html
index 913e51c..0accd77 100755
--- a/share/html/Approvals/index.html
+++ b/share/html/Approvals/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _("My approvals") &>
-<& /Approvals/Elements/Tabs, title => _("My approvals") &>
+<& /Elements/Tabs, title => _("My approvals") &>
 
 <& /Elements/ListActions, actions => \@actions &>
 <form method="post">
diff --git a/share/html/Dashboards/Modify.html b/share/html/Dashboards/Modify.html
index fc4f93c..e82f388 100644
--- a/share/html/Dashboards/Modify.html
+++ b/share/html/Dashboards/Modify.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Dashboards/Elements/Tabs,
+<& /Elements/Tabs,
     current_subtab => $current_subtab,
     title => $title,
     $create ? () : (dashboard_obj => $Dashboard),
diff --git a/share/html/Dashboards/Queries.html b/share/html/Dashboards/Queries.html
index 8c3032b..59f7ec5 100644
--- a/share/html/Dashboards/Queries.html
+++ b/share/html/Dashboards/Queries.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Dashboards/Elements/Tabs,
+<& /Elements/Tabs,
     current_subtab => $current_subtab,
     title => $title,
     dashboard_obj => $Dashboard &>
diff --git a/share/html/Dashboards/Render.html b/share/html/Dashboards/Render.html
index 347a01d..929062e 100644
--- a/share/html/Dashboards/Render.html
+++ b/share/html/Dashboards/Render.html
@@ -48,7 +48,7 @@
 <&| /_elements/wrapper, title => $title, java_script => $preview, show_bar => $preview  &>
 
 % if ($preview) {
-<& /Dashboards/Elements/Tabs,
+<& /Elements/Tabs,
     current_subtab => $current_subtab,
     title => $title,
     dashboard_obj => $dashboard_obj &>
diff --git a/share/html/Dashboards/Subscription.html b/share/html/Dashboards/Subscription.html
index 577d7bb..17e9bf9 100644
--- a/share/html/Dashboards/Subscription.html
+++ b/share/html/Dashboards/Subscription.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Dashboards/Elements/Tabs,
+<& /Elements/Tabs,
     current_subtab => $current_subtab,
     title => $title,
     dashboard_obj => $dashboard_obj &>
diff --git a/share/html/Dashboards/index.html b/share/html/Dashboards/index.html
index dc8720e..7639033 100644
--- a/share/html/Dashboards/index.html
+++ b/share/html/Dashboards/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Dashboards/Elements/Tabs,
+<& /Elements/Tabs,
     current_subtab => 'Dashboards/index.html',
     title => $title &>
 
diff --git a/share/html/Elements/Tabs b/share/html/Elements/Tabs
new file mode 100644
index 0000000..638be1e
--- /dev/null
+++ b/share/html/Elements/Tabs
@@ -0,0 +1 @@
+%# placeholder until we refactor out all the tabs calls
diff --git a/share/html/Prefs/MyRT.html b/share/html/Prefs/MyRT.html
index e08d369..7c72810 100644
--- a/share/html/Prefs/MyRT.html
+++ b/share/html/Prefs/MyRT.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Prefs/Elements/Tabs,
+<& /Elements/Tabs,
     current_tab => 'Prefs/MyRT.html',
     title => $title,
     searches => \@sys_searches
diff --git a/share/html/Prefs/Other.html b/share/html/Prefs/Other.html
index 70a2b25..666f8e5 100644
--- a/share/html/Prefs/Other.html
+++ b/share/html/Prefs/Other.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /User/Elements/Tabs, 
+<& /Elements/Tabs, 
     current_tab => 'Prefs/Other.html',
     title => $title,
 &>
diff --git a/share/html/Prefs/Quicksearch.html b/share/html/Prefs/Quicksearch.html
index eae8975..8298067 100644
--- a/share/html/Prefs/Quicksearch.html
+++ b/share/html/Prefs/Quicksearch.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Prefs/Elements/Tabs,
+<& /Elements/Tabs,
     current_tab => 'Prefs/MyRT.html',
     current_subtab => 'Prefs/Quicksearch.html',
     title => $title
diff --git a/share/html/Prefs/Search.html b/share/html/Prefs/Search.html
index 8712afa..ac5173d 100644
--- a/share/html/Prefs/Search.html
+++ b/share/html/Prefs/Search.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Prefs/Elements/Tabs,
+<& /Elements/Tabs,
     current_tab => 'Prefs/MyRT.html',
 #    current_subtab => 'Prefs/Search.html?name='.$m->comp('/Elements/QueryString', name => $ARGS{name}),
     current_subtab => 'Prefs/Search.html?name='.$ARGS{name},
diff --git a/share/html/Prefs/SearchOptions.html b/share/html/Prefs/SearchOptions.html
index c92ee4d..53b117b 100644
--- a/share/html/Prefs/SearchOptions.html
+++ b/share/html/Prefs/SearchOptions.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _("Search Preferences") &>
-<& /User/Elements/Tabs, 
+<& /Elements/Tabs, 
     current_tab => "Prefs/SearchOptions.html",
     title => _("Search Preferences")
 &>
diff --git a/share/html/Search/Build.html b/share/html/Search/Build.html
index fa10b35..b902e7f 100644
--- a/share/html/Search/Build.html
+++ b/share/html/Search/Build.html
@@ -66,7 +66,7 @@
 %#   action does quote it (this breaks SQLite).
 %#
 <&| /_elements/wrapper, title => _("Query Builder") &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     current_tab => "Search/Build.html?".$query_string, 
     title => _("Query Builder"),
     %query,
diff --git a/share/html/Search/Bulk.html b/share/html/Search/Bulk.html
index 8663c02..8c0e770 100755
--- a/share/html/Search/Bulk.html
+++ b/share/html/Search/Bulk.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     current_tab => "Search/Bulk.html",
     title => $title,
     format => $ARGS{'format'}, # we don't want the locally modified one
diff --git a/share/html/Search/Chart.html b/share/html/Search/Chart.html
index 97f8dde..4a4ddbf 100644
--- a/share/html/Search/Chart.html
+++ b/share/html/Search/Chart.html
@@ -65,7 +65,7 @@ my @actions = $m->comp( '/Widgets/SavedSearch:process', args => \%ARGS, self =>
 
 </%init>
 <&| /_elements/wrapper, title => $title &>
-<& /Ticket/Elements/Tabs, title => $title &>
+<& /Elements/Tabs, title => $title &>
 <& /Elements/ListActions, actions => \@actions &>
 <& /Search/Elements/Chart, %ARGS &>
 
diff --git a/share/html/Search/Edit.html b/share/html/Search/Edit.html
index 4c7c467..10087a7 100755
--- a/share/html/Search/Edit.html
+++ b/share/html/Search/Edit.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title&>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     current_tab => "Search/Edit.html?".$query_string, 
     title   => $title,
     format  => $format,
diff --git a/share/html/Search/Results.html b/share/html/Search/Results.html
index ace6682..8b63385 100755
--- a/share/html/Search/Results.html
+++ b/share/html/Search/Results.html
@@ -48,7 +48,7 @@
 <&| /_elements/wrapper, title => $title, refresh => Jifty->web->session->get('tickets_refresh_interval'), 
     rss_auto_discovery => $RSSFeedURL,
     link_rel => \%link_rel &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     current_tab => "Search/Results.html".$query_string, 
     title => $title,
     format => $format,
diff --git a/share/html/SelfService/Elements/Header b/share/html/SelfService/Elements/Header
index c2ac4e3..ed81411 100755
--- a/share/html/SelfService/Elements/Header
+++ b/share/html/SelfService/Elements/Header
@@ -46,6 +46,6 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, %ARGS, prefs => '/SelfService/Prefs.html' &>
-<& /SelfService/Elements/Tabs, %ARGS &>
+<& /Elements/Tabs, %ARGS &>
 <% $m->content |n %>
 </&>
diff --git a/share/html/Ticket/Display.html b/share/html/Ticket/Display.html
index dd40440..c113278 100755
--- a/share/html/Ticket/Display.html
+++ b/share/html/Ticket/Display.html
@@ -48,7 +48,7 @@
 <& /Elements/Header,
     title => _("#%1: %2", $ticket_obj->id, $ticket_obj->subject), 
     link_rel => \%link_rel &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $ticket_obj, 
     current_tab => 'Ticket/Display.html?id='.$ticket_obj->id,
     title => _("#%1: %2", $ticket_obj->id, $ticket_obj->subject) &>
diff --git a/share/html/Ticket/Forward.html b/share/html/Ticket/Forward.html
index f075110..7d93bdb 100644
--- a/share/html/Ticket/Forward.html
+++ b/share/html/Ticket/Forward.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $Title &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $ticket_obj, 
     title  => $Title,
 &>
diff --git a/share/html/Ticket/GnuPG.html b/share/html/Ticket/GnuPG.html
index 874a321..3926dfd 100644
--- a/share/html/Ticket/GnuPG.html
+++ b/share/html/Ticket/GnuPG.html
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 
 <&| /_elements/wrapper, title => $title &>
-<& /Ticket/Elements/Tabs,
+<& /Elements/Tabs,
     ticket => $txn->ticket,
     current_tab => 'Ticket/Encrypt.html?id='. $id,
     title => $title,
diff --git a/share/html/Ticket/Graphs/index.html b/share/html/Ticket/Graphs/index.html
index 40ba94f..1cef798 100644
--- a/share/html/Ticket/Graphs/index.html
+++ b/share/html/Ticket/Graphs/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Ticket/Elements/Tabs,
+<& /Elements/Tabs,
     ticket => $ticket,
     title => $title,
     current_tab => "Ticket/ModifyLinks.html?id=$id",
diff --git a/share/html/Ticket/History.html b/share/html/Ticket/History.html
index 1ce87a2..970ab56 100755
--- a/share/html/Ticket/History.html
+++ b/share/html/Ticket/History.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _("Ticket History # %1 %2", $Ticket->id, $Ticket->subject) &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $Ticket, current_tab => 'Ticket/History.html?id='.$Ticket->id, 
     title => _("Ticket History # %1 %2", $Ticket->id, $Ticket->subject) &>
 
diff --git a/share/html/Ticket/Modify.html b/share/html/Ticket/Modify.html
index f0d1c77..49bbe91 100755
--- a/share/html/Ticket/Modify.html
+++ b/share/html/Ticket/Modify.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _('Modify ticket #%1', $ticket_obj->id) &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $ticket_obj, current_subtab => "Ticket/Modify.html?id=".$ticket_obj->id, 
     title => _('Modify ticket #%1', $ticket_obj->id) &>
 
diff --git a/share/html/Ticket/ModifyAll.html b/share/html/Ticket/ModifyAll.html
index 3aca321..98cc0df 100755
--- a/share/html/Ticket/ModifyAll.html
+++ b/share/html/Ticket/ModifyAll.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _("Ticket #%1 Jumbo update: %2", $Ticket->id, $Ticket->subject) &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $Ticket, 
     current_tab => "Ticket/ModifyAll.html?id=".$Ticket->id, 
     title => _("Ticket #%1 Jumbo update: %2", $Ticket->id, $Ticket->subject) &>
diff --git a/share/html/Ticket/ModifyDates.html b/share/html/Ticket/ModifyDates.html
index 63dfe56..8b3dab9 100755
--- a/share/html/Ticket/ModifyDates.html
+++ b/share/html/Ticket/ModifyDates.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _('Modify dates for #%1', $ticket_obj->id) &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $ticket_obj, 
     current_tab => "Ticket/ModifyDates.html?id=".$ticket_obj->id, 
     title => _('Modify dates for #%1', $ticket_obj->id) &> 
diff --git a/share/html/Ticket/ModifyLinks.html b/share/html/Ticket/ModifyLinks.html
index d5279e9..4732cfa 100755
--- a/share/html/Ticket/ModifyLinks.html
+++ b/share/html/Ticket/ModifyLinks.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _("Link ticket #%1", $Ticket->id) &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $Ticket, 
     current_tab => "Ticket/ModifyLinks.html?id=".$Ticket->id, 
     title => _("Link ticket #%1", $Ticket->id) &>
diff --git a/share/html/Ticket/ModifyPeople.html b/share/html/Ticket/ModifyPeople.html
index 1366e3a..251cdb2 100755
--- a/share/html/Ticket/ModifyPeople.html
+++ b/share/html/Ticket/ModifyPeople.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _('Modify people related to ticket #%1', $Ticket->id) &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $Ticket, 
     current_tab => "Ticket/ModifyPeople.html?id=".$Ticket->id, 
     title => _('Modify people related to ticket #%1', $Ticket->id) &>
diff --git a/share/html/Ticket/Reminders.html b/share/html/Ticket/Reminders.html
index d95cb66..8f37167 100755
--- a/share/html/Ticket/Reminders.html
+++ b/share/html/Ticket/Reminders.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _("Reminder ticket #%1", $Ticket->id) &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $Ticket, 
     current_tab => "Ticket/Reminders.html?id=".$Ticket->id, 
     title => _("Reminders for ticket #%1", $Ticket->id) &>
diff --git a/share/html/Ticket/Update.html b/share/html/Ticket/Update.html
index 5d4ad5b..b186ff1 100755
--- a/share/html/Ticket/Update.html
+++ b/share/html/Ticket/Update.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Ticket/Elements/Tabs, 
+<& /Elements/Tabs, 
     ticket => $ticket_obj, 
     title=> $title &>
     
diff --git a/share/html/Tools/MyDay.html b/share/html/Tools/MyDay.html
index fdadfd3..f8a1893 100644
--- a/share/html/Tools/MyDay.html
+++ b/share/html/Tools/MyDay.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Tools/Elements/Tabs, current_tab => "Tools/MyDay.html", title => $title &>
+<& /Elements/Tabs, current_tab => "Tools/MyDay.html", title => $title &>
 
 <& /Elements/ListActions, actions => \@results &>
 
diff --git a/share/html/Tools/Reports/CreatedByDates.html b/share/html/Tools/Reports/CreatedByDates.html
index ecae42c..48fc23a 100644
--- a/share/html/Tools/Reports/CreatedByDates.html
+++ b/share/html/Tools/Reports/CreatedByDates.html
@@ -61,7 +61,7 @@ my $before = RT::DateTime->new_from_string($created_before);
 $q->load_by_cols(name => $queue);
 </%init>
 <&| /_elements/wrapper, title => $title &>
-<& /Tools/Reports/Elements/Tabs, current_tab => 'Tools/Reports/CreatedByDates.html', title => $title &>
+<& /Elements/Tabs, current_tab => 'Tools/Reports/CreatedByDates.html', title => $title &>
 <form method="post" action="CreatedByDates.html">
 % if ($queue || $before->is_set || $after->is_set) {
 % # if we have a queue, do the search
diff --git a/share/html/Tools/Reports/ResolvedByDates.html b/share/html/Tools/Reports/ResolvedByDates.html
index 8edeee6..cbd61fd 100644
--- a/share/html/Tools/Reports/ResolvedByDates.html
+++ b/share/html/Tools/Reports/ResolvedByDates.html
@@ -61,7 +61,7 @@ my $before = RT::DateTime->new_from_string($resolved_before);
 $q->load_by_cols(name => $queue);
 </%init>
 <&| /_elements/wrapper, title => $title &>
-<& /Tools/Reports/Elements/Tabs, current_tab => 'Tools/Reports/ResolvedByDates.html', title => $title &>
+<& /Elements/Tabs, current_tab => 'Tools/Reports/ResolvedByDates.html', title => $title &>
 <form method="post" action="ResolvedByDates.html">
 % if ($queue || $before->is_set || $after->is_set) {
 % # if we have a queue, do the search
diff --git a/share/html/Tools/Reports/ResolvedByOwner.html b/share/html/Tools/Reports/ResolvedByOwner.html
index fd100e5..d223a2c 100644
--- a/share/html/Tools/Reports/ResolvedByOwner.html
+++ b/share/html/Tools/Reports/ResolvedByOwner.html
@@ -54,7 +54,7 @@ my $q = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 $q->load_by_cols(name => $queue);
 </%init>
 <&| /_elements/wrapper, title => $title &>
-<& /Tools/Reports/Elements/Tabs, current_tab => '/Tools/Reports/ResolvedByOwner.html', title => $title &>
+<& /Elements/Tabs, current_tab => '/Tools/Reports/ResolvedByOwner.html', title => $title &>
 <form method="post" action="ResolvedByOwner.html">
 % if ($queue) {
 % # if we have a queue, do the search
diff --git a/share/html/Tools/Reports/index.html b/share/html/Tools/Reports/index.html
index 7eeac48..a900027 100644
--- a/share/html/Tools/Reports/index.html
+++ b/share/html/Tools/Reports/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _('Reports') &>
-<& /Tools/Reports/Elements/Tabs, title => _('Reports') &>
+<& /Elements/Tabs, title => _('Reports') &>
 <& /Elements/ListMenu, items => $tabs &>
 
 % $m->callback;
diff --git a/share/html/Tools/index.html b/share/html/Tools/index.html
index f1d0c40..258b1eb 100644
--- a/share/html/Tools/index.html
+++ b/share/html/Tools/index.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => _("Tools") &>
-<& Elements/Tabs, 
+<& /Elements/Tabs, 
     current_tab => "Tools/index.html", 
     title => _("Tools") &>
 <& /Elements/ListMenu, items => $tabs &>
diff --git a/share/html/User/Prefs.html b/share/html/User/Prefs.html
index e05aaaf..0ad4df3 100755
--- a/share/html/User/Prefs.html
+++ b/share/html/User/Prefs.html
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title=>_("Preferences") &>
-<& /User/Elements/Tabs, 
+<& /Elements/Tabs, 
     current_tab => 'User/Prefs.html', 
     title=>_("Preferences") &>
 

commit aa74b3b6a1a1b08e72c107f1286b1a0b5d335611
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Oct 21 13:26:58 2009 -0400

    now show jifty's nav menu

diff --git a/share/html/Elements/Header b/share/html/Elements/Header
index b52c024..2cbf5ff 100755
--- a/share/html/Elements/Header
+++ b/share/html/Elements/Header
@@ -104,6 +104,8 @@
 % }
 </div>
 
+
+% Jifty->web->navigation->render_as_menu();
 %# template login already has div with id "body"
 % unless ( Jifty->web->request->path =~ m{^/login} ) {
 <div id="body">

commit 6a4993f3f5c17a3ba50ef18a3d2d1eca2ebdfc9c
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Oct 21 13:27:59 2009 -0400

    remove outdated nav css

diff --git a/share/web/static/css/nav.css b/share/web/static/css/nav.css
index afc5abe..e69de29 100644
--- a/share/web/static/css/nav.css
+++ b/share/web/static/css/nav.css
@@ -1,148 +0,0 @@
-div#nav {
- position: absolute;
- left: 0;
- font-size: 0.9em;
- top: 3.2em;
- width: 10.5em;
- background: #fff;
- -moz-border-radius-bottomright: 0.5em;
- -webkit-border-bottom-right-radius: 0.5em;
-  border-left: 1px solid #999;  
-border-top: 1px solid #999;
-
- -moz-border-radius-topright: 0.5em;
- -webkit-border-top-right-radius: 0.5em;
- z-index: 99;
-
-
-}
-
-div#nav ul {
- padding-left: 0.75em;
- margin-left: 0;
- padding-right: 0.75em;
- list-style-type: none;
-}
-
-div#nav li:first-child {
- border-top: 1px solid #ccc;
- padding-top: 0.25em;
-
-}
-
-div#nav li {
- padding: 0.125em;
- padding-bottom: 0.25em;
- margin-bottom: 0.25em;
- border-bottom: 1px solid #ccc;
- padding-left: 0.5em;
- margin-right: 0.25em;
- margin-left: 0em;
-}
-
-div#nav li li:first-child {
-    margin-top: 0.25em;
-}
-div#nav li li {
-    margin-left: -0.5em;
-    padding-left: 0.25em;
-    margin-right: -0.5em;
-}
-
-div#nav li li:last-child {
-    margin-bottom: 0; 
-    padding-bottom: 0;
-    border: none;
-}
-
-div#nav .bullet {
- display: none;
-}
-
-div#nav .separator {
-display: none;
-}
-
-
-div#nav a, div#page-navigation a{
- text-decoration: none;
- font-weight: normal;
- color: #000;
-}
-
-div#nav a:hover, div#page-navigation a:hover {
- text-decoration: underline;
-}
-
-
-
-div#nav a.selected, div#page-navigation a.selected {
-  font-weight: bold;
-}
-
-
-div#page-navigation {
- position: absolute;
- top: 5em;
- height: 1em;
- left: 9em;
- right: 0em;
- padding-top: 1em;
- background: white;
- z-index: 10;
-
-}
-
-
-div#page-navigation ul {
-
-}
-
-div#page-navigation ul#page-menu {
- display: block;
- position: absolute;
- left: 0em;
- font-size: 0.9em;
- top: -1em;
- height: 1em;
- background-color: white;
- right: 0em;
- padding-top:0.5em;
- padding-bottom:0.5em;
- border-top: 1px solid #aaa;
-
-}
-
-div#page-navigation ul#actions-menu {
- position: absolute;
- right: 1em;
- top: 3.2em;
- margin-top: 0em;
- padding: 0.25em;
- padding-left: 0.5em;
- padding-right: 0.5em;
-
- background: #dedede;
- border-left: 1px solid #aaa;
- border-bottom: 2px solid #aaa;
- -moz-border-radius-bottomleft: 0.5em;
- -webkit-border-bottom-left-radius: 0.5em;
- -moz-border-radius-topright: 0.25em;
- -webkit-border-top-right-radius: 0.25em;
-
-
-
-}
-
-
-
-div#page-navigation ul li{
- display: inline;
-
-}
-
-
-ul.page-navigation ul.page-menu {
- float: right;
-}
-

commit 437d3007b92d02a1f813fed30aade339ca87dc2a
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Oct 21 14:02:55 2009 -0400

    unholy substitutions to get closer to menus

diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index 373c4c1..ebcfb67 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -179,7 +179,9 @@ on qr{^/Ticket/Graphs/(\d+)} => run {
 };
 
 
-
+before qr{.*} => run {
+	Jifty->web->navigation->child( a => label => _('Homepage'), url => '');
+}
 
 
 =for later Navigation
@@ -191,38 +193,42 @@ my $basetopactions = {
 	b => { html => $m->scomp('/Elements/SimpleSearch') 
 		}
 	};
-my $basetabs = {     a => { title => _('Homepage'),
-                           path => '',
-                         },
-                    ab => { title => _('Simple Search'),
-                        path => 'Search/Simple.html'
-                         },
-                    b => { title => _('Tickets'),
-                        path => 'Search/Build.html'
-                      },
-                    c => { title => _('Tools'),
-                           path => 'Tools/index.html'
-                         },
+
+
+
+
+my $basetabs = {     Jifty->navigation->child( a =>  label => _('Homepage'),
+                           url => '',
+                         );
+                    Jifty->navigation->child( ab =>  label => _('Simple Search'),
+                        url => 'Search/Simple.html'
+                         );
+                    Jifty->navigation->child( b =>  label => _('Tickets'),
+                        url => 'Search/Build.html'
+                      );
+                    Jifty->navigation->child( c =>  label => _('Tools'),
+                           url => 'Tools/index.html'
+                         );
                  };
 
 if (Jifty->web->current_user->has_right( right => 'ShowConfigTab', 
 				       object => RT->system )) {
-    $basetabs->{e} = { title => _('Configuration'),
-                       path => 'Admin/',
+    $basetabs->{e} = { label => _('Configuration'),
+                       url => 'Admin/',
 		     };
 }
 
 if (Jifty->web->current_user->has_right( right => 'ModifySelf', 
 				       object => RT->system )) {
-    $basetabs->{k} = { title => _('Preferences'),
-                       path => 'Prefs/Other.html'
+    $basetabs->{k} = { label => _('Preferences'),
+                       url => 'Prefs/Other.html'
 		     };
 }
 
 if (Jifty->web->current_user->has_right( right => 'ShowApprovalsTab',
                         object => RT->system )) {
-    $basetabs->{p} = { title => _('Approval'),
-                        path => 'Approvals/'
+    $basetabs->{p} = { label => _('Approval'),
+                        url => 'Approvals/'
             };
 }
 
@@ -242,34 +248,34 @@ $m->callback(
 
 #/Tools tabs
 my $tabs = {
-    a => {
-        title => _('Dashboards'),
-        path  => 'Dashboards/index.html',
-    },
-    c => {
-        title => _('Reports'),
-        path  => 'Tools/Reports/index.html',
-    },
-    d => {
-        title => _('My Day'),
-        path  => 'Tools/MyDay.html',
-    },
+    Jifty->navigation->child( a => 
+        label => _('Dashboards'),
+        url  => 'Dashboards/index.html',
+    );
+    Jifty->navigation->child( c => 
+        label => _('Reports'),
+        url  => 'Tools/Reports/index.html',
+    );
+    Jifty->navigation->child( d => 
+        label => _('My Day'),
+        url  => 'Tools/MyDay.html',
+    );
 };
 
 #/Tools/Reports tabs
 my $tabs = {
-    a => {
-        title => _('Resolved by owner'),
-        path  => 'Tools/Reports/ResolvedByOwner.html',
-    },
-    b => {
-        title => _('Resolved in date range'),
-        path  => 'Tools/Reports/ResolvedByDates.html',
-    },
-    c => {
-        title => _('Created in a date range'),
-        path  => 'Tools/Reports/CreatedByDates.html',
-    },
+    Jifty->navigation->child( a => 
+        label => _('Resolved by owner'),
+        url  => 'Tools/Reports/ResolvedByOwner.html',
+    );
+    Jifty->navigation->child( b => 
+        label => _('Resolved in date range'),
+        url  => 'Tools/Reports/ResolvedByDates.html',
+    );
+    Jifty->navigation->child( c => 
+        label => _('Created in a date range'),
+        url  => 'Tools/Reports/CreatedByDates.html',
+    );
 };
 
 
@@ -287,49 +293,49 @@ if ( $dashboard_obj and $dashboard_obj->id ) {
     my $render  = "Dashboards/" . $dashboard_obj->id . "/$name";
 
     $tabs->{"this"} = {
-        title   => $dashboard_obj->name,
-        path    => $modify,
+        label   => $dashboard_obj->name,
+        url    => $modify,
         current_subtab  => $current_subtab,
-        subtabs => {
-            a_Basics => { title => _('Basics'),
-                          path  => $modify,
-            },
+        Jifty->navigation->child( subtabs => 
+            Jifty->navigation->child( a_Basics =>  label => _('Basics'),
+                          url  => $modify,
+            );
 
-            b_Queries => { title => _('Queries'),
-                           path  => $queries,
-            },
+            Jifty->navigation->child( b_Queries =>  label => _('Queries'),
+                           url  => $queries,
+            );
 
-            c_Subscription => { title => _('Subscription'),
-                                path  =>
+            Jifty->navigation->child( c_Subscription =>  label => _('Subscription'),
+                                url  =>
                                     "Dashboards/Subscription.html?dashboard_id=" . $dashboard_obj->id
-            },
+            );
 
 
-            z_Preview => { title => _('Show'),
-                           path  => $render,
-            },
+            Jifty->navigation->child( z_Preview =>  label => _('Show'),
+                           url  => $render,
+            );
         }
     };
 
     delete $tabs->{"this"}{"subtabs"}{"c_Subscription"}
         unless $dashboard_obj->current_user_can_subscribe;
 
-    $tabs->{"this"}{"subtabs"}{"z_Preview"}{path} = $real_subtab
+    $tabs->{"this"}{"subtabs"}{"z_Preview"}{url} = $real_subtab
         if $real_subtab =~ /Render/
         || $real_subtab =~ /Dashboard\/\d+/;
 
     $current_subtab = $modify;
 }
 
-$tabs->{"A"} = { title => _('Select dashboard'),
-                 path  => "Dashboards/index.html" };
+$tabs->{"A"} = { label => _('Select dashboard'),
+                 url  => "Dashboards/index.html" };
 
 my $dashboard = RT::Dashboard->new( current_user => Jifty->web->current_user );
 my @objects = $dashboard->_privacy_objects(create => 1);
 
 if (@objects) {
-    $tabs->{"B"} = { title     => _('New dashboard'),
-                     path      => "Dashboards/Modify.html?create=1",
+    $tabs->{"B"} = { label     => _('New dashboard'),
+                     url      => "Dashboards/Modify.html?create=1",
                      separator => 1 };
 }
 
@@ -353,40 +359,40 @@ while (my $queue = $queues->next) {
   last if ($queue_count > 1);
 }
 
-if ($title) {
-$title = _("RT Self Service") . " / " . $title;
+if ($label) {
+$label = _("RT Self Service") . " / " . $label;
 } else {
-$title = _("RT Self Service");
+$label = _("RT Self Service");
 
 }
 my ($tab);
-my $tabs = { A  => { title => _('Open tickets'),
-                        path => 'SelfService/',
-                      },
-             B => { title => _('Closed tickets'),
-                         path => 'SelfService/Closed.html',
-                       },
+my $tabs = { Jifty->navigation->child( A =>  label => _('Open tickets'),
+                        url => 'SelfService/',
+                      );
+             Jifty->navigation->child( B =>  label => _('Closed tickets'),
+                         url => 'SelfService/Closed.html',
+                       );
            };
 
 if ($queue_count > 1) {
-        $tabs->{C} = { title => _('New ticket'),
-                       path => 'SelfService/CreateTicketInQueue.html'
+        $tabs->{C} = { label => _('New ticket'),
+                       url => 'SelfService/CreateTicketInQueue.html'
                        };
 } else {
-        $tabs->{C} = { title => _('New ticket'),
-                       path => 'SelfService/Create.html?queue=' . $queue_id
+        $tabs->{C} = { label => _('New ticket'),
+                       url => 'SelfService/Create.html?queue=' . $queue_id
                        };
 }
 
 if (Jifty->web->current_user->has_right( right => 'ModifySelf',
 				       object => RT->system )) {
-	$tabs->{Z} = { title => _('Preferences'),
-		       path => 'SelfService/Prefs.html'
+	$tabs->{Z} = { label => _('Preferences'),
+		       url => 'SelfService/Prefs.html'
 		       };
 }
 
 my $actions = {
-	B => { html => $m->scomp('GotoTicket') 
+	Jifty->navigation->child( B =>  html => $m->scomp('GotoTicket') 
 		}
 	};
 
@@ -399,23 +405,23 @@ if ($id) {
     my $cf = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
     $cf->load($id);
     $tabs = {
-        this => {
-            title => $cf->name,
-            path  => "Admin/CustomFields/Modify.html?id=" . $id,
+        Jifty->navigation->child( this => 
+            label => $cf->name,
+            url  => "Admin/CustomFields/Modify.html?id=" . $id,
             current_subtab => $current_tab,
 
-            subtabs => {
+            Jifty->navigation->child( subtabs => 
 
-                C => { title => _('Basics'),
-                       path  => "Admin/CustomFields/Modify.html?id=" . $id,
-                },
-                F => { title => _('Group rights'),
-                       path  => "Admin/CustomFields/GroupRights.html?id="
-                         . $id, },
-                G => {
-                    title => _('User rights'),
-                    path => "Admin/CustomFields/UserRights.html?id=" . $id,
-                },
+                Jifty->navigation->child( C =>  label => _('Basics'),
+                       url  => "Admin/CustomFields/Modify.html?id=" . $id,
+                );
+                Jifty->navigation->child( F =>  label => _('Group rights'),
+                       url  => "Admin/CustomFields/GroupRights.html?id="
+                         . $id, );
+                Jifty->navigation->child( G => 
+                    label => _('User rights'),
+                    url => "Admin/CustomFields/UserRights.html?id=" . $id,
+                );
 
             } }
 
@@ -424,18 +430,18 @@ if ($id) {
 
     if ($cf->lookup_type =~ /^RT::Model::Queue-/io) {
 	$tabs->{'this'}->{subtabs}->{D} = {
-	title => _('Applies to'),
-	    path  => "Admin/CustomFields/Objects.html?id=" . $id,
+	label => _('Applies to'),
+	    url  => "Admin/CustomFields/Objects.html?id=" . $id,
 	};
     }
 }
 
 if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminCustomField')) {
-  $tabs->{"A"} = { title => _('Select'),
-                        path => "Admin/CustomFields/",
+  $tabs->{"A"} = { label => _('Select'),
+                        url => "Admin/CustomFields/",
                            };
-  $tabs->{"B"} = { title => _('Create'),
-                        path => "Admin/CustomFields/Modify.html?create=1",
+  $tabs->{"B"} = { label => _('Create'),
+                        url => "Admin/CustomFields/Modify.html?create=1",
                         separator => 1,
                            };
 }
@@ -444,7 +450,7 @@ if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminCu
   $m->callback( %ARGS, tabs => $tabs );
 
 foreach my $tab (sort keys %{$tabs->{'this'}->{'subtabs'}}) {
-    if ($tabs->{'this'}->{'subtabs'}->{$tab}->{'path'} eq $current_tab) {
+    if ($tabs->{'this'}->{'subtabs'}->{$tab}->{'url'} eq $current_tab) {
 	$tabs->{'this'}->{'subtabs'}->{$tab}->{'subtabs'} = $subtabs;
 	$tabs->{'this'}->{'subtabs'}->{$tab}->{'current_subtab'} = $current_subtab;
     }
@@ -454,57 +460,57 @@ if( $id ) { $current_tab = "Admin/CustomFields/Modify.html?id=" . $id }
 # /Admin tabs
 
 
-  my $tabs = { A => { title => _('Users'),
-			  path => 'Admin/Users/',
-			},
-	       B => { title => _('Groups'),
-			   path => 'Admin/Groups/',
-			 },
-	       C => { title => _('Queues'),
-			   path => 'Admin/Queues/',
-			 },
-	       D => { 'title' => _('Custom Fields'),
-			   path => 'Admin/CustomFields/',
-			 },
-	       E => { 'title' => _('Rules'),
-			   path => 'admin/rules/',
-			 },
-	       F => { 'title' => _('Global'),
-			   path => 'Admin/Global/',
-			 },
-	       G => { 'title' => _('Tools'),
-			   path => 'Admin/Tools/',
-			 },
+  my $tabs = { Jifty->navigation->child( A =>  label => _('Users'),
+			  url => 'Admin/Users/',
+			);
+	       Jifty->navigation->child( B =>  label => _('Groups'),
+			   url => 'Admin/Groups/',
+			 );
+	       Jifty->navigation->child( C =>  label => _('Queues'),
+			   url => 'Admin/Queues/',
+			 );
+	       Jifty->navigation->child( D =>  'label' => _('Custom Fields'),
+			   url => 'Admin/CustomFields/',
+			 );
+	       Jifty->navigation->child( E =>  'label' => _('Rules'),
+			   url => 'admin/rules/',
+			 );
+	       Jifty->navigation->child( F =>  'label' => _('Global'),
+			   url => 'Admin/Global/',
+			 );
+	       Jifty->navigation->child( G =>  'label' => _('Tools'),
+			   url => 'Admin/Tools/',
+			 );
 	     };
 
 # /Admin/Global tabs
   my $tabs = {
-               B => { title => _('Templates'),
-                        path => 'Admin/Global/Templates.html',
-                      },
-                C => { title => _('Workflows'),
-                        path => 'Admin/Global/Workflows/index.html',
-                        },
+               Jifty->navigation->child( B =>  label => _('Templates'),
+                        url => 'Admin/Global/Templates.html',
+                      );
+                Jifty->navigation->child( C =>  label => _('Workflows'),
+                        url => 'Admin/Global/Workflows/index.html',
+                        );
               
-                F => { title => _('Custom Fields'),
-                        path => 'Admin/Global/CustomFields/index.html',
-                        },
-
-                G => { title => _('Group rights'),
-                                path => 'Admin/Global/GroupRights.html',
-                      },
-                H => { title => _('User rights'),
-                                path => 'Admin/Global/UserRights.html',
-                      },
-                I => { title => _('RT at a glance'),
-                                path => 'Admin/Global/MyRT.html',
-                      },
-                Y => { title => _('Jifty'),
-                                path => 'Admin/Global/Jifty.html',
-                      },
-                Z => { title => _('System'),
-                                path => 'Admin/Global/System.html',
-                      },
+                Jifty->navigation->child( F =>  label => _('Custom Fields'),
+                        url => 'Admin/Global/CustomFields/index.html',
+                        );
+
+                Jifty->navigation->child( G =>  label => _('Group rights'),
+                                url => 'Admin/Global/GroupRights.html',
+                      );
+                Jifty->navigation->child( H =>  label => _('User rights'),
+                                url => 'Admin/Global/UserRights.html',
+                      );
+                Jifty->navigation->child( I =>  label => _('RT at a glance'),
+                                url => 'Admin/Global/MyRT.html',
+                      );
+                Jifty->navigation->child( Y =>  label => _('Jifty'),
+                                url => 'Admin/Global/Jifty.html',
+                      );
+                Jifty->navigation->child( Z =>  label => _('System'),
+                                url => 'Admin/Global/System.html',
+                      );
 
 };
 
@@ -514,18 +520,18 @@ if( $id ) { $current_tab = "Admin/CustomFields/Modify.html?id=" . $id }
 my $base = "Admin/Global/Workflows";
 my $parent_subtab;
 my $parent_subtabs = {
-    A => {
-        title => _('Select') .'/'. _('Create'),
-        path => "$base/index.html",
-    },
-    B => {
-        title => _('Localization'),
-        path => "$base/Localization.html",
-    },
-    C => {
-        title => _('Mappings'),
-        path => "$base/Mappings.html",
-    },
+    Jifty->navigation->child( A => 
+        label => _('Select') .'/'. _('Create'),
+        url => "$base/index.html",
+    );
+    Jifty->navigation->child( B => 
+        label => _('Localization'),
+        url => "$base/Localization.html",
+    );
+    Jifty->navigation->child( C => 
+        label => _('Mappings'),
+        url => "$base/Mappings.html",
+    );
 };
 
 if ( $schema ) {
@@ -534,28 +540,28 @@ if ( $schema ) {
 
     $parent_subtab = "$base/Summary.html?$qs_name";
     $parent_subtabs->{'E'} = {
-        title          => $schema->name,
-        path           => $parent_subtab,
+        label          => $schema->name,
+        url           => $parent_subtab,
         separator      => 1,
         current_subtab => $current_tab,
-        subtabs => {
-            A => {
-                title => _("Summary"),
-                path  => "$base/Summary.html?$qs_name",
-            },
-            B => {
-                title => _("Statuses"),
-                path  => "$base/Statuses.html?$qs_name",
-            },
-            C => {
-                title => _("Transitions"),
-                path  => "$base/Transitions.html?$qs_name",
-            },
-            D => {
-                title => _("Interface"),
-                path  => "$base/Interface.html?$qs_name",
-            },
-        },
+        Jifty->navigation->child( subtabs => 
+            Jifty->navigation->child( A => 
+                label => _("Summary"),
+                url  => "$base/Summary.html?$qs_name",
+            );
+            Jifty->navigation->child( B => 
+                label => _("Statuses"),
+                url  => "$base/Statuses.html?$qs_name",
+            );
+            Jifty->navigation->child( C => 
+                label => _("Transitions"),
+                url  => "$base/Transitions.html?$qs_name",
+            );
+            Jifty->navigation->child( D => 
+                label => _("Interface"),
+                url  => "$base/Interface.html?$qs_name",
+            );
+        );
     };
 }
 else {
@@ -588,14 +594,14 @@ if ($ticket) {
         if ( $item_map->{ $ticket->id }->{prev} ) {
             $searchtabs->{'_a'} = {
                 class => "nav",
-                path  => "Ticket/Display.html?id=" . $item_map->{first},
-                title => '<< ' . _('First')
+                url  => "Ticket/Display.html?id=" . $item_map->{first);
+                label => '<< ' . _('First')
             };
             $searchtabs->{"_b"} = {
                 class => "nav",
-                path  => "Ticket/Display.html?id="
-                    . $item_map->{ $ticket->id }->{prev},
-                title => '< ' . _('Prev')
+                url  => "Ticket/Display.html?id="
+                    . $item_map->{ $ticket->id }->{prev);
+                label => '< ' . _('Prev')
             };
         }
   
@@ -603,72 +609,72 @@ if ($ticket) {
         if ( $item_map->{ $ticket->id }->{next} ) {
             $searchtabs->{'d'} = {
                 class => "nav",
-                path  => "Ticket/Display.html?id="
-                    . $item_map->{ $ticket->id }->{next},
-                title => _('next') . ' >'
+                url  => "Ticket/Display.html?id="
+                    . $item_map->{ $ticket->id }->{next);
+                label => _('next') . ' >'
             };
             $searchtabs->{'e'} = {
                 class => "nav",
-                path  => "Ticket/Display.html?id=" . $item_map->{last},
-                title => _('Last') . ' >>'
+                url  => "Ticket/Display.html?id=" . $item_map->{last);
+                label => _('Last') . ' >>'
             };
         }
     }
 
     $tabs->{"this"} = {
         class          => "currentnav",
-        path           => "Ticket/Display.html?id=" . $ticket->id,
-        title          => "#" . $id,
+        url           => "Ticket/Display.html?id=" . $ticket->id,
+        label          => "#" . $id,
         current_subtab => $current_subtab
     };
 
     my $ticket_page_tabs = {
-        _A => {
-            title => _('Display'),
-            path  => "Ticket/Display.html?id=" . $id,
-        },
-
-        _Ab => {
-            title => _('History'),
-            path  => "Ticket/History.html?id=" . $id,
-        },
-        _B => {
-            title => _('Basics'),
-            path  => "Ticket/Modify.html?id=" . $id,
-        },
-
-        _C => {
-            title => _('Dates'),
-            path  => "Ticket/ModifyDates.html?id=" . $id,
-        },
-        _D => {
-            title => _('People'),
-            path  => "Ticket/ModifyPeople.html?id=" . $id,
-        },
-        _E => {
-            title => _('Links'),
-            path  => "Ticket/ModifyLinks.html?id=" . $id,
-        },
-        _X => {
-            title => _('Jumbo'),
-            path  => "Ticket/ModifyAll.html?id=" . $id,
-        },
+        Jifty->navigation->child( _A => 
+            label => _('Display'),
+            url  => "Ticket/Display.html?id=" . $id,
+        );
+
+        Jifty->navigation->child( _Ab => 
+            label => _('History'),
+            url  => "Ticket/History.html?id=" . $id,
+        );
+        Jifty->navigation->child( _B => 
+            label => _('Basics'),
+            url  => "Ticket/Modify.html?id=" . $id,
+        );
+
+        Jifty->navigation->child( _C => 
+            label => _('Dates'),
+            url  => "Ticket/ModifyDates.html?id=" . $id,
+        );
+        Jifty->navigation->child( _D => 
+            label => _('People'),
+            url  => "Ticket/ModifyPeople.html?id=" . $id,
+        );
+        Jifty->navigation->child( _E => 
+            label => _('Links'),
+            url  => "Ticket/ModifyLinks.html?id=" . $id,
+        );
+        Jifty->navigation->child( _X => 
+            label => _('Jumbo'),
+            url  => "Ticket/ModifyAll.html?id=" . $id,
+        );
 
     };
 
     if ( RT->config->get('enable_reminders') ) {
         $ticket_page_tabs->{_F} = {
-            title     => _('Reminders'),
-            path      => "Ticket/Reminders.html?id=" . $id,
+            label     => _('Reminders'),
+            url      => "Ticket/Reminders.html?id=" . $id,
             separator => 1,
         };
     }
 
     foreach my $tab ( sort keys %{$ticket_page_tabs} ) {
-        if ( $ticket_page_tabs->{$tab}->{'path'} eq $current_tab ) {
+        if ( $ticket_page_tabs->{$tab}->{'url'} eq $current_tab ) {
             $ticket_page_tabs->{$tab}->{"subtabs"} = $subtabs;
             $tabs->{'this'}->{"current_subtab"}
-                = $ticket_page_tabs->{$tab}->{"path"};
+                = $ticket_page_tabs->{$tab}->{"url"};
         }
     }
     $tabs->{'this'}->{"subtabs"} = $ticket_page_tabs;
@@ -679,8 +685,8 @@ if ($ticket) {
     if ( $can{'ModifyTicket'} or $ticket->current_user_has_right('ReplyToTicket') )
     {
         $actions->{'F'} = {
-            title => _('Reply'),
-            path  => "Ticket/Update.html?action=respond&id=" . $id,
+            label => _('Reply'),
+            url  => "Ticket/Update.html?action=respond&id=" . $id,
         };
     }
 
@@ -692,24 +698,24 @@ if ($ticket) {
             my $action = $schema->transition_action( $current => $next );
             next if $action eq 'hide';
 
-            my $path = 'Ticket/';
+            my $url = 'Ticket/';
             if ( $action ) {
-                $path .= "Update.html?". $m->comp(
+                $url .= "Update.html?". $m->comp(
                     '/Elements/QueryString',
                     action => $action,
                     default_status => $next,
                     id => $id
                 );
             } else {
-                $path .= "Display.html?". $m->comp(
+                $url .= "Display.html?". $m->comp(
                     '/Elements/QueryString',
                     Status => $next,
                     id => $id
                 );
             }
             $actions->{'G'. $i++} = {
-                path => $path,
-                title => _( $schema->transition_label( $current => $next ) ),
+                url => $url,
+                label => _( $schema->transition_label( $current => $next ) ),
             };
         }
     }
@@ -717,15 +723,15 @@ if ($ticket) {
     if ( $ticket->current_user_has_right('OwnTicket') ) {
         if ( $ticket->owner_obj->id == RT->nobody->id ) {
             $actions->{'B'} = {
-                path  => "Ticket/Display.html?action=take&id=" . $id,
-                title => _('Take'),
+                url  => "Ticket/Display.html?action=take&id=" . $id,
+                label => _('Take'),
                 }
                 if $can{'ModifyTicket'}
                     or $ticket->current_user_has_right('TakeTicket');
         } elsif ( $ticket->owner_obj->id != Jifty->web->current_user->id ) {
             $actions->{'C'} = {
-                path  => "Ticket/Display.html?action=steal&id=" . $id,
-                title => _('Steal'),
+                url  => "Ticket/Display.html?action=steal&id=" . $id,
+                label => _('Steal'),
                 }
                 if $can{'ModifyTicket'}
                     or $ticket->current_user_has_right('StealTicket');
@@ -736,8 +742,8 @@ if ($ticket) {
         or $ticket->current_user_has_right('CommentOnTicket') )
     {
         $actions->{'E'} = {
-            title => _('Comment'),
-            path  => "Ticket/Update.html?action=comment&id=" . $id,
+            label => _('Comment'),
+            url  => "Ticket/Update.html?action=comment&id=" . $id,
         };
     }
 
@@ -769,28 +775,28 @@ $has_query = 1 if ( $ARGS{'query'} or Jifty->web->session->get('CurrentSearchHas
 %query_args = (
 
         saved_search_id => ($search_id eq 'new') ? undef : $search_id,
-        query  => $ARGS{'query'}  || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'query'},
-        format => $ARGS{'format'} || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'format'},
+        query  => $ARGS{'query'}  || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'query');
+        format => $ARGS{'format'} || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'format');
         order_by => $ARGS{'order_by'}
-            || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'order_by'},
-        order => $ARGS{'order'} || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'order'},
-        page  => $ARGS{'page'}  || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'page'},
-        rows_per_page  => $ARGS{'rows_per_page'}  || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'rows_per_page'},
+            || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'order_by');
+        order => $ARGS{'order'} || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'order');
+        page  => $ARGS{'page'}  || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'page');
+        rows_per_page  => $ARGS{'rows_per_page'}  || Jifty->web->session->get('CurrentSearchHash') && Jifty->web->session->get('CurrentSearchHash')->{'rows_per_page');
     );
 
     $args = "?" . $m->comp( '/Elements/QueryString', %query_args );
 
 $tabs->{"f"} = {
-    path  => "Search/Build.html?NewQuery=1",
-    title => _('New Search')
+    url  => "Search/Build.html?NewQuery=1",
+    label => _('New Search')
 };
 $tabs->{"g"} = {
-    path  => "Search/Build.html" . (($has_query) ? $args : ''),
-    title => _('Edit Search')
+    url  => "Search/Build.html" . (($has_query) ? $args : ''),
+    label => _('Edit Search')
 };
 $tabs->{"h"} = {
-    path      => "Search/Edit.html$args",
-    title     => _('Advanced'),
+    url      => "Search/Edit.html$args",
+    label     => _('Advanced'),
     separator => 1
 };
 if ($has_query) {
@@ -805,13 +811,13 @@ if ($has_query) {
                 '/Elements/QueryString',
                 search          => 1,
                 plugin          => 'Tickets',
-                'Tickets:query' => $query_args{'query'},
+                'Tickets:query' => $query_args{'query');
                 'Tickets:limit' => $query_args{'rows'}
             );
 
             $tabs->{"shredder"} = {
-                path  => 'Admin/Tools/Shredder/?' . $shred_args,
-                title => _('Shredder')
+                url  => 'Admin/Tools/Shredder/?' . $shred_args,
+                label => _('Shredder')
             };
 
         }
@@ -821,13 +827,13 @@ if ($has_query) {
     }
 
     $tabs->{"i"} = {
-        path  => "Search/Results.html$args",
-        title => _('Show Results'),
+        url  => "Search/Results.html$args",
+        label => _('Show Results'),
     };
 
     $tabs->{"j"} = {
-        path  => "Search/Bulk.html$args",
-        title => _('Bulk Update'),
+        url  => "Search/Bulk.html$args",
+        label => _('Bulk Update'),
     };
 
 }
@@ -841,54 +847,54 @@ foreach my $searchtab ( keys %{$searchtabs} ) {
 
 # /Admin/tools
     my $tabs = {
-        A => { title => _('System Configuration'),
-               path => 'Admin/Tools/Configuration.html',
-        },
-        E => { title => _('Shredder'),
-               path  => 'Admin/Tools/Shredder',
-        },
+        Jifty->navigation->child( A =>  label => _('System Configuration'),
+               url => 'Admin/Tools/Configuration.html',
+        );
+        Jifty->navigation->child( E =>  label => _('Shredder'),
+               url  => 'Admin/Tools/Shredder',
+        );
     };
 
 # /Admin/Rules
     my $tabs = {
-        A => { title => _('Select'),
-               path  => "Admin/Rules/", },
-        E => { title => _('Create'),
-               path  => 'Admin/Rules/Modify.html?create=1',
-        },
+        Jifty->navigation->child( A =>  label => _('Select'),
+               url  => "Admin/Rules/", );
+        Jifty->navigation->child( E =>  label => _('Create'),
+               url  => 'Admin/Rules/Modify.html?create=1',
+        );
     };
 
 # /Admin/Users tabs
-		path => "Admin/Users/Modify.html?id=".$id,
-subtabs => {
-	       Basics => { title => _('Basics'),
-				path => "Admin/Users/Modify.html?id=".$id
-			},
-	       Memberships => { title => _('Memberships'),
-			   path => "Admin/Users/Memberships.html?id=".$id
-			 },
-	       History => { title => _('History'),
-			   path => "Admin/Users/History.html?id=".$id
-			 },
-	       'MyRT' => { title => _('RT at a glance'),
-			   path => "Admin/Users/MyRT.html?id=".$id
-			 },
+		url => "Admin/Users/Modify.html?id=".$id,
+Jifty->navigation->child( subtabs => 
+	       Jifty->navigation->child( Basics =>  label => _('Basics'),
+				url => "Admin/Users/Modify.html?id=".$id
+			);
+	       Jifty->navigation->child( Memberships =>  label => _('Memberships'),
+			   url => "Admin/Users/Memberships.html?id=".$id
+			 );
+	       Jifty->navigation->child( History =>  label => _('History'),
+			   url => "Admin/Users/History.html?id=".$id
+			 );
+	       'MyRT' => { label => _('RT at a glance'),
+			   url => "Admin/Users/MyRT.html?id=".$id
+			 );
 	}
 };
     if ( RT->config->get('gnupg')->{'enable'} ) {
         $tabs->{'this'}{'subtabs'}{'GnuPG'} = {
-            title => _('GnuPG'),
-            path  => "Admin/Users/GnuPG.html?id=".$id,
+            label => _('GnuPG'),
+            url  => "Admin/Users/GnuPG.html?id=".$id,
         };
     }
 }
 
 if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUsers')) {
-  $tabs->{"A"} = { title => _('Select'),
-  		     	path => "Admin/Users/",
+  $tabs->{"A"} = { label => _('Select'),
+  		     	url => "Admin/Users/",
 			   };
-  $tabs->{"B"} = { title => _('Create'),
-  		     	path => "Admin/Users/Modify.html?create=1",
+  $tabs->{"B"} = { label => _('Create'),
+  		     	url => "Admin/Users/Modify.html?create=1",
 		separator => 1,
 	};
 }
@@ -898,43 +904,43 @@ if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUs
 my $tabs;
 if ($id) {
   $tabs->{'this'}  = {
-                title => $queue_obj->name,
-  		     	path => "Admin/Queues/Modify.html?id=".$id,
+                label => $queue_obj->name,
+  		     	url => "Admin/Queues/Modify.html?id=".$id,
                     current_subtab => $current_tab,     
-                subtabs => {
-		 C => { title => _('Basics'),
-  		     	path => "Admin/Queues/Modify.html?id=".$id,
-			   },
-		 D => { title => _('Watchers'),
-		 	path => "Admin/Queues/People.html?id=".$id,
-		      },
-		 F => { title => _('Templates'),
-				path => "Admin/Queues/Templates.html?id=".$id,
-			      },
-
-                 G1 => { title => _('Ticket Custom Fields'),
-                        path => 'Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket&id='.$id,
-                        },
-
-                 G2 => { title => _('Transaction Custom Fields'),
-                        path => 'Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket-RT::Model::Transaction&id='.$id,
-                        },
-
-		 H => { title => _('Group rights'),
-			  path => "Admin/Queues/GroupRights.html?id=".$id,
-			},	
-		 I => { title => _('User rights'),
-			  path => "Admin/Queues/UserRights.html?id=".$id,
+                Jifty->navigation->child( subtabs => 
+		 Jifty->navigation->child( C =>  label => _('Basics'),
+  		     	url => "Admin/Queues/Modify.html?id=".$id,
+			   );
+		 Jifty->navigation->child( D =>  label => _('Watchers'),
+		 	url => "Admin/Queues/People.html?id=".$id,
+		      );
+		 Jifty->navigation->child( F =>  label => _('Templates'),
+				url => "Admin/Queues/Templates.html?id=".$id,
+			      );
+
+                 Jifty->navigation->child( G1 =>  label => _('Ticket Custom Fields'),
+                        url => 'Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket&id='.$id,
+                        );
+
+                 Jifty->navigation->child( G2 =>  label => _('Transaction Custom Fields'),
+                        url => 'Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket-RT::Model::Transaction&id='.$id,
+                        );
+
+		 Jifty->navigation->child( H =>  label => _('Group rights'),
+			  url => "Admin/Queues/GroupRights.html?id=".$id,
+			);	
+		 Jifty->navigation->child( I =>  label => _('User rights'),
+			  url => "Admin/Queues/UserRights.html?id=".$id,
 			}
         }
         };
 }
 if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQueue')) {
-  $tabs->{"A"} = { title => _('Select'),
-  		     	path => "Admin/Queues/",
+  $tabs->{"A"} = { label => _('Select'),
+  		     	url => "Admin/Queues/",
 			   };
-  $tabs->{"B"} = { title => _('Create'),
-  		     	path => "Admin/Queues/Modify.html?create=1",
+  $tabs->{"B"} = { label => _('Create'),
+  		     	url => "Admin/Queues/Modify.html?create=1",
 		 separator => 1, };
 }
 
@@ -943,35 +949,35 @@ if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQu
 
 my $tabs = {
 
-    A => {
-        title => _('Users'),
+    Jifty->navigation->child( A => 
+        label => _('Users'),
         text  => _('Select custom fields for all users'),
-        path  => 'Admin/Global/CustomFields/Users.html',
-    },
+        url  => 'Admin/Global/CustomFields/Users.html',
+    );
 
-    B => {
-        title => _('Groups'),
+    Jifty->navigation->child( B => 
+        label => _('Groups'),
         text  => _('Select custom fields for all user groups'),
-        path  => 'Admin/Global/CustomFields/Groups.html',
-    },
+        url  => 'Admin/Global/CustomFields/Groups.html',
+    );
 
-    C => {
-        title => _('Queues'),
+    Jifty->navigation->child( C => 
+        label => _('Queues'),
         text  => _('Select custom fields for all queues'),
-        path  => 'Admin/Global/CustomFields/Queues.html',
-    },
+        url  => 'Admin/Global/CustomFields/Queues.html',
+    );
 
-    F => {
-        title => _('Tickets'),
+    Jifty->navigation->child( F => 
+        label => _('Tickets'),
         text  => _('Select custom fields for tickets in all queues'),
-        path  => 'Admin/Global/CustomFields/Queue-Tickets.html',
-    },
+        url  => 'Admin/Global/CustomFields/Queue-Tickets.html',
+    );
 
-    G => {
-        title => _('Ticket Transactions'),
+    Jifty->navigation->child( G => 
+        label => _('Ticket Transactions'),
         text  => _('Select custom fields for transactions on tickets in all queues'),
-        path  => 'Admin/Global/CustomFields/Queue-Transactions.html',
-    },
+        url  => 'Admin/Global/CustomFields/Queue-Transactions.html',
+    );
 
 };
 
@@ -979,29 +985,29 @@ my $tabs = {
 
 if ( $group_obj and $group_obj->id ) {
 $tabs->{"this"} = { class => "currentnav",                                                           
-                    path  => "Admin/Groups/Modify.html?id=" . $group_obj->id,
-                    title => $group_obj->name,
+                    url  => "Admin/Groups/Modify.html?id=" . $group_obj->id,
+                    label => $group_obj->name,
                     current_subtab => $current_subtab,
-        subtabs => {
-        C => { title => _('Basics'),
-               path  => "Admin/Groups/Modify.html?id=" . $group_obj->id },
-
-        D => { title => _('Members'),
-               path  => "Admin/Groups/Members.html?id=" . $group_obj->id },
-
-        F => { title => _('Group rights'),
-               path  => "Admin/Groups/GroupRights.html?id=" . $group_obj->id, },
-        G => { title => _('User rights'),
-               path  => "Admin/Groups/UserRights.html?id=" . $group_obj->id, },
-        H => { title => _('History'),
-               path  => "Admin/Groups/History.html?id=" . $group_obj->id },
+        Jifty->navigation->child( subtabs => 
+        Jifty->navigation->child( C =>  label => _('Basics'),
+               url  => "Admin/Groups/Modify.html?id=" . $group_obj->id );
+
+        Jifty->navigation->child( D =>  label => _('Members'),
+               url  => "Admin/Groups/Members.html?id=" . $group_obj->id );
+
+        Jifty->navigation->child( F =>  label => _('Group rights'),
+               url  => "Admin/Groups/GroupRights.html?id=" . $group_obj->id, );
+        Jifty->navigation->child( G =>  label => _('User rights'),
+               url  => "Admin/Groups/UserRights.html?id=" . $group_obj->id, );
+        Jifty->navigation->child( H =>  label => _('History'),
+               url  => "Admin/Groups/History.html?id=" . $group_obj->id );
     }
 }
 }
-$tabs->{"A"} = { title => _('Select'),
-                 path  => "Admin/Groups/", };
-$tabs->{"B"} = { title     => _('Create'),
-                 path      => "Admin/Groups/Modify.html?create=1",
+$tabs->{"A"} = { label => _('Select'),
+                 url  => "Admin/Groups/", };
+$tabs->{"B"} = { label     => _('Create'),
+                 url      => "Admin/Groups/Modify.html?create=1",
 		 separator => 1, };
 
 # Prefs/
@@ -1009,14 +1015,14 @@ my $tabs;
 $searches ||= [$m->comp("/Search/Elements/SearchesForObject", object => RT::System->new())];
 
 $tabs->{a} = {
-    title => _('Quick search'),
-	path => 'Prefs/Quicksearch.html',
+    label => _('Quick search'),
+	url => 'Prefs/Quicksearch.html',
 };
 
 for my $search (@$searches) {
     $tabs->{ $search->[0] } = {
-        title => $search->[0],
-        path  => "Prefs/Search.html?"
+        label => $search->[0],
+        url  => "Prefs/Search.html?"
                  .$m->comp('/Elements/QueryString', name => ref($search->[1]).'-'.$search->[1]->id),
     };
 }
@@ -1024,46 +1030,48 @@ for my $search (@$searches) {
 
 # User/
 
-	       a => { title => _('Settings'),
-			   path => 'Prefs/Other.html',
-			 },
+	       Jifty->navigation->child( a =>  label => _('Settings'),
+			   url => 'Prefs/Other.html',
+			 );
   
-             b => { title => _('About me'),
-			  path => 'User/Prefs.html',
-			},
-	       f => { title => _('Search options'),
-			   path => 'Prefs/SearchOptions.html',
-			 },
-	       r => { title => _('RT at a glance'),
-			   path => 'Prefs/MyRT.html',
-			 },
+             Jifty->navigation->child( b =>  label => _('About me'),
+			  url => 'User/Prefs.html',
+			);
+	       Jifty->navigation->child( f =>  label => _('Search options'),
+			   url => 'Prefs/SearchOptions.html',
+			 );
+	       Jifty->navigation->child( r =>  label => _('RT at a glance'),
+			   url => 'Prefs/MyRT.html',
+			 );
 	     };
 
 # User/Groups
 if ( $group_obj and $group_obj->id ) {
     $tabs->{"this"} = {
-        title   => $group_obj->name,
-        path    => "User/Groups/Modify.html?id=" . $group_obj->id,
-        subtabs => {
-            Basics => { title => _('Basics'),
-                        path  => "User/Groups/Modify.html?id=" . $group_obj->id
-            },
+        label   => $group_obj->name,
+        url    => "User/Groups/Modify.html?id=" . $group_obj->id,
+        Jifty->navigation->child( subtabs => 
+            Jifty->navigation->child( Basics =>  label => _('Basics'),
+                        url  => "User/Groups/Modify.html?id=" . $group_obj->id
+            );
 
-            Members => { title => _('Members'),
-                         path  => "User/Groups/Members.html?id=" . $group_obj->id
-            },
+            Jifty->navigation->child( Members =>  label => _('Members'),
+                         url  => "User/Groups/Members.html?id=" . $group_obj->id
+            );
 
         } };
         $tabs->{'this'}->{'current_subtab'} = $current_subtab;
          $current_subtab = "User/Groups/Modify.html?id=" . $group_obj->id,
 }
-$tabs->{"A"} = { title => _('Select group'),
-                 path  => "User/Groups/index.html" };
-$tabs->{"B"} = { title     => _('New group'),
-                 path      => "User/Groups/Modify.html?create=1",
+$tabs->{"A"} = { label => _('Select group'),
+                 url  => "User/Groups/index.html" };
+$tabs->{"B"} = { label     => _('New group'),
+                 url      => "User/Groups/Modify.html?create=1",
                  separator => 1 };
 
 
+
+
 =cut
 
 

commit a8a5638b99b5a6ad11ed2d0ec44dbe3b65dffb03
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Oct 21 14:07:32 2009 -0400

    more unholy transforms

diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index ebcfb67..e2daa0b 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -180,8 +180,19 @@ on qr{^/Ticket/Graphs/(\d+)} => run {
 
 
 before qr{.*} => run {
-	Jifty->web->navigation->child( a => label => _('Homepage'), url => '');
-}
+    Jifty->web->navigation->child( a => label => _('Homepage'), url => '' );
+    Jifty->web->navigation->child( ab  => label => _('Simple Search'),
+        url => 'Search/Simple.html'
+    );
+    Jifty->web->navigation->child(
+        b   => label => _('Tickets'),
+        url => 'Search/Build.html'
+    );
+    Jifty->web->navigation->child(
+        c   => label => _('Tools'),
+        url => 'Tools/index.html'
+    );
+};
 
 
 =for later Navigation
@@ -195,39 +206,23 @@ my $basetopactions = {
 	};
 
 
-
-
-my $basetabs = {     Jifty->navigation->child( a =>  label => _('Homepage'),
-                           url => '',
-                         );
-                    Jifty->navigation->child( ab =>  label => _('Simple Search'),
-                        url => 'Search/Simple.html'
-                         );
-                    Jifty->navigation->child( b =>  label => _('Tickets'),
-                        url => 'Search/Build.html'
-                      );
-                    Jifty->navigation->child( c =>  label => _('Tools'),
-                           url => 'Tools/index.html'
-                         );
-                 };
-
 if (Jifty->web->current_user->has_right( right => 'ShowConfigTab', 
 				       object => RT->system )) {
-    $basetabs->{e} = { label => _('Configuration'),
+Jifty->web->navigation->child( e =>  label => _('Configuration'),
                        url => 'Admin/',
 		     };
 }
 
 if (Jifty->web->current_user->has_right( right => 'ModifySelf', 
 				       object => RT->system )) {
-    $basetabs->{k} = { label => _('Preferences'),
+Jifty->web->navigation->child( k =>  label => _('Preferences'),
                        url => 'Prefs/Other.html'
 		     };
 }
 
 if (Jifty->web->current_user->has_right( right => 'ShowApprovalsTab',
                         object => RT->system )) {
-    $basetabs->{p} = { label => _('Approval'),
+Jifty->web->navigation->child( p =>  label => _('Approval'),
                         url => 'Approvals/'
             };
 }
@@ -248,15 +243,15 @@ $m->callback(
 
 #/Tools tabs
 my $tabs = {
-    Jifty->navigation->child( a => 
+    Jifty->web->navigation->child( a => 
         label => _('Dashboards'),
         url  => 'Dashboards/index.html',
     );
-    Jifty->navigation->child( c => 
+    Jifty->web->navigation->child( c => 
         label => _('Reports'),
         url  => 'Tools/Reports/index.html',
     );
-    Jifty->navigation->child( d => 
+    Jifty->web->navigation->child( d => 
         label => _('My Day'),
         url  => 'Tools/MyDay.html',
     );
@@ -264,15 +259,15 @@ my $tabs = {
 
 #/Tools/Reports tabs
 my $tabs = {
-    Jifty->navigation->child( a => 
+    Jifty->web->navigation->child( a => 
         label => _('Resolved by owner'),
         url  => 'Tools/Reports/ResolvedByOwner.html',
     );
-    Jifty->navigation->child( b => 
+    Jifty->web->navigation->child( b => 
         label => _('Resolved in date range'),
         url  => 'Tools/Reports/ResolvedByDates.html',
     );
-    Jifty->navigation->child( c => 
+    Jifty->web->navigation->child( c => 
         label => _('Created in a date range'),
         url  => 'Tools/Reports/CreatedByDates.html',
     );
@@ -292,26 +287,26 @@ if ( $dashboard_obj and $dashboard_obj->id ) {
     my $queries = "Dashboards/Queries.html?id=" . $dashboard_obj->id;
     my $render  = "Dashboards/" . $dashboard_obj->id . "/$name";
 
-    $tabs->{"this"} = {
+Jifty->web->navigation->child( "this" => 
         label   => $dashboard_obj->name,
         url    => $modify,
         current_subtab  => $current_subtab,
-        Jifty->navigation->child( subtabs => 
-            Jifty->navigation->child( a_Basics =>  label => _('Basics'),
+        Jifty->web->navigation->child( subtabs => 
+            Jifty->web->navigation->child( a_Basics =>  label => _('Basics'),
                           url  => $modify,
             );
 
-            Jifty->navigation->child( b_Queries =>  label => _('Queries'),
+            Jifty->web->navigation->child( b_Queries =>  label => _('Queries'),
                            url  => $queries,
             );
 
-            Jifty->navigation->child( c_Subscription =>  label => _('Subscription'),
+            Jifty->web->navigation->child( c_Subscription =>  label => _('Subscription'),
                                 url  =>
                                     "Dashboards/Subscription.html?dashboard_id=" . $dashboard_obj->id
             );
 
 
-            Jifty->navigation->child( z_Preview =>  label => _('Show'),
+            Jifty->web->navigation->child( z_Preview =>  label => _('Show'),
                            url  => $render,
             );
         }
@@ -334,7 +329,7 @@ my $dashboard = RT::Dashboard->new( current_user => Jifty->web->current_user );
 my @objects = $dashboard->_privacy_objects(create => 1);
 
 if (@objects) {
-    $tabs->{"B"} = { label     => _('New dashboard'),
+Jifty->web->navigation->child( "B" =>  label     => _('New dashboard'),
                      url      => "Dashboards/Modify.html?create=1",
                      separator => 1 };
 }
@@ -366,33 +361,33 @@ $label = _("RT Self Service");
 
 }
 my ($tab);
-my $tabs = { Jifty->navigation->child( A =>  label => _('Open tickets'),
+my $tabs = { Jifty->web->navigation->child( A =>  label => _('Open tickets'),
                         url => 'SelfService/',
                       );
-             Jifty->navigation->child( B =>  label => _('Closed tickets'),
+             Jifty->web->navigation->child( B =>  label => _('Closed tickets'),
                          url => 'SelfService/Closed.html',
                        );
            };
 
 if ($queue_count > 1) {
-        $tabs->{C} = { label => _('New ticket'),
+Jifty->web->navigation->child( C =>  label => _('New ticket'),
                        url => 'SelfService/CreateTicketInQueue.html'
                        };
 } else {
-        $tabs->{C} = { label => _('New ticket'),
+Jifty->web->navigation->child( C =>  label => _('New ticket'),
                        url => 'SelfService/Create.html?queue=' . $queue_id
                        };
 }
 
 if (Jifty->web->current_user->has_right( right => 'ModifySelf',
 				       object => RT->system )) {
-	$tabs->{Z} = { label => _('Preferences'),
+Jifty->web->navigation->child( Z =>  label => _('Preferences'),
 		       url => 'SelfService/Prefs.html'
 		       };
 }
 
 my $actions = {
-	Jifty->navigation->child( B =>  html => $m->scomp('GotoTicket') 
+	Jifty->web->navigation->child( B =>  html => $m->scomp('GotoTicket') 
 		}
 	};
 
@@ -405,20 +400,20 @@ if ($id) {
     my $cf = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
     $cf->load($id);
     $tabs = {
-        Jifty->navigation->child( this => 
+        Jifty->web->navigation->child( this => 
             label => $cf->name,
             url  => "Admin/CustomFields/Modify.html?id=" . $id,
             current_subtab => $current_tab,
 
-            Jifty->navigation->child( subtabs => 
+            Jifty->web->navigation->child( subtabs => 
 
-                Jifty->navigation->child( C =>  label => _('Basics'),
+                Jifty->web->navigation->child( C =>  label => _('Basics'),
                        url  => "Admin/CustomFields/Modify.html?id=" . $id,
                 );
-                Jifty->navigation->child( F =>  label => _('Group rights'),
+                Jifty->web->navigation->child( F =>  label => _('Group rights'),
                        url  => "Admin/CustomFields/GroupRights.html?id="
                          . $id, );
-                Jifty->navigation->child( G => 
+                Jifty->web->navigation->child( G => 
                     label => _('User rights'),
                     url => "Admin/CustomFields/UserRights.html?id=" . $id,
                 );
@@ -429,7 +424,7 @@ if ($id) {
 
 
     if ($cf->lookup_type =~ /^RT::Model::Queue-/io) {
-	$tabs->{'this'}->{subtabs}->{D} = {
+Jifty->web->navigation->child( 'this'}->{subtabs}->{D => 
 	label => _('Applies to'),
 	    url  => "Admin/CustomFields/Objects.html?id=" . $id,
 	};
@@ -437,10 +432,10 @@ if ($id) {
 }
 
 if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminCustomField')) {
-  $tabs->{"A"} = { label => _('Select'),
+Jifty->web->navigation->child( "A" =>  label => _('Select'),
                         url => "Admin/CustomFields/",
                            };
-  $tabs->{"B"} = { label => _('Create'),
+Jifty->web->navigation->child( "B" =>  label => _('Create'),
                         url => "Admin/CustomFields/Modify.html?create=1",
                         separator => 1,
                            };
@@ -460,55 +455,55 @@ if( $id ) { $current_tab = "Admin/CustomFields/Modify.html?id=" . $id }
 # /Admin tabs
 
 
-  my $tabs = { Jifty->navigation->child( A =>  label => _('Users'),
+  my $tabs = { Jifty->web->navigation->child( A =>  label => _('Users'),
 			  url => 'Admin/Users/',
 			);
-	       Jifty->navigation->child( B =>  label => _('Groups'),
+	       Jifty->web->navigation->child( B =>  label => _('Groups'),
 			   url => 'Admin/Groups/',
 			 );
-	       Jifty->navigation->child( C =>  label => _('Queues'),
+	       Jifty->web->navigation->child( C =>  label => _('Queues'),
 			   url => 'Admin/Queues/',
 			 );
-	       Jifty->navigation->child( D =>  'label' => _('Custom Fields'),
+	       Jifty->web->navigation->child( D =>  'label' => _('Custom Fields'),
 			   url => 'Admin/CustomFields/',
 			 );
-	       Jifty->navigation->child( E =>  'label' => _('Rules'),
+	       Jifty->web->navigation->child( E =>  'label' => _('Rules'),
 			   url => 'admin/rules/',
 			 );
-	       Jifty->navigation->child( F =>  'label' => _('Global'),
+	       Jifty->web->navigation->child( F =>  'label' => _('Global'),
 			   url => 'Admin/Global/',
 			 );
-	       Jifty->navigation->child( G =>  'label' => _('Tools'),
+	       Jifty->web->navigation->child( G =>  'label' => _('Tools'),
 			   url => 'Admin/Tools/',
 			 );
 	     };
 
 # /Admin/Global tabs
   my $tabs = {
-               Jifty->navigation->child( B =>  label => _('Templates'),
+               Jifty->web->navigation->child( B =>  label => _('Templates'),
                         url => 'Admin/Global/Templates.html',
                       );
-                Jifty->navigation->child( C =>  label => _('Workflows'),
+                Jifty->web->navigation->child( C =>  label => _('Workflows'),
                         url => 'Admin/Global/Workflows/index.html',
                         );
               
-                Jifty->navigation->child( F =>  label => _('Custom Fields'),
+                Jifty->web->navigation->child( F =>  label => _('Custom Fields'),
                         url => 'Admin/Global/CustomFields/index.html',
                         );
 
-                Jifty->navigation->child( G =>  label => _('Group rights'),
+                Jifty->web->navigation->child( G =>  label => _('Group rights'),
                                 url => 'Admin/Global/GroupRights.html',
                       );
-                Jifty->navigation->child( H =>  label => _('User rights'),
+                Jifty->web->navigation->child( H =>  label => _('User rights'),
                                 url => 'Admin/Global/UserRights.html',
                       );
-                Jifty->navigation->child( I =>  label => _('RT at a glance'),
+                Jifty->web->navigation->child( I =>  label => _('RT at a glance'),
                                 url => 'Admin/Global/MyRT.html',
                       );
-                Jifty->navigation->child( Y =>  label => _('Jifty'),
+                Jifty->web->navigation->child( Y =>  label => _('Jifty'),
                                 url => 'Admin/Global/Jifty.html',
                       );
-                Jifty->navigation->child( Z =>  label => _('System'),
+                Jifty->web->navigation->child( Z =>  label => _('System'),
                                 url => 'Admin/Global/System.html',
                       );
 
@@ -520,15 +515,15 @@ if( $id ) { $current_tab = "Admin/CustomFields/Modify.html?id=" . $id }
 my $base = "Admin/Global/Workflows";
 my $parent_subtab;
 my $parent_subtabs = {
-    Jifty->navigation->child( A => 
+    Jifty->web->navigation->child( A => 
         label => _('Select') .'/'. _('Create'),
         url => "$base/index.html",
     );
-    Jifty->navigation->child( B => 
+    Jifty->web->navigation->child( B => 
         label => _('Localization'),
         url => "$base/Localization.html",
     );
-    Jifty->navigation->child( C => 
+    Jifty->web->navigation->child( C => 
         label => _('Mappings'),
         url => "$base/Mappings.html",
     );
@@ -539,25 +534,25 @@ if ( $schema ) {
     $current_tab .= "?$qs_name";
 
     $parent_subtab = "$base/Summary.html?$qs_name";
-    $parent_subtabs->{'E'} = {
+Jifty->web->navigation->child( 'E' => 
         label          => $schema->name,
         url           => $parent_subtab,
         separator      => 1,
         current_subtab => $current_tab,
-        Jifty->navigation->child( subtabs => 
-            Jifty->navigation->child( A => 
+        Jifty->web->navigation->child( subtabs => 
+            Jifty->web->navigation->child( A => 
                 label => _("Summary"),
                 url  => "$base/Summary.html?$qs_name",
             );
-            Jifty->navigation->child( B => 
+            Jifty->web->navigation->child( B => 
                 label => _("Statuses"),
                 url  => "$base/Statuses.html?$qs_name",
             );
-            Jifty->navigation->child( C => 
+            Jifty->web->navigation->child( C => 
                 label => _("Transitions"),
                 url  => "$base/Transitions.html?$qs_name",
             );
-            Jifty->navigation->child( D => 
+            Jifty->web->navigation->child( D => 
                 label => _("Interface"),
                 url  => "$base/Interface.html?$qs_name",
             );
@@ -592,12 +587,12 @@ if ($ticket) {
 
         # Don't display prev links if we're on the first ticket
         if ( $item_map->{ $ticket->id }->{prev} ) {
-            $searchtabs->{'_a'} = {
+Jifty->web->navigation->child( '_a' => 
                 class => "nav",
                 url  => "Ticket/Display.html?id=" . $item_map->{first);
                 label => '<< ' . _('First')
             };
-            $searchtabs->{"_b"} = {
+Jifty->web->navigation->child( "_b" => 
                 class => "nav",
                 url  => "Ticket/Display.html?id="
                     . $item_map->{ $ticket->id }->{prev);
@@ -607,13 +602,13 @@ if ($ticket) {
   
         # Don't display next links if we're on the last ticket
         if ( $item_map->{ $ticket->id }->{next} ) {
-            $searchtabs->{'d'} = {
+Jifty->web->navigation->child( 'd' => 
                 class => "nav",
                 url  => "Ticket/Display.html?id="
                     . $item_map->{ $ticket->id }->{next);
                 label => _('next') . ' >'
             };
-            $searchtabs->{'e'} = {
+Jifty->web->navigation->child( 'e' => 
                 class => "nav",
                 url  => "Ticket/Display.html?id=" . $item_map->{last);
                 label => _('Last') . ' >>'
@@ -621,7 +616,7 @@ if ($ticket) {
         }
     }
 
-    $tabs->{"this"} = {
+Jifty->web->navigation->child( "this" => 
         class          => "currentnav",
         url           => "Ticket/Display.html?id=" . $ticket->id,
         label          => "#" . $id,
@@ -629,33 +624,33 @@ if ($ticket) {
     };
 
     my $ticket_page_tabs = {
-        Jifty->navigation->child( _A => 
+        Jifty->web->navigation->child( _A => 
             label => _('Display'),
             url  => "Ticket/Display.html?id=" . $id,
         );
 
-        Jifty->navigation->child( _Ab => 
+        Jifty->web->navigation->child( _Ab => 
             label => _('History'),
             url  => "Ticket/History.html?id=" . $id,
         );
-        Jifty->navigation->child( _B => 
+        Jifty->web->navigation->child( _B => 
             label => _('Basics'),
             url  => "Ticket/Modify.html?id=" . $id,
         );
 
-        Jifty->navigation->child( _C => 
+        Jifty->web->navigation->child( _C => 
             label => _('Dates'),
             url  => "Ticket/ModifyDates.html?id=" . $id,
         );
-        Jifty->navigation->child( _D => 
+        Jifty->web->navigation->child( _D => 
             label => _('People'),
             url  => "Ticket/ModifyPeople.html?id=" . $id,
         );
-        Jifty->navigation->child( _E => 
+        Jifty->web->navigation->child( _E => 
             label => _('Links'),
             url  => "Ticket/ModifyLinks.html?id=" . $id,
         );
-        Jifty->navigation->child( _X => 
+        Jifty->web->navigation->child( _X => 
             label => _('Jumbo'),
             url  => "Ticket/ModifyAll.html?id=" . $id,
         );
@@ -663,7 +658,7 @@ if ($ticket) {
     };
 
     if ( RT->config->get('enable_reminders') ) {
-        $ticket_page_tabs->{_F} = {
+Jifty->web->navigation->child( _F => 
             label     => _('Reminders'),
             url      => "Ticket/Reminders.html?id=" . $id,
             separator => 1,
@@ -684,7 +679,7 @@ if ($ticket) {
 
     if ( $can{'ModifyTicket'} or $ticket->current_user_has_right('ReplyToTicket') )
     {
-        $actions->{'F'} = {
+Jifty->web->navigation->child( 'F' => 
             label => _('Reply'),
             url  => "Ticket/Update.html?action=respond&id=" . $id,
         };
@@ -713,7 +708,7 @@ if ($ticket) {
                     id => $id
                 );
             }
-            $actions->{'G'. $i++} = {
+Jifty->web->navigation->child( 'G'. $i++ => 
                 url => $url,
                 label => _( $schema->transition_label( $current => $next ) ),
             };
@@ -722,14 +717,14 @@ if ($ticket) {
 
     if ( $ticket->current_user_has_right('OwnTicket') ) {
         if ( $ticket->owner_obj->id == RT->nobody->id ) {
-            $actions->{'B'} = {
+Jifty->web->navigation->child( 'B' => 
                 url  => "Ticket/Display.html?action=take&id=" . $id,
                 label => _('Take'),
                 }
                 if $can{'ModifyTicket'}
                     or $ticket->current_user_has_right('TakeTicket');
         } elsif ( $ticket->owner_obj->id != Jifty->web->current_user->id ) {
-            $actions->{'C'} = {
+Jifty->web->navigation->child( 'C' => 
                 url  => "Ticket/Display.html?action=steal&id=" . $id,
                 label => _('Steal'),
                 }
@@ -741,7 +736,7 @@ if ($ticket) {
     if (   $can{'ModifyTicket'}
         or $ticket->current_user_has_right('CommentOnTicket') )
     {
-        $actions->{'E'} = {
+Jifty->web->navigation->child( 'E' => 
             label => _('Comment'),
             url  => "Ticket/Update.html?action=comment&id=" . $id,
         };
@@ -815,7 +810,7 @@ if ($has_query) {
                 'Tickets:limit' => $query_args{'rows'}
             );
 
-            $tabs->{"shredder"} = {
+Jifty->web->navigation->child( "shredder" => 
                 url  => 'Admin/Tools/Shredder/?' . $shred_args,
                 label => _('Shredder')
             };
@@ -826,12 +821,12 @@ if ($has_query) {
         $current_tab = "Search/$1.html$args";
     }
 
-    $tabs->{"i"} = {
+Jifty->web->navigation->child( "i" => 
         url  => "Search/Results.html$args",
         label => _('Show Results'),
     };
 
-    $tabs->{"j"} = {
+Jifty->web->navigation->child( "j" => 
         url  => "Search/Bulk.html$args",
         label => _('Bulk Update'),
     };
@@ -847,42 +842,42 @@ foreach my $searchtab ( keys %{$searchtabs} ) {
 
 # /Admin/tools
     my $tabs = {
-        Jifty->navigation->child( A =>  label => _('System Configuration'),
+        Jifty->web->navigation->child( A =>  label => _('System Configuration'),
                url => 'Admin/Tools/Configuration.html',
         );
-        Jifty->navigation->child( E =>  label => _('Shredder'),
+        Jifty->web->navigation->child( E =>  label => _('Shredder'),
                url  => 'Admin/Tools/Shredder',
         );
     };
 
 # /Admin/Rules
     my $tabs = {
-        Jifty->navigation->child( A =>  label => _('Select'),
+        Jifty->web->navigation->child( A =>  label => _('Select'),
                url  => "Admin/Rules/", );
-        Jifty->navigation->child( E =>  label => _('Create'),
+        Jifty->web->navigation->child( E =>  label => _('Create'),
                url  => 'Admin/Rules/Modify.html?create=1',
         );
     };
 
 # /Admin/Users tabs
 		url => "Admin/Users/Modify.html?id=".$id,
-Jifty->navigation->child( subtabs => 
-	       Jifty->navigation->child( Basics =>  label => _('Basics'),
+Jifty->web->navigation->child( subtabs => 
+	       Jifty->web->navigation->child( Basics =>  label => _('Basics'),
 				url => "Admin/Users/Modify.html?id=".$id
 			);
-	       Jifty->navigation->child( Memberships =>  label => _('Memberships'),
+	       Jifty->web->navigation->child( Memberships =>  label => _('Memberships'),
 			   url => "Admin/Users/Memberships.html?id=".$id
 			 );
-	       Jifty->navigation->child( History =>  label => _('History'),
+	       Jifty->web->navigation->child( History =>  label => _('History'),
 			   url => "Admin/Users/History.html?id=".$id
 			 );
-	       'MyRT' => { label => _('RT at a glance'),
+	       Jifty->web->navigation->child( 'MyRT' =>  label => _('RT at a glance'),
 			   url => "Admin/Users/MyRT.html?id=".$id
 			 );
 	}
 };
     if ( RT->config->get('gnupg')->{'enable'} ) {
-        $tabs->{'this'}{'subtabs'}{'GnuPG'} = {
+Jifty->web->navigation->child( 'this'}{'subtabs'}{'GnuPG' => 
             label => _('GnuPG'),
             url  => "Admin/Users/GnuPG.html?id=".$id,
         };
@@ -890,10 +885,10 @@ Jifty->navigation->child( subtabs =>
 }
 
 if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUsers')) {
-  $tabs->{"A"} = { label => _('Select'),
+Jifty->web->navigation->child( "A" =>  label => _('Select'),
   		     	url => "Admin/Users/",
 			   };
-  $tabs->{"B"} = { label => _('Create'),
+Jifty->web->navigation->child( "B" =>  label => _('Create'),
   		     	url => "Admin/Users/Modify.html?create=1",
 		separator => 1,
 	};
@@ -903,43 +898,43 @@ if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUs
 #
 my $tabs;
 if ($id) {
-  $tabs->{'this'}  = {
+Jifty->web->navigation->child( 'this' => 
                 label => $queue_obj->name,
   		     	url => "Admin/Queues/Modify.html?id=".$id,
                     current_subtab => $current_tab,     
-                Jifty->navigation->child( subtabs => 
-		 Jifty->navigation->child( C =>  label => _('Basics'),
+                Jifty->web->navigation->child( subtabs => 
+		 Jifty->web->navigation->child( C =>  label => _('Basics'),
   		     	url => "Admin/Queues/Modify.html?id=".$id,
 			   );
-		 Jifty->navigation->child( D =>  label => _('Watchers'),
+		 Jifty->web->navigation->child( D =>  label => _('Watchers'),
 		 	url => "Admin/Queues/People.html?id=".$id,
 		      );
-		 Jifty->navigation->child( F =>  label => _('Templates'),
+		 Jifty->web->navigation->child( F =>  label => _('Templates'),
 				url => "Admin/Queues/Templates.html?id=".$id,
 			      );
 
-                 Jifty->navigation->child( G1 =>  label => _('Ticket Custom Fields'),
+                 Jifty->web->navigation->child( G1 =>  label => _('Ticket Custom Fields'),
                         url => 'Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket&id='.$id,
                         );
 
-                 Jifty->navigation->child( G2 =>  label => _('Transaction Custom Fields'),
+                 Jifty->web->navigation->child( G2 =>  label => _('Transaction Custom Fields'),
                         url => 'Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket-RT::Model::Transaction&id='.$id,
                         );
 
-		 Jifty->navigation->child( H =>  label => _('Group rights'),
+		 Jifty->web->navigation->child( H =>  label => _('Group rights'),
 			  url => "Admin/Queues/GroupRights.html?id=".$id,
 			);	
-		 Jifty->navigation->child( I =>  label => _('User rights'),
+		 Jifty->web->navigation->child( I =>  label => _('User rights'),
 			  url => "Admin/Queues/UserRights.html?id=".$id,
 			}
         }
         };
 }
 if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQueue')) {
-  $tabs->{"A"} = { label => _('Select'),
+Jifty->web->navigation->child( "A" =>  label => _('Select'),
   		     	url => "Admin/Queues/",
 			   };
-  $tabs->{"B"} = { label => _('Create'),
+Jifty->web->navigation->child( "B" =>  label => _('Create'),
   		     	url => "Admin/Queues/Modify.html?create=1",
 		 separator => 1, };
 }
@@ -949,31 +944,31 @@ if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQu
 
 my $tabs = {
 
-    Jifty->navigation->child( A => 
+    Jifty->web->navigation->child( A => 
         label => _('Users'),
         text  => _('Select custom fields for all users'),
         url  => 'Admin/Global/CustomFields/Users.html',
     );
 
-    Jifty->navigation->child( B => 
+    Jifty->web->navigation->child( B => 
         label => _('Groups'),
         text  => _('Select custom fields for all user groups'),
         url  => 'Admin/Global/CustomFields/Groups.html',
     );
 
-    Jifty->navigation->child( C => 
+    Jifty->web->navigation->child( C => 
         label => _('Queues'),
         text  => _('Select custom fields for all queues'),
         url  => 'Admin/Global/CustomFields/Queues.html',
     );
 
-    Jifty->navigation->child( F => 
+    Jifty->web->navigation->child( F => 
         label => _('Tickets'),
         text  => _('Select custom fields for tickets in all queues'),
         url  => 'Admin/Global/CustomFields/Queue-Tickets.html',
     );
 
-    Jifty->navigation->child( G => 
+    Jifty->web->navigation->child( G => 
         label => _('Ticket Transactions'),
         text  => _('Select custom fields for transactions on tickets in all queues'),
         url  => 'Admin/Global/CustomFields/Queue-Transactions.html',
@@ -988,18 +983,18 @@ $tabs->{"this"} = { class => "currentnav",
                     url  => "Admin/Groups/Modify.html?id=" . $group_obj->id,
                     label => $group_obj->name,
                     current_subtab => $current_subtab,
-        Jifty->navigation->child( subtabs => 
-        Jifty->navigation->child( C =>  label => _('Basics'),
+        Jifty->web->navigation->child( subtabs => 
+        Jifty->web->navigation->child( C =>  label => _('Basics'),
                url  => "Admin/Groups/Modify.html?id=" . $group_obj->id );
 
-        Jifty->navigation->child( D =>  label => _('Members'),
+        Jifty->web->navigation->child( D =>  label => _('Members'),
                url  => "Admin/Groups/Members.html?id=" . $group_obj->id );
 
-        Jifty->navigation->child( F =>  label => _('Group rights'),
+        Jifty->web->navigation->child( F =>  label => _('Group rights'),
                url  => "Admin/Groups/GroupRights.html?id=" . $group_obj->id, );
-        Jifty->navigation->child( G =>  label => _('User rights'),
+        Jifty->web->navigation->child( G =>  label => _('User rights'),
                url  => "Admin/Groups/UserRights.html?id=" . $group_obj->id, );
-        Jifty->navigation->child( H =>  label => _('History'),
+        Jifty->web->navigation->child( H =>  label => _('History'),
                url  => "Admin/Groups/History.html?id=" . $group_obj->id );
     }
 }
@@ -1020,7 +1015,7 @@ $tabs->{a} = {
 };
 
 for my $search (@$searches) {
-    $tabs->{ $search->[0] } = {
+Jifty->web->navigation->child(  $search->[0]  => 
         label => $search->[0],
         url  => "Prefs/Search.html?"
                  .$m->comp('/Elements/QueryString', name => ref($search->[1]).'-'.$search->[1]->id),
@@ -1030,32 +1025,32 @@ for my $search (@$searches) {
 
 # User/
 
-	       Jifty->navigation->child( a =>  label => _('Settings'),
+	       Jifty->web->navigation->child( a =>  label => _('Settings'),
 			   url => 'Prefs/Other.html',
 			 );
   
-             Jifty->navigation->child( b =>  label => _('About me'),
+             Jifty->web->navigation->child( b =>  label => _('About me'),
 			  url => 'User/Prefs.html',
 			);
-	       Jifty->navigation->child( f =>  label => _('Search options'),
+	       Jifty->web->navigation->child( f =>  label => _('Search options'),
 			   url => 'Prefs/SearchOptions.html',
 			 );
-	       Jifty->navigation->child( r =>  label => _('RT at a glance'),
+	       Jifty->web->navigation->child( r =>  label => _('RT at a glance'),
 			   url => 'Prefs/MyRT.html',
 			 );
 	     };
 
 # User/Groups
 if ( $group_obj and $group_obj->id ) {
-    $tabs->{"this"} = {
+Jifty->web->navigation->child( "this" => 
         label   => $group_obj->name,
         url    => "User/Groups/Modify.html?id=" . $group_obj->id,
-        Jifty->navigation->child( subtabs => 
-            Jifty->navigation->child( Basics =>  label => _('Basics'),
+        Jifty->web->navigation->child( subtabs => 
+            Jifty->web->navigation->child( Basics =>  label => _('Basics'),
                         url  => "User/Groups/Modify.html?id=" . $group_obj->id
             );
 
-            Jifty->navigation->child( Members =>  label => _('Members'),
+            Jifty->web->navigation->child( Members =>  label => _('Members'),
                          url  => "User/Groups/Members.html?id=" . $group_obj->id
             );
 
@@ -1075,6 +1070,8 @@ $tabs->{"B"} = { label     => _('New group'),
 =cut
 
 
+
+
 # Now let callbacks add their extra tabs
 
 # Backward compatibility with old RT URLs

commit 68131b5a187a0469163abbacf7bb35a82bf7c79a
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Oct 21 14:11:20 2009 -0400

    Admin menu toplevel now shows

diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index e2daa0b..bfc9bfa 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -192,6 +192,30 @@ before qr{.*} => run {
         c   => label => _('Tools'),
         url => 'Tools/index.html'
     );
+if (Jifty->web->current_user->has_right( right => 'ShowConfigTab', object => RT->system )) {
+	my $admin = Jifty->web->navigation->child( e =>  label => _('Configuration'), url => 'Admin/');
+			$admin->child( A =>  label => _('Users'),
+			  url => '/Admin/Users/',
+			);
+	       $admin->child( B =>  label => _('Groups'),
+			   url => '/Admin/Groups/',
+			 );
+	       $admin->child( C =>  label => _('Queues'),
+			   url => '/Admin/Queues/',
+			 );
+	       $admin->child( D =>  'label' => _('Custom Fields'),
+			   url => '/Admin/CustomFields/',
+			 );
+	       $admin->child( E =>  'label' => _('Rules'),
+			   url => '/admin/rules/',
+			 );
+	       $admin->child( F =>  'label' => _('Global'),
+			   url => '/Admin/Global/',
+			 );
+	       $admin->child( G =>  'label' => _('Tools'),
+			   url => '/Admin/Tools/',
+			 );
+}
 };
 
 
@@ -206,12 +230,6 @@ my $basetopactions = {
 	};
 
 
-if (Jifty->web->current_user->has_right( right => 'ShowConfigTab', 
-				       object => RT->system )) {
-Jifty->web->navigation->child( e =>  label => _('Configuration'),
-                       url => 'Admin/',
-		     };
-}
 
 if (Jifty->web->current_user->has_right( right => 'ModifySelf', 
 				       object => RT->system )) {
@@ -455,27 +473,10 @@ if( $id ) { $current_tab = "Admin/CustomFields/Modify.html?id=" . $id }
 # /Admin tabs
 
 
-  my $tabs = { Jifty->web->navigation->child( A =>  label => _('Users'),
-			  url => 'Admin/Users/',
-			);
-	       Jifty->web->navigation->child( B =>  label => _('Groups'),
-			   url => 'Admin/Groups/',
-			 );
-	       Jifty->web->navigation->child( C =>  label => _('Queues'),
-			   url => 'Admin/Queues/',
-			 );
-	       Jifty->web->navigation->child( D =>  'label' => _('Custom Fields'),
-			   url => 'Admin/CustomFields/',
-			 );
-	       Jifty->web->navigation->child( E =>  'label' => _('Rules'),
-			   url => 'admin/rules/',
-			 );
-	       Jifty->web->navigation->child( F =>  'label' => _('Global'),
-			   url => 'Admin/Global/',
-			 );
-	       Jifty->web->navigation->child( G =>  'label' => _('Tools'),
-			   url => 'Admin/Tools/',
-			 );
+  my $tabs = { 
+
+
+
 	     };
 
 # /Admin/Global tabs

commit ae485c6d149ac41fd06afc5b70868d8803dc3e06
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Oct 21 14:19:22 2009 -0400

    Tools and Preferences toplevel menus restored

diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index bfc9bfa..2df0822 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -181,41 +181,128 @@ on qr{^/Ticket/Graphs/(\d+)} => run {
 
 before qr{.*} => run {
     Jifty->web->navigation->child( a => label => _('Homepage'), url => '' );
-    Jifty->web->navigation->child( ab  => label => _('Simple Search'),
+    Jifty->web->navigation->child(
+        ab  => label => _('Simple Search'),
         url => 'Search/Simple.html'
     );
     Jifty->web->navigation->child(
         b   => label => _('Tickets'),
         url => 'Search/Build.html'
     );
-    Jifty->web->navigation->child(
-        c   => label => _('Tools'),
-        url => 'Tools/index.html'
+	my $tools =     Jifty->web->navigation->child( c   => label => _('Tools'), url => 'Tools/index.html');
+    $tools->child( a => label => _('Dashboards'), url  => 'Dashboards/index.html',);
+    my $reports = $tools->child( c => label => _('Reports'), url  => 'Tools/Reports/index.html',);
+    $reports->child( a => 
+        label => _('Resolved by owner'),
+        url  => 'Tools/Reports/ResolvedByOwner.html',
     );
-if (Jifty->web->current_user->has_right( right => 'ShowConfigTab', object => RT->system )) {
-	my $admin = Jifty->web->navigation->child( e =>  label => _('Configuration'), url => 'Admin/');
-			$admin->child( A =>  label => _('Users'),
-			  url => '/Admin/Users/',
-			);
-	       $admin->child( B =>  label => _('Groups'),
-			   url => '/Admin/Groups/',
-			 );
-	       $admin->child( C =>  label => _('Queues'),
-			   url => '/Admin/Queues/',
-			 );
-	       $admin->child( D =>  'label' => _('Custom Fields'),
-			   url => '/Admin/CustomFields/',
-			 );
-	       $admin->child( E =>  'label' => _('Rules'),
-			   url => '/admin/rules/',
+    $reports->child( b => 
+        label => _('Resolved in date range'),
+        url  => 'Tools/Reports/ResolvedByDates.html',
+    );
+    $reports->child( c => 
+        label => _('Created in a date range'),
+        url  => 'Tools/Reports/CreatedByDates.html',
+    );
+
+
+
+    $tools->child( d => label => _('My Day'), url  => 'Tools/MyDay.html',);
+
+
+    if ( Jifty->web->current_user->has_right( right => 'ShowConfigTab', object => RT->system ) ) {
+        my $admin = Jifty->web->navigation->child( e => label => _('Configuration'), url => 'Admin/' );
+        $admin->child(
+            A   => label => _('Users'),
+            url => '/Admin/Users/',
+        );
+        $admin->child(
+            B   => label => _('Groups'),
+            url => '/Admin/Groups/',
+        );
+        $admin->child(
+            C   => label => _('Queues'),
+            url => '/Admin/Queues/',
+        );
+        $admin->child(
+            D   => 'label' => _('Custom Fields'),
+            url => '/Admin/CustomFields/',
+        );
+        $admin->child(
+            E   => 'label' => _('Rules'),
+            url => '/admin/rules/',
+        );
+        my $admin_global = $admin->child(
+            F   => 'label' => _('Global'),
+            url => '/Admin/Global/',
+        );
+
+               $admin_global->child( B =>  label => _('Templates'),
+                        url => 'Admin/Global/Templates.html',
+                      );
+                $admin_global->child( C =>  label => _('Workflows'),
+                        url => 'Admin/Global/Workflows/index.html',
+                        );
+              
+                $admin_global->child( F =>  label => _('Custom Fields'),
+                        url => 'Admin/Global/CustomFields/index.html',
+                        );
+
+                $admin_global->child( G =>  label => _('Group rights'),
+                                url => 'Admin/Global/GroupRights.html',
+                      );
+                $admin_global->child( H =>  label => _('User rights'),
+                                url => 'Admin/Global/UserRights.html',
+                      );
+                $admin_global->child( I =>  label => _('RT at a glance'),
+                                url => 'Admin/Global/MyRT.html',
+                      );
+                $admin_global->child( Y =>  label => _('Jifty'),
+                                url => 'Admin/Global/Jifty.html',
+                      );
+                $admin_global->child( Z =>  label => _('System'),
+                                url => 'Admin/Global/System.html',
+                      );
+
+
+
+        my $admin_tools = $admin->child(
+            G   => 'label' => _('Tools'),
+            url => '/Admin/Tools/',
+        );
+        $admin_tools->child( A =>  label => _('System Configuration'),
+               url => 'Admin/Tools/Configuration.html',
+        );
+        $admin_tools->child( E =>  label => _('Shredder'),
+               url  => 'Admin/Tools/Shredder',
+        );
+    }
+if (Jifty->web->current_user->has_right( right => 'ModifySelf', 
+				       object => RT->system )) {
+my $prefs = Jifty->web->navigation->child( k =>  label => _('Preferences'),
+                       url => 'Prefs/Other.html');
+
+	       $prefs->child( a =>  label => _('Settings'),
+			   url => 'Prefs/Other.html',
 			 );
-	       $admin->child( F =>  'label' => _('Global'),
-			   url => '/Admin/Global/',
+  
+             $prefs->child( b =>  label => _('About me'),
+			  url => 'User/Prefs.html',
+			);
+	       $prefs->child( f =>  label => _('Search options'),
+			   url => 'Prefs/SearchOptions.html',
 			 );
-	       $admin->child( G =>  'label' => _('Tools'),
-			   url => '/Admin/Tools/',
+	       $prefs->child( r =>  label => _('RT at a glance'),
+			   url => 'Prefs/MyRT.html',
 			 );
 }
+
+if (Jifty->web->current_user->has_right( right => 'ShowApprovalsTab',
+                        object => RT->system )) {
+Jifty->web->navigation->child( p =>  label => _('Approval'),
+                        url => 'Approvals/'
+			)
+}
 };
 
 
@@ -231,19 +318,6 @@ my $basetopactions = {
 
 
 
-if (Jifty->web->current_user->has_right( right => 'ModifySelf', 
-				       object => RT->system )) {
-Jifty->web->navigation->child( k =>  label => _('Preferences'),
-                       url => 'Prefs/Other.html'
-		     };
-}
-
-if (Jifty->web->current_user->has_right( right => 'ShowApprovalsTab',
-                        object => RT->system )) {
-Jifty->web->navigation->child( p =>  label => _('Approval'),
-                        url => 'Approvals/'
-            };
-}
 
 if (!defined $toptabs) {
    $toptabs = $basetabs;
@@ -261,34 +335,10 @@ $m->callback(
 
 #/Tools tabs
 my $tabs = {
-    Jifty->web->navigation->child( a => 
-        label => _('Dashboards'),
-        url  => 'Dashboards/index.html',
-    );
-    Jifty->web->navigation->child( c => 
-        label => _('Reports'),
-        url  => 'Tools/Reports/index.html',
-    );
-    Jifty->web->navigation->child( d => 
-        label => _('My Day'),
-        url  => 'Tools/MyDay.html',
-    );
 };
 
 #/Tools/Reports tabs
 my $tabs = {
-    Jifty->web->navigation->child( a => 
-        label => _('Resolved by owner'),
-        url  => 'Tools/Reports/ResolvedByOwner.html',
-    );
-    Jifty->web->navigation->child( b => 
-        label => _('Resolved in date range'),
-        url  => 'Tools/Reports/ResolvedByDates.html',
-    );
-    Jifty->web->navigation->child( c => 
-        label => _('Created in a date range'),
-        url  => 'Tools/Reports/CreatedByDates.html',
-    );
 };
 
 
@@ -481,32 +531,6 @@ if( $id ) { $current_tab = "Admin/CustomFields/Modify.html?id=" . $id }
 
 # /Admin/Global tabs
   my $tabs = {
-               Jifty->web->navigation->child( B =>  label => _('Templates'),
-                        url => 'Admin/Global/Templates.html',
-                      );
-                Jifty->web->navigation->child( C =>  label => _('Workflows'),
-                        url => 'Admin/Global/Workflows/index.html',
-                        );
-              
-                Jifty->web->navigation->child( F =>  label => _('Custom Fields'),
-                        url => 'Admin/Global/CustomFields/index.html',
-                        );
-
-                Jifty->web->navigation->child( G =>  label => _('Group rights'),
-                                url => 'Admin/Global/GroupRights.html',
-                      );
-                Jifty->web->navigation->child( H =>  label => _('User rights'),
-                                url => 'Admin/Global/UserRights.html',
-                      );
-                Jifty->web->navigation->child( I =>  label => _('RT at a glance'),
-                                url => 'Admin/Global/MyRT.html',
-                      );
-                Jifty->web->navigation->child( Y =>  label => _('Jifty'),
-                                url => 'Admin/Global/Jifty.html',
-                      );
-                Jifty->web->navigation->child( Z =>  label => _('System'),
-                                url => 'Admin/Global/System.html',
-                      );
 
 };
 
@@ -843,12 +867,6 @@ foreach my $searchtab ( keys %{$searchtabs} ) {
 
 # /Admin/tools
     my $tabs = {
-        Jifty->web->navigation->child( A =>  label => _('System Configuration'),
-               url => 'Admin/Tools/Configuration.html',
-        );
-        Jifty->web->navigation->child( E =>  label => _('Shredder'),
-               url  => 'Admin/Tools/Shredder',
-        );
     };
 
 # /Admin/Rules
@@ -1025,20 +1043,6 @@ Jifty->web->navigation->child(  $search->[0]  =>
 
 
 # User/
-
-	       Jifty->web->navigation->child( a =>  label => _('Settings'),
-			   url => 'Prefs/Other.html',
-			 );
-  
-             Jifty->web->navigation->child( b =>  label => _('About me'),
-			  url => 'User/Prefs.html',
-			);
-	       Jifty->web->navigation->child( f =>  label => _('Search options'),
-			   url => 'Prefs/SearchOptions.html',
-			 );
-	       Jifty->web->navigation->child( r =>  label => _('RT at a glance'),
-			   url => 'Prefs/MyRT.html',
-			 );
 	     };
 
 # User/Groups

-----------------------------------------------------------------------


More information about the Rt-commit mailing list