@@ -, +, @@ REST API route --- api/v1/swagger/definitions/patron.yaml | 5 + api/v1/swagger/paths/patrons.yaml | 1 + circ/ysearch.pl | 100 ---------------- .../intranet-tmpl/js/autocomplete/patrons.js | 2 +- .../prog/en/includes/js_includes.inc | 104 ++--------------- .../prog/en/includes/patron-search.inc | 1 - .../prog/en/modules/circ/circulation.tt | 1 - .../prog/en/modules/course_reserves/course.tt | 31 +---- .../prog/en/modules/members/moremember.tt | 1 - .../prog/en/modules/pos/register.tt | 1 - .../prog/en/modules/reserve/request.tt | 30 +---- .../prog/en/modules/tools/quotes.tt | 1 - .../prog/js/pages/tags-review.js | 32 ++--- .../prog/js/patron-autocomplete.js | 109 ++++++++++++++++++ koha-tmpl/intranet-tmpl/prog/js/viewlog.js | 29 +---- 15 files changed, 144 insertions(+), 304 deletions(-) delete mode 100755 circ/ysearch.pl create mode 100644 koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js --- a/api/v1/swagger/definitions/patron.yaml +++ a/api/v1/swagger/definitions/patron.yaml @@ -359,6 +359,11 @@ properties: - number - "null" description: Balance of the patron's account + library: + type: + - object + - "null" + description: Library of the patron additionalProperties: false required: - surname --- a/api/v1/swagger/paths/patrons.yaml +++ a/api/v1/swagger/paths/patrons.yaml @@ -359,6 +359,7 @@ - checkouts+count - overdues+count - account_balance + - library collectionFormat: csv responses: "200": --- a/circ/ysearch.pl +++ a/circ/ysearch.pl @@ -1,100 +0,0 @@ -#!/usr/bin/perl - -# This software is placed under the gnu General Public License, v2 (http://www.gnu.org/licenses/gpl.html) - -# Copyright 2007 Tamil s.a.r.l. -# Parts copyright 2010-2012 Athens County Public Libraries -# -# 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 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 . - -=head1 ysearch.pl - -=cut - -use Modern::Perl; -use CGI qw ( -utf8 ); -use C4::Context; -use C4::Auth qw( check_cookie_auth ); -use Koha::Patrons; -use Koha::DateUtils qw( format_sqldatetime ); -use Koha::Libraries; - -use JSON qw( to_json ); - -my $input = CGI->new; -my $query = $input->param('term'); - -binmode STDOUT, ":encoding(UTF-8)"; -print $input->header( -type => 'text/plain', -charset => 'UTF-8' ); - -my ( $auth_status ) = check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => '1' } ); -if ( $auth_status ne "ok" ) { - exit 0; -} - -my $limit_on_branch; -if ( C4::Context->preference("IndependentBranches") - && C4::Context->userenv - && !C4::Context->IsSuperLibrarian() - && C4::Context->userenv->{'branch'} ) { - $limit_on_branch = 1; -} - -my @parts = split( /,\s|\s/, $query ); -my @params; -foreach my $p (@parts) { - push( - @params, - -or => [ - surname => { -like => "%$p%" }, - firstname => { -like => "%$p%" }, - cardnumber => { -like => "$p%" }, - ] - ); -} - -push( @params, { 'me.branchcode' => C4::Context->userenv->{branch} } ) if $limit_on_branch; - -my $borrowers_rs = Koha::Patrons->search_limited( - { -and => \@params }, - { - # Get the first 10 results - page => 1, - rows => 10, - order_by => [ 'surname', 'firstname' ], - prefetch => 'branchcode', - }, -); - -my @borrowers; -while ( my $b = $borrowers_rs->next ) { - push @borrowers, - { borrowernumber => $b->borrowernumber, - surname => $b->surname // '', - firstname => $b->firstname // '', - cardnumber => $b->cardnumber // '', - dateofbirth => format_sqldatetime($b->dateofbirth, undef, undef, 1) // '', - age => $b->get_age // '', - address => $b->address // '', - city => $b->city // '', - zipcode => $b->zipcode // '', - country => $b->country // '', - branchcode => $b->branchcode // '', - branchname => $b->library->branchname // '', - }; -} - -print to_json( \@borrowers ); --- a/koha-tmpl/intranet-tmpl/js/autocomplete/patrons.js +++ a/koha-tmpl/intranet-tmpl/js/autocomplete/patrons.js @@ -5,7 +5,7 @@ function patron_autocomplete(params) { var field_to_retrieve = params.field_to_retrieve || 'cardnumber'; $( input_autocomplete ).autocomplete({ - source: "/cgi-bin/koha/circ/ysearch.pl", + source: "/api/v1/patrons", minLength: 3, select: function( event, ui ) { var field = ui.item.cardnumber; --- a/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc @@ -26,6 +26,9 @@ [% Asset.js("lib/jquery/plugins/jquery.validate.min.js") | $raw %] [% Asset.js("js/staff-global.js") | $raw %] +[% INCLUDE 'js-date-format.inc' %] +[% INCLUDE 'js-patron-get-age.inc' %] +[% Asset.js("js/patron-autocomplete.js") | $raw %] [% INCLUDE 'validator-strings.inc' %] [% IF ( IntranetUserJS ) %] @@ -65,107 +68,20 @@ [% END %] -[% IF ( CAN_user_circulate_circulate_remaining_permissions ) %] - [% IF ( PatronAutoComplete ) %] - - [% END %] -[% END %] [% IF ( PatronAutoComplete ) %] --- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc @@ -236,7 +236,6 @@ [% INCLUDE 'datatables.inc' %] - [% INCLUDE 'js-date-format.inc' %] [% INCLUDE 'js-patron-get-age.inc' %] [% INCLUDE 'js-patron-format.inc' %] [% INCLUDE 'js-patron-format-address.inc' %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -1002,7 +1002,6 @@ [% INCLUDE 'columns_settings.inc' %] [% INCLUDE 'select2.inc' %] [% Asset.js("lib/jquery/plugins/rowGroup/dataTables.rowGroup.min.js") | $raw %] - [% INCLUDE 'js-date-format.inc' %]