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

jesse jesse at bestpractical.com
Wed Nov 11 11:19:44 EST 2009


The branch, menu-redo has been updated
       via  cad3a511f54cc9a44c2d3cb70a3df5d36cab1848 (commit)
       via  6a54c61e93b471b661561c4514e396042a040252 (commit)
       via  cd1d0982ac3ae62ef23e7ca776dbfdc1c119dd07 (commit)
       via  0111a5cbd31b99b6d54134f01ed89b21d40fcaa6 (commit)
       via  9e27011cd2e530b816e11e224136332dc8ab751e (commit)
       via  73e641ad05c09bead2b3e6f870c3593497ac7520 (commit)
       via  72c3edcb7492c6494f94bac38f356bd1efa3fec2 (commit)
       via  966e2a4af4b98cc2bd46992acc705024ead99728 (commit)
      from  be53efba177c74e642650d7a3bdcda3d7639140d (commit)

Summary of changes:
 lib/RT/Collection.pm                               |    6 +-
 lib/RT/Dispatcher.pm                               |    9 ++--
 lib/RT/Interface/Web/Handler.pm                    |    1 -
 lib/RT/Model/AttachmentCollection.pm               |    5 --
 lib/RT/Model/ScripActionCollection.pm              |    7 ---
 lib/RT/Model/TemplateCollection.pm                 |   16 ------
 lib/RT/Test.pm                                     |    1 -
 share/html/Admin/Elements/ObjectCustomFields       |    8 +--
 .../Admin/Global/Workflows/Elements/MissingMaps    |    2 +-
 share/html/Admin/Global/Workflows/Interface.html   |    4 +-
 share/html/Admin/Global/Workflows/Mappings.html    |    8 ++--
 share/html/Admin/Global/Workflows/Statuses.html    |    4 +-
 share/html/Admin/Global/Workflows/Summary.html     |    2 +-
 share/html/Admin/Global/Workflows/Transitions.html |    4 +-
 share/html/Admin/Global/Workflows/index.html       |    4 +-
 share/html/Admin/Users/Memberships.html            |    3 +-
 share/html/Admin/Users/Modify.html                 |    4 +-
 share/html/Dashboards/Render.html                  |    2 +-
 share/html/Dashboards/Subscription.html            |    2 +-
 share/html/Search/Build.html                       |    3 +-
 share/html/Search/Bulk.html                        |   34 +++++--------
 share/html/Search/Elements/ResultViews             |    4 +-
 share/html/Search/Results.html                     |   54 +++++++++-----------
 share/html/Widgets/SavedSearch                     |    2 +-
 t/mail/sendmail.t                                  |    6 +-
 25 files changed, 74 insertions(+), 121 deletions(-)

- Log -----------------------------------------------------------------
commit cd1d0982ac3ae62ef23e7ca776dbfdc1c119dd07
Merge: be53efb 0111a5c
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Nov 11 09:24:37 2009 -0500

    Merge commit 'origin/3.999-trunk' into menu-redo
    
    * commit 'origin/3.999-trunk':
      Remove kludges for Devel::Cover.  Jifty now does that for us.
      Remove new_item from Collection classes, which is provided by JDBI::Collection.
      Use record_class instead of instantiate dummy object.
      warning fix
      fix uninitialized warnings
    
    Conflicts:
    	share/html/Admin/Global/Workflows/Elements/Tabs


commit 6a54c61e93b471b661561c4514e396042a040252
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Nov 11 11:17:54 2009 -0500

    When building formats actually pass request args down the chain rather than our 'sets' from the dispatcher

diff --git a/share/html/Search/Build.html b/share/html/Search/Build.html
index 9472111..c7ec9b5 100644
--- a/share/html/Search/Build.html
+++ b/share/html/Search/Build.html
@@ -89,7 +89,8 @@
 </div>
 <span id="display-options">
 <& Elements/DisplayOptions,
-    %ARGS, %$current_search,
+	%{Jifty->web->request->arguments},
+	%$current_search,
     available_columns => $available_columns,
     current_format    => $current_format,
 &>

