bug fix. Now it tests correctly if either of the tests evaluate to false or not
[sgn.git] / cgi-bin / search / gem_template_search.pl
blob01c13ca16e6197b8aabb2508cf17de71c68f35d3
1 ######################################################################
3 # Search the expression database and display the results.
5 # Adapted to the search framework by Aureliano Bombarely, 18/01/10
7 ######################################################################
9 use strict;
11 use CXGN::Page;
12 use CXGN::Page::FormattingHelpers qw/blue_section_html info_section_html page_title_html columnar_table_html/;
13 use CXGN::Search::CannedForms;
14 use CXGN::Searches::GemTemplate;
16 my $page=CXGN::Page->new("Expression search results by template", "Aure");
17 $page->header();
19 print page_title_html('Expression search results by template');
21 #create the search and query objects
22 my $search = CXGN::Searches::GemTemplate->new();
23 my $query = $search->new_query();
24 $search->page_size(20); #results shown per page
26 #get the parameters
27 my %params = $page->get_all_encoded_arguments();
29 $query->from_request(\%params);
31 if(%params)
33 my $result = $search->do_search($query); #execute the search
34 my @results;
36 while(my $r = $result->next_result())
38 #fields in result objs appear in the order in which they're registered with has_parameter() in the query class
39 push @results, ["<a href=\"/gem/template.pl?id=" . $r->[0] . "\">" . $r->[1] . "</a>",
40 "<a href=\"/gem/template.pl?id=" . $r->[2] . "\">" . $r->[3] . "</a>" ];
43 #build the HTML to output
44 my $pagination_html = $search->pagination_buttons_html($query, $result);
46 my $results_html = <<EOH;
47 <div id="searchresults">
48 EOH
50 $results_html .= columnar_table_html(headings => ['Template_name', 'Platform'],
51 data => \@results, __alt_freq => 2);
53 $results_html .= <<EOH;
54 </div>
55 $pagination_html
56 EOH
58 if(@results)
60 print blue_section_html('Results', , sprintf('<span class="paginate_summary">%s matches </span>', $result->total_results(), $result->time), $results_html);
62 else
64 print '<span class=""><h4>No matches found</h4></span>';
66 print info_section_html(title => 'Search again', contents =>CXGN::Search::CannedForms::expr_template_search_form($page, $query));
69 $page->footer();