Koha/circ/selectbranchprinter.pl
Aleisha 1edb8cbeee Bug 16530: Adding a circ sidebar navigation menu and circSidebar syspref to activate/deactivate
Edit: Fast cataloging link should now show on all pages, removed offline circulation links
Edit 2: Creates the syspref to activate or deactivate the sidebar
Edit 3: Fixing merge conflicts, using Koha::BiblioFrameworks to find FA
framework and adding sidebar to on-site checkouts

This adds a sidebar to
circ/branchoverdues.tt
circ/circulation.tt (I also fixed up some of the indentation in this file to make it easier to see where the divs started and ended)
circ/renew.tt
circ/returns.tt
circ/selectbranchprinter.tt
circ/transferstoreceive.tt
circ/view_holdsqueue.tt
circ/waitingreserves.tt
circ/branchtransfers.tt
circ/on-site_checkouts.tt

To test:
1) Confirm syspref CircSidebar is activated
2) Go to all of the above pages and confirm the sidebar menu shows up
3) Confirm fast cataloguing link and transfer link are there
4) Trigger any error messages you can possibly think of (i.e. on renew.pl: barcode does not exist). Confirm that this does not mess up the layout of the page
5) Go to a user account page, Check out tab. (Since this is a circ/circulation.pl page). Ensure the circ nav sidebar doesn't show up (confirm it looks as it usually does)
6) Deactivate circSidebar
7) Confirm pages all look normal

Sponsored-by: Catalyst IT

Signed-off-by: Jan Kissig <jkissig@th-wildau.de>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
2017-03-03 18:34:36 +00:00

143 lines
5 KiB
Perl
Executable file

#!/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 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::Context;
use C4::Output;
use C4::Auth qw/:DEFAULT get_session/;
use C4::Print; # GetPrinters
use C4::Koha;
use Koha::BiblioFrameworks;
use Koha::Libraries;
# this will be the script that chooses branch and printer settings....
my $query = CGI->new();
my ( $template, $borrowernumber, $cookie, $flags ) = get_template_and_user({
template_name => "circ/selectbranchprinter.tt",
query => $query,
type => "intranet",
debug => 1,
authnotrequired => 0,
flagsrequired => { catalogue => 1, },
});
my $sessionID = $query->cookie("CGISESSID");
my $session = get_session($sessionID);
# try to get the branch and printer settings from http, fallback to userenv
my $printers = GetPrinters();
my $branch = $query->param('branch' );
my $printer = $query->param('printer');
# fallbacks for $branch and $printer after possible session updates
my $userenv_branch = C4::Context->userenv->{'branch'} || '';
my $userenv_printer = C4::Context->userenv->{'branchprinter'} || '';
my @updated;
# $session lddines here are doing the updating
if ( $branch and my $library = Koha::Libraries->find($branch) ) {
if (! $userenv_branch or $userenv_branch ne $branch ) {
my $branchname = $library->branchname;
$template->param(LoginBranchname => $branchname); # update template for new branch
$template->param(LoginBranchcode => $branch); # update template for new branch
$session->param('branchname', $branchname); # update sesssion in DB
$session->param('branch', $branch); # update sesssion in DB
push @updated, {
updated_branch => 1,
old_branch => $userenv_branch,
};
} # else branch the same, no update
} else {
$branch = $userenv_branch; # fallback value
}
# FIXME: branchprinter is not retained by session. This feature was not adequately
# ported from Koha 2.2.3 where it had been a separate cookie.
# So this needs to be fixed for Koha 3 or removed outright.
# --atz (w/ info from chris cormack)
if ($printer) {
if (! $userenv_printer or $userenv_printer ne $printer ) {
$session->param('branchprinter', $printer); # update sesssion in DB
$template->param('new_printer', $printer); # update template
push @updated, {
updated_printer => 1,
old_printer => $userenv_printer,
};
} # else printer is the same, no update
} else {
$printer = $userenv_printer; # fallback value
}
$template->param(updated => \@updated) if (scalar @updated);
my @printkeys = sort keys %$printers;
if (scalar(@printkeys) == 1 or not $printers->{$printer}) {
$printer = $printkeys[0]; # if printer didn't really exist, or there is only 1 anyway, then replace it w/ one that does
}
my @printerloop;
foreach ( @printkeys ) {
next unless ($_); # skip printer if blank.
push @printerloop, {
selected => ( $_ eq $printer ),
name => $printers->{$_}->{'printername'},
value => $_,
};
}
my @recycle_loop;
foreach ($query->param()) {
$_ or next; # disclude blanks
$_ eq "branch" and next; # disclude branch
$_ eq "printer" and next; # disclude printer
$_ eq "oldreferer" and next; # disclude oldreferer
push @recycle_loop, {
param => $_,
value => scalar $query->param($_),
};
}
my $referer = $query->param('oldreferer') || $ENV{HTTP_REFERER};
$referer =~ /selectbranchprinter\.pl/ and undef $referer; # avoid sending them back to this same page.
if (scalar @updated and not scalar @recycle_loop) {
# we updated something, and there were no extra params to POST: quick redirect
print $query->redirect($referer || '/cgi-bin/koha/circ/circulation.pl');
}
$template->param(
referer => $referer,
printerloop => \@printerloop,
branch => $branch,
recycle_loop=> \@recycle_loop,
);
# Checking if there is a Fast Cataloging Framework
$template->param( fast_cataloging => 1 ) if Koha::BiblioFrameworks->find( 'FA' );
# Checking if the transfer page needs to be displayed
$template->param( display_transfer => 1 ) if ( ($flags->{'superlibrarian'} == 1) || (C4::Context->preference("IndependentBranches") == 0) );
output_html_with_http_headers $query, $cookie, $template->output;