Koha/koha-tmpl/intranet-tmpl/prog/en/includes/borrower_debarments.inc
Jonathan Druart f91ed3d8bf Bug 14060: Remove readonly attributes on date inputs
In order to remove accessibility issues due to the readonly attributes
on date inputs, this patch will remove them and introduce a javascript
validation on them.

This patch is not perfect for some reason:
I didn't manage to force the user to select a valid date. One solution
would be to reopen the datepicker plugin until a valid date is inserted.
But it could be annoying for users (and for me: I did not manage to
implement this solution).
You will note that input is emptied if the date is not valid. This is a
quick and efficient solution to prevent submitting invalid date and make
Koha explodes. A proper solution would be to implement the check server
side send a friendly message to the user.

Test plan:
For all inputs, try an invalid and a valid date.
 1/ Debar a patron
 2/ On the checkout tables (circulation and moremember), add a renewal
due date (at the bottom of the tables)
 3/ On the checkout page, specify a due date
 4/ On the return page, specify a return date
 5/ On the invoice page (acquisition module), enter a shipment and
billing date
 6/ On the invoice search page (invoices.pl) use filters shipment and
billing dates
 7/ On the offline circ page, specify a due date
 8/ On the edit patron page (memberentry), add a debarment
 9/ On the reserve page (reserve/request.pl), use the date inputs to
suspend until a defined date
10/ Edit patrons in a batch (tools/modborrowers.pl) and use the
registration and expiry date inputs

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
2016-09-08 12:04:19 +00:00

95 lines
4.2 KiB
HTML

<script type="text/javascript">
//<![CDATA[
$(document).ready(function(e){
$("div#reldebarments .remove_restriction").on("click",function(){
return confirm(_("Remove restriction?"));
});
var mrform = $("#manual_restriction_form");
var mrlink = $("#add_manual_restriction");
mrform.hide();
mrlink.on("click",function(e){
$(this).hide();
mrform.show();
e.preventDefault();
});
$("#cancel_manual_restriction").on("click",function(e){
mrlink.show();
mrform.hide();
e.preventDefault();
});
$(".clear-date").on("click",function(e){
e.preventDefault();
var fieldID = this.id.replace("clear-date-","");
$("#" + fieldID).val("");
});
})
//]]>
</script>
<div id="reldebarments">
[% IF ( not debarments.defined || debarments.size < 1 ) %]
<p>Patron is currently unrestricted.</p>
[% ELSE %]
<table>
<thead>
<tr>
<th>Type</th>
<th>Comment</th>
<th>Expiration</th>
[% IF CAN_user_borrowers && CAN_user_circulate_manage_restrictions %]
<th>&nbsp;</th>
[% END %]
</tr>
</thead>
<tbody>
[% FOREACH d IN debarments %]
<tr>
<td>
[% SWITCH d.type %]
[% CASE 'MANUAL' %]
Manual
[% CASE 'OVERDUES' %]
Overdues
[% CASE 'SUSPENSION' %]
Suspension
[% CASE 'DISCHARGE' %]
Discharge
[% END %]
</td>
<td>
[% IF d.comment.search('OVERDUES_PROCESS') %]
Restriction added by overdues process [% d.comment.remove('OVERDUES_PROCESS ') %]
[% ELSE %]
[% d.comment %]
[% END %]
</td>
<td>[% IF d.expiration %] [% d.expiration | $KohaDates %] [% ELSE %] <i>Indefinite</i> [% END %]</td>
[% IF CAN_user_borrowers && CAN_user_circulate_manage_restrictions %]
<td>
<a class="remove_restriction btn btn-mini" href="/cgi-bin/koha/members/mod_debarment.pl?borrowernumber=[% borrowernumber %]&amp;borrower_debarment_id=[% d.borrower_debarment_id %]&amp;action=del">
<i class="fa fa-trash"></i> Remove
</a>
</td>
[% END %]
</tr>
[% END %]
</tbody>
</table>
[% END %]
[% IF CAN_user_borrowers && CAN_user_circulate_manage_restrictions %]
<p><a href="#" id="add_manual_restriction"><i class="fa fa-plus"></i> Add manual restriction</a></p>
<form method="post" action="/cgi-bin/koha/members/mod_debarment.pl" class="clearfix">
<input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
<input type="hidden" name="action" value="add" />
<fieldset class="rows" id="manual_restriction_form">
<legend>Add manual restriction</legend>
<ol>
<li><label for="rcomment">Comment:</label> <input type="text" id="rcomment" name="comment" /></li>
<li><label for="rexpiration">Expiration:</label> <input name="expiration" id="rexpiration" size="10" value="" class="datepicker" />
<a href="#" class="clear-date" id="clear-date-rexpiration">Clear date</a></li>
</ol>
<fieldset class="action"><input type="submit" value="Add restriction" /> <a href="#" class="cancel" id="cancel_manual_restriction">Cancel</a></fieldset>
</fieldset>
</form>
[% END %]
</div>