This third patch removes the previous way to search for patron cards users.
Test plan:
1/ Add items to a patron card batch (patroncards/edit-batch.pl?op=edit&element_id=X)
2/ Add 1+ patrons to the batch
3/ Confirm there is no regression
Tested together with other patches.
Signed-off-by: Marc Veron <veron@veron.ch>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
[% CASE 'name' %]<th>Name</th>
[% CASE 'branch' %]<th>Library</th>
[% CASE 'category' %]<th>Category</th>
+ [% CASE 'dateexpiry' %]<th>Expires on</td>
+ [% CASE 'borrowernotes' %]<th>Notes</th>
[% CASE 'action' %]<th> </th>
[% END %]
[% END %]
return; // abort delete
}
};
+
function Add() {
- window.open("/cgi-bin/koha/patroncards/members-search.pl?batch_id=[% batch_id %]",'FindABibIndex','width=875,height=400,toolbar=no,scrollbars=yes');
- };
+ window.open("/cgi-bin/koha/patroncards/add_user_search.pl",
+ 'PatronPopup',
+ 'width=740,height=450,location=yes,toolbar=no,'
+ + 'scrollbars=yes,resize=yes'
+ );
+ }
+
+ function add_user(borrowernumber) {
+ var myurl = "edit-batch.pl?op=add&batch_id=[% batch_id %]&borrower_number="+borrowernumber;
+ window.location.href = myurl;
+ }
+
function DeDuplicate() {
window.location = "/cgi-bin/koha/patroncards/edit-batch.pl?op=de_duplicate&batch_id=[% batch_id %]";
};
+++ /dev/null
-[% INCLUDE 'doc-head-open.inc' %]
-<title>Koha › Patrons [% IF ( searching ) %]› Search results[% END %]</title>
-[% INCLUDE '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="[% interface %]/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 id="pcard_members-search" class="tools pcard">
-
-<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:
- [% FOREACH letter IN alphabet.split(' ') %]
- <a href="/cgi-bin/koha/patroncards/members-search.pl?not_attributes=1&member=[% letter %]&batch_id=[% batch_id %]">[% letter %]</a>
- [% END %]
-</div>
-
-<form method="get" action="/cgi-bin/koha/patroncards/members-search.pl"><p>
-<input type="hidden" name="batch_id" value="[% batch_id %]" />
-<input type="hidden" name="type" value="[% type %]" />
-<label for="member">Name: </label>
-<input id="member" name="member" value="[% member %]" />
-
-[% UNLESS ( no_categories ) %]
- <label for="category">Category: </label>
- <select name="category" id="category">
- <option value="">Any</option>
- [% FOREACH categorie IN categories %]
- [% IF ( categorie.categorycode == category ) %]
- <option value="[% categorie.categorycode %]" selected="selected">[% categorie.description |html_entity %]</option>
- [% ELSE %]
- <option value="[% categorie.categorycode %]">[% categorie.description |html_entity %]</option>
- [% END %]
- [% END %]
- </select>
-[% END %]
-
-<input type="submit" value="Search" /></p>
-</form>
-
-[% IF ( resultsloop ) %]
-<div id="searchheader"> <h3>Results [% from %] to [% to %] of [% numresults %] found [% IF ( member ) %]for name: '<span class="ex">[% member %]</span>'[% END %] [% IF ( category ) %]with category code: '<span class="ex">[% category %]</span>'[% END %]</h3></div>
-[% IF ( paginationbar ) %]<div id="pagination_top" class="pages">[% paginationbar %]</div>[% END %]
-<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',[% 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>Select</th>
- <th><a href="members-search.pl?member=[% member %]&category=[% category %]&batch_id=[% batch_id %]&orderby=cardnumber">Card</a></th>
- <th><a href="members-search.pl?member=[% member %]&category=[% category %]&batch_id=[% batch_id %]&orderby=surname">Name</a></th>
- <th><a href="members-search.pl?member=[% member %]&category=[% category %]&batch_id=[% batch_id %]&orderby=borrowers.categorycode">Category</a></th>
- <th><a href="members-search.pl?member=[% member %]&category=[% category %]&batch_id=[% batch_id %]&orderby=branchcode">Library</a></th>
- <th>Expires on</th>
- <th>Notes</th>
- <th></th>
- </tr>
- [% FOREACH resultsloo IN resultsloop %]
- [% UNLESS ( loop.odd ) %]
- <tr class="highlight">
- [% ELSE %]
- <tr>
- [% END %]
- <td> <input type="checkbox" name="borrowernumber" id="patron[% resultsloo.borrowernumber %]" value="[% resultsloo.borrowernumber %]" /> </td>
- <td>[% resultsloo.cardnumber %]</td>
- <td style="white-space: nowrap;"><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resultsloo.borrowernumber %]">[% resultsloo.surname %], [% resultsloo.firstname %]</a> <br /> [% resultsloo.address %][% IF ( resultsloo.address2 ) %]<br />[% resultsloo.address2 %][% END %][% IF ( resultsloo.city ) %]<br />[% resultsloo.city %][% END %]</td>
- <td>[% resultsloo.category_description %] ([% resultsloo.categorycode %])</td>
- <td>[% resultsloo.branchcode %]</td>
- <td>[% resultsloo.dateexpiry %]</td>
- <td>[% resultsloo.borrowernotes %]</td>
- <td><a onclick="add_item('[% resultsloo.borrowernumber %]',[% batch_id %]); return false" href="/cgi-bin/koha/patroncards/edit-batch.pl?borrower_number=[% resultsloo.borrowernumber %]&batch_id=[% batch_id %]&op=add">Add</a></td>
- </tr>
- [% END %]
- </table>
- </div>
-</form>
-
-[% ELSE %]
-[% IF ( searching ) %]
-No results found
-[% END %]
-[% END %]
-
-</div>
-</div>
-[% INCLUDE 'popup-bottom.inc' %]
--- /dev/null
+[% USE To %]
+{
+ "sEcho": [% sEcho %],
+ "iTotalRecords": [% iTotalRecords %],
+ "iTotalDisplayRecords": [% iTotalDisplayRecords %],
+ "aaData": [
+ [% FOREACH data IN aaData %]
+ {
+ "dt_cardnumber":
+ "[% data.cardnumber %]",
+ "dt_name":
+ "<span style='white-space:nowrap'><a href='/cgi-bin/koha/members/moremember.pl?borrowernumber=[% data.borrowernumber %]'>[% INCLUDE 'patron-title.inc' borrowernumber = data.borrowernumber category_type = data.category_type firstname = data.firstname surname = data.surname othernames = data.othernames cardnumber = data.cardnumber invert_name = 1%]</a></span>",
+ "dt_category":
+ "[% data.category_description |html %] ([% data.category_type |html %])",
+ "dt_branch":
+ "[% data.branchname |html %]",
+ "dt_dateexpiry":
+ "[% data.dateexpiry %]",
+ "dt_borrowernotes":
+ "[% data.borrowernotes.replace('\\\\' , '\\\\') |html |html_line_break |collapse %]",
+ "dt_action":
+ "<a style='cursor:pointer' onclick='add_user(\"[% data.borrowernumber %]\", \"[% data.firstname %] [% data.surname %]\"); return false;'>Add</a>"
+ }[% UNLESS loop.last %],[% END %]
+ [% END %]
+ ]
+}
--- /dev/null
+#!/usr/bin/perl
+
+# This file is part of Koha.
+#
+# Copyright 2014 BibLibre
+#
+# 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 3 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, see <http://www.gnu.org/licenses>.
+
+use Modern::Perl;
+
+use CGI qw ( -utf8 );
+use C4::Auth;
+use C4::Output;
+use C4::Members;
+
+my $input = new CGI;
+
+my $dbh = C4::Context->dbh;
+
+my ( $template, $loggedinuser, $cookie, $staff_flags ) = get_template_and_user(
+ { template_name => "common/patron_search.tt",
+ query => $input,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => { serials => 'routing' },
+ }
+);
+
+my $q = $input->param('q') || '';
+my $op = $input->param('op') || '';
+
+my $referer = $input->referer();
+
+$template->param(
+ view => ( $input->request_method() eq "GET" ) ? "show_form" : "show_results",
+ columns => ['cardnumber', 'name', 'category', 'branch', 'dateexpiry', 'borrowernotes', 'action'],
+ json_template => 'patroncards/tables/members_results.tt',
+ selection_type => 'add',
+);
+output_html_with_http_headers( $input, $cookie, $template->output );
+++ /dev/null
-#!/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.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-use strict;
-use warnings;
-
-use CGI qw ( -utf8 );
-
-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') || '';
-my $orderby = $cgi->param('orderby') || undef;
-my $not_attributes = $cgi->param('not_attributes') || undef;
-
-my @categories=C4::Category->all;
-my %categories_display;
-my $no_categories;
-
-foreach my $category (@categories) {
- my $hash={
- category_description=>$$category{description},
- category_type=>$$category{category_type}
- };
- $categories_display{$$category{categorycode}} = $hash;
-}
-
-
-my ($template, $loggedinuser, $cookie) = get_template_and_user({
- template_name => "patroncards/members-search.tt",
- query => $cgi,
- type => "intranet",
- authnotrequired => 0,
- flagsrequired => {borrowers => 1},
- debug => 1,});
-
-if(scalar(@categories) < 1){ $no_categories = 1; }
-if($no_categories && C4::Context->preference("AddPatronLists")=~/code/){
- $template->param(no_categories => 1);
-} else {
- $template->param(
- categories=>\@categories,
- category => $category
- );
-}
-
-$orderby = "surname,firstname" unless $orderby;
-$member =~ s/,//g; #remove any commas from search string
-$member =~ s/\*/%/g;
-
-if ($member || $category) {
- my $results = $category ? Search({''=>$member, categorycode=>$category}, $orderby, undef, undef, undef, undef, $not_attributes )
- : Search($member, $orderby, undef, undef, undef, undef, $not_attributes);
- my $count = $results ? @$results : 0;
-
- 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,
- %{$categories_display{$results->[$i]{categorycode}}},
- borrowernumber => $results->[$i]{'borrowernumber'},
- cardnumber => $results->[$i]{'cardnumber'},
- surname => $results->[$i]{'surname'},
- firstname => $results->[$i]{'firstname'},
- categorycode => $results->[$i]{'categorycode'},
- 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 = '?' . 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);
-}
-
-$template->param( 'alphabet' => C4::Context->preference('alphabet') || join ' ', 'A' .. 'Z' );
-
-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
-
-