[Rt-commit] rt branch, menu-redo, updated. 3ac5a89f38d5290f9ad3abb52b493789ee688bbf
jesse
jesse at bestpractical.com
Mon Oct 26 16:13:39 EDT 2009
The branch, menu-redo has been updated
via 3ac5a89f38d5290f9ad3abb52b493789ee688bbf (commit)
via e08dc621269385219d2db3c5cab7d9a50e912b5e (commit)
via a4ab4653d8fad0694c696f19fd6643e83b48a047 (commit)
via a18487877781057cb3fe24c6a95ec7e7cc4eda9f (commit)
via 9440b8dd08b421f029f074f2735bee3d5b660845 (commit)
via c0d594d14aed12b11e786170d3dd47dc3cee78f6 (commit)
via 9d536fda8fd78655d990d6ea6fc40c05306e40b4 (commit)
from 32b2508a5bae55521077623b22d18abb85a2011c (commit)
Summary of changes:
lib/RT/Dispatcher.pm | 425 ++++++++++++++++++-------------------
lib/RT/Record.pm | 28 ---
share/html/Dashboards/Modify.html | 2 +-
share/html/Dashboards/Render.html | 4 +-
share/html/Elements/Header | 3 +-
5 files changed, 210 insertions(+), 252 deletions(-)
- Log -----------------------------------------------------------------
commit 9d536fda8fd78655d990d6ea6fc40c05306e40b4
Author: Jesse Vincent <jesse at bestpractical.com>
Date: Mon Oct 26 12:28:18 2009 -0400
Add page navigation. Convert RT nav to a menu
diff --git a/share/html/Elements/Header b/share/html/Elements/Header
index 2cbf5ff..5859f3c 100755
--- a/share/html/Elements/Header
+++ b/share/html/Elements/Header
@@ -105,7 +105,8 @@
</div>
-% Jifty->web->navigation->render_as_menu();
+% Jifty->web->navigation->render_as_yui_menubar();
+% Jifty->web->page_navigation->render_as_menu();
%# template login already has div with id "body"
% unless ( Jifty->web->request->path =~ m{^/login} ) {
<div id="body">
commit c0d594d14aed12b11e786170d3dd47dc3cee78f6
Author: Jesse Vincent <jesse at bestpractical.com>
Date: Mon Oct 26 12:28:43 2009 -0400
remove long-dead code from RT::Record
diff --git a/lib/RT/Record.pm b/lib/RT/Record.pm
index 1646fae..14ec55f 100755
--- a/lib/RT/Record.pm
+++ b/lib/RT/Record.pm
@@ -317,34 +317,6 @@ DB is case sensitive
sub load_by_id { shift->load_by_cols( id => shift ) }
-sub load_by_cols {
- my $self = shift;
- my %hash = (@_);
-
- # We don't want to hang onto this
- delete $self->{'attributes'};
-
- return $self->SUPER::load_by_cols(@_); # unless $self->_handle->case_sensitive;
-
- # If this database is case sensitive we need to uncase objects for
- # explicit loading
- foreach my $key ( keys %hash ) {
-
- # If we've been passed an empty value, we can't do the lookup.
- # We don't need to explicitly downcase integers or an id.
- if ( $key ne 'id' && defined $hash{$key} && $hash{$key} !~ /^\d+$/ ) {
- my ( $op, $val, $func );
- ( $key, $op, $val, $func ) = Jifty->handle->_make_clause_case_insensitive( $key, '=', delete $hash{$key} );
- $hash{$key}->{operator} = $op;
- $hash{$key}->{value} = $val;
- $hash{$key}->{function} = $func;
- }
- }
- return $self->SUPER::load_by_cols(%hash);
-}
-
-
-#
sub _set {
my $self = shift;
commit 9440b8dd08b421f029f074f2735bee3d5b660845
Author: Jesse Vincent <jesse at bestpractical.com>
Date: Mon Oct 26 12:28:57 2009 -0400
Admin/Queues now has working nav
diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index 21611f8..6599699 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -295,16 +295,24 @@ before '/SelfService' => sub {
};
before 'Admin/Queues' => sub {
-
- #
- my $id = 'MUST DEAL';
- my $queue_obj = "must deal!";
my $tabs;
- if ($id) {
- my $queue = Jifty->web->page_navigation->child( $queue_obj->name => url => "Admin/Queues/Modify.html?id=" . $id );
- $queue->child( _('Basics'), url => "Admin/Queues/Modify.html?id=" . $id );
- $queue->child( _('Watchers'), url => "Admin/Queues/People.html?id=" . $id );
- $queue->child( _('Templates'), url => "Admin/Queues/Templates.html?id=" . $id );
+ if ( my $id = Jifty->web->request->argument('id') ) {
+ my $queue_obj = RT::Model::Queue->new();
+ $queue_obj->load($id);
+
+ if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQueue' ) ) {
+ Jifty->web->page_navigation->child( _('Select'), url => "/Admin/Queues/" );
+ Jifty->web->page_navigation->child(
+ _('Create'),
+ url => "/Admin/Queues/Modify.html?create=1",
+ separator => 1
+ );
+ }
+ my $queue
+ = Jifty->web->page_navigation->child( $queue_obj->name => url => "/Admin/Queues/Modify.html?id=" . $id );
+ $queue->child( _('Basics'), url => "/Admin/Queues/Modify.html?id=" . $id );
+ $queue->child( _('Watchers'), url => "/Admin/Queues/People.html?id=" . $id );
+ $queue->child( _('Templates'), url => "/Admin/Queues/Templates.html?id=" . $id );
$queue->child( _('Ticket Custom Fields'),
url => '/Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket&id=' . $id );
@@ -312,12 +320,8 @@ before 'Admin/Queues' => sub {
$queue->child( _('Transaction Custom Fields'),
url => '/Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket-RT::Model::Transaction&id=' . $id );
- $queue->child( _('Group rights'), url => "Admin/Queues/GroupRights.html?id=" . $id );
- $queue->child( _('User rights'), url => "Admin/Queues/UserRights.html?id=" . $id );
- }
- if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQueue' ) ) {
- Jifty->web->page_navigation->child( _('Select'), url => "Admin/Queues/" );
- Jifty->web->page_navigation->child( _('Create'), url => "Admin/Queues/Modify.html?create=1", separator => 1 );
+ $queue->child( _('Group rights'), url => "/Admin/Queues/GroupRights.html?id=" . $id );
+ $queue->child( _('User rights'), url => "/Admin/Queues/UserRights.html?id=" . $id );
}
};
@@ -326,13 +330,13 @@ before 'User/Group' => sub {
# User/Groups
if ( $group_obj and $group_obj->id ) {
- my $group = Jifty->web->navigation->child( url => "User/Groups/Modify.html?id=" . $group_obj->id );
- $group->child( _('Basics'), url => "User/Groups/Modify.html?id=" . $group_obj->id );
- $group->child( _('Members'), url => "User/Groups/Members.html?id=" . $group_obj->id );
+ my $group = Jifty->web->navigation->child( url => "/User/Groups/Modify.html?id=" . $group_obj->id );
+ $group->child( _('Basics'), url => "/User/Groups/Modify.html?id=" . $group_obj->id );
+ $group->child( _('Members'), url => "/User/Groups/Members.html?id=" . $group_obj->id );
}
- Jifty->web->page_navigation( _('Select group') => url => "User/Groups/index.html" );
- Jifty->web->page_navigation( _('New group') => url => "User/Groups/Modify.html?create=1", separator => 1 );
+ Jifty->web->page_navigation( _('Select group') => url => "/User/Groups/index.html" );
+ Jifty->web->page_navigation( _('New group') => url => "/User/Groups/Modify.html?create=1", separator => 1 );
};
=for later Navigation
@@ -374,8 +378,8 @@ if ( $dashboard_obj and $dashboard_obj->id ) {
# /Admin/CustomFields tabs
if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminCustomField')) {
-Jifty->web->page_navigation->child(_('Select'), url => "Admin/CustomFields/");
-Jifty->web->page_navigation->child(_('Create'), url => "Admin/CustomFields/Modify.html?create=1", separator => 1,);
+Jifty->web->page_navigation->child(_('Select'), url => "/Admin/CustomFields/");
+Jifty->web->page_navigation->child(_('Create'), url => "/Admin/CustomFields/Modify.html?create=1", separator => 1,);
if ($id) {
my $cf = RT::Model::CustomField->new();
$cf->load($id);
@@ -384,7 +388,7 @@ if ($id) {
$cftabs->child(_('Basics') => url => "Admin/CustomFields/Modify.html?id=" . $id);
$cftabs->child( _('Group rights') => url => "Admin/CustomFields/GroupRights.html?id=" . $id);
- $cftabs->child( _('User rights') => url => "Admin/CustomFields/UserRights.html?id=" . $id);
+ $cftabs->child( _('User rights') => url => "/Admin/CustomFields/UserRights.html?id=" . $id);
@@ -564,11 +568,11 @@ Jifty->web->page_navigation->child( _('Bulk Update') => url => "Search/Bulk.htm
};
# /Admin/Users tabs
- my $user = $user_admin->child(url => "Admin/Users/Modify.html?id=".$id,);
- $user->child(_('Basics'), url => "Admin/Users/Modify.html?id=".$id);
- $user->child(_('Memberships'), url => "Admin/Users/Memberships.html?id=".$id);
- $user->child(_('History'), url => "Admin/Users/History.html?id=".$id);
- $user->child(_('RT at a glance'), url => "Admin/Users/MyRT.html?id=".$id);
+ my $user = $user_admin->child(url => "/Admin/Users/Modify.html?id=".$id,);
+ $user->child(_('Basics'), url => "/Admin/Users/Modify.html?id=".$id);
+ $user->child(_('Memberships'), url => "/Admin/Users/Memberships.html?id=".$id);
+ $user->child(_('History'), url => "/Admin/Users/History.html?id=".$id);
+ $user->child(_('RT at a glance'), url => "/Admin/Users/MyRT.html?id=".$id);
}
};
if ( RT->config->get('gnupg')->{'enable'} ) {
@@ -578,8 +582,8 @@ Jifty->web->navigation->child(_('GnuPG'), url => "Admin/Users/GnuPG.html?id=".$
}
if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUsers')) {
-Jifty->web->navigation->child(_('Select'), url => "Admin/Users/");
-Jifty->web->navigation->child(_('Create'), url => "Admin/Users/Modify.html?create=1", separator => 1);
+Jifty->web->navigation->child(_('Select'), url => "/Admin/Users/");
+Jifty->web->navigation->child(_('Create'), url => "/Admin/Users/Modify.html?create=1", separator => 1);
}
commit a18487877781057cb3fe24c6a95ec7e7cc4eda9f
Author: Jesse Vincent <jesse at bestpractical.com>
Date: Mon Oct 26 12:51:21 2009 -0400
some Admin UI tabs, dashboard tabs, personal group tabs
diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index 6599699..d46424e 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -246,17 +246,10 @@ before qr{.*} => run {
};
before 'Dashboards/' => sub {
- my $dashboard_list = Jifty->web->page_navigation( _('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) {
- Jifty->web->page_navigation->child(
- _('New dashboard'),
- url => "/Dashboards/Modify.html?create=1",
- separator => 1
- );
+ my $dashboard_list = Jifty->web->page_navigation( _('Select'), url => "/Dashboards/index.html" );
+
+ if ( RT::Dashboard->new->_privacy_objects( create => 1 )) {
+ Jifty->web->page_navigation->child( _('Create') => url => "/Dashboards/Modify.html?create=1");
}
};
@@ -302,20 +295,14 @@ before 'Admin/Queues' => sub {
if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQueue' ) ) {
Jifty->web->page_navigation->child( _('Select'), url => "/Admin/Queues/" );
- Jifty->web->page_navigation->child(
- _('Create'),
- url => "/Admin/Queues/Modify.html?create=1",
- separator => 1
- );
+ Jifty->web->page_navigation->child( _('Create'), url => "/Admin/Queues/Modify.html?create=1");
}
- my $queue
- = Jifty->web->page_navigation->child( $queue_obj->name => url => "/Admin/Queues/Modify.html?id=" . $id );
+ my $queue = Jifty->web->page_navigation->child( $queue_obj->name => url => "/Admin/Queues/Modify.html?id=" . $id );
$queue->child( _('Basics'), url => "/Admin/Queues/Modify.html?id=" . $id );
$queue->child( _('Watchers'), url => "/Admin/Queues/People.html?id=" . $id );
$queue->child( _('Templates'), url => "/Admin/Queues/Templates.html?id=" . $id );
- $queue->child( _('Ticket Custom Fields'),
- url => '/Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket&id=' . $id );
+ $queue->child( _('Ticket Custom Fields'), url => '/Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket&id=' . $id );
$queue->child( _('Transaction Custom Fields'),
url => '/Admin/Queues/CustomFields.html?sub_type=RT::Model::Ticket-RT::Model::Transaction&id=' . $id );
@@ -325,14 +312,77 @@ before 'Admin/Queues' => sub {
}
};
+before 'Admin/Users' => sub {
+if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUsers')) {
+Jifty->web->navigation->child(_('Select'), url => "/Admin/Users/");
+Jifty->web->navigation->child(_('Create'), url => "/Admin/Users/Modify.html?create=1", separator => 1);
+}
+ if ( my $id = Jifty->web->request->argument('id') ) {
+ my $obj = RT::Model::User->new();
+ $obj->load($id);
+ my $user = $user_admin->child($obj->Name, url => "/Admin/Users/Modify.html?id=".$id,);
+ $user->child(_('Basics'), url => "/Admin/Users/Modify.html?id=".$id);
+ $user->child(_('Memberships'), url => "/Admin/Users/Memberships.html?id=".$id);
+ $user->child(_('History'), url => "/Admin/Users/History.html?id=".$id);
+ $user->child(_('RT at a glance'), url => "/Admin/Users/MyRT.html?id=".$id);
+ }
+ if ( RT->config->get('gnupg')->{'enable'} ) {
+Jifty->web->navigation->child(_('GnuPG'), url => "Admin/Users/GnuPG.html?id=".$id,
+ };
+ }
+
+};
+
+before 'Admin/Groups' => sub {
+
+Jifty->web->page_navigation->child( _('Select') => url => "Admin/Groups/");
+Jifty->web->page_navigation->child( _('Create') => url => "Admin/Groups/Modify.html?create=1", separator => 1);
+ if ( my $id = Jifty->web->request->argument('id') ) {
+ my $obj = RT::Model::User->new();
+ $obj->load($id);
+ $tabs = Jifty->web->page_navigation->child( $obj->name, url => "Admin/CustomFields/Modify.html?id=" . $id );
+ $tabs->child( _('Basics') => url => "Admin/Groups/Modify.html?id=" . $obj->id );
+ $tabs->child( _('Members') => url => "Admin/Groups/Members.html?id=" . $obj->id );
+ $tabs->child( _('Group rights') => url => "Admin/Groups/GroupRights.html?id=" . $obj->id );
+ $tabs->child( _('User rights') => url => "Admin/Groups/UserRights.html?id=" . $obj->id );
+ $tabs->child( _('History') => url => "Admin/Groups/History.html?id=" . $obj->id );
+ }
+};
+before 'Admin/CustomFields/' => sub {
+ if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminCustomField' ) ) {
+ Jifty->web->page_navigation->child( _('Select'), url => "/Admin/CustomFields/" );
+ Jifty->web->page_navigation->child(
+ _('Create') =>
+ url => "/Admin/CustomFields/Modify.html?create=1",
+ );
+
+ }
+ if ( my $id = Jifty->web->request->argument('id') ) {
+ my $obj = RT::Model::CustomField->new();
+ $obj->load($id);
+ $cftabs = Jifty->web->page_navigation->child( $obj->name, url => "Admin/CustomFields/Modify.html?id=" . $id );
+
+ $cftabs->child( _('Basics') => url => "Admin/CustomFields/Modify.html?id=" . $id );
+ $cftabs->child( _('Group rights') => url => "Admin/CustomFields/GroupRights.html?id=" . $id );
+ $cftabs->child( _('User rights') => url => "/Admin/CustomFields/UserRights.html?id=" . $id );
+
+ if ( $obj->lookup_type =~ /^RT::Model::Queue-/io ) {
+ $cftabs->child( _('Applies to'), url => "Admin/CustomFields/Objects.html?id=" . $id );
+ }
+
+ }
+
+};
+
+
before 'User/Group' => sub {
- my $group_obj = undef; #XXX TODO
- # User/Groups
- if ( $group_obj and $group_obj->id ) {
- my $group = Jifty->web->navigation->child( url => "/User/Groups/Modify.html?id=" . $group_obj->id );
- $group->child( _('Basics'), url => "/User/Groups/Modify.html?id=" . $group_obj->id );
- $group->child( _('Members'), url => "/User/Groups/Members.html?id=" . $group_obj->id );
+ if ( my $id = Jifty->web->request->argument('id') ) {
+ my $obj = RT::Model::User->new();
+ $obj->load($id);
+ my $group = Jifty->web->page_navigation->child( url => "/User/Groups/Modify.html?id=" . $obj->id );
+ $group->child( _('Basics'), url => "/User/Groups/Modify.html?id=" . $obj->id );
+ $group->child( _('Members'), url => "/User/Groups/Members.html?id=" . $obj->id );
}
Jifty->web->page_navigation( _('Select group') => url => "/User/Groups/index.html" );
@@ -376,30 +426,6 @@ if ( $dashboard_obj and $dashboard_obj->id ) {
# /Admin/CustomFields tabs
-
-if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminCustomField')) {
-Jifty->web->page_navigation->child(_('Select'), url => "/Admin/CustomFields/");
-Jifty->web->page_navigation->child(_('Create'), url => "/Admin/CustomFields/Modify.html?create=1", separator => 1,);
-if ($id) {
- my $cf = RT::Model::CustomField->new();
- $cf->load($id);
- $cftabs = Jifty->web->page_navigation->child( $cf->name, url => "Admin/CustomFields/Modify.html?id=" . $id );
-
-
- $cftabs->child(_('Basics') => url => "Admin/CustomFields/Modify.html?id=" . $id);
- $cftabs->child( _('Group rights') => url => "Admin/CustomFields/GroupRights.html?id=" . $id);
- $cftabs->child( _('User rights') => url => "/Admin/CustomFields/UserRights.html?id=" . $id);
-
-
-
-
- if ($cf->lookup_type =~ /^RT::Model::Queue-/io) {
- $cftabs->child( _('Applies to'), url => "Admin/CustomFields/Objects.html?id=" . $id);
- }
-
-}
-
-
#/Admin/Global/Workflows tabs
if ( $schema ) {
@@ -568,24 +594,6 @@ Jifty->web->page_navigation->child( _('Bulk Update') => url => "Search/Bulk.htm
};
# /Admin/Users tabs
- my $user = $user_admin->child(url => "/Admin/Users/Modify.html?id=".$id,);
- $user->child(_('Basics'), url => "/Admin/Users/Modify.html?id=".$id);
- $user->child(_('Memberships'), url => "/Admin/Users/Memberships.html?id=".$id);
- $user->child(_('History'), url => "/Admin/Users/History.html?id=".$id);
- $user->child(_('RT at a glance'), url => "/Admin/Users/MyRT.html?id=".$id);
- }
-};
- if ( RT->config->get('gnupg')->{'enable'} ) {
-Jifty->web->navigation->child(_('GnuPG'), url => "Admin/Users/GnuPG.html?id=".$id,
- };
- }
-}
-
-if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUsers')) {
-Jifty->web->navigation->child(_('Select'), url => "/Admin/Users/");
-Jifty->web->navigation->child(_('Create'), url => "/Admin/Users/Modify.html?create=1", separator => 1);
-}
-
# Admin/GlobalCustomFields
@@ -607,22 +615,6 @@ my $tabs = {
# Admin/Groups
-if ( $group_obj and $group_obj->id ) {
-$tabs->{"this"} = { class => "currentnav",
- url => "Admin/Groups/Modify.html?id=" . $group_obj->id,
- label => $group_obj->name,
- current_subtab => $current_subtab,
- Jifty->web->navigation->child( subtabs =>
- Jifty->web->navigation->child( _('Basics') => url => "Admin/Groups/Modify.html?id=" . $group_obj->id );
- Jifty->web->navigation->child( _('Members') => url => "Admin/Groups/Members.html?id=" . $group_obj->id );
- Jifty->web->navigation->child( _('Group rights') => url => "Admin/Groups/GroupRights.html?id=" . $group_obj->id );
- Jifty->web->navigation->child( _('User rights') => url => "Admin/Groups/UserRights.html?id=" . $group_obj->id );
- Jifty->web->navigation->child( _('History') => url => "Admin/Groups/History.html?id=" . $group_obj->id );
- }
-}
-}
-$tabs->{"A"} = { label => _('Select'), url => "Admin/Groups/");
-$tabs->{"B"} = { label => _('Create'), url => "Admin/Groups/Modify.html?create=1", separator => 1);
# Prefs/
my $tabs;
commit a4ab4653d8fad0694c696f19fd6643e83b48a047
Author: Jesse Vincent <jesse at bestpractical.com>
Date: Mon Oct 26 13:21:47 2009 -0400
Removing outdated currentuser calls from Dashboards code
diff --git a/share/html/Dashboards/Modify.html b/share/html/Dashboards/Modify.html
index e82f388..1415aba 100644
--- a/share/html/Dashboards/Modify.html
+++ b/share/html/Dashboards/Modify.html
@@ -89,7 +89,7 @@ $create = 1 if !$id;
use RT::Dashboard;
-my $Dashboard = RT::Dashboard->new( current_user => Jifty->web->current_user );
+my $Dashboard = RT::Dashboard->new( );
my @privacies = $Dashboard->_privacy_objects(($create ? 'create' : 'modify') => 1);
abort(_("Permission denied")) if @privacies == 0;
diff --git a/share/html/Dashboards/Render.html b/share/html/Dashboards/Render.html
index 929062e..a667ddc 100644
--- a/share/html/Dashboards/Render.html
+++ b/share/html/Dashboards/Render.html
@@ -76,11 +76,11 @@
my $current_subtab = 'Dashboards/Render.html?id=' . $id;
use RT::Dashboard;
-my $dashboard_obj = RT::Dashboard->new( current_user => Jifty->web->current_user );
+my $dashboard_obj = RT::Dashboard->new( );
my ($ok, $msg) = $dashboard_obj->load_by_id($id);
abort(_("Couldn't load dashboard %1: %2", $id, $msg)) if !$ok;
-my $SubscriptionObj = RT::Model::Attribute->new( current_user => Jifty->web->current_user );
+my $SubscriptionObj = RT::Model::Attribute->new();
my $Loaded = 0;
# try to load the subscription to this id
commit e08dc621269385219d2db3c5cab7d9a50e912b5e
Author: Jesse Vincent <jesse at bestpractical.com>
Date: Mon Oct 26 13:22:15 2009 -0400
Customfield and dashboard page nav
diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index d46424e..23d5923 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -208,13 +208,26 @@ before qr{.*} => run {
$admin_global->child( _('Templates'), url => '/Admin/Global/Templates.html', );
my $workflows = $admin_global->child( _('Workflows'), url => '/Admin/Global/Workflows/index.html', );
{
- $workflows->child( _('Select') .'/'. _('Create') => url => "/Admin/Global/Workflows/index.html");
+ $workflows->child( _('Overview') => url => "/Admin/Global/Workflows/index.html");
$workflows->child( _('Localization') => url => "/Admin/Global/Workflows/Localization.html");
$workflows->child( _('Mappings') => url => "/Admin/Global/Workflows/Mappings.html");
}
- $admin_global->child( _('Custom Fields'), url => '/Admin/Global/CustomFields/index.html', );
+ my $cfadmin = $admin_global->child( _('Custom Fields'), url => '/Admin/Global/CustomFields/index.html', );
+ {
+ $cfadmin->child( _('Users') => text => _('Select custom fields for all users') , url => 'Admin/Global/CustomFields/Users.html' );
+
+ $cfadmin->child( _('Groups') => text => _('Select custom fields for all user groups') , url => 'Admin/Global/CustomFields/Groups.html');
+
+ $cfadmin->child( _('Queues') => text => _('Select custom fields for all queues') , url => 'Admin/Global/CustomFields/Queues.html');
+
+ $cfadmin->child( _('Tickets') => text => _('Select custom fields for tickets in all queues') , url => 'Admin/Global/CustomFields/Queue-Tickets.html') ;
+
+ $cfadmin->child( _('Ticket Transactions') => text => _('Select custom fields for transactions on tickets in all queues') , url => 'Admin/Global/CustomFields/Queue-Transactions.html' );
+
+ }
+
$admin_global->child( _('Group rights'), url => '/Admin/Global/GroupRights.html', );
$admin_global->child( _('User rights'), url => '/Admin/Global/UserRights.html', );
$admin_global->child( _('RT at a glance'), url => '/Admin/Global/MyRT.html', );
@@ -245,11 +258,24 @@ before qr{.*} => run {
}
};
-before 'Dashboards/' => sub {
- my $dashboard_list = Jifty->web->page_navigation( _('Select'), url => "/Dashboards/index.html" );
-
- if ( RT::Dashboard->new->_privacy_objects( create => 1 )) {
- Jifty->web->page_navigation->child( _('Create') => url => "/Dashboards/Modify.html?create=1");
+before qr'Dashboards/(\d*)?' => sub {
+ Jifty->web->page_navigation->child( _('Select'), url => "/Dashboards/index.html" );
+ require RT::Dashboard; # not a record class, so not autoloaded :/
+ if ( RT::Dashboard->new->_privacy_objects( create => 1 ) ) {
+ Jifty->web->page_navigation->child( _('Create') => url => "/Dashboards/Modify.html?create=1" );
+ }
+
+ if ( my $id = ($1 || Jifty->web->request->argument('id') )) {
+ my $obj = RT::Dashboard->new();
+ $obj->load_by_id($id);
+ if ( $obj and $obj->id ) {
+ my $tabs = Jifty->web->page_navigation->child( "this" => label => $obj->name, url => "/Dashboards/Modify.html?id=" . $obj->id);
+ $tabs->child( _('Basics'), url => "/Dashboards/Modify.html?id=" . $obj->id );
+ $tabs->child( _('Queries'), url => "/Dashboards/Queries.html?id=" . $obj->id );
+ $tabs->child( _('Subscription'), url => "/Dashboards/Subscription.html?dashboard_id=" . $obj->id ) if $obj->current_user_can_subscribe;
+ $tabs->child( _('Show'), url => "Dashboards/" . $obj->id . "/" . $obj->name )
+
+ }
}
};
@@ -289,14 +315,14 @@ before '/SelfService' => sub {
before 'Admin/Queues' => sub {
my $tabs;
- if ( my $id = Jifty->web->request->argument('id') ) {
- my $queue_obj = RT::Model::Queue->new();
- $queue_obj->load($id);
-
if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQueue' ) ) {
Jifty->web->page_navigation->child( _('Select'), url => "/Admin/Queues/" );
Jifty->web->page_navigation->child( _('Create'), url => "/Admin/Queues/Modify.html?create=1");
}
+ if ( my $id = Jifty->web->request->argument('id') ) {
+ my $queue_obj = RT::Model::Queue->new();
+ $queue_obj->load($id);
+
my $queue = Jifty->web->page_navigation->child( $queue_obj->name => url => "/Admin/Queues/Modify.html?id=" . $id );
$queue->child( _('Basics'), url => "/Admin/Queues/Modify.html?id=" . $id );
$queue->child( _('Watchers'), url => "/Admin/Queues/People.html?id=" . $id );
@@ -314,21 +340,20 @@ before 'Admin/Queues' => sub {
before 'Admin/Users' => sub {
if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUsers')) {
-Jifty->web->navigation->child(_('Select'), url => "/Admin/Users/");
-Jifty->web->navigation->child(_('Create'), url => "/Admin/Users/Modify.html?create=1", separator => 1);
+Jifty->web->page_navigation->child(_('Select'), url => "/Admin/Users/");
+Jifty->web->page_navigation->child(_('Create'), url => "/Admin/Users/Modify.html?create=1", separator => 1);
}
if ( my $id = Jifty->web->request->argument('id') ) {
my $obj = RT::Model::User->new();
$obj->load($id);
- my $user = $user_admin->child($obj->Name, url => "/Admin/Users/Modify.html?id=".$id,);
- $user->child(_('Basics'), url => "/Admin/Users/Modify.html?id=".$id);
- $user->child(_('Memberships'), url => "/Admin/Users/Memberships.html?id=".$id);
- $user->child(_('History'), url => "/Admin/Users/History.html?id=".$id);
- $user->child(_('RT at a glance'), url => "/Admin/Users/MyRT.html?id=".$id);
- }
+ my $tabs = Jifty->web->page_navigation->child($obj->Name, url => "/Admin/Users/Modify.html?id=".$id,);
+ $tabs->child(_('Basics'), url => "/Admin/Users/Modify.html?id=".$id);
+ $tabs->child(_('Memberships'), url => "/Admin/Users/Memberships.html?id=".$id);
+ $tabs->child(_('History'), url => "/Admin/Users/History.html?id=".$id);
+ $tabs->child(_('RT at a glance'), url => "/Admin/Users/MyRT.html?id=".$id);
if ( RT->config->get('gnupg')->{'enable'} ) {
-Jifty->web->navigation->child(_('GnuPG'), url => "Admin/Users/GnuPG.html?id=".$id,
- };
+ $tabs->child(_('GnuPG'), url => "Admin/Users/GnuPG.html?id=".$id);
+ }
}
};
@@ -340,7 +365,7 @@ Jifty->web->page_navigation->child( _('Create') => url => "Admin/Groups/Mod
if ( my $id = Jifty->web->request->argument('id') ) {
my $obj = RT::Model::User->new();
$obj->load($id);
- $tabs = Jifty->web->page_navigation->child( $obj->name, url => "Admin/CustomFields/Modify.html?id=" . $id );
+ my $tabs = Jifty->web->page_navigation->child( $obj->name, url => "Admin/CustomFields/Modify.html?id=" . $id );
$tabs->child( _('Basics') => url => "Admin/Groups/Modify.html?id=" . $obj->id );
$tabs->child( _('Members') => url => "Admin/Groups/Members.html?id=" . $obj->id );
$tabs->child( _('Group rights') => url => "Admin/Groups/GroupRights.html?id=" . $obj->id );
@@ -360,14 +385,14 @@ before 'Admin/CustomFields/' => sub {
if ( my $id = Jifty->web->request->argument('id') ) {
my $obj = RT::Model::CustomField->new();
$obj->load($id);
- $cftabs = Jifty->web->page_navigation->child( $obj->name, url => "Admin/CustomFields/Modify.html?id=" . $id );
+ my $tabs = Jifty->web->page_navigation->child( $obj->name, url => "Admin/CustomFields/Modify.html?id=" . $id );
- $cftabs->child( _('Basics') => url => "Admin/CustomFields/Modify.html?id=" . $id );
- $cftabs->child( _('Group rights') => url => "Admin/CustomFields/GroupRights.html?id=" . $id );
- $cftabs->child( _('User rights') => url => "/Admin/CustomFields/UserRights.html?id=" . $id );
+ $tabs->child( _('Basics') => url => "Admin/CustomFields/Modify.html?id=" . $id );
+ $tabs->child( _('Group rights') => url => "Admin/CustomFields/GroupRights.html?id=" . $id );
+ $tabs->child( _('User rights') => url => "/Admin/CustomFields/UserRights.html?id=" . $id );
if ( $obj->lookup_type =~ /^RT::Model::Queue-/io ) {
- $cftabs->child( _('Applies to'), url => "Admin/CustomFields/Objects.html?id=" . $id );
+ $tabs->child( _('Applies to'), url => "Admin/CustomFields/Objects.html?id=" . $id );
}
}
@@ -401,24 +426,6 @@ my $basetopactions = {
-# /Tools/Dashboards tabs
-if ( $dashboard_obj and $dashboard_obj->id ) {
- $dash = Jifty->web->navigation->child( "this" => label => $dashboard_obj->name, url => "Dashboards/Modify.html?id=" . $dashboard_obj->id);
- $dash->child(_('Basics'), url => "Dashboards/Modify.html?id=" . $dashboard_obj->id);
- $dash->child(_('Queries'), url => "Dashboards/Queries.html?id=" . $dashboard_obj->id);
- $dash->child(_('Subscription'), url => "Dashboards/Subscription.html?dashboard_id=" . $dashboard_obj->id);
- $dash->child(_('Show'), url => "Dashboards/" . $dashboard_obj->id . "/".$dashboard_obj->name)
-
- }
-
- delete $tabs->{"this"}{"subtabs"}{"c_Subscription"} unless $dashboard_obj->current_user_can_subscribe;
-
- $tabs->{"this"}{"subtabs"}{"z_Preview"}{url} = $real_subtab
- if $real_subtab =~ /Render/
- || $real_subtab =~ /Dashboard\/\d+/;
-}
-
-
# /SelfService Tabs
@@ -601,16 +608,6 @@ my $tabs = {
- $cfadmin->child( _('Users') => text => _('Select custom fields for all users') , url => 'Admin/Global/CustomFields/Users.html' );
-
- $cfadmin->child( _('Groups') => text => _('Select custom fields for all user groups') , url => 'Admin/Global/CustomFields/Groups.html');
-
- $cfadmin->child( _('Queues') => text => _('Select custom fields for all queues') , url => 'Admin/Global/CustomFields/Queues.html');
-
- $cfadmin->child( _('Tickets') => text => _('Select custom fields for tickets in all queues') , url => 'Admin/Global/CustomFields/Queue-Tickets.html' ;
-
- $cfadmin->child( _('Ticket Transactions') => text => _('Select custom fields for transactions on tickets in all queues') , url => 'Admin/Global/CustomFields/Queue-Transactions.html' =>);
-
};
# Admin/Groups
commit 3ac5a89f38d5290f9ad3abb52b493789ee688bbf
Author: Jesse Vincent <jesse at bestpractical.com>
Date: Mon Oct 26 16:13:11 2009 -0400
yay. some ticket nav
diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index 23d5923..a40a5b4 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -186,7 +186,7 @@ before qr{.*} => run {
my $tools = Jifty->web->navigation->child( _('Tools'), url => '/Tools/index.html' );
$tools->child( _('Dashboards'), url => '/Dashboards/index.html' );
- my $reports = $tools->child( _('Reports'), url => '/Tools/Reports/index.html' );
+ my $reports = $tools->child( _('Reports'), url => '/Tools/Reports/index.html' );
$reports->child( _('Resolved by owner'), url => '/Tools/Reports/ResolvedByOwner.html', );
$reports->child( _('Resolved in date range'), url => '/Tools/Reports/ResolvedByDates.html', );
$reports->child( _('Created in a date range'), url => '/Tools/Reports/CreatedByDates.html', );
@@ -197,8 +197,8 @@ before qr{.*} => run {
&& Jifty->web->current_user->has_right( right => 'ShowConfigTab', object => RT->system ) )
{
my $admin = Jifty->web->navigation->child( Config => label => _('Configuration'), url => '/Admin/' );
- $admin->child( _('Users'), url => '/Admin/Users/', );
- $admin->child( _('Groups'), url => '/Admin/Groups/', );
+ $admin->child( _('Users'), url => '/Admin/Users/', );
+ $admin->child( _('Groups'), url => '/Admin/Groups/', );
$admin->child( _('Queues'), url => '/Admin/Queues/', );
$admin->child( _('Custom Fields'), url => '/Admin/CustomFields/', );
$admin->child( _('Rules'), url => '/admin/rules/', );
@@ -206,27 +206,41 @@ before qr{.*} => run {
my $admin_global = $admin->child( _('Global'), url => '/Admin/Global/', );
$admin_global->child( _('Templates'), url => '/Admin/Global/Templates.html', );
- my $workflows = $admin_global->child( _('Workflows'), url => '/Admin/Global/Workflows/index.html', );
- {
- $workflows->child( _('Overview') => url => "/Admin/Global/Workflows/index.html");
- $workflows->child( _('Localization') => url => "/Admin/Global/Workflows/Localization.html");
- $workflows->child( _('Mappings') => url => "/Admin/Global/Workflows/Mappings.html");
- }
+ my $workflows = $admin_global->child( _('Workflows'), url => '/Admin/Global/Workflows/index.html', );
+ {
+ $workflows->child( _('Overview') => url => "/Admin/Global/Workflows/index.html" );
+ $workflows->child( _('Localization') => url => "/Admin/Global/Workflows/Localization.html" );
+ $workflows->child( _('Mappings') => url => "/Admin/Global/Workflows/Mappings.html" );
+ }
+ my $cfadmin = $admin_global->child( _('Custom Fields'), url => '/Admin/Global/CustomFields/index.html', );
+ {
+ $cfadmin->child(
+ _('Users') => text => _('Select custom fields for all users'),
+ url => 'Admin/Global/CustomFields/Users.html'
+ );
- my $cfadmin = $admin_global->child( _('Custom Fields'), url => '/Admin/Global/CustomFields/index.html', );
- {
- $cfadmin->child( _('Users') => text => _('Select custom fields for all users') , url => 'Admin/Global/CustomFields/Users.html' );
-
- $cfadmin->child( _('Groups') => text => _('Select custom fields for all user groups') , url => 'Admin/Global/CustomFields/Groups.html');
-
- $cfadmin->child( _('Queues') => text => _('Select custom fields for all queues') , url => 'Admin/Global/CustomFields/Queues.html');
-
- $cfadmin->child( _('Tickets') => text => _('Select custom fields for tickets in all queues') , url => 'Admin/Global/CustomFields/Queue-Tickets.html') ;
-
- $cfadmin->child( _('Ticket Transactions') => text => _('Select custom fields for transactions on tickets in all queues') , url => 'Admin/Global/CustomFields/Queue-Transactions.html' );
-
- }
+ $cfadmin->child(
+ _('Groups') => text => _('Select custom fields for all user groups'),
+ url => 'Admin/Global/CustomFields/Groups.html'
+ );
+
+ $cfadmin->child(
+ _('Queues') => text => _('Select custom fields for all queues'),
+ url => 'Admin/Global/CustomFields/Queues.html'
+ );
+
+ $cfadmin->child(
+ _('Tickets') => text => _('Select custom fields for tickets in all queues'),
+ url => 'Admin/Global/CustomFields/Queue-Tickets.html'
+ );
+
+ $cfadmin->child(
+ _('Ticket Transactions') => text => _('Select custom fields for transactions on tickets in all queues'),
+ url => 'Admin/Global/CustomFields/Queue-Transactions.html'
+ );
+
+ }
$admin_global->child( _('Group rights'), url => '/Admin/Global/GroupRights.html', );
$admin_global->child( _('User rights'), url => '/Admin/Global/UserRights.html', );
@@ -234,7 +248,7 @@ before qr{.*} => run {
$admin_global->child( _('Jifty'), url => '/Admin/Global/Jifty.html', );
$admin_global->child( _('System'), url => '/Admin/Global/System.html', );
- my $admin_tools = $admin->child( _('Tools'), url => '/Admin/Tools/',);
+ my $admin_tools = $admin->child( _('Tools'), url => '/Admin/Tools/', );
$admin_tools->child( _('System Configuration'), url => '/Admin/Tools/Configuration.html', );
$admin_tools->child( _('Shredder'), url => '/Admin/Tools/Shredder', );
}
@@ -247,13 +261,15 @@ before qr{.*} => run {
{
my $prefs = Jifty->web->navigation->child( _('Preferences'), url => '/Prefs/Other.html' );
- $prefs->child( _('Settings'), url => '/Prefs/Other.html', );
+ $prefs->child( _('Settings'), url => '/Prefs/Other.html', );
$prefs->child( _('About me'), url => '/User/Prefs.html', );
$prefs->child( _('Search options'), url => '/Prefs/SearchOptions.html', );
$prefs->child( _('RT at a glance'), url => '/Prefs/MyRT.html', );
}
- if (Jifty->web->current_user->user_object && Jifty->web->current_user->has_right( right => 'ShowApprovalsTab', object => RT->system)) {
+ if ( Jifty->web->current_user->user_object
+ && Jifty->web->current_user->has_right( right => 'ShowApprovalsTab', object => RT->system ) )
+ {
Jifty->web->navigation->child( _('Approval'), url => '/Approvals/' );
}
};
@@ -352,7 +368,7 @@ Jifty->web->page_navigation->child(_('Create'), url => "/Admin/Users/Modify.html
$tabs->child(_('History'), url => "/Admin/Users/History.html?id=".$id);
$tabs->child(_('RT at a glance'), url => "/Admin/Users/MyRT.html?id=".$id);
if ( RT->config->get('gnupg')->{'enable'} ) {
- $tabs->child(_('GnuPG'), url => "Admin/Users/GnuPG.html?id=".$id);
+ $tabs->child(_('GnuPG'), url => "/Admin/Users/GnuPG.html?id=".$id);
}
}
@@ -360,19 +376,21 @@ Jifty->web->page_navigation->child(_('Create'), url => "/Admin/Users/Modify.html
before 'Admin/Groups' => sub {
-Jifty->web->page_navigation->child( _('Select') => url => "Admin/Groups/");
-Jifty->web->page_navigation->child( _('Create') => url => "Admin/Groups/Modify.html?create=1", separator => 1);
+Jifty->web->page_navigation->child( _('Select') => url => "/Admin/Groups/");
+Jifty->web->page_navigation->child( _('Create') => url => "/Admin/Groups/Modify.html?create=1", separator => 1);
if ( my $id = Jifty->web->request->argument('id') ) {
my $obj = RT::Model::User->new();
$obj->load($id);
- my $tabs = Jifty->web->page_navigation->child( $obj->name, url => "Admin/CustomFields/Modify.html?id=" . $id );
- $tabs->child( _('Basics') => url => "Admin/Groups/Modify.html?id=" . $obj->id );
- $tabs->child( _('Members') => url => "Admin/Groups/Members.html?id=" . $obj->id );
- $tabs->child( _('Group rights') => url => "Admin/Groups/GroupRights.html?id=" . $obj->id );
- $tabs->child( _('User rights') => url => "Admin/Groups/UserRights.html?id=" . $obj->id );
- $tabs->child( _('History') => url => "Admin/Groups/History.html?id=" . $obj->id );
+ my $tabs = Jifty->web->page_navigation->child( $obj->name, url => "/Admin/CustomFields/Modify.html?id=" . $id );
+ $tabs->child( _('Basics') => url => "/Admin/Groups/Modify.html?id=" . $obj->id );
+ $tabs->child( _('Members') => url => "/Admin/Groups/Members.html?id=" . $obj->id );
+ $tabs->child( _('Group rights') => url => "/Admin/Groups/GroupRights.html?id=" . $obj->id );
+ $tabs->child( _('User rights') => url => "/Admin/Groups/UserRights.html?id=" . $obj->id );
+ $tabs->child( _('History') => url => "/Admin/Groups/History.html?id=" . $obj->id );
}
};
+
+
before 'Admin/CustomFields/' => sub {
if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminCustomField' ) ) {
Jifty->web->page_navigation->child( _('Select'), url => "/Admin/CustomFields/" );
@@ -385,23 +403,92 @@ before 'Admin/CustomFields/' => sub {
if ( my $id = Jifty->web->request->argument('id') ) {
my $obj = RT::Model::CustomField->new();
$obj->load($id);
- my $tabs = Jifty->web->page_navigation->child( $obj->name, url => "Admin/CustomFields/Modify.html?id=" . $id );
+ my $tabs = Jifty->web->page_navigation->child( $obj->name, url => "/Admin/CustomFields/Modify.html?id=" . $id );
- $tabs->child( _('Basics') => url => "Admin/CustomFields/Modify.html?id=" . $id );
- $tabs->child( _('Group rights') => url => "Admin/CustomFields/GroupRights.html?id=" . $id );
+ $tabs->child( _('Basics') => url => "/Admin/CustomFields/Modify.html?id=" . $id );
+ $tabs->child( _('Group rights') => url => "/Admin/CustomFields/GroupRights.html?id=" . $id );
$tabs->child( _('User rights') => url => "/Admin/CustomFields/UserRights.html?id=" . $id );
if ( $obj->lookup_type =~ /^RT::Model::Queue-/io ) {
- $tabs->child( _('Applies to'), url => "Admin/CustomFields/Objects.html?id=" . $id );
+ $tabs->child( _('Applies to'), url => "/Admin/CustomFields/Objects.html?id=" . $id );
}
}
};
+before 'Admin/Rules' => sub {
+ Jifty->web->page_navigation->child(_('Select'), url => "/Admin/Rules/");
+ Jifty->web->page_navigation->child(_('Create'), url => "/Admin/Rules/Modify.html?create=1");
+};
-before 'User/Group' => sub {
+before 'Ticket/' => sub {
+ if ( my $id = Jifty->web->request->argument('id') ) {
+ my $obj = RT::Model::Ticket->new();
+ $obj->load($id);
+
+ my $tabs = Jifty->web->page_navigation->child(
+ "#" . $id => class => "currentnav",
+ url => "/Ticket/Display.html?id=" . $id
+ );
+
+ $tabs->child( _('Display') => url => "/Ticket/Display.html?id=" . $id );
+
+ $tabs->child( _('History') => url => "/Ticket/History.html?id=" . $id );
+ $tabs->child( _('Basics') => url => "/Ticket/Modify.html?id=" . $id );
+
+ $tabs->child( _('Dates') => url => "/Ticket/ModifyDates.html?id=" . $id );
+ $tabs->child( _('People'), url => "/Ticket/ModifyPeople.html?id=" . $id );
+ $tabs->child( _('Links'), url => "/Ticket/ModifyLinks.html?id=" . $id );
+ $tabs->child( _('Jumbo'), url => "/Ticket/ModifyAll.html?id=" . $id );
+
+ my %can = ( ModifyTicket => $obj->current_user_has_right('ModifyTicket') );
+
+ if ( $can{'ModifyTicket'} or $obj->current_user_has_right('ReplyToTicket') ) {
+ $tabs->child( _('Reply'), url => "/Ticket/Update.html?action=respond&id=" . $id );
+ }
+
+ if ( $can{'ModifyTicket'} ) {
+ my $current = $obj->status;
+ my $schema = $obj->queue->status_schema;
+ my $i = 1;
+ foreach my $next ( $schema->transitions($current) ) {
+ my $action = $schema->transition_action( $current => $next );
+ next if $action eq 'hide';
+
+ my $url = 'Ticket/';
+ if ($action) {
+ #XXX TODO
+ #$url .= "Update.html?" . $m->comp( '/Elements/QueryString', action => $action, default_status => $next, id => $id );
+ } else {
+ #XXX TODO
+ # $url .= "Display.html?" . $m->comp( '/Elements/QueryString', Status => $next, id => $id );
+ }
+ $tabs->child( _( $schema->transition_label( $current => $next ) ) => url => $url );
+ }
+
+ }
+ if ( $obj->current_user_has_right('OwnTicket') ) {
+ if ( $obj->owner_obj->id == RT->nobody->id ) {
+ $tabs->child( _('Take') => url => "/Ticket/Display.html?action=take&id=" . $id )
+ if ($can{'ModifyTicket'} or $obj->current_user_has_right('TakeTicket'));
+ } elsif ( $obj->owner_obj->id != Jifty->web->current_user->id ) {
+ $tabs->child( _('Steal') => url => "/Ticket/Display.html?action=steal&id=" . $id )
+ if ($can{'ModifyTicket'}
+ or $obj->current_user_has_right('StealTicket'));
+ }
+ }
+ if ( $can{'ModifyTicket'} or $obj->current_user_has_right('CommentOnTicket') ) {
+ $tabs->child( _('Comment') => url => "/Ticket/Update.html?action=comment&id=" . $id );
+ }
+
+
+ # $actions->{'_ZZ'} = { html => $m->scomp( '/Ticket/Elements/Bookmark', id => $obj->id ), };
+ }
+};
+
+before 'User/Group' => sub {
if ( my $id = Jifty->web->request->argument('id') ) {
my $obj = RT::Model::User->new();
$obj->load($id);
@@ -414,6 +501,7 @@ before 'User/Group' => sub {
Jifty->web->page_navigation( _('New group') => url => "/User/Groups/Modify.html?create=1", separator => 1 );
};
+
=for later Navigation
# Top level tabs /Elements/Tabs
@@ -425,19 +513,10 @@ my $basetopactions = {
};
-
-
-
-# /SelfService Tabs
-
-
-
-# /Admin/CustomFields tabs
#/Admin/Global/Workflows tabs
if ( $schema ) {
my $qs_name = $m->comp( '/Elements/QueryString', name => $schema->name );
-
$workflow = Jifty->web->page_navigation( $schema->name, url => "$base/Summary.html?$qs_name");
$workflow->child( _("Summary") => url => "$base/Summary.html?$qs_name");
$workflow->child( _("Statuses") => url => "$base/Statuses.html?$qs_name");
@@ -473,76 +552,12 @@ Jifty->web->page_navigation->child( '< ' . _('Prev') => class => "nav", url =>
# Don't display next links if we're on the last ticket
if ( $item_map->{ $ticket->id }->{next} ) {
- Jifty->web->page_navigation->child(
- _('next') . ' >' => class => "nav",
- url => "Ticket/Display.html?id=" . $item_map->{ $ticket->id }->{next}
- );
- Jifty->web->page_navigation->child(
- _('Last') . ' >>' => class => "nav",
- url => "Ticket/Display.html?id=" . $item_map->{last}
- );
-
- my $ticket = Jifty->web->page_navigation->child(
- "#" . $id => class => "currentnav",
- url => "Ticket/Display.html?id=" . $ticket->id,
- );
-
- $ticket->child( _('Display') => url => "Ticket/Display.html?id=" . $id );
-
- $ticket->child( _('History') => url => "Ticket/History.html?id=" . $id );
- $ticket->child( _('Basics') => url => "Ticket/Modify.html?id=" . $id );
-
- $ticket->child( _('Dates') => url => "Ticket/ModifyDates.html?id=" . $id );
- $ticket->child( _('People'), url => "Ticket/ModifyPeople.html?id=" . $id );
- $ticket->child( _('Links'), url => "Ticket/ModifyLinks.html?id=" . $id );
- $ticket->child( _('Jumbo'), url => "Ticket/ModifyAll.html?id=" . $id );
-
- }
- my %can = ( ModifyTicket => $ticket->current_user_has_right('ModifyTicket'));
-
- if ( $can{'ModifyTicket'} or $ticket->current_user_has_right('ReplyToTicket') ) {
- Jifty->web->navigation->child( _('Reply'), url => "Ticket/Update.html?action=respond&id=" . $id )
- }
-
- if ( $can{'ModifyTicket'} ) {
- my $current = $ticket->status;
- my $schema = $ticket->queue->status_schema;
- my $i = 1;
- foreach my $next ( $schema->transitions( $current ) ) {
- my $action = $schema->transition_action( $current => $next );
- next if $action eq 'hide';
-
- my $url = 'Ticket/';
- if ( $action ) {
- $url .= "Update.html?". $m->comp( '/Elements/QueryString', action => $action, default_status => $next, id => $id);
- } else {
- $url .= "Display.html?". $m->comp( '/Elements/QueryString', Status => $next, id => $id);
- }
- Jifty->web->page_navigation->child( _( $schema->transition_label( $current => $next ) ) => url => $url);
+ Jifty->web->page_navigation->child( _('next') . ' >' => class => "nav", url => "Ticket/Display.html?id=" . $item_map->{ $ticket->id }->{next});
+ Jifty->web->page_navigation->child( _('Last') . ' >>' => class => "nav", url => "Ticket/Display.html?id=" . $item_map->{last});
+}
}
- }
- if ( $ticket->current_user_has_right('OwnTicket') ) {
- if ( $ticket->owner_obj->id == RT->nobody->id ) {
- Jifty->web->page_navigation->child( _('Take') => url => "Ticket/Display.html?action=take&id=" . $id );
- if $can{'ModifyTicket'}
- or $ticket->current_user_has_right('TakeTicket');
- } elsif ( $ticket->owner_obj->id != Jifty->web->current_user->id ) {
- Jifty->web->page_navigation->child( _('Steal') => url => "Ticket/Display.html?action=steal&id=" . $id )
- if $can{'ModifyTicket'}
- or $ticket->current_user_has_right('StealTicket');
- }
- }
- if ( $can{'ModifyTicket'} or $ticket->current_user_has_right('CommentOnTicket') ) {
-Jifty->web->page_navigation->child( _('Comment') => url => "Ticket/Update.html?action=comment&id=" . $id );
- }
-
- $actions->{'_ZZ'}
- = { html => $m->scomp( '/Ticket/Elements/Bookmark', id => $ticket->id ),
- };
-
-}
my $args = '';
my $has_query = '';
@@ -592,26 +607,6 @@ Jifty->web->page_navigation->child( _('Bulk Update') => url => "Search/Bulk.htm
}
-# /Admin/Rules
- my $tabs = {
-
-
- $rules_admin->child(_('Select'), url => "Admin/Rules/");
- $rules_admin->child(_('Create'), url => 'Admin/Rules/Modify.html?create=1');
- };
-
-# /Admin/Users tabs
-
-# Admin/GlobalCustomFields
-
-my $tabs = {
-
-
-
-};
-
-# Admin/Groups
-
# Prefs/
my $tabs;
@@ -626,9 +621,6 @@ Jifty->web->navigation->child( $search->[0] =>
};
}
-
-# User/
- };
=cut
# Now let callbacks add their extra tabs
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list