Bug 15758: Koha::Libraries - Remove GetBranches
[srvgit] / koha-tmpl / intranet-tmpl / prog / en / modules / reserve / request.tt
index eba6756..12b4e1b 100644 (file)
@@ -1,3 +1,8 @@
+[% USE Koha %]
+[% USE KohaDates %]
+[% USE Branches %]
+[% USE Categories %]
+[% USE ItemTypes %]
 [% INCLUDE 'doc-head-open.inc' %]
 [% UNLESS ( multi_hold ) %]
     <title>Koha &rsaquo; Circulation &rsaquo; Holds &rsaquo; Place a hold on [% title |html %]</title>
     <title>Koha &rsaquo; Circulation &rsaquo; Holds &rsaquo; Confirm holds</title>
 [% END %]
 [% INCLUDE 'doc-head-close.inc' %]
+<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
+[% INCLUDE 'datatables.inc' %]
 [% INCLUDE 'calendar.inc' %]
 <script type="text/javascript">
     // <![CDATA[
-var patron_homebranch = "[% borrower_branchname |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]";
+var MSG_CONFIRM_DELETE_HOLD   = _("Are you sure you want to cancel this hold?");
+var patron_homebranch = "[% Branches.GetName( borrower_branchcode ) |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 %]: {
-        homebranch: "[% itemloo.homebranchname |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
+        homebranch: "[% Branches.GetName( itemloo.homebranch ) |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
         holdallowed: [% itemloo.holdallowed %]
     },
 [% END %][% END %][% END %]
 };
 var MSG_NO_ITEMS_AVAILABLE = _("A hold cannot be requested on any of these items.");
 
+$(document).ready(function() {
+    function ToggleHoldsToPlace() {
+        if ( $("#requestany").prop('checked') ) {
+            $("#holds_to_place_count").prop('disabled', false);
+        } else {
+            $("#holds_to_place_count").prop('disabled', true);
+        }
+    }
+    ToggleHoldsToPlace();
+    $("#requestany").on('change', function(){
+        ToggleHoldsToPlace();
+    });
+
+    [% IF AutoResumeSuspendedHolds %]
+        $(".suspend_until_datepicker, .datepickerfrom, .datepickerto").datepicker("option", "minDate", 1);
+    [% END %]
+
+    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;
-       var alreadyreserved = 0;
+    var msg = "";
+    var count_reserv = 0;
 
     // check if we have checkitem form
     if (document.form.checkitem){
         for (i=0;i<document.form.checkitem.length;i++){
             if (document.form.checkitem[i].checked == true) {
-                               count_reserv++ ;
-                       }
+                count_reserv++ ;
+            }
         }
         // for only one item, check the checkitem without consider the loop checkitem
         if (i==0){
-                   if (document.form.checkitem.checked == true) {
-                           count_reserv++;
-                   }
-           }
-    }
-
-    if (document.form.request.checked == true){
-               count_reserv++ ;
+            if (document.form.checkitem.checked == true) {
+                count_reserv++;
+            }
+        }
     }
 
-    if (document.form.alreadyreserved && document.form.alreadyreserved.value == "1"){
-                alreadyreserved++ ;
+    if (document.form.requestany.checked == true){
+        count_reserv++ ;
     }
 
     if (count_reserv == "0"){
-               msg += (_("- Please select an item to place a hold") + "\n");
-    }
-    if (count_reserv >= "2"){
-               msg += (_("- You may only place a hold on one item at a time") + "\n");
+        msg += (_("- Please select an item to place a hold") + "\n");
     }
 
-    if (alreadyreserved > "0"){
-               msg += (_("- This patron had already placed a hold on this item") + "\n" + _("Please cancel the previous hold first") + "\n");
+    if (msg == "") {
+        $('#hold-request-form').preventDoubleFormSubmit();
+        return(true);
+    } else {
+        alert(msg);
+        return(false);
     }
-
-       if (msg == "") return(true);
-       else    {
-               alert(msg);
-               return(false);
-       }
 }
 
 function checkMultiHold() {
@@ -87,6 +119,8 @@ function checkMultiHold() {
     $("#multi_hold_bibs").val(biblionumbers);
     $("#bad_bibs").val(badBibs);
 
+    $('#hold-request-form').preventDoubleFormSubmit();
+
     return true;
 }
 
@@ -96,39 +130,68 @@ 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){
+            $("input[name=checkitem]").each(function() {
+                $(this).prop("checked", false);
+            });
+        }
+    });
+    $("input[name=checkitem]").click(function() {
+        onechecked = 0;
+        $("input[name=checkitem]").each(function() {
+            if(this.checked){
+                onechecked = 1;
+            }
+        });
+        if(onechecked == 1){
+            $("#requestany").prop("checked", false);
+        } else {
+            $("#requestany").prop("checked",true);
+        }
     });
