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

jesse jesse at bestpractical.com
Mon Nov 9 20:03:25 EST 2009


The branch, librarize-search-logic has been updated
       via  c2e7198a8277c285c439fb91229f1e9ef2180d4d (commit)
      from  6bdc6dbf90c25015ab5c60ec728de02f15eb97d4 (commit)

Summary of changes:
 lib/RT/Dispatcher.pm         |   57 ++++++++++++++++++++++++++++++++++++++++++
 share/html/Search/Build.html |   54 +++++++--------------------------------
 2 files changed, 67 insertions(+), 44 deletions(-)

- Log -----------------------------------------------------------------
commit c2e7198a8277c285c439fb91229f1e9ef2180d4d
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Mon Nov 9 20:02:46 2009 -0500

    yay! now Search/Build.html has no init block

diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index 13da26a..485d2f4 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -178,6 +178,63 @@ on qr{^/Ticket/Graphs/(\d+)} => run {
     show( '/Ticket/Graphs/Render' );
 };
 
+before qr{^/Search/Build.html} => run {
+    my $querystring      = '';
+    my $selected_clauses = Jifty->web->request->argument('clauses');
+    my ( $saved_search, $current_search, $results ) = RT::Interface::Web::QueryBuilder->setup_query();
+
+    my $tree = RT::Interface::Web::QueryBuilder::Tree->new('AND');
+    push @$results, $tree->parse_sql( query => $current_search->{query} );
+
+    my $current_values
+        = [ ( $tree->get_displayed_nodes() )[ ref $selected_clauses ? @$selected_clauses : $selected_clauses ] ];
+
+    push @$results, RT::Interface::Web::QueryBuilder->process_query( $tree, $current_values );
+
+    my $queues       = $tree->get_referenced_queues;
+    my $parsed_query = $tree->get_query_option_list($current_values);
+
+    $current_search->{'query'} = join ' ', map $_->{'TEXT'}, @$parsed_query;
+
+    #  Deal with format changes
+    my ( $available_columns, $current_format );
+    ( $current_search->{'format'}, $available_columns, $current_format )
+        = RT::Interface::Web::QueryBuilder->build_format_string(
+        %{ Jifty->web->request->arguments },
+        queues => $queues,
+        format => $current_search->{'format'}
+        );
+
+    # if we're asked to save the current search, save it
+    push @$results, RT::Interface::Web::QueryBuilder->save_search( $current_search, $saved_search )
+        if ( Jifty->web->request->argument('saved_search_save') || Jifty->web->request->argument('saved_search_copy') );
+
+    #  Push the updates into the session so we don't lose 'em
+    Jifty->web->session->set( 'CurrentSearchHash', { %$saved_search, %$current_search, } );
+
+    #  Build a query_string for the tabs
+    if ( Jifty->web->request->argument('new_query') ) {
+        $querystring = 'new_query=1';
+    } elsif ( $current_search->{'query'} ) {
+        $querystring = RT::Interface::Web->format_query_params(%$current_search);
+    }
+
+    Jifty->web->redirect( Jifty->web->url . "Search/Results.html?" . $querystring )
+        if ( Jifty->web->request->argument('do_search') );
+
+    set current_search    => $current_search;
+    set current_format    => $current_format;
+    set available_columns => $available_columns;
+    set saved_search      => $saved_search;
+    set results           => $results;
+    set parsed_query      => $parsed_query;
+    set querystring       => $querystring;
+    set queues            => $queues;
+
+};
+
+
+
 # Backward compatibility with old RT URLs
 
 before '/NoAuth/Logout.html' => run { redirect '/logout' };
diff --git a/share/html/Search/Build.html b/share/html/Search/Build.html
index 127d795..40d19af 100644
--- a/share/html/Search/Build.html
+++ b/share/html/Search/Build.html
@@ -103,47 +103,13 @@
 </span>
 </form>
 </&>
-<%INIT>
-my $querystring = '';
-my $selected_clauses = Jifty->web->request->argument('clauses');
-my ( $saved_search, $current_search, $results ) = RT::Interface::Web::QueryBuilder->setup_query();
-
-my $tree = RT::Interface::Web::QueryBuilder::Tree->new('AND');
-push @$results, $tree->parse_sql( query => $current_search->{query} );
-
-my $current_values = [ ( $tree->get_displayed_nodes() )[ref $selected_clauses ? @$selected_clauses : $selected_clauses] ];
-
-push @$results, RT::Interface::Web::QueryBuilder->process_query( $tree, $current_values );
-
-my $queues       = $tree->get_referenced_queues;
-my $parsed_query = $tree->get_query_option_list($current_values);
-
-$current_search->{'query'} = join ' ', map $_->{'TEXT'}, @$parsed_query;
-
-#  Deal with format changes
-my ( $available_columns, $current_format );
- ( $current_search->{'format'}, $available_columns, $current_format )
-    = RT::Interface::Web::QueryBuilder->build_format_string(
-    %{ Jifty->web->request->arguments },
-    queues => $queues,
-    format => $current_search->{'format'}
-    );
-
-# if we're asked to save the current search, save it
-push @$results, RT::Interface::Web::QueryBuilder->save_search( $current_search, $saved_search )
-    if ( Jifty->web->request->argument('saved_search_save') || Jifty->web->request->argument('saved_search_copy') );
-
-#  Push the updates into the session so we don't lose 'em
-Jifty->web->session->set( 'CurrentSearchHash', { %$saved_search, %$current_search, } );
-
-#  Build a query_string for the tabs
-if ( Jifty->web->request->argument('new_query') ) {
-    $querystring = 'new_query=1';
-} elsif ( $current_search->{'query'} ) {
-    $querystring = RT::Interface::Web->format_query_params(%$current_search);
-}
-
-Jifty->web->redirect( Jifty->web->url . "Search/Results.html?" . $querystring )
-    if ( Jifty->web->request->argument('do_search') );
-
-</%INIT>
+<%args>
+$available_columns
+$current_search
+$saved_search
+$current_format
+$results
+$parsed_query
+$querystring
+$queues
+</%args>

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


More information about the Rt-commit mailing list