573f1ac474
This patch moves all the code into an include which can be accessed from the 'Add a new message' link or the patron toolbar. EDIT: Ensuring modal opens on all pages EDIT2: Once the form has been submitted the page will redirect to where you submitted the form from. EDIT3: Fixing indentation of member-add-message.inc Ensuring messages save on every page Fill branch Ensure predefined notes appear Form redirects to where it was submitted from, or just the circulation page. EDIT4: Removing the new include file and moving it all into the modal in the toolbar EDIT5: Removing swp file and unnecessary code duplication by utilising plugins EDIT6: Batch checkout fixes EDIT7: Ensure you do not get JS error from Comment 24 (Batch checkout syspref must be turned on) To test: 1) Go to a patron circ page (circ/circulation.pl?borrowernumber=X) 2) Click 'Add a new message' under Messages 3) Confirm this brings up the modal to add a message. Confirm clicking Save saves your message. If it is an OPAC message (for the user), confirm it shows as expected on the OPAC. 4) Click Cancel. Confirm this closes the modal. 5) Click 'Add message' button in toolbar. Complete steps 3 and 4. 6) Confirm the modal opens from all other pages with the members toolbar. Confirm predefined notes shows. circ/circulation.pl members/moremember.pl members/routing-lists.pl members/statistics.pl members/boraccount.pl members/pay.pl members/maninvoice.pl members/mancredit.pl members/readingrec.pl members/notices.pl members/member-flags.pl members/member-password.pl members/paycollect.pl members/files.pl turn on BatchCheckouts syspref and put in appropriate patron category circ/circulation.pl?borrowernumber=X&batch=1 7) Confirm that the page redirects to where you submitted the form from once you have submitted it. 8) Go to Check Out tab and confirm your message saved (or OPAC, wherever you saved it) Sponsored-by: Catalyst IT Followed test plan, works as expected. (Re-tested for comment #24) Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
137 lines
4.3 KiB
Perl
Executable file
137 lines
4.3 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
# written 27/01/2000
|
|
# script to display borrowers reading record
|
|
|
|
# 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 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 strict;
|
|
use warnings;
|
|
|
|
use CGI qw ( -utf8 );
|
|
|
|
use C4::Auth;
|
|
use C4::Output;
|
|
use C4::Members;
|
|
use C4::Branch qw(GetBranches);
|
|
use List::MoreUtils qw/any uniq/;
|
|
use Koha::DateUtils;
|
|
use C4::Members::Attributes qw(GetBorrowerAttributes);
|
|
use Koha::Patron::Images;
|
|
|
|
my $input = CGI->new;
|
|
|
|
#get borrower details
|
|
my $data = undef;
|
|
my $borrowernumber = undef;
|
|
my $cardnumber = undef;
|
|
|
|
my ($template, $loggedinuser, $cookie)= get_template_and_user({template_name => "members/readingrec.tt",
|
|
query => $input,
|
|
type => "intranet",
|
|
authnotrequired => 0,
|
|
flagsrequired => {borrowers => 1},
|
|
debug => 1,
|
|
});
|
|
|
|
my $op = $input->param('op') || '';
|
|
if ($input->param('cardnumber')) {
|
|
$cardnumber = $input->param('cardnumber');
|
|
$data = GetMember(cardnumber => $cardnumber);
|
|
$borrowernumber = $data->{'borrowernumber'}; # we must define this as it is used to retrieve other data about the patron
|
|
}
|
|
if ($input->param('borrowernumber')) {
|
|
$borrowernumber = $input->param('borrowernumber');
|
|
$data = GetMember(borrowernumber => $borrowernumber);
|
|
}
|
|
|
|
my $order = 'date_due desc';
|
|
my $limit = 0;
|
|
my $issues = ();
|
|
# Do not request the old issues of anonymous patron
|
|
if ( $borrowernumber eq C4::Context->preference('AnonymousPatron') ){
|
|
# use of 'eq' in the above comparison is intentional -- the
|
|
# system preference value could be blank
|
|
$template->param( is_anonymous => 1 );
|
|
} else {
|
|
$issues = GetAllIssues($borrowernumber,$order,$limit);
|
|
}
|
|
|
|
my $branches = GetBranches();
|
|
|
|
# barcode export
|
|
if ( $op eq 'export_barcodes' ) {
|
|
if ( $data->{'privacy'} < 2) {
|
|
my $today = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
|
|
my @barcodes =
|
|
map { $_->{barcode} } grep { $_->{returndate} =~ m/^$today/o } @{$issues};
|
|
my $borrowercardnumber =
|
|
GetMember( borrowernumber => $borrowernumber )->{'cardnumber'};
|
|
my $delimiter = "\n";
|
|
binmode( STDOUT, ":encoding(UTF-8)" );
|
|
print $input->header(
|
|
-type => 'application/octet-stream',
|
|
-charset => 'utf-8',
|
|
-attachment => "$today-$borrowercardnumber-checkinexport.txt"
|
|
);
|
|
|
|
my $content = join $delimiter, uniq(@barcodes);
|
|
print $content;
|
|
exit;
|
|
}
|
|
}
|
|
|
|
if ( $data->{'category_type'} eq 'C') {
|
|
my ( $catcodes, $labels ) = GetborCatFromCatType( 'A', 'WHERE category_type = ?' );
|
|
my $cnt = scalar(@$catcodes);
|
|
$template->param( 'CATCODE_MULTI' => 1) if $cnt > 1;
|
|
$template->param( 'catcode' => $catcodes->[0]) if $cnt == 1;
|
|
}
|
|
|
|
$template->param( adultborrower => 1 ) if ( $data->{'category_type'} eq 'A' );
|
|
if (! $limit){
|
|
$limit = 'full';
|
|
}
|
|
|
|
my $patron_image = Koha::Patron::Images->find($data->{borrowernumber});
|
|
$template->param( picture => 1 ) if $patron_image;
|
|
|
|
if (C4::Context->preference('ExtendedPatronAttributes')) {
|
|
my $attributes = GetBorrowerAttributes($borrowernumber);
|
|
$template->param(
|
|
ExtendedPatronAttributes => 1,
|
|
extendedattributes => $attributes
|
|
);
|
|
}
|
|
|
|
$template->param(%$data);
|
|
|
|
$template->param(
|
|
readingrecordview => 1,
|
|
borrowernumber => $borrowernumber,
|
|
privacy => $data->{'privacy'},
|
|
categoryname => $data->{description},
|
|
is_child => ( $data->{category_type} eq 'C' ),
|
|
branchname => $branches->{ $data->{branchcode} }->{branchname},
|
|
loop_reading => $issues,
|
|
activeBorrowerRelationship =>
|
|
( C4::Context->preference('borrowerRelationship') ne '' ),
|
|
RoutingSerials => C4::Context->preference('RoutingSerials'),
|
|
);
|
|
output_html_with_http_headers $input, $cookie, $template->output;
|
|
|