
jesse at bestpractical
Nov 18, 2009, 11:04 AM
Post #1 of 1
(185 views)
Permalink
|
|
rt branch, 3.999-trunk, updated. 4f190e181f7d06e898be15a40f061177c00b944d
|
|
The branch, 3.999-trunk has been updated via 4f190e181f7d06e898be15a40f061177c00b944d (commit) via 4ce73ffb9be070edff518a3693806e482b935fcd (commit) from 07a568aa289f24246a2924c7800ec079d524be5f (commit) Summary of changes: lib/RT/Dispatcher.pm | 232 +++++++++++++++++++++++++------------------------- 1 files changed, 117 insertions(+), 115 deletions(-) - Log ----------------------------------------------------------------- commit 4ce73ffb9be070edff518a3693806e482b935fcd Author: Jesse Vincent <jesse [at] bestpractical> Date: Wed Nov 18 14:03:22 2009 -0500 first step of refactoring nav to not do so much computation. diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm index 575f8bd..e902221 100644 --- a/lib/RT/Dispatcher.pm +++ b/lib/RT/Dispatcher.pm @@ -264,12 +264,15 @@ before qr{.*} => run { ) ) { - my $prefs = main_nav->child( _('Preferences'), url => '/Prefs/Other.html' ); + + my $prefs = Jifty::Web::Menu->new( { label => _('Preferences'), 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', ); + + main_nav->child( 'Preferences' => menu => $prefs); } if ( Jifty->web->current_user->user_object commit 4f190e181f7d06e898be15a40f061177c00b944d Author: Jesse Vincent <jesse [at] bestpractical> Date: Wed Nov 18 14:04:46 2009 -0500 perltidy diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm index e902221..c0c979a 100644 --- a/lib/RT/Dispatcher.pm +++ b/lib/RT/Dispatcher.pm @@ -56,9 +56,9 @@ use RT; use RT::Interface::Web; use RT::Interface::Web::Handler; -sub main_nav { return Jifty->web->navigation() } -sub page_nav { return Jifty->web->page_navigation(); } -sub query_string { my %args = @_; my $u = URI->new(); $u->query_form(%args); return $u->query} +sub main_nav { return Jifty->web->navigation() } +sub page_nav { return Jifty->web->page_navigation(); } +sub query_string { my %args = @_; my $u = URI->new(); $u->query_form(%args); return $u->query } before qr/.*/ => run { if ( int RT->config->get('auto_logoff') ) { @@ -100,8 +100,7 @@ before qr'^/(?!login)' => run { || Jifty->web->request->path =~ m{^/Elements/Footer$} || Jifty->web->request->path =~ m{^/Elements/Logo$} || Jifty->web->request->path =~ m{^/__jifty/test_warnings$} - || Jifty->web->request->path =~ m{^/__jifty/(css|js)} - ); + || Jifty->web->request->path =~ m{^/__jifty/(css|js)} ); }; before qr/(.*)/ => run { @@ -264,15 +263,15 @@ before qr{.*} => run { ) ) { - - my $prefs = Jifty::Web::Menu->new( { label => _('Preferences'), url => '/Prefs/Other.html' }); + + my $prefs = Jifty::Web::Menu->new( { label => _('Preferences'), 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', ); - main_nav->child( 'Preferences' => menu => $prefs); + main_nav->child( 'Preferences' => menu => $prefs ); } if ( Jifty->web->current_user->user_object @@ -283,26 +282,26 @@ before qr{.*} => run { }; before qr'Dashboards/?' => run { - require RT::Dashboard; # not a record class, so not autoloaded :/ - page_nav->child( _('Select'), url => "/Dashboards/index.html" ); + require RT::Dashboard; # not a record class, so not autoloaded :/ + page_nav->child( _('Select'), url => "/Dashboards/index.html" ); if ( RT::Dashboard->new->_privacy_objects( create => 1 ) ) { page_nav->child( _('Create') => url => "/Dashboards/Modify.html?create=1" ); } }; before 'Dashboards/Modify.html' => run { - my $id = Jifty->web->request->argument('id') || ''; - my $results = []; - my $Dashboard = RT::Dashboard->new(current_user => Jifty->web->current_user); - set Dashboard => $Dashboard; + my $id = Jifty->web->request->argument('id') || ''; + my $results = []; + my $Dashboard = RT::Dashboard->new( current_user => Jifty->web->current_user ); + set Dashboard => $Dashboard; my @privacies = $Dashboard->_privacy_objects( ( !$id ? 'create' : 'modify' ) => 1 ); - set privacies => \@privacies; + set privacies => \@privacies; - push @$results, _("Permission denied") if @privacies == 0; + push @$results, _("Permission denied") if @privacies == 0; if ( $id =~ /^\d+$/ ) { my ( $ok, $msg ) = $Dashboard->load_by_id($id); - push @$results, $msg unless ($ok); + push @$results, $msg unless ($ok); set title => _( "Modify the dashboard %1", $Dashboard->name ); } else { set title => _("Create a new dashboard"); @@ -323,11 +322,14 @@ before 'Dashboards/Modify.html' => run { } elsif ( Jifty->web->request->argument('delete') ) { my ( $ok, $msg ) = $Dashboard->delete(); - push @$results, _( "Couldn't delete dashboard %1: %2", $id, $msg ) - unless ($ok); + push @$results, _( "Couldn't delete dashboard %1: %2", $id, $msg ) + unless ($ok); # put the user back into a useful place with a message - RT::Interface::Web::redirect( url => Jifty->web->url . "Dashboards/index.html?deleted=$id", messages => $results); + RT::Interface::Web::redirect( + url => Jifty->web->url . "Dashboards/index.html?deleted=$id", + messages => $results + ); } @@ -337,7 +339,7 @@ before 'Dashboards/Modify.html' => run { privacy => Jifty->web->request->argument('privacy'), ); - push @$results, _( "Dashboard could not be created: %1", $msg ) if ( !$val ); + push @$results, _( "Dashboard could not be created: %1", $msg ) if ( !$val ); push @$results, $msg; RT::Interface::Web::redirect( @@ -347,27 +349,27 @@ before 'Dashboards/Modify.html' => run { } - set Dashboard => $Dashboard; - set results => $results; + set Dashboard => $Dashboard; + set results => $results; }; - before qr'Dashboards/(\d*)?' => run { - if ( my $id = ($1 || Jifty->web->request->argument('id') )) { + 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 = page_nav->child( "this" => label => $obj->name, url => "/Dashboards/Modify.html?id=" . $obj->id); + my $tabs + = page_nav->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( _('Subscription'), url => "/Dashboards/Subscription.html?dashboard_id=" . $obj->id ) + if $obj->current_user_can_subscribe; $tabs->child( _('Show'), url => "/Dashboards/" . $obj->id . "/" . $obj->name ) } } }; - before '/SelfService' => run { my $queues = RT::Model::QueueCollection->new(); @@ -383,9 +385,9 @@ before '/SelfService' => run { last if ( $queue_count > 1 ); } - my $TOP = main_nav(); + my $TOP = main_nav(); - $TOP->child( _('Open tickets'), url => '/SelfService/', ); + $TOP->child( _('Open tickets'), url => '/SelfService/', ); $TOP->child( _('Closed tickets'), url => '/SelfService/Closed.html', ); if ( $queue_count > 1 ) { $TOP->child( _('New ticket'), url => '/SelfService/CreateTicketInQueue.html' ); @@ -393,19 +395,19 @@ before '/SelfService' => run { $TOP->child( _('New ticket'), url => '/SelfService/Create.html?queue=' . $queue_id ); } - if (Jifty->web->current_user->has_right( right => 'ModifySelf', object => RT->system)) { + if ( Jifty->web->current_user->has_right( right => 'ModifySelf', object => RT->system ) ) { $TOP->child( _('Preferences'), url => '/SelfService/Prefs.html' ); } - # XXX TODO RENDER GOTO TICKET WIDGET - #main_nav->child( B => html => $m->scomp('GotoTicket')) + # XXX TODO RENDER GOTO TICKET WIDGET + #main_nav->child( B => html => $m->scomp('GotoTicket')) }; before 'Admin/Queues' => run { - if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQueue' ) ) { - page_nav->child( _('Select'), url => "/Admin/Queues/" ); - page_nav->child( _('Create'), url => "/Admin/Queues/Modify.html?create=1"); - } + if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminQueue' ) ) { + page_nav->child( _('Select'), url => "/Admin/Queues/" ); + page_nav->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); @@ -415,7 +417,8 @@ before 'Admin/Queues' => run { $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 ); @@ -426,20 +429,20 @@ before 'Admin/Queues' => run { }; before '/Admin/Users' => run { -if (Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUsers')) { -page_nav->child(_('Select'), url => "/Admin/Users/"); -page_nav->child(_('Create'), url => "/Admin/Users/Modify.html?create=1", separator => 1); -} + if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminUsers' ) ) { + page_nav->child( _('Select'), url => "/Admin/Users/" ); + page_nav->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 $tabs = page_nav->child('current' => label => $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'} ) { - $tabs->child(_('GnuPG'), url => "/Admin/Users/GnuPG.html?id=".$id); + my $tabs = page_nav->child( 'current' => label => $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'} ) { + $tabs->child( _('GnuPG'), url => "/Admin/Users/GnuPG.html?id=" . $id ); } } @@ -447,28 +450,24 @@ page_nav->child(_('Create'), url => "/Admin/Users/Modify.html?create=1", separat before 'Admin/Groups' => run { -page_nav->child( _('Select') => url => "/Admin/Groups/"); -page_nav->child( _('Create') => url => "/Admin/Groups/Modify.html?create=1", separator => 1); + page_nav->child( _('Select') => url => "/Admin/Groups/" ); + page_nav->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 = page_nav->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 ); + $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/' => run { if ( Jifty->web->current_user->has_right( object => RT->system, right => 'AdminCustomField' ) ) { page_nav->child( _('Select'), url => "/Admin/CustomFields/" ); - page_nav->child( - _('Create') => - url => "/Admin/CustomFields/Modify.html?create=1", - ); + page_nav->child( _('Create') => url => "/Admin/CustomFields/Modify.html?create=1", ); } if ( my $id = Jifty->web->request->argument('id') ) { @@ -491,7 +490,7 @@ before 'Admin/CustomFields/' => run { before 'Admin/Global/Workflows' => run { if ( my $id = Jifty->web->request->argument('name') ) { - my $base = '/Admin/Global/Workflows'; + my $base = '/Admin/Global/Workflows'; my $schema = RT::Workflow->new->load($id); @@ -504,16 +503,16 @@ before 'Admin/Global/Workflows' => run { $workflow->child( _("Interface") => url => "$base/Interface.html?$qs_name" ); } } - }; +}; before 'Admin/Rules' => run { - page_nav->child(_('Select'), url => "/Admin/Rules/"); - page_nav->child(_('Create'), url => "/Admin/Rules/Modify.html?create=1"); + page_nav->child( _('Select'), url => "/Admin/Rules/" ); + page_nav->child( _('Create'), url => "/Admin/Rules/Modify.html?create=1" ); }; before qr'(?:Ticket|Search)/' => run { - if ( (Jifty->web->request->argument('id')||'') =~ /^(\d+)$/) { - my $id = $1; + if ( ( Jifty->web->request->argument('id') || '' ) =~ /^(\d+)$/ ) { + my $id = $1; my $obj = RT::Model::Ticket->new(); $obj->load($id); @@ -549,7 +548,7 @@ before qr'(?:Ticket|Search)/' => run { my $url = '/Ticket/'; if ($action) { - $url .= "Update.html?" . query_string( action => $action, default_status => $next, id => $id ); + $url .= "Update.html?" . query_string( action => $action, default_status => $next, id => $id ); } else { #$url .= "Display.html?" .query_string(Status => $next, id => $id ); @@ -575,7 +574,6 @@ before qr'(?:Ticket|Search)/' => run { # $actions->{'_ZZ'} = { html => $m->scomp( '/Ticket/Elements/Bookmark', id => $obj->id ), }; - if ( defined Jifty->web->session->get('tickets') ) { # we have to update session data if we get new ItemMap @@ -610,53 +608,57 @@ before qr'(?:Ticket|Search)/' => run { ); } } - } } - my $args = ''; - my $has_query = ''; - - my $search = Jifty->web->session->get('CurrentSearchHash') || {}; - my $search_id = Jifty->web->request->argument('saved_search_id') || $search->{'searchid'} || ''; + } + my $args = ''; + my $has_query = ''; + + my $search = Jifty->web->session->get('CurrentSearchHash') || {}; + my $search_id = Jifty->web->request->argument('saved_search_id') || $search->{'searchid'} || ''; + + $has_query = 1 if ( Jifty->web->request->argument('query') or $search->{'query'} ); + + my %query_args = ( + + saved_search_id => ( $search_id eq 'new' ) ? undef : $search_id, + query => Jifty->web->request->argument('query') || $search->{'query'}, + format => Jifty->web->request->argument('format') || $search->{'format'}, + order_by => Jifty->web->request->argument('order_by') || $search->{'order_by'}, + order => Jifty->web->request->argument('order') || $search->{'order'}, + page => Jifty->web->request->argument('page') || $search->{'page'}, + rows_per_page => ( + defined Jifty->web->request->argument('rows_per_page') + ? Jifty->web->request->argument('rows_per_page') + : $search->{'rows_per_page'} + ) + ); - $has_query = 1 if ( Jifty->web->request->argument('query') or $search->{'query'} ); + $args = "?" . query_string(%query_args); - my %query_args = ( + page_nav->child( _('New Search') => url => "/Search/Build.html?new_query=1" ); + page_nav->child( _('Edit Search') => url => "/Search/Build.html" . ( ($has_query) ? $args : '' ) ); + page_nav->child( _('Advanced') => url => "/Search/Edit.html$args" ); - saved_search_id => ( $search_id eq 'new' ) ? undef : $search_id, - query => Jifty->web->request->argument('query') || $search->{'query'}, - format => Jifty->web->request->argument('format') || $search->{'format'}, - order_by => Jifty->web->request->argument('order_by') || $search->{'order_by'}, - order => Jifty->web->request->argument('order') || $search->{'order'}, - page => Jifty->web->request->argument('page') || $search->{'page'}, - rows_per_page => (defined Jifty->web->request->argument('rows_per_page') ? Jifty->web->request->argument('rows_per_page') : $search->{'rows_per_page'}) + if ($has_query) { + if (Jifty->web->request->path =~ qr|^Search/Results.html| && #XXX TODO better abstraction + Jifty->web->current_user->has_right( right => 'SuperUser', object => RT->system ) + ) + { + my $shred_args = URI->new->query_param( + search => 1, + plugin => 'Tickets', + 'Tickets:query' => $query_args{'query'}, + 'Tickets:limit' => $query_args{'rows_per_page'} ); - $args = "?" . query_string(%query_args); - - page_nav->child( _('New Search') => url => "/Search/Build.html?new_query=1" ); - page_nav->child( _('Edit Search') => url => "/Search/Build.html" . ( ($has_query) ? $args : '' ) ); - page_nav->child( _('Advanced') => url => "/Search/Edit.html$args" ); - - if ($has_query) { - if (Jifty->web->request->path =~ qr|^Search/Results.html| && #XXX TODO better abstraction - Jifty->web->current_user->has_right( right => 'SuperUser', object => RT->system ) - ) - { - my $shred_args = URI->new->query_param( - search => 1, - plugin => 'Tickets', - 'Tickets:query' => $query_args{'query'}, - 'Tickets:limit' => $query_args{'rows_per_page'} - ); - - page_nav->child( 'shredder' => label => _('Shredder'), url => 'Admin/Tools/Shredder/?' . $shred_args ); - } + page_nav->child( 'shredder' => label => _('Shredder'), url => 'Admin/Tools/Shredder/?' . $shred_args ); + } - page_nav->child( _('Show Results') => url => "/Search/Results.html$args" ); + page_nav->child( _('Show Results') => url => "/Search/Results.html$args" ); - page_nav->child( _('Bulk Update') => url => "/Search/Bulk.html$args" ); + page_nav->child( _('Bulk Update') => url => "/Search/Bulk.html$args" ); - } + } }; before 'User/Group' => run { @@ -674,20 +676,19 @@ before 'User/Group' => run { }; before 'Prefs' => run { - my $tabs; - my @searches = RT::System->new->saved_searches(); + my $tabs; + my @searches = RT::System->new->saved_searches(); - page_nav->child( 'Quick search' => label => _('Quick search'), url => '/Prefs/Quicksearch.html'); + page_nav->child( 'Quick search' => label => _('Quick search'), url => '/Prefs/Quicksearch.html' ); - for my $search (@searches) { - page_nav->child( - $search->[0], - url => "/Prefs/Search.html?" .query_string( name => ref($search->[1]).'-'.$search->[1]->id)); + for my $search (@searches) { + page_nav->child( $search->[0], + url => "/Prefs/Search.html?" . query_string( name => ref( $search->[1] ) . '-' . $search->[1]->id ) ); } }; before qr{^/Search/Build.html} => run { - my $querystring = ''; + my $querystring = ''; my $selected_clauses = Jifty->web->request->argument('clauses') || 0; my ( $saved_search, $current_search, $results ) = RT::Interface::Web::QueryBuilder->setup_query(); @@ -741,8 +742,6 @@ before qr{^/Search/Build.html} => run { }; - - # Backward compatibility with old RT URLs before '/NoAuth/Logout.html' => run { redirect '/logout' }; ----------------------------------------------------------------------- _______________________________________________ Rt-commit mailing list Rt-commit [at] lists http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-commit
|