remove unused digestion.pl
[sgn.git] / mason / search / results / list.mas
blob89d0f24512fc610031acf522523d4b1bc6704a5f
2 <%doc>
4 =head1 NAME
6 /search/result_list.mas - a Mason module to display search results
8 =head1 DESCRIPTION
10 Displays search results, based on an arrayref containing one "page" of results (see arguments), and displays links for moving to previous and next pages etc.
12 Arguments:
14 =over 10
16 =item search_name               
18 The name of the search
20 =item search_parameter_hashref
22 a hashref mapping parameter names to their values
24 =item search_link
26 a url, semi-absolute if possible, for the search. Needs to take a page argument.
28 =item total_result_count
30 The total number of results in the resultset.
32 =item page_size
34 How many results are presented on one page.
36 =item current_page
38 The current page number.
40 =item results_arrayref
42 An arrayref of arrayrefs containing the contents of the search result page. Each arrayref is a line in a table.
44 =item headers_arrayref
46 The headers of the columns for the search results; has to map to the results_arrayref.
48 =back
50 =head1 AUTHOR
52 Lukas Mueller <lam87@cornell.edu>
54 =cut
56 </%doc>
59 <%args>
60 $search_name
61 $search_parameter_hashref
62 $search_link
63 $total_result_count
64 $entries_per_page
65 $current_page
66 $results_arrayref
67 $headers_arrayref
68 </%args>
70 <%perl>
72 use Data::Page;
74 my $dp = Data::Page->new();
75 if (!$current_page) { $current_page=1; }
76 $dp->total_entries($total_result_count);
77 $dp->entries_per_page($entries_per_page);
78 $dp->current_page($current_page);
79 my $first = $dp->first();
80 my $last = $dp->last();
81 </%perl>
84 <& /page/page_title.mas, title => $search_name &>
85 <&| /page/info_section.mas, title => $search_name, subtitle=> "Total found: $total_result_count" &>
86   <& /page/columnar_table.mas, headings => $headers_arrayref, data => $results_arrayref &>
87 </&>
90 % foreach my $page ($first..$last) {
91   <a href="<% $search_link %> "><% $page %></a>
92 % }