From f4130c9af236f67205057730a23edd636169ff56 Mon Sep 17 00:00:00 2001
From: Aleisha Amohia <aleishaamohia@hotmail.com>
Date: Thu, 16 Feb 2017 02:28:13 +0000
Subject: [PATCH] Bug 13205: Last/first page options for result list paging for
 OPAC

Same fix but on OPAC side. Same test plan

Sponsored-by: Catalyst IT

Signed-off-by: Dilan Johnpulle <dilan@calyx.net.au>
Signed-off-by: Your Full Name <your_email>

Signed-off-by: Lee Jamison <ldjamison@marywood.edu>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
---
 .../bootstrap/en/includes/page-numbers.inc         | 26 ++++++++++++----------
 opac/opac-search.pl                                |  2 ++
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/page-numbers.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/page-numbers.inc
index f18c9ce..63e083e 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/page-numbers.inc
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/page-numbers.inc
@@ -1,19 +1,21 @@
 [% IF ( PAGE_NUMBERS ) %]
     <div class="pagination pagination-small noprint">
         <ul>
-        [% IF ( previous_page_offset.defined ) %]
-            <li><a href="/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %]&amp;offset=[% previous_page_offset %][% IF ( sort_by ) %]&amp;sort_by=[% sort_by |html %][% END %]">&laquo; Previous</a></li>
-        [% END %]
-        [% FOREACH PAGE_NUMBER IN PAGE_NUMBERS %]
-            [% IF ( PAGE_NUMBER.highlight ) %]
-                <li class="active"><a href="#">[% PAGE_NUMBER.pg %]</a></li>
-            [% ELSE %]
-                <li><a href="/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %]&amp;offset=[% PAGE_NUMBER.offset %][% IF ( sort_by ) %]&amp;sort_by=[% sort_by |html%][% END %]">[% PAGE_NUMBER.pg %]</a></li>
+            <li><a href="/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %][% IF ( sort_by ) %]&amp;sort_by=[% sort_by |html %][% END %]">First</a></li>
+            [% IF ( previous_page_offset.defined ) %]
+                <li><a href="/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %]&amp;offset=[% previous_page_offset %][% IF ( sort_by ) %]&amp;sort_by=[% sort_by |html %][% END %]">&laquo; Previous</a></li>
             [% END %]
-        [% END %]
-        [% IF ( next_page_offset ) %]
-            <li><a href="/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %]&amp;offset=[% next_page_offset %][% IF ( sort_by ) %]&amp;sort_by=[% sort_by |html %][% END %]">Next &raquo;</a></li>
-        [% END %]
+            [% FOREACH PAGE_NUMBER IN PAGE_NUMBERS %]
+                [% IF ( PAGE_NUMBER.highlight ) %]
+                    <li class="active"><a href="#">[% PAGE_NUMBER.pg %]</a></li>
+                [% ELSE %]
+                    <li><a href="/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %]&amp;offset=[% PAGE_NUMBER.offset %][% IF ( sort_by ) %]&amp;sort_by=[% sort_by |html%][% END %]">[% PAGE_NUMBER.pg %]</a></li>
+                [% END %]
+            [% END %]
+            [% IF ( next_page_offset ) %]
+                <li><a href="/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %]&amp;offset=[% next_page_offset %][% IF ( sort_by ) %]&amp;sort_by=[% sort_by |html %][% END %]">Next &raquo;</a></li>
+            [% END %]
+            <li><a href="/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %]&amp;offset=[% last_page %][% IF ( sort_by ) %]&amp;sort_by=[% sort_by |html %][% END %]">Last</a></li>
         </ul>
     </div>
 [% END %]
diff --git a/opac/opac-search.pl b/opac/opac-search.pl
index c10e958..506fc57 100755
--- a/opac/opac-search.pl
+++ b/opac/opac-search.pl
@@ -839,6 +839,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;
             if ($offset) {
@@ -889,6 +890,7 @@ for (my $i=0;$i<@servers;$i++) {
                         
             }
             $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;
         }
-- 
2.1.4