-       $("#requestany").click(function() {
-               if(this.checked){
-               $("input[name=checkitem]").each(function() {
-            $(this).removeAttr("checked");
-               });
-               }
-       });
-       $("input[name=checkitem]").click(function() {
-               onechecked = 0;
-               $("input[name=checkitem]").each(function() {
-                       if(this.checked){
-                               onechecked = 1;
-                       }
-               });
-               if(onechecked == 1){
-            $("#requestany").removeAttr("checked");
-               } else {
-                       $("#requestany").attr("checked","checked");
-               }
-       });
 
-    $('#hold-request-form').preventDoubleFormSubmit();
+    $(".clear-date").on("click",function(e){
+        e.preventDefault();
+        var fieldID = this.id.replace("clear-date-","");
+        $("#" + fieldID).val("");
+    });
+
+
+[% 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 %]
+
  });
 
 // ]]>
@@ -150,10 +213,15 @@ 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>
-[% ELSE %]
+    <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>
+[% END %]
+
   [% IF ( messagetransfert ) %]
                <div class="dialog message">
                                <h2>Hold found for ([% nextreservtitle %]), please transfer</h2>
@@ -168,26 +236,26 @@ 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 ) %]
+  [% UNLESS borrowernumber OR noitems %]
     [% 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">
+        <fieldset id="circ_holds_selectborrower" class="brief">
+
+        [% UNLESS borrowers %]
+                <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>
+            [% INCLUDE 'circ-patron-search-results.inc' destination = "holds" %]
+          </fieldset>
 
         [% END %]
         [% IF ( multi_hold ) %]
@@ -195,39 +263,62 @@ function checkMultiHold() {
             <input type="hidden" name="biblionumbers" value="[% biblionumbers %]"/>
         [% END %]
     </form>
-  [% ELSE %]
+  [% ELSIF NOT noitems %]
 
-[% IF ( warnings ) %]
+[% IF ( exceeded_maxreserves || exceeded_holds_per_record || 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>
-        [% 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>
+      <ul>
+        [% IF ( exceeded_maxreserves ) %]
+          <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% maxreserves %] total holds.</li>
+        [% ELSIF ( exceeded_holds_per_record ) %]
+          <li><strong>Too many holds for this record: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% max_holds_for_record %] hold(s) on this record.</li>
+        [% ELSIF ( alreadypossession ) %]
+          <li> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>is already in possession</strong> of one item.</li>
+        [% ELSIF ( 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>
+        [% ELSIF ( ageRestricted ) %]
+          <li><strong>Age restricted</strong></li>
+        [% ELSIF ( none_available ) %]
+          <li> <strong>No items are available</strong> to be placed on hold.</li>
+        [% ELSIF ( 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>
         [% END %]
-        [% IF ( none_available ) %]
-          <li> <strong>No copies are available</strong> to be placed on hold</li>
-        [% END %]
-         </ul>
+      </ul>
     [% ELSE %]
-      <h3>Cannot place hold on some items</h3>
+        <h3>Cannot place hold on some items</h3>
+        [% IF ( exceeded_maxreserves ) %]
+          <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can place [% new_reserves_allowed %] of the requested [% new_reserves_count %] holds for a maximum of [% maxreserves %] total holds.</li>
+        [% ELSIF ( exceeded_holds_per_record ) %]
+            [% FOREACH biblioloo IN biblioloop %]
+                [% IF (biblioloo.tooManyHoldsForThisRecord) %]
+                    <li><strong>Too many holds for <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber %]"> [% biblioloo.title %]</a>: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% max_holds_for_record %] hold(s) on this record.</li>
+                [% END %]
+            [% END %]
+        [% END %]
     [% END %]
 
     </div>
 [% END %]
 
-[% IF ( messages ) %]
-    <div class="dialog message"><ul>
+[% IF ( expiry || diffbranch || restricted || ( amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') ) ) %]
+<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>
+    <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a>: <strong>Account has expired</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>
+    [% IF restricted %]
+    <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]#reldebarments">[% borrowerfirstname %] [% borrowersurname %]</a>: <strong>Patron 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>Patron has outstanding fines: [% amount_outstanding | format('%.2f') %]</strong></li>
+    [% END %]
+
+    [% IF ( diffbranch ) %]
+    <li> <strong>Pickup library is different. </strong>Patron: <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> Patron's home library: ([% borrower_branchname %] / [% borrower_branchcode %] )</li>
     [% END %]
 
 </ul></div>
@@ -245,7 +336,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 ) %]
@@ -272,7 +363,7 @@ function checkMultiHold() {
         </li>
         [% UNLESS ( multi_hold ) %]
           <li>
-              <span class="label">Priority:</span>
+              <span class="label">Estimated priority:</span>
               <strong>[% fixedRank %]</strong>
           </li>
         [% END %]
@@ -282,79 +373,68 @@ function checkMultiHold() {
         </li>
         <li>
             <label for="pickup">Pickup at:</label>
-            [% CGIbranch %]
+            <select name="pickup" size="1" id="pickup">
+                [% PROCESS options_for_libraries libraries => Branches.all() %]
+            </select>
         </li>
 
+        [% UNLESS ( multi_hold ) %]
+            [% IF Koha.Preference('AllowHoldItemTypeSelection') %]
+                <li>
+                    <label for="itemtype">Request specific item type:</label>
+                    <select name="itemtype" size="1" id="itemtype">
+                        <option value="">Any item type</option>
+                        [%- FOREACH itemtype IN available_itemtypes %]
+                            <option value="[% itemtype %]">[% ItemTypes.GetDescription( itemtype ) %]</option>
+                        [%- END %]
+                    </select>
+                </li>
+            [% END %]
+        [% END %]
+
        [% IF ( reserve_in_future ) %]
        <li>
-           <label for="reserve_date">Hold starts on date:</label>
-           <input name="reserve_date" id="reserve_date" size="10" readonly="readonly">
-        <img src="[% themelang %]/lib/calendar/cal.gif" alt="Show calendar" border="0" id="CalendarReserveDate" style="cursor: pointer;" />
-           <script language="JavaScript" type="text/javascript">
-               //<![CDATA[
-               function validate1(date) {
-                       var today = new Date();
-                       if ( (date > today) ||
-                    ( date.getDate() == today.getDate() &&
-                      date.getMonth() == today.getMonth() &&
-                      date.getFullYear() == today.getFullYear() ) ) {
-                               return false;
-                       } else {
-                               return true;
-                       }
-               };
-               Calendar.setup(
-                       {
-                               inputField : "reserve_date",
-                               ifFormat : "[% DHTMLcalendar_dateformat %]",
-                               button : "CalendarReserveDate",
-                               disableFunc : validate1,
-                               dateStatusFunc : validate1
-                       }
-               );
-               //]]>
-           </script>
-        <a href='#' onclick="document.getElementById('reserve_date').value='';">Clear Date</a>
+        <label for="from">Hold starts on date:</label>
+        <input name="reserve_date" id="from" size="10" class="datepickerfrom">
+        <a href="#" id="clear-date-from" class="clear-date">Clear date</a>
        </li>
        [% END %]
 
        <li>
-           <label for="expiration_date">Hold expires on date:</label>
-           <input name="expiration_date" id="expiration_date" size="10" readonly="readonly" />
-        <img src="[% themelang %]/lib/calendar/cal.gif" alt="Show calendar" border="0" id="CalendarExpirationDate" style="cursor: pointer;" />
-           <script language="JavaScript" type="text/javascript">
-               //<![CDATA[
-               function validate1(date) {
-                       var today = new Date();
-                       if ( (date > today) ||
-                    ( date.getDate() == today.getDate() &&
-                      date.getMonth() == today.getMonth() &&
-                      date.getFullYear() == today.getFullYear() ) ) {
-                               return false;
-                       } else {
-                               return true;
-                       }
-               };
-               Calendar.setup(
-                       {
-                               inputField : "expiration_date",
-                               ifFormat : "[% DHTMLcalendar_dateformat %]",
-                               button : "CalendarExpirationDate",
-                               disableFunc : validate1,
-                               dateStatusFunc : validate1
-                       }
-               );
-               //]]>
-           </script>
-        <a href='#' onclick="document.getElementById('expiration_date').value='';">Clear date</a>
+        <label for="to">Hold expires on date:</label>
+        <input name="expiration_date" id="to" size="10" class="datepickerto" />
+        <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>
-               <input type="checkbox" id="requestany" name="request" checked="checked" value="Any" />
+          <li> <label for="requestany">Hold next available item </label>
+               [% IF force_hold_level == 'item' %]
+                   <input type="checkbox" id="requestany" name="request" disabled="true" />
+               [% ELSIF force_hold_level == 'record' %]
+                   <input type="checkbox" id="requestany" checked="checked" value="Any" disabled="true"/>
+                   <input type="hidden" name="request" value="Any"/>
+               [% ELSE %]
+                   <input type="checkbox" id="requestany" name="request" checked="checked" value="Any" />
+                [% END %]
                <input type="hidden" name="biblioitem" value="[% biblioitemnumber %]" />
                <input type="hidden" name="alreadyreserved" value="[% alreadyreserved %]" />
           </li>
+
+          [% IF remaining_holds_for_record > 1 %]
+              [% SET count = 1 %]
+              <li>
+                   <label for="holds_to_place_count">Holds to place (count)</label>
+                   <select name="holds_to_place_count" id="holds_to_place_count">
+                   [% WHILE count <= remaining_holds_for_record %]
+                        <option value="[% count %]">[% count %]</option>
+                        [% SET count = count + 1 %]
+                   [% END %]
+
+                   </select>
+              </li>
+            [% ELSE %]
+                <input type="hidden" name="holds_to_place_count" value="1">
+            [% END %]
         [% END %]
 
 </ol>
@@ -379,103 +459,148 @@ function checkMultiHold() {
             [% IF ( bibitemloo.publicationyear ) %]<li><span class="label">Publication year:</span> [% bibitemloo.publicationyear %]</li>[% END %]
           </ol>
 
-        <table id="requestspecific">
-        <caption>Place a hold on a specific copy</caption>
-               <tr>
-            <th>Hold</th>
-            [% IF ( item_level_itypes ) %]
-                <th>Item type</th>
+        <h2 style="padding: 0 1em;">
+            Place a hold on a specific item
+            [% IF bibitemloo.force_hold_level == 'item' %]
+                <span class="error"><i>(Required)</i></span>
             [% 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>
+        </h2>
+        <table id="requestspecific">
+            <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>
+            [% SET selected = 0 %]
+            [% FOREACH itemloo IN bibitemloo.itemloop %]
+            [% UNLESS ( itemloo.hide ) %]
+                <tr class="[% itemloo.backgroundcolor %]">
+                    <td>
+                [% IF itemloo.force_hold_level == 'record' # Patron has placed a record level hold previously for this record %]
+                    <span class="error">
+                        <i class="fa fa-times fa-lg" alt="Cannot be put on hold"></i>
+                        Hold must be record level
+                    </span>
+                [% ELSIF ( itemloo.available ) %]
+                    <input type="radio" name="checkitem" value="[% itemloo.itemnumber %]" />
+                [% ELSIF ( itemloo.override ) %]
+                    <input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber %]" />
+                    <i class="fa fa-exclamation-triangle fa-lg" style="color:gold" alt="Requires override of hold policy"/></i>
+                [% ELSE %]
+                    <span class="error">
+                        <i class="fa fa-times fa-lg" alt="Cannot be put on hold"></i>
+                        [% IF itemloo.not_holdable %]
+                            [% IF itemloo.not_holdable == 'damaged' %]
+                                Item damaged
+                            [% ELSIF itemloo.not_holdable == 'ageRestricted' %]
+                                Age restricted
+                            [% ELSIF itemloo.not_holdable == 'tooManyHoldsForThisRecord' %]
+                                Exceeded max holds per record
+                            [% ELSIF itemloo.not_holdable == 'tooManyReserves' %]
+                                Too many holds
+                            [% ELSIF itemloo.not_holdable == 'notReservable' %]
+                                Not holdable
+                            [% ELSIF itemloo.not_holdable == 'cannotReserveFromOtherBranches' %]
+                                Patron is from different library
+                            [% ELSIF itemloo.not_holdable == 'itemAlreadyOnHold' %]
+                                Patron already has hold for this item
+                            [% ELSE %]
+                                [% itemloo.not_holdable %]
+                            [% END %]
+                        [% END %]
+                    </span>
+                [% 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>
+                        [% Branches.GetName( itemloo.homebranch ) %]
+                    </td>
+                    <td>
+                        [% Branches.GetName( itemloo.holdingbranch ) %]
+                    </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 [% Branches.GetName( itemloo.transfertfrom ) %],
+                            to [% Branches.GetName( 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 %]
+                    [% 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 %] [% Branches.GetName( 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 %]
+
+                [% IF itemloo.item_level_holds == "" %]
+                    <br/>Item level hold not allowed from OPAC
+                [% ELSIF itemloo.item_level_holds == "F" %]
+                    <br/>Item level hold forced from OPAC
+                [% 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 -->
@@ -529,7 +654,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 ) %]
@@ -591,50 +716,60 @@ 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" alt="Toggle set to lowest priority" /></th>
         [% END %]
        <th>&nbsp;</th>
-       <th>&nbsp;</th>
+    [% IF SuspendHoldsIntranet %]<th>&nbsp;</th><!-- Suspend Holds Column Header -->[% END %]
       </tr>
   [% FOREACH reserveloo IN biblioloo.reserveloop %]
-  [% UNLESS ( loop.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
+        <tr>
         <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.found ) %]
+                  [% 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.found %]
+                  <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" 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" 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" 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" alt="Go down" />
                 </a>
         </td>
     [% END %]
@@ -650,12 +785,18 @@ function checkMultiHold() {
         </td>
         <td>[% reserveloo.notes %]</td>
         <td>[% reserveloo.date %]</td>
-       <td>[% reserveloo.expirationdate %]</td>
         <td>
-    [% IF ( reserveloo.wait ) %]
+            [% IF reserveloo.waiting_until %]
+                [% reserveloo.waiting_until | $KohaDates %]
+            [% ELSE %]
+                [% reserveloo.expirationdate %]
+            [% END %]
+        </td>
+        <td>
+    [% IF ( reserveloo.found ) %]
        [% IF ( reserveloo.atdestination ) %]
             [% IF ( reserveloo.found ) %]
-                Item waiting at <b> [% reserveloo.wbrname %]</b> <input type="hidden" name="pickup" value="[% reserveloo.wbrcode %]" />
+                Item waiting at <b> [% reserveloo.wbrname %]</b> <input type="hidden" name="pickup" value="[% reserveloo.wbrcode %]" /> since [% reserveloo.waiting_date | $KohaDates %]
             [% ELSE %]
                 Waiting to be pulled <input type="hidden" name="pickup" value="[% reserveloo.wbrcode %]" />
             [% END %]
@@ -663,21 +804,13 @@ function checkMultiHold() {
             Item being transferred to <b> [% reserveloo.wbrname %]</b> <input type="hidden" name="pickup" value="[% reserveloo.wbrcode %]" />
          [% END %]
     [% ELSE %]
-          <select name="pickup">
-      [% FOREACH branchloo IN reserveloo.branchloop %]
-        [% IF ( branchloo.selected ) %]
-            <option value="[% branchloo.value %]" selected="selected">
-        [% ELSE %]
-            <option value="[% branchloo.value %]">
-        [% END %]
-              [% branchloo.branchname %]
-            </option>
-      [% END %]
-          </select>
+        <select name="pickup">
+            [% PROCESS options_for_libraries libraries => Branches.all( selected => reserveloo.branchcode ) %]
+        </select>
     [% END %]
         </td>
         <td>
-    [% IF ( reserveloo.wait ) %]
+    [% IF ( reserveloo.found ) %]
           <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% reserveloo.biblionumber %]">
                 [% IF ( reserveloo.barcodenumber ) %]
                     [% reserveloo.barcodenumber %]
@@ -687,7 +820,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 %]">
@@ -700,73 +832,52 @@ function checkMultiHold() {
                 </a>
                 </i>
             [% ELSE %]
-                <i>Next available</i>
+                [% IF reserveloo.itemtype %]
+                    <i>Next available [% ItemTypes.GetDescription( reserveloo.itemtype ) %] item</i>
+                [% ELSE %]
+                    <i>Next available</i>
+                [% END %]
                  <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" 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" alt="Set to lowest priority" />
                        [% END %]
                </a>
-       </td> 
+       </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" 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 %]'" />
+        [% UNLESS ( reserveloo.found ) %]
+            <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 %]" />
-        <img src="[% themelang %]/lib/calendar/cal.gif" alt="Show calendar" border="0" id="SuspendUntilDate_[% reserveloo.borrowernumber %]" style="cursor: pointer;" />
-           <script language="JavaScript" type="text/javascript">
-               //<![CDATA[
-               function validate1(date) {
-                       var today = new Date();
-                       if ( (date > today) ||
-                    ( date.getDate() == today.getDate() &&
-                      date.getMonth() == today.getMonth() &&
-                      date.getFullYear() == today.getFullYear() ) ) {
-                               return false;
-                       } else {
-                               return true;
-                       }
-               };
-               Calendar.setup(
-                       {
-                               inputField : "suspend_until_[% reserveloo.borrowernumber %]",
-                               ifFormat : "[% DHTMLcalendar_dateformat %]",
-                               button : "SuspendUntilDate_[% reserveloo.borrowernumber %]",
-                               disableFunc : validate1,
-                               dateStatusFunc : validate1
-                       }
-               );
-               //]]>
-           </script>
-           <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" value="[% reserveloo.suspend_until | $KohaDates %]" class="datepicker suspend_until_datepicker" />
+                <a href='#' onclick="document.getElementById('suspend_until_[% reserveloo.reserve_id %]').value='';">Clear date</a>
+            [% ELSE %]
+                <input type="hidden" name="suspend_until" id="suspend_until_[% reserveloo.reserve_id %]" value=""/>
             [% END %]
        [% ELSE %]
                <input type="hidden" name="suspend_until" value="" />
        [% END %]
        </td>
+        [% END # IF SuspendHoldsIntranet %]
+
       </tr>
 
   [% END %] <!-- existing reserveloop -->
@@ -781,7 +892,6 @@ function checkMultiHold() {
 </form>
 [% END %]
 [% END %]
-[% END %]
 </div>
 </div>