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 05470eb..fd05887 100644 (file)
@@ -1,3 +1,4 @@
+[% USE Koha %]
 [% USE KohaDates %]
 [% INCLUDE 'doc-head-open.inc' %]
 [% UNLESS ( multi_hold ) %]
@@ -6,9 +7,12 @@
     <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[
+var MSG_CONFIRM_DELETE_HOLD   = _("Are you sure you want to cancel this hold?");
 var patron_homebranch = "[% borrower_branchname |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]";
 var override_items = {[% FOREACH bibitemloo IN bibitemloop %][% FOREACH itemloo IN bibitemloo.itemloop %][% IF ( itemloo.override ) %]
     [% itemloo.itemnumber %]: {
@@ -19,6 +23,43 @@ var override_items = {[% FOREACH bibitemloo IN bibitemloop %][% FOREACH itemloo
 };
 var MSG_NO_ITEMS_AVAILABLE = _("A hold cannot be requested on any of these items.");
 
+$(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() {
        var msg = "";
        var count_reserv = 0;
@@ -97,16 +138,16 @@ function checkMultiHold() {
         var msg = '';
 
         switch (override_items[itemnumber].holdallowed) {
-            case 0: msg = _( 'This item normally cannot be put on hold.' ); break;
-            case 1: msg = _( 'This item normally cannot be put on hold except for patrons from ' ) + override_items[itemnumber].homebranch + '.'; break;
+            case 0: msg = _("This item normally cannot be put on hold."); break;
+            case 1: msg = _("This item normally cannot be put on hold except for patrons from %s.").format(override_items[itemnumber].homebranch); break;
         }
 
-        msg += "\n\n" + _( 'Place hold on this item?' );
+        msg += "\n\n" + _("Place hold on this item?");
 
         return confirm(msg);
     });
     $("input.warning").click(function() {
-        return confirm( _( 'None of these items can normally be put on hold for this patron.' ) + "\n\n" + _( 'Place hold?' ) );
+        return confirm( _("None of these items can normally be put on hold for this patron.") + "\n\n" + _("Place hold?") );
     });
        $("#requestany").click(function() {
                if(this.checked){
@@ -129,7 +170,37 @@ function checkMultiHold() {
                }
        });
 
+    $(".clear-date").on("click",function(e){
+        e.preventDefault();
+        var fieldID = this.id.replace("clear-date-","");
+        $("#" + fieldID).val("");
+    });
+
     $('#hold-request-form').preventDoubleFormSubmit();
+
+[% UNLESS ( borrowernumber || borrowers || noitems ) %]
+    [% IF ( CircAutocompl ) %]
+    $( "#patron" ).autocomplete({
+        source: "/cgi-bin/koha/circ/ysearch.pl",
+        minLength: 3,
+        select: function( event, ui ) {
+            $( "#patron" ).val( ui.item.cardnumber );
+            $( "#holds_patronsearch" ).submit();
+            return false;
+        }
+    })
+    .data( "ui-autocomplete" )._renderItem = function( ul, item ) {
+        return $( "<li></li>" )
+        .data( "ui-autocomplete-item", item )
+        .append( "<a>" + item.surname + ", " + item.firstname +
+                 " (" + item.cardnumber + ") <small>" + item.address +
+                 " " + item.city + " " + item.zipcode + " " +
+                 item.country + "</small></a>" )
+        .appendTo( ul );
+    };
+    [% END %]
+[% END %]
+
  });
 
 // ]]>
@@ -151,9 +222,13 @@ function checkMultiHold() {
        <div id="yui-main">
        <div class="yui-b">
 [% IF ( noitems ) %]
-<div class="dialog alert">
-<strong>Cannot place hold:</strong> this record has no items attached.
-</div>
+    <div class="dialog alert">
+    [%IF (multi_hold) %]
+        <strong>Cannot place hold:</strong> one or more records without items attached.
+    [% ELSE %]
+        <strong>Cannot place hold:</strong> this record has no items attached.
+    [% END %]
+    </ div>
 [% ELSE %]
   [% IF ( messagetransfert ) %]
                <div class="dialog message">
@@ -169,26 +244,51 @@ function checkMultiHold() {
   [% UNLESS ( multi_hold ) %]
     <h1>Place a hold on [% INCLUDE 'biblio-default-view.inc' %][% title |html %]</a></h1>
   [% ELSE %]
-    <h1>Confirm Holds</h1>
+    <h1>Confirm holds</h1>
   [% END %]
 
   [% UNLESS ( borrowernumber ) %]
     [% IF ( messageborrower ) %]
-      <div class="dialog alert"><h3>Patron Not Found</h3><p>No patron with this name, please, try another</p> </div>
+      <div class="dialog alert"><h3>Patron not found</h3><p>No patron with this name, please, try another</p> </div>
     [% END %]
-    <form action="request.pl?biblionumber=[% biblionumber %]" method="post">
-        [% UNLESS ( CGIselectborrower ) %]
-                       <fieldset class="brief">
-                       <label for="patron">Patron: </label>
-                               <div class="hint">Enter patron card number or partial name:</div>
-                <input type="text" size="20" id="patron" class="focus" name="findborrower" />
-                <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
+    <form  id="holds_patronsearch" action="request.pl?biblionumber=[% biblionumber %]" method="post">
+        [% UNLESS borrowers %]
+            <fieldset class="brief">
+                <label for="patron">Patron: </label>
+                <div class="hint">Enter patron card number or partial name:</div>
+                <input type="text" size="40" id="patron" class="focus" name="findborrower" />
                 <input type="submit" value="Search" />
-                       </fieldset>
+                <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
+            </fieldset>
         [% ELSE %]
-                       <fieldset>
-                       [% CGIselectborrower %]
-                       <input type="hidden" name="biblionumber" value="[% biblionumber %]" /><fieldset class="action"><input type="submit" value="Select" /></fieldset></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 ) %]
@@ -198,23 +298,26 @@ function checkMultiHold() {
     </form>
   [% ELSE %]
 
-[% IF ( warnings ) %]
+[% IF ( maxreserves || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
     <div class="dialog alert">
 
     [% UNLESS ( multi_hold ) %]
       <h3>Cannot place hold</h3>
          <ul>
         [% IF ( maxreserves ) %]
-          <li><strong>Too Many Holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> has too many holds.</li>
+          <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> has too many holds.</li>
+        [% END %]
+        [% IF ( ageRestricted ) %]
+          <li><strong>Age restricted</strong></li>
         [% END %]
         [% IF ( alreadyreserved ) %]
           <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>already has a hold</strong> on this item </li>
         [% END %]
         [% IF ( none_available ) %]
-          <li> <strong>No copies are available</strong> to be placed on hold</li>
+          <li> <strong>No items are available</strong> to be placed on hold</li>
         [% END %]
         [% IF ( alreadypossession ) %]
-          <li> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>is already in possesion</strong> of one item</li>
+          <li> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>is already in possession</strong> of one item</li>
         [% END %]
          </ul>
     [% ELSE %]
@@ -224,13 +327,21 @@ function checkMultiHold() {
     </div>
 [% END %]
 
-[% IF ( messages ) %]
-    <div class="dialog message"><ul>
+[% IF ( expiry || diffbranch ) %]
+<div class="dialog message"><ul>
     [% IF ( expiry ) %]
     <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a>'s <strong>account has expired</strong></li>
     [% END %]
 
-[% IF ( diffbranch ) %]
+    [% 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 %]
 
@@ -249,7 +360,7 @@ function checkMultiHold() {
             <form action="placerequest.pl" method="post" onsubmit="return checkMultiHold();" name="form">
         [% END %]
 
-        <input type="hidden" size="10" name="borrowernumber" value="[% borrowernumber %]" />
+        <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
         <input type="hidden" name="type" value="str8" />
 
         [% IF ( multi_hold ) %]
@@ -276,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 %]
@@ -286,25 +397,33 @@ function checkMultiHold() {
         </li>
         <li>
             <label for="pickup">Pickup at:</label>
-            [% CGIbranch %]
+            <select name="pickup" size="1" id="pickup">
+            [%- FOREACH branchloo IN branchloop %]
+              [% IF ( branchloo.selected ) -%]
+                <option value="[% branchloo.branchcode %]" selected="selected">[% branchloo.branchname %]</option>
+              [%- ELSE -%]
+                <option value="[% branchloo.branchcode %]">[% branchloo.branchname %]</option>
+              [%- END -%]
+            [%- END %]
+            </select>
         </li>
 
        [% IF ( reserve_in_future ) %]
        <li>
         <label for="from">Hold starts on date:</label>
         <input name="reserve_date" id="from" size="10" readonly="readonly" class="datepickerfrom">
-        <a href='#' onclick="document.getElementById('reserve_date').value='';">Clear Date</a>
+        <a href="#" id="clear-date-from" class="clear-date">Clear date</a>
        </li>
        [% END %]
 
        <li>
         <label for="to">Hold expires on date:</label>
         <input name="expiration_date" id="to" size="10" readonly="readonly" class="datepickerto" />
-        <a href='#' onclick="document.getElementById('expiration_date').value='';">Clear date</a>
+        <a href="#" id="clear-date-to" class="clear-date">Clear date</a>
        </li>
 
         [% UNLESS ( multi_hold ) %]
-          <li> <label for="requestany">Place a hold on the next available copy </label>
+          <li> <label for="requestany">Place a hold on the next available item </label>
                <input type="checkbox" id="requestany" name="request" checked="checked" value="Any" />
                <input type="hidden" name="biblioitem" value="[% biblioitemnumber %]" />
                <input type="hidden" name="alreadyreserved" value="[% alreadyreserved %]" />
@@ -333,103 +452,111 @@ 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 copy</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 no.</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 %]
                     [% IF ( itemloo.waitingdate ) %]Waiting[% ELSE %]On hold[% END %]
                     [% IF ( itemloo.canreservefromotherbranches ) %]for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% itemloo.ReservedForBorrowernumber %]">[% itemloo.ReservedForFirstname %] [% itemloo.ReservedForSurname %]</a>[% END %] [% IF ( itemloo.waitingdate ) %]at[% ELSE %]expected at[% END %] [% itemloo.ExpectedAtLibrary %]
                     since
-                    [% IF ( itemloo.waitingdate ) %][% itemloo.waitingdate %][% 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="if (window.confirm('Are you sure you want to delete this hold?')) {return true;} else {return false;}">Cancel hold</a>
+                    [% 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>
-        <p class="hiddencount"><a href="request.pl?biblionumber=[% bibitemloo.biblionumber %]&borrowernumber=[% bibitemloo.borrowernumber %]&showallitems=1">Show all items ([% bibitemloo.hiddencount %] hidden)</a></p>
+        <p class="hiddencount"><a href="request.pl?biblionumber=[% bibitemloo.biblionumber %]&amp;borrowernumber=[% bibitemloo.borrowernumber %]&amp;showallitems=1">Show all items ([% bibitemloo.hiddencount %] hidden)</a></p>
         </form>
     [% END %] <!-- hiddencount -->
     [% END %] <!-- bibitemloop -->
@@ -483,7 +610,7 @@ function checkMultiHold() {
               <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>already has a hold</strong> on this item </li>
           [% END %]
           [% IF ( biblioloo.none_avail ) %]
-              <li> <strong>No copies are available</strong> to be placed on hold</li>
+              <li> <strong>No items are available</strong> to be placed on hold</li>
           [% END %]
 
             [% IF ( biblioloo.alreadyres ) %]
@@ -545,10 +672,10 @@ function checkMultiHold() {
         <th>Notes</th>
         <th>Date</th>
        <th>Expiration</th>
-        <th>Pick up library</th>
+        <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 %]
@@ -556,39 +683,49 @@ function checkMultiHold() {
   [% FOREACH reserveloo IN biblioloo.reserveloop %]
   [% UNLESS ( loop.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
         <td>
+          <input type="hidden" name="reserve_id" value="[% reserveloo.reserve_id %]" />
           <input type="hidden" name="borrowernumber" value="[% reserveloo.borrowernumber %]" />
           <input type="hidden" name="biblionumber" value="[% reserveloo.biblionumber %]" />
           <select name="rank-request">
-    [% IF ( reserveloo.wait ) %]
-        [% IF ( reserveloo.intransit ) %]
-            <option value="T" selected="selected">In transit</option>
-        [% ELSE %]
-            <option value="W" selected="selected">Waiting</option>
-        [% END %]
-    [% END %]
-       [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %][% FOREACH optionloo IN reserveloo.optionloop %]
-        [% IF ( optionloo.selected ) %]<option value="[% optionloo.num %]" selected="selected">[% optionloo.num %]</option>[% ELSE %]<option value="[% optionloo.num %]">[% optionloo.num %]</option>[% END %]
-        [% END %][% ELSE %]<option value=""></option>[% END %]
-            <option value="del">del</option>
+              [% IF ( reserveloo.wait ) %]
+                  [% IF ( reserveloo.intransit ) %]
+                      <option value="T" selected="selected">In transit</option>
+                  [% ELSE %]
+                      <option value="W" selected="selected">Waiting</option>
+                  [% END %]
+              [% END %]
+
+              [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
+                  [% FOREACH optionloo IN reserveloo.optionloop %]
+                      [% IF ( optionloo.selected ) %]
+                          <option value="[% optionloo.num %]" selected="selected">[% optionloo.num %]</option>
+                      [% ELSE %]
+                          <option value="[% optionloo.num %]">[% optionloo.num %]</option>
+                      [% END %]
+                  [% END %]
+              [% ELSIF !reserveloo.wait %]
+                  <option value="[% reserveloo.priority %]" selected="selected">[% reserveloo.priority %]</option>
+              [% END %]
+              <option value="del">del</option>
           </select>
         </td>
 
      [% 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;date=[% reserveloo.date %]">
-            <img src="/intranet-tmpl/[% theme %]/img/go-up.png" border="0" alt="Go up" />
+            <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="[% 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;date=[% reserveloo.date %]">
-                    <img src="/intranet-tmpl/[% theme %]/img/go-top.png" border="0" alt="Go top" />
+                <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="[% 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;date=[% reserveloo.date %]">
-                    <img src="/intranet-tmpl/[% theme %]/img/go-bottom.png" border="0" alt="Go bottom" />
+                <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="[% 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;date=[% reserveloo.date %]">
-                    <img src="/intranet-tmpl/[% theme %]/img/go-down.png" border="0" alt="Go down" />
+                <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="[% interface %]/[% theme %]/img/go-down.png" border="0" alt="Go down" />
                 </a>
         </td>
     [% END %]
@@ -620,9 +757,9 @@ function checkMultiHold() {
           <select name="pickup">
       [% FOREACH branchloo IN reserveloo.branchloop %]
         [% IF ( branchloo.selected ) %]
-            <option value="[% branchloo.value %]" selected="selected">
+            <option value="[% branchloo.branchcode %]" selected="selected">
         [% ELSE %]
-            <option value="[% branchloo.value %]">
+            <option value="[% branchloo.branchcode %]">
         [% END %]
               [% branchloo.branchname %]
             </option>
@@ -641,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 %]">
@@ -657,41 +793,36 @@ 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>
 
     [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
        <td>
-        <a title="Toggle lowest priority" href="request.pl?action=setLowestPriority&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;date=[% reserveloo.date %]">
+                <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> 
     [% END %]
 
        <td>
-        <a title="Cancel hold" href="request.pl?action=cancel&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;date=[% reserveloo.date %]">
-                    <img src="/intranet-tmpl/[% theme %]/img/x.png" border="0" alt="Cancel" />
+           <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="[% interface %]/[% theme %]/img/x.png" border="0" alt="Cancel" />
                 </a>
        </td>
 
         [% IF SuspendHoldsIntranet %]
        <td>
        [% UNLESS ( reserveloo.wait ) %]
-            <input type="button" value="[% IF ( reserveloo.suspend ) %]Unsuspend[% ELSE %]Suspend[% END %]" onclick="window.location.href='request.pl?action=toggleSuspend&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;date=[% reserveloo.date %]&amp;suspend_until=' + $('#suspend_until_[% reserveloo.borrowernumber %]').val()" />
+            <input type="button" value="[% IF ( reserveloo.suspend ) %]Unsuspend[% ELSE %]Suspend[% END %]" onclick="window.location.href='request.pl?action=toggleSuspend&amp;reserve_id=[% reserveloo.reserve_id %]&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;date=[% reserveloo.date %]&amp;suspend_until=' + $('#suspend_until_[% reserveloo.reserve_id %]').val()" />
 
             [% IF AutoResumeSuspendedHolds %]
-           <label for="suspend_until_[% reserveloo.borrowernumber %]">[% IF ( reserveloo.suspend ) %] on [% ELSE %] until [% END %]</label>
-        <input name="suspend_until" id="suspend_until_[% reserveloo.borrowernumber %]" size="10" readonly="readonly" value="[% reserveloo.suspend_until | $KohaDates %]" class="datepicker" />
-           <a href='#' onclick="document.getElementById('suspend_until_[% reserveloo.borrowernumber %]').value='';">Clear Date</a>
+        <label for="suspend_until_[% reserveloo.reserve_id %]">[% IF ( reserveloo.suspend ) %] on [% ELSE %] until [% END %]</label>
+            <input name="suspend_until" id="suspend_until_[% reserveloo.reserve_id %]" size="10" readonly="readonly" value="[% reserveloo.suspend_until | $KohaDates %]" class="datepicker suspend_until_datepicker" />
+            <a href='#' onclick="document.getElementById('suspend_until_[% reserveloo.reserve_id %]').value='';">Clear date</a>
             [% END %]
        [% ELSE %]
                <input type="hidden" name="suspend_until" value="" />