commit cad3a511f54cc9a44c2d3cb70a3df5d36cab1848
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Nov 11 11:18:58 2009 -0500

    rows -> rows_per_page for consistency
    handle the case where we're passing an array_ref for order_by into Results/Display.html.

diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index 8d0fe11..70a3885 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -428,7 +428,6 @@ 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') ) {
-	warn "loading user $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,);
@@ -628,12 +627,12 @@ before qr'(?:Ticket|Search)/' => run {
                 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 => Jifty->web->request->argument('rows_per_page') || $search->{'rows_per_page'}
+                rows_per_page => (defined Jifty->web->request->argument('rows_per_page')  ?  Jifty->web->request->argument('rows_per_page') : $search->{'rows_per_page'})
             );
 
             $args = "?" . query_string(%query_args);
 
-            page_nav->child( _('New Search')  => url => "/Search/Build.html?NewQuery=1" );
+            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" );
 
@@ -646,7 +645,7 @@ before qr'(?:Ticket|Search)/' => run {
                         search          => 1,
                         plugin          => 'Tickets',
                         'Tickets:query' => $query_args{'query'},
-                        'Tickets:limit' => $query_args{'rows'}
+                        'Tickets:limit' => $query_args{'rows_per_page'}
                     );
 
                     page_nav->child( 'shredder' =>  label => _('Shredder'), url => 'Admin/Tools/Shredder/?' . $shred_args );
diff --git a/share/html/Search/Bulk.html b/share/html/Search/Bulk.html
index 1955a96..aea884b 100755
--- a/share/html/Search/Bulk.html
+++ b/share/html/Search/Bulk.html
@@ -46,15 +46,6 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <&| /_elements/wrapper, title => $title &>
-<& /Elements/Tabs,
-    current_tab => "Search/Bulk.html",
-    title => $title,
-    format => $ARGS{'format'}, # we don't want the locally modified one
-    query => $query,
-    rows => $rows,
-    order_by => $order_by,
-    order => $order,
-    saved_search_id => $saved_search_id &>
 
 <& /Elements/ListActions, actions => \@results &>
 <form method="post" action="<% RT->config->get('web_path') %>/Search/Bulk.html" enctype="multipart/form-data">
@@ -68,7 +59,7 @@
     allow_sorting => 1,
     order_by => $order_by,
     order => $order,
-    rows => $rows,
+    rows => $rows_per_page,
     page => $page,
     base_url => RT->config->get('web_path')."/Search/Bulk.html?",
     class => 'RT::Model::TicketCollection'
@@ -171,9 +162,9 @@ $cfs->limit_to_queue($_) for keys %$seen_queues;
 <tr>
 <td class="label"><%$cf->name%><br />
 <em>(<%$cf->friendly_type%>)</em></td>
-% my $rows = 5;
-% my @add = (name_prefix => 'Bulk-Add-CustomField-', custom_field => $cf, rows => $rows, Multiple => ($cf->max_values ==1 ? 0 : 1) , Cols => 25);
-% my @del = (name_prefix => 'Bulk-Delete-CustomField-', custom_field => $cf, rows => $rows, Multiple => 1, Cols => 25);
+% my $cf_size = 5; 
+% my @add = (name_prefix => 'Bulk-Add-CustomField-', custom_field => $cf, rows => $cf_size, Multiple => ($cf->max_values ==1 ? 0 : 1) , Cols => 25);
+% my @del = (name_prefix => 'Bulk-Delete-CustomField-', custom_field => $cf, rows => $cf_size, Multiple => 1, Cols => 25);
 % if ($cf->type eq 'Select') {
 <td><& /Elements/EditCustomFieldSelect, @add &></td>
 <td><& /Elements/EditCustomFieldSelect, @del &></td>
@@ -208,11 +199,6 @@ $cfs->limit_to_queue($_) for keys %$seen_queues;
 
 </&>
 <%INIT>
-unless ( defined $rows ) {
-    $rows = $rows_per_page;
-    $ARGS{rows} = $rows_per_page;
-}
-
 my $title = _("Update multiple tickets");
 
 # Iterate through the ARGS hash and remove anything with a null value.
@@ -229,6 +215,13 @@ $format =~ s/'?([^']+)'?,/'___CHECKBOX__$1',/;
 
 my $Tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 $Tickets->from_sql($query);
