[Rt-commit] rt branch, librarize-search-logic, updated. 9983649af1cfb9b516d122a4bb453bd31f277e1a

jesse jesse at bestpractical.com
Sat Nov 7 00:04:21 EST 2009


The branch, librarize-search-logic has been updated
       via  9983649af1cfb9b516d122a4bb453bd31f277e1a (commit)
       via  8d398ddac8b27c12e7cae11588ed2f0c2fc959b0 (commit)
       via  e7a3c2ed6a7e575e86ef8011a14f5ba4c1edf3c7 (commit)
       via  ef6f9eea610a6c8fc063d345865104b35540c5a0 (commit)
      from  d23386b2de2a02a150e2f7e664a4d9b931ee72e7 (commit)

Summary of changes:
 lib/RT/Interface/Web/QueryBuilder.pm |   40 +++++++++++++++----
 share/html/Search/Build.html         |   71 ++++++++++++++-------------------
 2 files changed, 61 insertions(+), 50 deletions(-)

- Log -----------------------------------------------------------------
commit ef6f9eea610a6c8fc063d345865104b35540c5a0
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Fri Nov 6 22:32:36 2009 -0500

    switching over to a jifty api from a mason one

diff --git a/share/html/Search/Build.html b/share/html/Search/Build.html
index 0afb095..c12a89b 100644
--- a/share/html/Search/Build.html
+++ b/share/html/Search/Build.html
@@ -105,10 +105,10 @@
 </&>
 <%INIT>
 my $saved_search = {};
-my %query = map { $_ => $ARGS{$_} } qw(query format order_by order rows_per_page);
+my %query = map { $_ => Jifty->web->request->argument($_) } qw(query format order_by order rows_per_page);
 my @actions = RT::Interface::Web::QueryBuilder->load_saved_search( \%ARGS, \%query, $saved_search );
 
