Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[17/30] Patron Card Creator member search interface and code
- Loading branch information
1 parent
7a6a1ac
commit 4914858
Showing
2 changed files
with
266 additions
and
0 deletions.
There are no files selected for viewing
136 changes: 136 additions & 0 deletions
136
koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/members-search.tmpl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
<!-- TMPL_INCLUDE NAME="doc-head-open.inc" --> | ||
<title>Koha › Patrons <!-- TMPL_IF NAME="searching" -->› Search Results<!-- /TMPL_IF --></title> | ||
<!-- TMPL_INCLUDE NAME="doc-head-close.inc" --> | ||
<style type="text/css"> | ||
#custom-doc { width:47.23em;*width:46.04em;min-width:600px; margin:auto; text-align:left; } | ||
</style> | ||
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.checkboxes.min.js"></script> | ||
<script type="text/javascript"> | ||
//<![CDATA[ | ||
$(document).ready(function(){ | ||
$("#CheckAll").click(function(){ | ||
$(".checkboxed").checkCheckboxes(); | ||
return false; | ||
}); | ||
$("#CheckNone").click(function(){ | ||
$(".checkboxed").unCheckCheckboxes(); | ||
return false; | ||
}); | ||
}); | ||
function add_item(borrowernum,batch_id,type_id){ | ||
var getstr=''; | ||
if (borrowernum == 'checked') { | ||
itms= new Array; | ||
if(document.resultform.borrowernumber.length > 0) { | ||
for (var i=0; i < document.resultform.borrowernumber.length; i++) { | ||
if (document.resultform.borrowernumber[i].checked) { | ||
itms.push("borrower_number=" + document.resultform.borrowernumber[i].value); | ||
} | ||
} | ||
getstr = itms.join("&"); | ||
} else { | ||
getstr = "borrower_number="+document.resultform.borrowernumber.value; | ||
} | ||
} else { | ||
getstr = "borrower_number="+borrowernum; | ||
} | ||
var myurl = "edit-batch.pl?op=add&batch_id="+batch_id+"&"+getstr; | ||
window.opener.location.href = myurl; | ||
} | ||
//]]> | ||
</script> | ||
</head> | ||
<body> | ||
|
||
<div id="custom-doc" class="yui-t7"> | ||
<div id="bd"> | ||
<div class="yui-g"> | ||
<h3>Patron Search</h3> | ||
|
||
<div class="browse"> | ||
Browse by last name: | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=a&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">A</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=b&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">B</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=c&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">C</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=d&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">D</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=e&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">E</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=f&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">F</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=g&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">G</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=h&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">H</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=i&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">I</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=j&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">J</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=k&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">K</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=l&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">L</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=m&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">M</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=n&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">N</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=o&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">O</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=p&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">P</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=q&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Q</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=r&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">R</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=s&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">S</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=t&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">T</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=u&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">U</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=v&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">V</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=w&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">W</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=x&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">X</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=y&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Y</a> | ||
<a href="/cgi-bin/koha/patroncards/members-search.pl?member=z&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Z</a> | ||
</div> | ||
|
||
<form method="get" action="/cgi-bin/koha/patroncards/members-search.pl"><p> | ||
<input type="hidden" name="batch_id" value="<!-- TMPL_VAR NAME="batch_id" -->" /> | ||
<input type="hidden" name="type" value="<!-- TMPL_VAR NAME="type" -->" /> | ||
<label for="member">Name</label> | ||
<input id="member" name="member" /> | ||
<label for="category">Category code</label> | ||
<input id="category" name="category" /> | ||
<input type="submit" value="Search" /></p> | ||
</form> | ||
|
||
<!-- TMPL_IF NAME="resultsloop" --> | ||
<div id="searchheader"> <h3>Results <!-- TMPL_VAR Name ="from" --> to <!-- TMPL_VAR Name ="to" --> of <!-- TMPL_VAR Name ="numresults" --> found for <!-- TMPL_IF NAME="member" -->name: '<span class="ex"><!-- TMPL_VAR NAME="member" --><!-- TMPL_ELSIF NAME="category_type" -->category code: '<span class="ex"><!-- TMPL_VAR NAME="category_type" --><!-- /TMPL_IF --></span>'</h3></div> | ||
<!-- TMPL_IF NAME="paginationbar" --><div id="pagination_top"><!-- TMPL_VAR Name ="paginationbar" --></div><!-- /TMPL_IF --> | ||
<form name="resultform" action="/cgi-bin/koha/patroncards/members-search.pl" method="get" class="checkboxed"><div style="float: right; margin-top: .5em;"><input type="submit" class="icon addchecked" value="Add checked" onclick="add_item('checked',<!-- TMPL_VAR NAME="batch_id" -->); return false" /> <input type="button" class="close" value="Done" /></div> | ||
<div style="line-height: 2em; margin-left: .7em;"><a id="CheckAll" href="/cgi-bin/koha/patroncards/members-search.pl">Select All</a><a id="CheckNone" href="/cgi-bin/koha/patroncards/members-search.pl">Clear All</a></div> | ||
<div class="searchresults"> | ||
|
||
<table style="float: left; margin: .5em 0;"> | ||
<tr> | ||
<th><label style="font-weight:bold;">Select</label></th> | ||
<th><a href="members-search.pl?member=<!--TMPL_VAR Name="member" -->&category=<!--TMPL_VAR Name="category_type" -->&batch_id=<!-- TMPL_VAR NAME="batch_id" -->&orderby=cardnumber">Card</a></th> | ||
<th><a href="members-search.pl?member=<!--TMPL_VAR Name="member" -->&category=<!--TMPL_VAR Name="category_type" -->&batch_id=<!-- TMPL_VAR NAME="batch_id" -->&orderby=surname">Name</a></th> | ||
<th><a href="members-search.pl?member=<!--TMPL_VAR Name="member" -->&category=<!--TMPL_VAR Name="category_type" -->&batch_id=<!-- TMPL_VAR NAME="batch_id" -->&orderby=borrowers.categorycode">Category</a></th> | ||
<th><a href="members-search.pl?member=<!--TMPL_VAR Name="member" -->&category=<!--TMPL_VAR Name="category_type" -->&batch_id=<!-- TMPL_VAR NAME="batch_id" -->&orderby=branchcode">Library</a></th> | ||
<th>Expires on</th> | ||
<th>Notes</th> | ||
<th></th> | ||
</tr> | ||
<!-- TMPL_LOOP NAME="resultsloop" --> | ||
<!-- TMPL_UNLESS NAME="__odd__" --> | ||
<tr class="highlight"> | ||
<!-- TMPL_ELSE --> | ||
<tr> | ||
<!-- /TMPL_UNLESS --> | ||
<td> <input type="checkbox" name="borrowernumber" id="patron<!-- TMPL_VAR NAME="borrowernumber" -->" value="<!-- TMPL_VAR NAME="borrowernumber" -->" /> </td> | ||
<td><!-- TMPL_VAR NAME="cardnumber" --></td> | ||
<td style="white-space: nowrap;"><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->"><!-- TMPL_VAR NAME="surname" -->, <!-- TMPL_VAR NAME="firstname" --></a> <br /> <!-- TMPL_VAR NAME="address" --><!-- TMPL_IF NAME="address2" --><br /><!-- TMPL_VAR NAME="address2" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="city" --><br /><!-- TMPL_VAR NAME=city --><!-- /TMPL_IF --></td> | ||
<td><!-- TMPL_VAR NAME="category_description" --> (<!-- TMPL_VAR name="category_type" -->)</td> | ||
<td><!-- TMPL_VAR NAME="branchcode" --></td> | ||
<td><!-- TMPL_VAR NAME="dateexpiry" --></td> | ||
<td><!-- TMPL_VAR NAME="borrowernotes" --></td> | ||
<td><a onclick="add_item('<!-- TMPL_VAR NAME="borrowernumber" -->',<!-- TMPL_VAR NAME="batch_id" -->); return false" href="/cgi-bin/koha/patroncards/edit-batch.pl?borrower_number=<!-- TMPL_VAR NAME="borrowernumber" -->&batch_id=<!-- TMPL_VAR name="batch_id" -->&op=add">Add</a></td> | ||
</tr> | ||
<!-- /TMPL_LOOP --> | ||
</table> | ||
</div> | ||
</form> | ||
|
||
<!-- TMPL_ELSE --> | ||
<!-- TMPL_IF NAME="searching" --> | ||
No results found | ||
<!-- /TMPL_IF --> | ||
<!-- /TMPL_IF --> | ||
|
||
</div> | ||
</div> | ||
<!-- TMPL_INCLUDE NAME="intranet-bottom.inc" --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
#!/usr/bin/perl | ||
|
||
# Copyright 2000-2002 Katipo Communications | ||
# | ||
# This file is part of Koha. | ||
# | ||
# Koha is free software; you can redistribute it and/or modify it under the | ||
# terms of the GNU General Public License as published by the Free Software | ||
# Foundation; either version 2 of the License, or (at your option) any later | ||
# version. | ||
# | ||
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY | ||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | ||
# A PARTICULAR PURPOSE. See the GNU General Public License for more details. | ||
# | ||
# You should have received a copy of the GNU General Public License along with | ||
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, | ||
# Suite 330, Boston, MA 02111-1307 USA | ||
|
||
use strict; | ||
use warnings; | ||
|
||
use CGI; | ||
|
||
use C4::Auth; | ||
use C4::Output; | ||
use C4::Members; | ||
use C4::Debug; | ||
|
||
my $cgi = CGI->new; | ||
|
||
my $batch_id = $cgi->param('batch_id') || 0; | ||
my $startfrom = $cgi->param('startfrom')||1; | ||
my $resultsperpage = $cgi->param('resultsperpage')||C4::Context->preference("PatronsPerPage")||20; | ||
my $category = $cgi->param('category') || undef; | ||
my $member = $cgi->param('member') || undef; | ||
my $orderby = $cgi->param('orderby') || undef; | ||
|
||
my ($template, $loggedinuser, $cookie) = get_template_and_user({ | ||
template_name => "patroncards/members-search.tmpl", | ||
query => $cgi, | ||
type => "intranet", | ||
authnotrequired => 0, | ||
flagsrequired => {borrowers => 1}, | ||
debug => 1,}); | ||
|
||
$orderby = "surname,firstname" unless $orderby; | ||
$member =~ s/,//g; #remove any commas from search string | ||
$member =~ s/\*/%/g; | ||
|
||
if ($member || $category) { | ||
my ($count,$results) = 0,0; | ||
|
||
if(length($member) == 1) | ||
{ | ||
($count,$results) = SearchMember($member,$orderby,"simple"); | ||
} | ||
else | ||
{ | ||
($count,$results) = SearchMember($member,$orderby,"advanced",$category); | ||
} | ||
|
||
|
||
my @resultsdata = (); | ||
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'}); | ||
my %row = ( | ||
count => $i + 1, | ||
borrowernumber => $results->[$i]{'borrowernumber'}, | ||
cardnumber => $results->[$i]{'cardnumber'}, | ||
surname => $results->[$i]{'surname'}, | ||
firstname => $results->[$i]{'firstname'}, | ||
categorycode => $results->[$i]{'categorycode'}, | ||
category_type => $results->[$i]{'category_type'}, | ||
category_description => $results->[$i]{'description'}, | ||
address => $results->[$i]{'address'}, | ||
address2 => $results->[$i]{'address2'}, | ||
city => $results->[$i]{'city'}, | ||
zipcode => $results->[$i]{'zipcode'}, | ||
country => $results->[$i]{'country'}, | ||
branchcode => $results->[$i]{'branchcode'}, | ||
overdues => $od, | ||
issues => $issue, | ||
odissue => "$od/$issue", | ||
fines => ($fines ? sprintf("%.2f",$fines) : ''), | ||
borrowernotes => $results->[$i]{'borrowernotes'}, | ||
sort1 => $results->[$i]{'sort1'}, | ||
sort2 => $results->[$i]{'sort2'}, | ||
dateexpiry => C4::Dates->new($results->[$i]{'dateexpiry'},'iso')->output('syspref'), | ||
); | ||
push(@resultsdata, \%row); | ||
} | ||
my $base_url = __FILE__ . '?' . join('&', map { $_->{term} . ' = ' . $_->{val} } ( | ||
{ term => 'member', val => $member }, | ||
{ term => 'category', val => $category }, | ||
{ term => 'orderby', val => $orderby }, | ||
{ term => 'resultsperpage', val => $resultsperpage }, | ||
{ term => 'batch_id', val => $batch_id },) | ||
); | ||
$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), | ||
searching => "1", | ||
member => $member, | ||
category_type => $category, | ||
numresults => $count, | ||
resultsloop => \@resultsdata, | ||
batch_id => $batch_id, | ||
); | ||
} | ||
else { | ||
$template->param( batch_id => $batch_id); | ||
} | ||
|
||
output_html_with_http_headers $cgi, $cookie, $template->output; | ||
|
||
__END__ | ||
#script to do a borrower enquiry/bring up borrower details etc | ||
#written 20/12/99 by chris@katipo.co.nz | ||