Bug 13205: Last/first page options for result list paging
This patch adds first and last page buttons to the pagination at the bottom of a page of catalog search results. To test: 1) Apply patch 2) Do a number of searches 3) For each search, ensure that the first and last page buttons work as expected Sponsored-by: Catalyst IT Followed test plan, works as expected. Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Lee Jamison <ldjamison@marywood.edu> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
1fc0b65254
commit
b97de5af12
|
|
@ -617,6 +617,7 @@ for (my $i=0;$i<@servers;$i++) {
|
|||
my @page_numbers;
|
||||
# total number of pages there will be
|
||||
my $pages = ceil($hits / $results_per_page);
|
||||
my $last_page = ($pages * $results_per_page) - $results_per_page;
|
||||
# default page number
|
||||
my $current_page_number = 1;
|
||||
$current_page_number = ($offset / $results_per_page + 1) if $offset;
|
||||
|
|
@ -667,6 +668,7 @@ for (my $i=0;$i<@servers;$i++) {
|
|||
}
|
||||
# FIXME: no previous_page_offset when pages < 2
|
||||
$template->param( PAGE_NUMBERS => \@page_numbers,
|
||||
last_page => $last_page,
|
||||
previous_page_offset => $previous_page_offset) unless $pages < 2;
|
||||
$template->param( next_page_offset => $next_page_offset) unless $pages eq $current_page_number;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
[% IF ( PAGE_NUMBERS ) %]<nav><ul class="pagination">
|
||||
<li><a href="/cgi-bin/koha/catalogue/search.pl?[% query_cgi |html %][% limit_cgi |html %][% IF ( sort_by ) %]&sort_by=[% sort_by |url %][% END %]">First</a></li>
|
||||
<!-- Row of numbers corresponding to search result pages -->
|
||||
[% IF ( previous_page_offset.defined ) %]<li><a href="/cgi-bin/koha/catalogue/search.pl?[% query_cgi |html %][% limit_cgi |html %]&offset=[% previous_page_offset %][% IF ( sort_by ) %]&sort_by=[% sort_by |url %][% END %]"><< Previous</a></li>[% END %]
|
||||
[% FOREACH PAGE_NUMBER IN PAGE_NUMBERS %][% IF ( PAGE_NUMBER.highlight ) %]<li class="active"><span>[% PAGE_NUMBER.pg %]</span></li>[% ELSE %]<li><a href="/cgi-bin/koha/catalogue/search.pl?[% query_cgi |html %][% limit_cgi |html %]&offset=[% PAGE_NUMBER.offset %][% IF ( sort_by ) %]&sort_by=[% sort_by |url %][% END %]">[% PAGE_NUMBER.pg %]</a></li>[% END %]
|
||||
[% IF ( previous_page_offset.defined ) %]<li><a href="/cgi-bin/koha/catalogue/search.pl?[% query_cgi |html %][% limit_cgi |html %]&offset=[% previous_page_offset %][% IF ( sort_by ) %]&sort_by=[% sort_by |url %][% END %]"><< Previous</a></li>[% END %]
|
||||
[% FOREACH PAGE_NUMBER IN PAGE_NUMBERS %]
|
||||
[% IF ( PAGE_NUMBER.highlight ) %]
|
||||
<li class="active"><span>[% PAGE_NUMBER.pg %]</span></li>
|
||||
[% ELSE %]
|
||||
<li><a href="/cgi-bin/koha/catalogue/search.pl?[% query_cgi |html %][% limit_cgi |html %]&offset=[% PAGE_NUMBER.offset %][% IF ( sort_by ) %]&sort_by=[% sort_by |url %][% END %]">[% PAGE_NUMBER.pg %]</a></li>
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% IF ( next_page_offset ) %]<li><a href="/cgi-bin/koha/catalogue/search.pl?[% query_cgi |html %][% limit_cgi |html %]&offset=[% next_page_offset %][% IF ( sort_by ) %]&sort_by=[% sort_by |url %][% END %]">Next >></a></li>[% END %]
|
||||
[% IF ( next_page_offset ) %]<li><a href="/cgi-bin/koha/catalogue/search.pl?[% query_cgi |html %][% limit_cgi |html %]&offset=[% next_page_offset %][% IF ( sort_by ) %]&sort_by=[% sort_by |url %][% END %]">Next >></a></li>[% END %]
|
||||
<li><a href="/cgi-bin/koha/catalogue/search.pl?[% query_cgi |html %][% limit_cgi |html %]&offset=[% last_page %][% IF ( sort_by ) %]&sort_by=[% sort_by |url %][% END %]">Last</a></li>
|
||||
</ul></nav>[% END %]
|
||||
|
|
|
|||
Loading…
Reference in New Issue