-if ($new_query) {
+if (Jifty->web->request->argument('new_query')) {
     # Wipe all data-carrying variables clear if we want a new
     # search, or we're deleting an old one..
     %query = ();
@@ -132,19 +132,20 @@ my @new_values = RT::Interface::Web::QueryBuilder->process_query_additions( \%AR
 push @actions, RT::Interface::Web::QueryBuilder->process_query( \%ARGS, $tree, \@current_values, \@new_values, );
 
 #  Rebuild $Query based on the additions / movements
-my $parsed_query;
-( $query{'query'}, $parsed_query ) = $tree->get_query_and_option_list( \@current_values );
+my ( $new_serialized_query, $parsed_query ) = $tree->get_query_and_option_list( \@current_values );
+$query{'query'} = $new_serialized_query;
+
 
 my $queues = $tree->get_referenced_queues;
 
 #  Deal with format changes
-my ( $available_columns, $current_format );
-
-( $query{'format'}, $available_columns, $current_format ) = RT::Interface::Web::QueryBuilder->build_format_string(
+my ($new_format, $available_columns, $current_format ) = 
+	RT::Interface::Web::QueryBuilder->build_format_string(
     %ARGS,
     queues => $queues,
-    format   => $query{'format'},
-);
+    format   => $query{'format'});
+
+$query{'format'} = $new_format;
 
 # if we're asked to save the current search, save it
 if( $ARGS{'saved_search_save'} || $ARGS{'saved_search_copy'}) {
@@ -163,7 +164,7 @@ Jifty->web->session->set( 'CurrentSearchHash', {   %query,
 my $query_string = '';
 
 #  Build a query_string for the tabs
-if ($new_query) {
+if (Jifty->web->request->argument('new_query')) {
     $query_string = 'new_query=1';
 } elsif ( $query{'query'} ) {
     $query_string = RT::Interface::Web->format_query_params(%query);
@@ -176,6 +177,5 @@ if ( $ARGS{'do_search'} ) {
 </%INIT>
 
 <%ARGS>
-$new_query => 0
 @clauses => ()
 </%ARGS>

commit e7a3c2ed6a7e575e86ef8011a14f5ba4c1edf3c7
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Fri Nov 6 22:51:05 2009 -0500

    %query -> $query

diff --git a/lib/RT/Interface/Web/QueryBuilder.pm b/lib/RT/Interface/Web/QueryBuilder.pm
index cd397c0..322db26 100644
--- a/lib/RT/Interface/Web/QueryBuilder.pm
+++ b/lib/RT/Interface/Web/QueryBuilder.pm
@@ -4,7 +4,7 @@ use strict;
 
 sub set_query_defaults {
     my $self  = shift;
-    my %query = (@_);
+    my $query = shift;
 
     # Attempt to load what we can from the session and preferences, set defaults
 
@@ -13,17 +13,16 @@ sub set_query_defaults {
     my $default = { query => '', format => '', order_by => 'id', order => 'ASC', rows_per_page => 50 };
 
     for my $param (qw(query format order_by order rows_per_page)) {
-        $query{$param} = $current->{$param} unless defined $query{$param};
-        $query{$param} = $prefs->{$param}   unless defined $query{$param};
-        $query{$param} = $default->{$param} unless defined $query{$param};
+        $query->{$param} = $current->{$param} unless defined $query->{$param};
+        $query->{$param} = $prefs->{$param}   unless defined $query->{$param};
+        $query->{$param} = $default->{$param} unless defined $query->{$param};
     }
 
     for my $param (qw(order order_by)) {
-        $query{$param} = join( '|', @{ $query{$param} } ) if ( ref $query{$param} eq "ARRAY" );
+        $query->{$param} = join( '|', @{ $query->{$param} } ) if ( ref $query->{$param} eq "ARRAY" );
     }
 
-    $query{'format'} = RT::Interface::Web->scrub_html( $query{'format'} ) if ( $query{'format'} );
-    return %query;
+    $query->{'format'} = RT::Interface::Web->scrub_html( $query->{'format'} ) if ( $query->{'format'} );
 }
 
 sub process_query {
diff --git a/share/html/Search/Build.html b/share/html/Search/Build.html
index c12a89b..8b7081b 100644
--- a/share/html/Search/Build.html
+++ b/share/html/Search/Build.html
@@ -69,16 +69,16 @@
 <& /Ticket/Elements/Tabs, 
     current_tab => "Search/Build.html?".$query_string, 
     title => _("Query Builder"),
-    %query,
+    %$query,
 	saved_search_id => $saved_search->{'id'},
 &>
 
 <form method="post" action="Build.html" name="build_query">
 <input type="hidden" class="hidden" name="saved_search_id" value="<% $saved_search->{'id'} || '' %>" />
-<input type="hidden" class="hidden" name="query" value="<% $query{'query'} || '' %>" />
-<input type="hidden" class="hidden" name="format" value="<% $query{'format'} || '' %>" />
+<input type="hidden" class="hidden" name="query" value="<% $query->{'query'} || '' %>" />
+<input type="hidden" class="hidden" name="format" value="<% $query->{'format'} || '' %>" />
 <div id="pick-criteria">
-    <& Elements/PickCriteria, query => $query{'query'}, queues => $queues &>
+	<& Elements/PickCriteria, query => $query->{'query'}, queues => $queues &>
 </div>
 <& /Elements/Submit,  label => _('Add these terms'), name => 'add_clause'&>
 <& /Elements/Submit, label => _('Add these terms and Search'), name => 'do_search'&>
@@ -91,11 +91,11 @@
     &>
 </div>
 <div id="editsearches">
-    <& Elements/EditSearches, %$saved_search, current_search => \%query &>
+    <& Elements/EditSearches, %$saved_search, current_search => $query &>
 </div>
 <span id="display-options">
 <& Elements/DisplayOptions,
-    %ARGS, %query,
+    %ARGS, %$query,
     available_columns => $available_columns,
     current_format    => $current_format,
 &>
@@ -105,13 +105,13 @@
 </&>
 <%INIT>
 my $saved_search = {};
-my %query = map { $_ => Jifty->web->request->argument($_) } qw(query format order_by order rows_per_page);
-my @actions = RT::Interface::Web::QueryBuilder->load_saved_search( \%ARGS, \%query, $saved_search );
+my $query = {map { $_ => Jifty->web->request->argument($_) } qw(query format order_by order rows_per_page)};
+my @actions = RT::Interface::Web::QueryBuilder->load_saved_search( \%ARGS, $query, $saved_search );
 
 if (Jifty->web->request->argument('new_query')) {
     # Wipe all data-carrying variables clear if we want a new
     # search, or we're deleting an old one..
-    %query = ();
+	$query = {};
     $saved_search = { id => 'new' };
 
     # ..then wipe the sessionand the search results.
@@ -120,10 +120,11 @@ if (Jifty->web->request->argument('new_query')) {
 }
 
 
-%query = RT::Interface::Web::QueryBuilder->set_query_defaults(%query);
+RT::Interface::Web::QueryBuilder->set_query_defaults($query);
+
 my $tree = RT::Interface::Web::QueryBuilder::Tree->new('AND');
 
-push @actions, $tree->parse_sql( query => $query{query} );
+push @actions, $tree->parse_sql( query => $query->{query} );
 
 my @options        = $tree->get_displayed_nodes;
 my @current_values = grep defined, @options[@clauses];
@@ -133,7 +134,7 @@ push @actions, RT::Interface::Web::QueryBuilder->process_query( \%ARGS, $tree, \
 
 #  Rebuild $Query based on the additions / movements
 my ( $new_serialized_query, $parsed_query ) = $tree->get_query_and_option_list( \@current_values );
-$query{'query'} = $new_serialized_query;
+$query->{'query'} = $new_serialized_query;
 
 
 my $queues = $tree->get_referenced_queues;
@@ -143,17 +144,17 @@ my ($new_format, $available_columns, $current_format ) =
 	RT::Interface::Web::QueryBuilder->build_format_string(
     %ARGS,
     queues => $queues,
-    format   => $query{'format'});
+	format   => $query->{'format'});
 
-$query{'format'} = $new_format;
+	$query->{'format'} = $new_format;
 
 # if we're asked to save the current search, save it
 if( $ARGS{'saved_search_save'} || $ARGS{'saved_search_copy'}) {
-    push @actions, RT::Interface::Web::QueryBuilder->save_search( \%query, $saved_search );
+    push @actions, RT::Interface::Web::QueryBuilder->save_search( $query, $saved_search );
 }	
 #  Push the updates into the session so we don't lose 'em
 
-Jifty->web->session->set( 'CurrentSearchHash', {   %query,
+Jifty->web->session->set( 'CurrentSearchHash', {   %$query,
 	search_id   => $saved_search->{'id'},
 	object      => $saved_search->{'object'},
 	description => $saved_search->{'description'},
@@ -166,8 +167,8 @@ my $query_string = '';
 #  Build a query_string for the tabs
 if (Jifty->web->request->argument('new_query')) {
     $query_string = 'new_query=1';
-} elsif ( $query{'query'} ) {
-    $query_string = RT::Interface::Web->format_query_params(%query);
+	} elsif ( $query->{'query'} ) {
+    $query_string = RT::Interface::Web->format_query_params(%$query);
 }
 
 if ( $ARGS{'do_search'} ) {

commit 8d398ddac8b27c12e7cae11588ed2f0c2fc959b0
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Fri Nov 6 23:03:39 2009 -0500

    Search setup moved into lib

diff --git a/lib/RT/Interface/Web/QueryBuilder.pm b/lib/RT/Interface/Web/QueryBuilder.pm
index 322db26..13f93dd 100644
--- a/lib/RT/Interface/Web/QueryBuilder.pm
+++ b/lib/RT/Interface/Web/QueryBuilder.pm
@@ -2,6 +2,29 @@ package RT::Interface::Web::QueryBuilder;
 use warnings;
 use strict;
 
+sub setup_query {
+
+    my $saved_search = {};
+    my $query = { map { $_ => Jifty->web->request->argument($_) } qw(query format order_by order rows_per_page) };
+    my @actions = RT::Interface::Web::QueryBuilder->load_saved_search( Jifty->web->request->arguments(), $query, $saved_search );
+
+    if ( Jifty->web->request->argument('new_query') ) {
+
+        # Wipe all data-carrying variables clear if we want a new
+        # search, or we're deleting an old one..
+        $query = {};
+        $saved_search = { id => 'new' };
+
+        # ..then wipe the sessionand the search results.
+        Jifty->web->session->remove('CurrentSearchHash');
+        Jifty->web->session->get('tickets')->clean_slate if defined Jifty->web->session->get('tickets');
+    }
+
+    RT::Interface::Web::QueryBuilder->set_query_defaults($query);
+    return ( $saved_search, $query, \@actions );
+}
+
+
 sub set_query_defaults {
     my $self  = shift;
     my $query = shift;
diff --git a/share/html/Search/Build.html b/share/html/Search/Build.html
index 8b7081b..cb706da 100644
--- a/share/html/Search/Build.html
+++ b/share/html/Search/Build.html
@@ -104,32 +104,20 @@
 </form>
 </&>
 <%INIT>
-my $saved_search = {};
-my $query = {map { $_ => Jifty->web->request->argument($_) } qw(query format order_by order rows_per_page)};
-my @actions = RT::Interface::Web::QueryBuilder->load_saved_search( \%ARGS, $query, $saved_search );
 
-if (Jifty->web->request->argument('new_query')) {
-    # Wipe all data-carrying variables clear if we want a new
-    # search, or we're deleting an old one..
-	$query = {};
-    $saved_search = { id => 'new' };
-
-    # ..then wipe the sessionand the search results.
-    Jifty->web->session->remove('CurrentSearchHash');
-    Jifty->web->session->get('tickets')->clean_slate if defined Jifty->web->session->get('tickets');
-}
 
+my ($saved_search, $query, $results) = RT::Interface::Web::QueryBuilder->setup_query();
 
-RT::Interface::Web::QueryBuilder->set_query_defaults($query);
+my @actions = @$results;
 
 my $tree = RT::Interface::Web::QueryBuilder::Tree->new('AND');
 
 push @actions, $tree->parse_sql( query => $query->{query} );
-
 my @options        = $tree->get_displayed_nodes;
 my @current_values = grep defined, @options[@clauses];
 
 my @new_values = RT::Interface::Web::QueryBuilder->process_query_additions( \%ARGS );
+
 push @actions, RT::Interface::Web::QueryBuilder->process_query( \%ARGS, $tree, \@current_values, \@new_values, );
 
 #  Rebuild $Query based on the additions / movements

commit 9983649af1cfb9b516d122a4bb453bd31f277e1a
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Sat Nov 7 00:02:51 2009 -0500

    Further stabbing of %ARGS

diff --git a/lib/RT/Interface/Web/QueryBuilder.pm b/lib/RT/Interface/Web/QueryBuilder.pm
index 13f93dd..0618596 100644
--- a/lib/RT/Interface/Web/QueryBuilder.pm
+++ b/lib/RT/Interface/Web/QueryBuilder.pm
@@ -50,13 +50,13 @@ sub set_query_defaults {
 
 sub process_query {
     my $self     = shift;
-    my $ARGS     = shift;
     my $tree     = shift;
     my $selected = shift;
     my $new      = shift || [];
 
     my @NewSelection = ();
 
+    my $ARGS = Jifty->web->request->arguments;
     my @results;
     if ( $ARGS->{'up'} || $ARGS->{'down'} ) {
         if (@$selected) {
@@ -208,7 +208,7 @@ sub process_query {
 
 sub process_query_additions {
     my $self     = shift;
-    my $cgi_args = shift;
+    my $cgi_args = Jifty->web->request->arguments();
     my @new_values;
     foreach my $arg ( keys %$cgi_args ) {
 
diff --git a/share/html/Search/Build.html b/share/html/Search/Build.html
index cb706da..9b03252 100644
--- a/share/html/Search/Build.html
+++ b/share/html/Search/Build.html
@@ -116,9 +116,9 @@ push @actions, $tree->parse_sql( query => $query->{query} );
 my @options        = $tree->get_displayed_nodes;
 my @current_values = grep defined, @options[@clauses];
 
-my @new_values = RT::Interface::Web::QueryBuilder->process_query_additions( \%ARGS );
+my @new_values = RT::Interface::Web::QueryBuilder->process_query_additions( );
 
-push @actions, RT::Interface::Web::QueryBuilder->process_query( \%ARGS, $tree, \@current_values, \@new_values, );
+push @actions, RT::Interface::Web::QueryBuilder->process_query(  $tree, \@current_values, \@new_values, );
 
 #  Rebuild $Query based on the additions / movements
 my ( $new_serialized_query, $parsed_query ) = $tree->get_query_and_option_list( \@current_values );
@@ -130,14 +130,14 @@ my $queues = $tree->get_referenced_queues;
 #  Deal with format changes
 my ($new_format, $available_columns, $current_format ) = 
 	RT::Interface::Web::QueryBuilder->build_format_string(
-    %ARGS,
+	%{Jifty->web->request->arguments},
     queues => $queues,
 	format   => $query->{'format'});
 
 	$query->{'format'} = $new_format;
 
 # if we're asked to save the current search, save it
-if( $ARGS{'saved_search_save'} || $ARGS{'saved_search_copy'}) {
+if( Jifty->web->request->argument('saved_search_save') || Jifty->web->request->argument('saved_search_copy')) {
     push @actions, RT::Interface::Web::QueryBuilder->save_search( $query, $saved_search );
 }	
 #  Push the updates into the session so we don't lose 'em
@@ -159,7 +159,7 @@ if (Jifty->web->request->argument('new_query')) {
     $query_string = RT::Interface::Web->format_query_params(%$query);
 }
 
-if ( $ARGS{'do_search'} ) {
+if ( Jifty->web->request->argument('do_search') ) {
 	Jifty->web->redirect( Jifty->web->url . "Search/Results.html?" .$query_string);
 }
 

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


More information about the Rt-commit mailing list