ed7543287b
Having to write [% KOHA_VERSION %] for each url is bad because: - It's easily forgettable when adding new <script> or <link> - It prevents grep'ing for the full filename - It violates the DRY principle - If at some point we want to change the "force js and css reload" mechanism, it will be tedious This patch: - adds a Template::Toolkit plugin that generates <script> and <link> tags for JS and CSS files, and inserts automatically the Koha version in the filename - use the new plugin to remove all occurences of [% KOHA_VERSION %] - remove the code that was adding KOHA_VERSION as a template variable Test plan: 1. Apply patch 2. Go to several different pages in Koha (opac and intranet) while checking your browser's dev tools (there should be no 404 for JS and CSS files, and the Koha version should appear in filenames) and the server logs (there should be no "File not found") 3. `git grep KOHA_VERSION` should return nothing 4. prove t/db_dependent/Koha/Template/Plugin/Asset.t Signed-off-by: Josef Moravec <josef.moravec@gmail.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
180 lines
7.1 KiB
Text
180 lines
7.1 KiB
Text
[% USE Asset %]
|
|
[% USE Koha %]
|
|
[% USE AuthorisedValues %]
|
|
[% USE Branches %]
|
|
[% USE Price %]
|
|
[% SET footerjs = 1 %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Patrons › Pay Fines for [% patron.firstname |html %] [% patron.surname |html %]</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
</head>
|
|
|
|
<body id="pat_pay" class="pat">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'patron-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a> › Pay fines for [% patron.firstname |html %] [% patron.surname |html %]</div>
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
[% INCLUDE 'members-toolbar.inc' borrowernumber=patron.borrowernumber %]
|
|
|
|
<!-- The manual invoice and credit buttons -->
|
|
<div class="statictabs">
|
|
<ul>
|
|
<li><a href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% patron.borrowernumber %]">Account</a></li>
|
|
<li class="active"><a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% patron.borrowernumber %]" >Pay fines</a></li>
|
|
<li><a href="/cgi-bin/koha/members/maninvoice.pl?borrowernumber=[% patron.borrowernumber %]" >Create manual invoice</a></li>
|
|
<li><a href="/cgi-bin/koha/members/mancredit.pl?borrowernumber=[% patron.borrowernumber %]" >Create manual credit</a></li>
|
|
</ul>
|
|
<div class="tabs-container">
|
|
|
|
[% IF ( accounts ) %]
|
|
<form action="/cgi-bin/koha/members/pay.pl" method="post" id="pay-fines-form">
|
|
<input type="hidden" name="borrowernumber" id="borrowernumber" value="[% patron.borrowernumber %]" />
|
|
<p><span class="checkall"><a id="CheckAll" href="#"><i class="fa fa-check"></i> Select all</a></span> | <span class="clearall"><a id="CheckNone" href="#"><i class="fa fa-remove"></i> Clear all</a></span></p>
|
|
<table id="finest">
|
|
<thead>
|
|
<tr>
|
|
<th> </th>
|
|
<th>Fines & charges</th>
|
|
<th>Description</th>
|
|
<th>Payment note</th>
|
|
<th>Account type</th>
|
|
<th>Amount</th>
|
|
<th>Amount outstanding</th>
|
|
</tr>
|
|
</thead>
|
|
<tfoot>
|
|
<tr>
|
|
<td class="total" colspan="6">Total due:</td>
|
|
<td style="text-align: right;">[% total | $Price %]</td>
|
|
</tr>
|
|
</tfoot>
|
|
<tbody>
|
|
[% FOREACH line IN accounts %]
|
|
<tr>
|
|
<td>
|
|
[% IF ( line.amountoutstanding > 0 ) %]
|
|
<input class="cb" type="checkbox" checked="checked" name="incl_par_[% line.accountlines_id %]" />
|
|
[% END %]
|
|
</td>
|
|
<td>
|
|
[% IF ( line.amountoutstanding > 0 ) %]
|
|
<input type="submit" name="pay_indiv_[% line.accountlines_id %]" value="Pay" />
|
|
[% IF CAN_user_updatecharges_writeoff %]<input type="submit" name="wo_indiv_[% line.accountlines_id %]" value="Write off" />[% END %]
|
|
[% END %]
|
|
<input type="hidden" name="itemnumber[% line.accountlines_id %]" value="[% line.itemnumber %]" />
|
|
<input type="hidden" name="description[% line.accountlines_id %]" value="[% line.description %]" />
|
|
<input type="hidden" name="accounttype[% line.accountlines_id %]" value="[% line.accounttype %]" />
|
|
<input type="hidden" name="amount[% line.accountlines_id %]" value="[% line.amount %]" />
|
|
<input type="hidden" name="accountlines_id[% line.accountlines_id %]" value="[% line.accountlines_id %]" />
|
|
<input type="hidden" name="amountoutstanding[% line.accountlines_id %]" value="[% line.amountoutstanding %]" />
|
|
<input type="hidden" name="borrowernumber[% line.accountlines_id %]" value="[% line.borrowernumber %]" />
|
|
</td>
|
|
<td>
|
|
[% SWITCH line.accounttype %]
|
|
[% CASE 'Pay' %]Payment, thanks
|
|
[% CASE 'Pay00' %]Payment, thanks (cash via SIP2)
|
|
[% CASE 'Pay01' %]Payment, thanks (VISA via SIP2)
|
|
[% CASE 'Pay02' %]Payment, thanks (credit card via SIP2)
|
|
[% CASE 'N' %]New card
|
|
[% CASE 'F' %]Fine
|
|
[% CASE 'A' %]Account management fee
|
|
[% CASE 'M' %]Sundry
|
|
[% CASE 'L' %]Lost item
|
|
[% CASE 'W' %]Writeoff
|
|
[% CASE 'FU' %]Accruing fine
|
|
[% CASE 'HE' %]Hold waiting too long
|
|
[% CASE 'Rent' %]Rental fee
|
|
[% CASE 'FOR' %]Forgiven
|
|
[% CASE 'LR' %]Lost item fee refund
|
|
[% CASE 'PF' %]Processing fee
|
|
[% CASE 'PAY' %]Payment
|
|
[% CASE 'WO' %]Writeoff
|
|
[% CASE 'C' %]Credit
|
|
[% CASE 'CR' %]Credit
|
|
[% CASE %][% line.accounttype %]
|
|
[%- END -%]
|
|
[%- IF line.description %], [% line.description %][% END %]
|
|
[% IF line.title %]([% line.title %])[% END %]
|
|
</td>
|
|
<td><input type="text" name="payment_note_[% line.accountlines_id %]" /></td>
|
|
<td>[% line.accounttype %]</td>
|
|
<td class="debit" style="text-align: right;">[% line.amount | $Price %]</td>
|
|
<td class="debit" style="text-align: right;">[% line.amountoutstanding | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
[% IF ( account_grp.total ) %]
|
|
<tr>
|
|
|
|
<td class="total" colspan="8" style="text-align: right;">Sub total:</td>
|
|
<td style="text-align: right;">[% account_grp.total | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
<fieldset class="action">
|
|
<input type="submit" id="paycollect" name="paycollect" value="Pay amount" class="submit" />
|
|
[% IF CAN_user_updatecharges_writeoff %]<input type="submit" name="woall" id="woall" value="Write off all" class="submit" />[% END %]
|
|
<input type="submit" id="payselected" name="payselected" value="Pay selected" class="submit" />
|
|
<a class="cancel" href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% patron.borrowernumber %]">Cancel</a>
|
|
</fieldset>
|
|
</form>
|
|
[% ELSE %]
|
|
<p>[% patron.firstname |html %] [% patron.surname |html %] has no outstanding fines.</p>
|
|
[% END %]
|
|
</div></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
[% INCLUDE 'circ-menu.inc' %]
|
|
</div>
|
|
</div>
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
[% Asset.js("js/members-menu.js") %]
|
|
[% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") %]
|
|
<script type= "text/javascript">
|
|
function enableCheckboxActions(){
|
|
// Enable/disable controls if checkboxes are checked
|
|
var checkedBoxes = $("input.cb:checked");
|
|
if ($(checkedBoxes).size()) {
|
|
$("#payselected").prop("disabled",false);
|
|
} else {
|
|
$("#payselected").prop("disabled",true);
|
|
}
|
|
}
|
|
$(document).ready(function(){
|
|
$('#pay-fines-form').preventDoubleFormSubmit();
|
|
$("#woall").click(function(event){
|
|
var msg = _("Are you sure you want to write off %s in outstanding fines? This cannot be undone!").format( "[% total | $Price %]" );
|
|
var answer = confirm(msg);
|
|
if (!answer){
|
|
event.preventDefault();
|
|
}
|
|
});
|
|
$('#CheckAll').click(function(){
|
|
$("#finest").checkCheckboxes();
|
|
enableCheckboxActions();
|
|
return false;
|
|
});
|
|
$('#CheckNone').click(function(){
|
|
$("#finest").unCheckCheckboxes();
|
|
enableCheckboxActions();
|
|
return false;
|
|
});
|
|
$(".cb").change(function(){
|
|
enableCheckboxActions();
|
|
});
|
|
enableCheckboxActions();
|
|
});
|
|
|
|
</script>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|