Koha/koha-tmpl/intranet-tmpl/prog/en/modules/circ/branchtransfers.tt
Fridolin Somers 80be039d6c Bug 10300: (follow-up) add controls on transfers page
This patch moves the check of IndependentBranchesTransfers pref to templates and adds permission test inside branchtransfers.pl.
It also corrects the libraries combobox in branchtransfers.tt, this list can contain all libraries, it is the access to the page that may be protected.

Additions to test plan :
1)
1.1) Enable CircSidebar
1.2) In circulation home page check the effect of IndependentBranchesTransfers on "Transfer" link
1.3) Go to return page and check then effect of IndependentBranchesTransfers on "Transfer" link

2)
2.1) In circ/branchtransfers.pl, with and without IndependentBranches you see all libraries are in combobox

3)
3.1) Set IndependentBranchesTransfers to no and go to circ/branchtransfers.pl
3.2) You are redirected to page 403 unless you are superlibarian

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

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

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
2019-04-26 11:49:08 +00:00

215 lines
12 KiB
Text

[% USE Koha %]
[% USE Branches %]
[% USE ItemTypes %]
[% USE AuthorisedValues %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Circulation &rsaquo; Transfers</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body id="circ_branchtransfers" class="circ">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'circ-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> &rsaquo; Transfers</div>
<div class="main container-fluid">
<div class="row">
[% IF Koha.Preference('CircSidebar') %]
<div class="col-sm-10 col-sm-push-2">
[% ELSE %]
<div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
[% END %]
<main>
[% IF ( found ) %]
<h3>Reserve found</h3>
<table>
<caption>
[% IF ( reserved ) %]
Reserve found for [% name | html %] (<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber | uri %]">[% borrowernumber | html %]</a>).
[% END %]
[% IF ( waiting ) %]
Item is marked waiting at [% branchname | html %] for [% name | html %] (<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber | uri %]">[% borrowernumber | html %]</a>).
[% END %]
</caption>
<tr>
<th>
[% IF ( reserved ) %]Set reserve to waiting and transfer book to [% branchname | html %]: [% END %]
[% IF ( waiting ) %]Cancel reservation and then attempt transfer: [% END %]
</th>
<td>
<form method="post" name="mainform" id="mainform" action="branchtransfers.pl">
[% FOREACH trsfitemloo IN trsfitemloop %]
<input type="hidden" name="bc-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.barcode | html %]" />
<input type="hidden" name="fb-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.frombrcd | html %]" />
<input type="hidden" name="tb-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.tobrcd | html %]" />
[% END %]
<input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
<input type="hidden" name="borrowernumber" value="[% borrowernumber | html %]" />
[% IF ( waiting ) %]
<input type="hidden" name="barcode" value="[% barcode | html %]" />
<input type="hidden" name="request" value="KillWaiting" />
<input type="submit" value="Cancel" />
[% END %]
[% IF ( reserved ) %]
<input type="hidden" name="request" value="SetWaiting" />
<input type="submit" value="Waiting" />
[% END %]
</form>
</td>
</tr>
[% IF ( reserved ) %]
<tr>
<th>Cancel reservation and then attempt transfer:</th>
<td>
<form method="post" name="mainform" id="mainform" action="branchtransfers.pl">
[% FOREACH trsfitemloo IN trsfitemloop %]
<input type="hidden" name="bc-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.barcode | html %]" />
<input type="hidden" name="fb-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.frombrcd | html %]" />
<input type="hidden" name="tb-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.tobrcd | html %]" />
[% END %]
<input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
<input type="hidden" name="borrowernumber" value="[% borrowernumber | html %]" />
<input type="hidden" name="tobranchcd" value="[% tobranchcd | html %]" />
<input type="hidden" name="barcode" value="[% barcode | html %]" />
<input type="hidden" name="request" value="KillReserved" />
<input type="submit" value="Cancel" />
</form>
</td>
</tr>
[% END %]
<tr>
<th>Ignore and return to transfers: </th>
<td>
<form method="post" name="mainform" id="mainform" action="branchtransfers.pl" />
<input type="hidden" name="tobranchcd" value="[% tobranchcd | html %]" />
<input type="hidden" name="barcode" />
[% FOREACH trsfitemloo IN trsfitemloop %]
<input type="hidden" name="bc-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.barcode | html %]" />
<input type="hidden" name="fb-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.frombrcd | html %]" />
<input type="hidden" name="tb-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.tobrcd | html %]" />
[% END %]
<input type="submit" value="Ignore" />
</form>
</td>
</tr>
</table>
[% ELSE %]
[% IF ( reqmessage ) %]
<div class="dialog message">
<ul>
[% IF ( cancelled ) %]
<li>Reserve cancelled</li>
[% END %]
[% IF ( setwaiting ) %]
<li>Item should now be waiting at library: [% reqbrchname | html %]</li>
[% END %]
</ul>
</div>
[% END %]
[% IF ( errmsgloop ) %]
<div class="dialog message">
<ul>
[% FOREACH errmsgloo IN errmsgloop %]
[% IF ( errmsgloo.errbadcode ) %]
<li>No Item with barcode: [% errmsgloo.msg | html %]</li>
[% END %]
[% IF ( errmsgloo.errispermanent ) %]
<li>Please return item to home library: [% Branches.GetName( errmsgloo.msg ) | html %]</li>
[% END %]
[% IF ( errmsgloo.errnotallowed ) %]
<li>Transfer is not allowed for:
<ol>
[% IF ( Koha.Preference('BranchTransferLimitsType') == 'itemtype' ) %]
<li>Item type: <b>[% ItemTypes.GetDescription( errmsgloo.code ) | html %]</b></li>
[% ELSE %]
<li>Collection code: <b>[% AuthorisedValues.GetByCode( 'CCODE', errmsgloo.code ) | html %]</b></li>
[% END %]
<li>Destination library: <b>[% Branches.GetName( errmsgloo.tbr ) | html %]</b></li>
</ol>
</li>
[% END %]
[% IF ( errmsgloo.errdesteqholding ) %]
<li>Item is already at destination library.</li>
[% END %]
[% IF ( errmsgloo.errwasreturned ) %]
<li>Item was on loan to <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% errmsgloo.patron.borrowernumber | uri %]">
[% errmsgloo.patron.firstname | html %] [% errmsgloo.patron.surname | html %]
([% errmsgloo.patron.cardnumber | html %])</a> and has been returned.</li>
[% END %]
[% END %]
</ul>
</div>
[% END %]
<div id="branchtransfers">
<form method="post" name="mainform" id="mainform" action="/cgi-bin/koha/circ/branchtransfers.pl">
<fieldset class="brief">
<legend>Transfer</legend>
<ol>
<li>
<label for="tobranchcd">Destination library: </label>
<select name="tobranchcd" id="tobranchcd">
[% PROCESS options_for_libraries libraries => Branches.all( selected => tobranchcd, unfiltered => 1) %]
</select>
</li>
<li>
<label for="barcode">Enter barcode: </label>
<input name="barcode" id="barcode" size="15" class="focus" type="text" /> <input type="submit" value="Submit" />
</li>
</ol>
</fieldset>
<input type="hidden" name="tobranchcd" value="[% tobrancd | html %]" />
[% FOREACH trsfitemloo IN trsfitemloop %]
<input type="hidden" name="bc-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.barcode | html %]" />
<input type="hidden" name="fb-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.frombrcd | html %]" />
<input type="hidden" name="tb-[% trsfitemloo.counter | html %]" value="[% trsfitemloo.tobrcd | html %]" />
[% END %]
</form>
</div>
[% IF ( trsfitemloop ) %]
<table>
<caption>Transferred items</caption>
<tr>
<th class="tf-title">Title</th>
<th class="tf-author">Author</th>
<th class="tf-barcode">Barcode</th>
<th class="tf-location">Shelving location</th>
<th class="tf-itemcallnumber">Call number</th>
<th class="tf-itemtype">Item type</th>
<th class="tf-ccode">Collection code</th>
<th class="tf-destination">Destination</th>
</tr>
[% FOREACH trsfitemloo IN trsfitemloop %]
<tr>
<td class="tf-title"><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% trsfitemloo.biblionumber | uri %]">[% trsfitemloo.title | html %]</a></td>
<td class="tf-author">[% trsfitemloo.author | html %]</td>
<td class="tf-barcode"><a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% trsfitemloo.biblionumber | uri %]&amp;itemnumber=[% trsfitemloo.itemnumber | uri %]#item[% trsfitemloo.itemnumber | uri %]">[% trsfitemloo.barcode | html %]</a></td>
<td class="tf-location"><span class="shelvingloc">[% trsfitemloo.location | html %]</span></td>
<td class="tf-itemcallnumber">[% trsfitemloo.itemcallnumber | html %]</td>
<td class="tf-itemtype">[% ItemTypes.GetDescription( trsfitemloo.itemtype ) | html %]</td>
<td class="tf-ccode">[% AuthorisedValues.GetByCode( 'CCODE', trsfitemloo.ccode ) | html %]</td>
<td class="tf-destination">[% Branches.GetName( trsfitemloo.tobrcd ) | html %]</td>
</tr>
[% END %]
</table>
[% END %]
[% END %]
</main>
</div> <!-- /.col-sm-10.col-sm-push-2 -->
[% IF Koha.Preference('CircSidebar') %]
<div class="col-sm-2 col-sm-pull-10">
<aside>
[% INCLUDE 'circ-nav.inc' %]
</aside>
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
[% END %]
</div> <!-- /.row -->
[% INCLUDE 'intranet-bottom.inc' %]