+
+
+# XXX TODO 4.0 - hack to workaround arrayification of multiple order_by params 
+# caused by turning a subrequest to a redirect in Search/Build.html
+$order_by = join('|',@$order_by) if (ref $order_by eq 'ARRAY');
+$order = join('|',@$order) if (ref $order eq 'ARRAY');
+
 if ( $order_by =~ /\|/ ) {
 
   # Multiple Sorts
@@ -243,7 +236,7 @@ else {
 }
 
 $page = 1 unless $page && $page > 0; # workaround problems with Page = '' or undef
-$Tickets->set_page_info(per_page => $rows, current_page => $page);
+$Tickets->set_page_info(per_page => $rows_per_page, current_page => $page);
 
 abort( _("No search to operate on.") ) unless ($Tickets);
 
@@ -385,8 +378,7 @@ $TxnCFs->limit_to_global_or_object_id( sort keys %queues );
 <%args>
 $format => undef
 $page => 1
-$rows => 50
-$rows_per_page => undef
+$rows_per_page => 50
 $order => 'ASC'
 $order_by => 'id'
 $query => undef
diff --git a/share/html/Search/Results.html b/share/html/Search/Results.html
index c0ab939..9449514 100755
--- a/share/html/Search/Results.html
+++ b/share/html/Search/Results.html
@@ -48,28 +48,19 @@
 <&| /_elements/wrapper, title => $title, refresh => Jifty->web->session->get('tickets_refresh_interval'), 
     rss_auto_discovery => $RSSFeedURL,
     link_rel => \%link_rel &>
-<& /Elements/Tabs,
-    current_tab => "Search/Results.html".$query_string, 
-    title => $title,
-    format => $format,
-    query => $query,
-    rows => $rows,
-    order_by => $order_by,
-    order => $order,
-    saved_search_id => $saved_search_id &>
 <& /Elements/CollectionList, 
     query => $query,
     allow_sorting => 1,
     order_by => $order_by,
     order => $order,
-    rows => $rows,
+    rows => $rows_per_page,
     page => $page,
     format => $format,
     base_url => RT->config->get('web_path')."/Search/Results.html?",
     class => 'RT::Model::TicketCollection',
 
    &>
-% my %hiddens = (query => $query, format => $format, rows => $rows, order_by => $order_by, order => $order, HideResults => $hide_results, page => $page );
+% my %hiddens = (query => $query, format => $format, rows_per_page => $rows_per_page, order_by => $order_by, order => $order, HideResults => $hide_results, page => $page );
 <div align="right" class="refresh">
 <form method="get" action="<%RT->config->get('web_path')%>/Search/Results.html">
 % foreach my $key (keys(%hiddens)) {
@@ -84,7 +75,7 @@
     query_string => $query_string,
     query => $query,
     format => $format,
-    rows => $rows,
+    rows => $rows_per_page,
     order_by => $order_by,
     order => $order,
     rss_feed_url => $RSSFeedURL,
@@ -96,6 +87,8 @@
 </&>
 <%INIT>
 # Read from user preferences
+
+
 my $prefs = Jifty->web->current_user->user_object->preferences("SearchDisplay") || {};
 # These variables are what define a search_hash; this is also
 # where we give sane defaults.
@@ -103,23 +96,24 @@ $format      ||= $prefs->{'format'} || RT->config->get('default_search_result_fo
 $order       ||= $prefs->{'order'} || 'ASC';
 $order_by     ||= $prefs->{'order_by'} || 'id';
 
-# Some forms pass in "rows_per_page" rather than "Rows"
+# Some forms pass in "rows_per_page" rather than "rows"
 # We call it rows_per_page everywhere else.
-
-if ( !defined($rows) ) {
-    if (defined $ARGS{'rows_per_page'} ) {
-        $rows = $ARGS{'rows_per_page'};
-    } elsif ( defined $prefs->{'rows_per_page'} ) {
-        $rows = $prefs->{'rows_per_page'};
+if ( !defined($rows_per_page) ) {
+    if ( defined $prefs->{'rows_per_page'} ) {
+        $rows_per_page = $prefs->{'rows_per_page'};
     } else {
-        $rows = 50;
+        $rows_per_page = 50;
     }
 }
-
 my ($title, $ticketcount);
-Jifty->web->session->set('tickets' => RT::Model::TicketCollection->new( current_user => Jifty->web->current_user ) );
+Jifty->web->session->set('tickets' => RT::Model::TicketCollection->new());
 Jifty->web->session->get('tickets')->from_sql($query) if ($query);
 
+
+# XXX TODO 4.0 - hack to workaround arrayification of multiple order_by params 
+# caused by turning a subrequest to a redirect in Search/Build.html
+$order_by = join('|',@$order_by) if (ref $order_by eq 'ARRAY');
+$order = join('|',@$order) if (ref $order eq 'ARRAY');
 if ($order_by =~ /\|/) {
     # Multiple Sorts
     my @order_by = split /\|/,$order_by;
@@ -137,7 +131,7 @@ Jifty->web->session->set('CurrentSearchHash', {
     page       => $page,
     order       => $order,
     order_by     => $order_by,
-    rows_per_page => $rows
+    rows_per_page => $rows_per_page
     });
 
 
@@ -151,7 +145,7 @@ if ( Jifty->web->session->get('tickets')->query()) {
 my $query_string = "?".$m->comp('/Elements/QueryString',
                                query => $query,
                                format => $format,
-                               rows => $rows,
+                               rows_per_page => $rows_per_page,
                                order_by => $order_by,
                                order => $order,
                                page => $page);
@@ -159,8 +153,8 @@ my $short_querystring = "?".$m->comp('/Elements/QueryString', query => $query);
 my $RSSQueryString = "?".$m->comp('/Elements/QueryString', query => $query, order => $order, order_by => $order_by);
 my $RSSFeedURL = RT->config->get('web_path')."/Search/Results.rdf$RSSQueryString";
 
-if ($ARGS{'tickets_refresh_interval'}) {
-	Jifty->web->session->set('tickets_refresh_interval', $ARGS{'tickets_refresh_interval'});
+if (Jifty->web->request->argument('tickets_refresh_interval')) {
+Jifty->web->session->set('tickets_refresh_interval', Jifty->web->request->argument('tickets_refresh_interval'));
 }
 
 my %link_rel;
@@ -169,7 +163,7 @@ my $genpage = sub {
         '/Elements/QueryString',
         query   => $query,
         format  => $format,
-        rows    => $rows,
+        rows_per_page    => $rows_per_page,
         order_by => $order_by,
         order   => $order,
         page    => shift(@_),
@@ -179,8 +173,8 @@ my $BaseURL = RT->config->get('web_path')."/Search/Results.html?";
 $link_rel{first} = $BaseURL . $genpage->(1)         if $page > 1;
 $link_rel{prev}  = $BaseURL . $genpage->($page - 1) if $page > 1;
 if ( $ticketcount ) {
-    $link_rel{next}  = $BaseURL . $genpage->($page + 1) if ($page * $rows) < $ticketcount;
-    $link_rel{last}  = $BaseURL . $genpage->(POSIX::ceil($ticketcount/$rows)) if $rows and ($page * $rows) < $ticketcount;
+    $link_rel{next}  = $BaseURL . $genpage->($page + 1) if ($page * $rows_per_page) < $ticketcount;
+    $link_rel{last}  = $BaseURL . $genpage->(POSIX::ceil($ticketcount/$rows_per_page)) if $rows_per_page and ($page * $rows_per_page) < $ticketcount;
 }
 </%INIT>
 <%CLEANUP>
@@ -190,7 +184,7 @@ Jifty->web->session->get('tickets')->prep_for_serialization();
 $query => undef
 $format => undef 
 $hide_results => 0
-$rows => undef
+$rows_per_page => undef
 $page => 1
 $order_by => undef
 $order => undef

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


More information about the Rt-commit mailing list