Bug 14883: Librarians are not warned if patron is restricted when placing holds
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / reserve / request.tt
index db044b5..fd05887 100644 (file)
@@ -1,3 +1,4 @@
+[% USE Koha %]
 [% USE KohaDates %]
 [% INCLUDE 'doc-head-open.inc' %]
 [% UNLESS ( multi_hold ) %]
@@ -6,6 +7,8 @@
     <title>Koha &rsaquo; Circulation &rsaquo; Holds &rsaquo; Confirm holds</title>
 [% END %]
 [% INCLUDE 'doc-head-close.inc' %]
+<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
+[% INCLUDE 'datatables.inc' %]
 [% INCLUDE 'calendar.inc' %]
 <script type="text/javascript">
     // <![CDATA[
@@ -24,6 +27,37 @@ $(document).ready(function() {
     [% IF AutoResumeSuspendedHolds %]
         $(".suspend_until_datepicker, .datepickerfrom, .datepickerto").datepicker("option", "minDate", 1);
     [% END %]
+
+    var table = $("#table_borrowers").dataTable($.extend(true, {}, dataTablesDefaults, {
+        "aoColumnDefs": [
+            { "aTargets": [ 0 ], "bSortable": false, "bSearchable": false },
+        ],
+        "aaSorting": [[ 2, "asc" ]],
+        "sDom": "t",
+        "iDisplayLength": -1
+    }));
+    $(table).find('tbody tr').filter(':has(:radio:checked)').end().click(function(event) {
+        $('#table_borrowers tbody tr').removeClass('selected');
+        $(this).addClass('selected');
+        if (event.target.type !== 'radio') {
+            $(':radio', this).attr('checked', 'true')
+        }
+    });
+    var my_table = $("#requestspecific").dataTable($.extend(true, {}, dataTablesDefaults, {
+        'bPaginate': false,
+        "sDom": '<"top pager"ilf>t',
+        "aoColumnDefs": [
+            { "sType": "title-string", "aTargets" : [ "title-string" ] }
+        ]
+    }));
+
+    //Override fieldset styling for dataTables search box
+    $("div.top.pager").css("margin-left","1em");
+    $(".dataTables_filter label").css({
+        "width":"auto",
+        "margin-right":"0em"
+    });
+
 });
 
 function check() {
@@ -144,7 +178,7 @@ function checkMultiHold() {
 
     $('#hold-request-form').preventDoubleFormSubmit();
 
-[% UNLESS ( borrowernumber || borrower_list || noitems ) %]
+[% UNLESS ( borrowernumber || borrowers || noitems ) %]
     [% IF ( CircAutocompl ) %]
     $( "#patron" ).autocomplete({
         source: "/cgi-bin/koha/circ/ysearch.pl",
@@ -218,7 +252,7 @@ function checkMultiHold() {
       <div class="dialog alert"><h3>Patron not found</h3><p>No patron with this name, please, try another</p> </div>
     [% END %]
     <form  id="holds_patronsearch" action="request.pl?biblionumber=[% biblionumber %]" method="post">
-        [% UNLESS borrower_list %]
+        [% UNLESS borrowers %]
             <fieldset class="brief">
                 <label for="patron">Patron: </label>
                 <div class="hint">Enter patron card number or partial name:</div>
@@ -228,16 +262,33 @@ function checkMultiHold() {
             </fieldset>
         [% ELSE %]
           <fieldset>
-            <select size="7" name="borrowernumber">
-            [% FOREACH borrower IN borrower_list %]
-                <option value="[% borrower.borrowernumber %]">
-[% borrower.surname -%], [% borrower.firstname -%]
- ... ( [% borrower.cardnumber -%] - [% borrower.categorycode -%] - [% borrower.branchcode %]
-) ... [% borrower.address %]
-                </option>
-            [% END %]
-            </select>
-            <input type="hidden" name="biblionumber" value="[% biblionumber %]" /><fieldset class="action"><input type="submit" value="Select" /></fieldset></fieldset>
+            <table id="table_borrowers">
+                <thead>
+                    <tr>
+                        <th></th>
+                        <th>Name</th>
+                        <th>Cardnumber</th>
+                        <th>Category</th>
+                        <th>Library</th>
+                        <th>Address</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    [% FOREACH borrower IN borrowers %]
+                    <tr>
+                        <td><input type="radio" name="borrowernumber" value="[% borrower.borrowernumber %]" /></td>
+                        <td>[% borrower.surname %], [% borrower.firstname %]</td>
+                        <td>[% borrower.cardnumber %]</td>
+                        <td>[% borrower.categorycode %]</td>
+                        <td>[% borrower.branchcode %]</td>
+                        <td>[% borrower.address %]</td>
+                    </tr>
+                    [% END %]
+                </tbody>
+            </table>
+            <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
+            <fieldset class="action"><input type="submit" value="Select" /></fieldset>
+          </fieldset>
 
         [% END %]
         [% IF ( multi_hold ) %]
@@ -282,6 +333,14 @@ function checkMultiHold() {
     <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a>'s <strong>account has expired</strong></li>
     [% END %]
 
+    [% IF restricted %]
+    <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]#reldebarments">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>has restrictions</strong></li>
+    [% END %]
+
+    [% IF amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') %]
+    <li><a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>owes [% amount_outstanding | format('%.2f') %]</strong></li>
+    [% END %]
+
     [% IF ( diffbranch ) %]
     <li> <strong>Pickup library is different</strong> than <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a>'s home library ([% borrower_branchname %] / [% borrower_branchcode %] )</li>
     [% END %]
@@ -328,7 +387,7 @@ function checkMultiHold() {
         </li>
         [% UNLESS ( multi_hold ) %]
           <li>
-              <span class="label">Priority:</span>
+              <span class="label">Estimated priority:</span>
               <strong>[% fixedRank %]</strong>
           </li>
         [% END %]
@@ -393,83 +452,90 @@ function checkMultiHold() {
             [% IF ( bibitemloo.publicationyear ) %]<li><span class="label">Publication year:</span> [% bibitemloo.publicationyear %]</li>[% END %]
           </ol>
 
+        <h2 style="padding: 0 1em;">Place a hold on a specific item</h2>
         <table id="requestspecific">
-        <caption>Place a hold on a specific item</caption>
-               <tr>
-            <th>Hold</th>
-            [% IF ( item_level_itypes ) %]
-                <th>Item type</th>
-            [% END %]
-            <th>Barcode</th>
-            <th>Home library</th>
-            <th>Last location</th>
-            <th>Call no.</th>
-            <th>Copy number</th>
-            [% IF itemdata_enumchron %]
-            <th>Vol no.</th>
-            [% END %]
-            <th>Information</th>
-        </tr>
-    [% FOREACH itemloo IN bibitemloo.itemloop %]
-        [% UNLESS ( itemloo.hide ) %]
-        <tr class="[% itemloo.backgroundcolor %]">
-            <td>
-            [% IF ( itemloo.available ) %]
-                <input type="radio" name="checkitem" value="[% itemloo.itemnumber %]" />
-            [% ELSIF ( itemloo.override ) %]
-                <input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber %]" />
-                <img src="/intranet-tmpl/[% theme %]/img/famfamfam/silk/error.png" alt="Requires override of hold policy" />
-            [% ELSE %]
-                <input disabled="disabled" type="radio" name="checkitem" value="[% itemloo.itemnumber %]" />
-                <img src="/intranet-tmpl/[% theme %]/img/famfamfam/silk/cross.png" alt="Cannot be put on hold" />
-            [% END %]
-            </td>
-            [% IF ( item_level_itypes ) %]
-                <td>
+            <thead>
+                <tr>
+                    <th>Hold</th>
+                [% IF ( item_level_itypes ) %]
+                    <th>Item type</th>
+                [% END %]
+                    <th>Barcode</th>
+                    <th>Home library</th>
+                    <th>Last location</th>
+                    <th>Call no.</th>
+                    <th>Copy number</th>
+                [% IF itemdata_enumchron %]
+                    <th>Vol no.</th>
+                [% END %]
+                    <th class="title-string">Information</th>
+                </tr>
+            </thead>
+            <tbody>
+            [% FOREACH itemloo IN bibitemloo.itemloop %]
+            [% UNLESS ( itemloo.hide ) %]
+                <tr class="[% itemloo.backgroundcolor %]">
+                    <td>
+                [% IF ( itemloo.available ) %]
+                    <input type="radio" name="checkitem" value="[% itemloo.itemnumber %]" />
+                [% ELSIF ( itemloo.override ) %]
+                    <input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber %]" />
+                    <img src="[% interface %]/[% theme %]/img/famfamfam/silk/error.png" alt="Requires override of hold policy" />
+                [% ELSE %]
+                    <input disabled="disabled" type="radio" name="checkitem" value="[% itemloo.itemnumber %]" />
+                    <img src="[% interface %]/[% theme %]/img/famfamfam/silk/cross.png" alt="Cannot be put on hold" />
+                [% END %]
+                    </td>
+                [% IF ( item_level_itypes ) %]
+                    <td>
                     [% UNLESS ( noItemTypeImages ) %]
                         [% IF ( itemloo.imageurl ) %]<img src="[% itemloo.imageurl %]" alt="" /> <br /> [% END %]
                     [% END %]
-                    [% itemloo.itypename %]
-                </td>
-            [% END %]
+                        [% itemloo.itypename %]
+                    </td>
+                [% END %]
 
-            <td>
-                    [% itemloo.barcode %]
-            </td>
-            <td>
-            [% itemloo.homebranchname %]
-            </td>
-            <td>
-            [% itemloo.holdingbranchname %]
-            </td>
-            <td>
-            [% itemloo.itemcallnumber %]
-            </td>
-            <td>[% IF ( itemloo.copynumber ) %][% itemloo.copynumber %][% ELSE %]&nbsp;[% END %]</td>
-            [% IF itemdata_enumchron %]
-            <td>
-            [% itemloo.enumchron %]
-            </td>
-            [% END %]
-            <td>
-               [% IF ( itemloo.onloan ) %]
-            <span class="checkedout">Due [% itemloo.date_due %]</span>
-                       [% ELSE %]
-               [% IF ( itemloo.transfertwhen ) %]
-            In transit from [% itemloo.transfertfrom %],
-            to [% itemloo.transfertto %], since [% itemloo.transfertwhen %]
-               [% END %]
-               [% END %]
-
-               [% IF ( itemloo.message ) %]
-            Unavailable (lost or missing)
-               [% END %]
-
-               [% IF ( itemloo.notforloan ) %]
-            Not for loan ([% itemloo.notforloanvalue %])
-               [% END %]
-
-            [% IF ( itemloo.reservedate ) %]
+                    <td>
+                        [% itemloo.barcode %]
+                    </td>
+                    <td>
+                        [% itemloo.homebranchname %]
+                    </td>
+                    <td>
+                        [% itemloo.holdingbranchname %]
+                    </td>
+                    <td>
+                        [% itemloo.itemcallnumber %]
+                    </td>
+                    <td>
+                        [% IF ( itemloo.copynumber ) %][% itemloo.copynumber %][% ELSE %]&nbsp;[% END %]
+                    </td>
+                [% IF itemdata_enumchron %]
+                    <td>
+                        [% itemloo.enumchron %]
+                    </td>
+                [% END %]
+                    <td>
+                [% IF ( itemloo.onloan ) %]
+                    <span title="[% itemloo.date_due %]" class="checkedout">Due [% itemloo.date_due | $KohaDates as_due_date => 1 %]</span>
+                [% ELSE %]
+                    <span title="0000-00-00">
+                        [% IF ( itemloo.transfertwhen ) %]
+                            In transit from [% itemloo.transfertfrom %],
+                            to [% itemloo.transfertto %], since [% itemloo.transfertwhen %]
+                        [% END %]
+                    </span>
+                [% END %]
+
+                [% IF ( itemloo.message ) %]
+                   Unavailable (lost or missing)
+                [% END %]
+
+                [% IF ( itemloo.notforloan ) %]
+                   Not for loan ([% itemloo.notforloanvalue %])
+                [% END %]
+
+                [% IF ( itemloo.reservedate ) %]
                     [% IF ( itemloo.nocancel ) %]
                             Can't be cancelled when item is in transit
                     [% ELSE %]
@@ -479,13 +545,14 @@ function checkMultiHold() {
                     [% IF ( itemloo.waitingdate ) %][% itemloo.waitingdate | $KohaDates %][% ELSE %][% IF ( itemloo.reservedate ) %][% itemloo.reservedate %][% END %][% END %]. <a class="info" href="modrequest.pl?CancelBiblioNumber=[% itemloo.biblionumber %]&amp;CancelBorrowerNumber=[% itemloo.ReservedForBorrowernumber %]&amp;CancelItemnumber=[% itemloo.itemnumber %]"  onclick="return confirmDelete(MSG_CONFIRM_DELETE_HOLD);">Cancel hold</a>
 
                     [% END %]
-            [% ELSE %]
+                 [% ELSE %]
                     Not on hold
-            [% END %]
-            </td>
-        </tr>
-      [% END %] <!--UNLESS item hide-->
-    [% END %] <!-- itemloop -->
+                [% END %]
+                    </td>
+                </tr>
+            [% END %] <!--UNLESS item hide-->
+            [% END %] <!-- itemloop -->
+            </tbody>
         </table>
     [% IF ( bibitemloo.hiddencount ) %]
         <form>
@@ -608,7 +675,7 @@ function checkMultiHold() {
         <th>Pickup library</th>
         <th>Details</th>
         [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
-            <th><img src="/intranet-tmpl/[% theme %]/img/go-bottom.png" border="0" alt="Toggle set to lowest priority" /></th>
+            <th><img src="[% interface %]/[% theme %]/img/go-bottom.png" border="0" alt="Toggle set to lowest priority" /></th>
         [% END %]
        <th>&nbsp;</th>
     [% IF SuspendHoldsIntranet %]<th>&nbsp;</th><!-- Suspend Holds Column Header -->[% END %]
@@ -646,19 +713,19 @@ function checkMultiHold() {
      [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
         <td style="white-space:nowrap;">
             <a title="Move hold up" href="request.pl?action=move&amp;where=up&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
-            <img src="/intranet-tmpl/[% theme %]/img/go-up.png" border="0" alt="Go up" />
+            <img src="[% interface %]/[% theme %]/img/go-up.png" border="0" alt="Go up" />
                 </a>
 
                 <a title="Move hold to top" href="request.pl?action=move&amp;where=top&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
-                    <img src="/intranet-tmpl/[% theme %]/img/go-top.png" border="0" alt="Go top" />
+                    <img src="[% interface %]/[% theme %]/img/go-top.png" border="0" alt="Go top" />
                 </a>
 
                 <a title="Move hold to bottom" href="request.pl?action=move&amp;where=bottom&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
-                    <img src="/intranet-tmpl/[% theme %]/img/go-bottom.png" border="0" alt="Go bottom" />
+                    <img src="[% interface %]/[% theme %]/img/go-bottom.png" border="0" alt="Go bottom" />
                 </a>
 
                 <a title="Move hold down" href="request.pl?action=move&amp;where=down&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
-                    <img src="/intranet-tmpl/[% theme %]/img/go-down.png" border="0" alt="Go down" />
+                    <img src="[% interface %]/[% theme %]/img/go-down.png" border="0" alt="Go down" />
                 </a>
         </td>
     [% END %]
@@ -711,7 +778,6 @@ function checkMultiHold() {
                 [% END %]
           </a>
     [% ELSE %]
-      [% IF ( reserveloo.constrainttypea ) %]
             [% IF ( reserveloo.item_level_hold ) %]
                 <i>Only item
                 <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% reserveloo.biblionumber %]">
@@ -727,11 +793,6 @@ function checkMultiHold() {
                 <i>Next available</i>
                  <input type="hidden" name="itemnumber" value="" />
             [% END %]
-      [% ELSE %]
-        [% IF ( reserveloo.constrainttypeo ) %]
-          only this type :<b>[% reserveloo.volumeddesc %] [% reserveloo.itemtype %]</b>
-        [% END %]
-      [% END %]
     [% END %]
         </td>
 
@@ -739,9 +800,9 @@ function checkMultiHold() {
        <td>
                 <a title="Toggle lowest priority" href="request.pl?action=setLowestPriority&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
                        [% IF ( reserveloo.lowestPriority ) %]
-                        <img src="/intranet-tmpl/[% theme %]/img/go-bottom.png" border="0" alt="Unset lowest priority" />
+                        <img src="[% interface %]/[% theme %]/img/go-bottom.png" border="0" alt="Unset lowest priority" />
                        [% ELSE %]
-                        <img src="/intranet-tmpl/[% theme %]/img/go-down.png" border="0" alt="Set to lowest priority" />
+                        <img src="[% interface %]/[% theme %]/img/go-down.png" border="0" alt="Set to lowest priority" />
                        [% END %]
                </a>
        </td> 
@@ -749,7 +810,7 @@ function checkMultiHold() {
 
        <td>
            <a title="Cancel hold" href="request.pl?action=cancel&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
-                    <img src="/intranet-tmpl/[% theme %]/img/x.png" border="0" alt="Cancel" />
+                    <img src="[% interface %]/[% theme %]/img/x.png" border="0" alt="Cancel" />
                 </a>
        </td>