Bug FIX : 437 'Browse Members' function should return paged results
authorHenri-Damien LAURENT <henridamien@koha-fr.org>
Wed, 12 Dec 2007 14:34:36 +0000 (15:34 +0100)
committerJoshua Ferraro <jmf@liblime.com>
Fri, 14 Dec 2007 00:07:23 +0000 (18:07 -0600)
Adding pagination_bar to results if needed.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tmpl
members/member.pl

index 426fe20..8ece441 100644 (file)
 
 <!-- TMPL_IF NAME="resultsloop" -->
     <h3>Results for Search: <span class="ex"><!-- TMPL_VAR NAME="member" --></span></h3>
-       <div class="results"><!-- TMPL_VAR Name ="numresults" --> patrons found</div>
+       <div class="results"><!-- TMPL_VAR Name ="numresults" --> patrons found<br/>
+  Page : <!-- TMPL_VAR Name ="startfrom" --> Results <!-- TMPL_VAR Name ="from" --> to <!-- TMPL_VAR Name ="to" --></div>
 <div class="searchresults">
+<p align="center"><!--TMPL_IF Name="multipage"--><!--TMPL_VAR Name="paginationbar" --><!--/TMPL_IF--></p>
     <table>
     <tr>
     <th><a href="member.pl?member=<!--TMPL_VAR Name="member" -->&amp;orderby=cardnumber">Card</a></th>
index 530e2fe..f24e160 100755 (executable)
@@ -31,6 +31,9 @@ use C4::Members;
 
 my $input = new CGI;
 my $quicksearch = $input->param('quicksearch');
+my $startfrom = $input->param('startfrom')||1;
+my $resultsperpage = $input->param('resultsperpage')||10;
+
 my ($template, $loggedinuser, $cookie);
 if($quicksearch){
     ($template, $loggedinuser, $cookie)
@@ -80,7 +83,8 @@ else
 
 my @resultsdata;
 my $toggle = 0;
-for (my $i=0; $i < $count; $i++){
+my $to=($count>($startfrom*$resultsperpage)?$startfrom*$resultsperpage:$count);
+for (my $i=($startfrom-1)*$resultsperpage; $i < $to; $i++){
   #find out stats
   my ($od,$issue,$fines)=GetMemberIssuesAndFines($results->[$i]{'borrowernumber'});
 
@@ -110,6 +114,28 @@ for (my $i=0; $i < $count; $i++){
   if ( $toggle ) { $toggle = 0; } else {$toggle = 1; }
   push(@resultsdata, \%row);
 }
+my $base_url =
+    'member.pl?&amp;'
+  . join(
+    '&amp;',
+    map { $_->{term} . '=' . $_->{val} } (
+        { term => 'member', val => $member},
+        { term => 'orderby', val => $orderby },
+        { term => 'resultsperpage', val => $resultsperpage },
+        { term => 'type',           val => 'intranet' },
+    )
+  );
+
+$template->param(
+    paginationbar => pagination_bar(
+        $base_url,  int( $count / $resultsperpage ) + 1,
+        $startfrom, 'startfrom'
+    ),
+    startfrom => $startfrom,
+    from      => ($startfrom-1)*$resultsperpage+1,  
+    to        => $to,
+    multipage => ($count != $to || $startfrom!=1),
+);
 
 $template->param( 
         searching       => "1",