Bug 12461 - Add patron clubs feature
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / circ / circulation.tt
index 9f17a20..c0a6572 100644 (file)
@@ -1,30 +1,32 @@
 [% USE Koha %]
 [% USE Branches %]
 [% USE KohaDates %]
-[% IF Koha.Preference('ExportRemoveFields') OR Koha.Preference('ExportWithCsvProfile') %]
-   [% SET exports_enabled = 1 %]
-[% END %]
+[% USE Categories %]
+[% USE ColumnsSettings %]
+[% USE ItemTypes %]
+[% USE Price %]
 [% USE AuthorisedValues %]
 [% INCLUDE 'doc-head-open.inc' %]
 [% SET destination = "circ" %]
 <title>Koha &rsaquo; Circulation
-[% IF borrowernumber %]
+[% IF borrowernumber and borrower%]
   &rsaquo; Checking out to [% INCLUDE 'patron-title.inc' invert_name = 1 %]
 [% END %]
 </title>
 [% INCLUDE 'doc-head-close.inc' %]
 [% INCLUDE 'calendar.inc' %]
 
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
+<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
 [% INCLUDE 'strings.inc' %]
 [% INCLUDE 'datatables.inc' %]
+[% INCLUDE 'columns_settings.inc' %]
 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery-ui-timepicker-addon.min.js"></script>
 [% INCLUDE 'timepicker.inc' %]
 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.dataTables.rowGrouping.js"></script>
-<script type="text/javascript" src="[% themelang %]/js/pages/circulation.js"></script>
-<script type="text/javascript" src="[% themelang %]/js/checkouts.js"></script>
-<script type="text/javascript" src="[% themelang %]/js/holds.js"></script>
+<script type="text/javascript" src="[% interface %]/[% theme %]/js/pages/circulation.js"></script>
+<script type="text/javascript" src="[% interface %]/[% theme %]/js/checkouts.js"></script>
+<script type="text/javascript" src="[% interface %]/[% theme %]/js/holds.js"></script>
 <script type="text/javascript">
 //<![CDATA[
 /* Set some variable needed in circulation.js */
@@ -33,43 +35,71 @@ var interface = "[% interface %]";
 var theme = "[% theme %]";
 var borrowernumber = "[% borrowernumber %]";
 var branchcode = "[% branch %]";
-var exports_enabled = "[% exports_enabled %]";
-var AllowRenewalLimitOverride = [% (CAN_user_circulate_override_renewals && AllowRenewalLimitOverride)? 1: 0 %];
+var exports_enabled = "[% Koha.Preference('ExportCircHistory') %]";
+var AllowRenewalLimitOverride = [% (CAN_user_circulate_override_renewals && Koha.Preference('AllowRenewalLimitOverride') )? 1: 0 %];
+var AllowCirculate = [% (CAN_user_circulate_circulate_remaining_permissions)? 1 : 0 %];
 var script = "circulation";
 var relatives_borrowernumbers = new Array();
 [% FOREACH b IN relatives_borrowernumbers %]
     relatives_borrowernumbers.push("[% b %]");
 [% END %]
 
-var MSG_ADD_MESSAGE = _("Add a new message");
 var MSG_EXPORT_SELECT_CHECKOUTS = _("You must select checkout(s) to export");
-[% IF ( borrowernumber ) %]if($.cookie("holdfor") != [% borrowernumber %]){ $.cookie("holdfor",null, { path: "/", expires: 0 }); }[% ELSE %]$.cookie("holdfor",null, { path: "/", expires: 0 });[% END %]
+var MSG_CONFIRM_DELETE_MESSAGE = _("Are you sure you want to delete this message? This cannot be undone.");
+
+columns_settings = [% ColumnsSettings.GetColumns( 'circ', 'circulation', 'issues-table', 'json' ) %]
+
+[% IF borrowernumber and borrower %]
+    if($.cookie("holdfor") != [% borrowernumber %]){
+        $.removeCookie("holdfor", { path: '/' });
+    }
+[% ELSE %]
+    $.removeCookie("holdfor", { path: '/' });
+[% END %]
+
 [% UNLESS ( borrowernumber ) %][% UNLESS ( borrowers ) %]window.onload=function(){ $('#findborrower').focus(); };[% END %][% END %]
 
 // On-site checkout
 function toggle_onsite_checkout(){
-    if ( $("#onsite_checkout").attr('checked') ) {
+    if ( $("#onsite_checkout").prop('checked') ) {
         $("#duedatespec").val("[% todaysdate | $KohaDates with_hours => 1%]")
         [% IF !Koha.Preference('SpecifyDueDate') %]
             $("#duedatespec").datetimepicker('destroy');
         [% END %]
     } else {
         $("#duedatespec").datetimepicker({
-            onClose: function(dateText, inst) { $("#barcode").focus(); },
+            onClose: function(dateText, inst) {
+                if (validate_date(dateText, inst) ) {
+                    $("#barcode").focus();
+                }
+            },
             hour: 23,
             minute: 59
+        }).on("change", function(e, value) {
+            if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
         });
     }
 }
 
+function Dopop(link) {
+    var newin = window.open(link, 'popup', 'width=600,height=400,resizable=1,toolbar=0,scrollbars=1,top');
+}
 $(document).ready(function() {
     $('#mainform').on('submit',function() {
-        $('#barcode').on('keypress',function(event) {
-            $('#barcodeSubmittedModal').modal();
-            event.preventDefault(); }
-        );
+        if ($("#barcode") && $("#barcode").val()) {
+            $('#barcode').on('keypress',function(event) {
+                $('#barcodeSubmittedModal').modal();
+                event.preventDefault(); }
+            );
+        }
     });
 
+    if ( $('#clubs-tab').length ) {
+        $('#clubs-tab-link').on('click', function() {
+            $('#clubs-tab').text(_("Loading..."));
+            $('#clubs-tab').load('/cgi-bin/koha/clubs/patron-clubs-tab.pl?borrowernumber=[% borrowernumber %]');
+        });
+    }
 
     [% IF !( CircAutoPrintQuickSlip == 'clear' ) %]
         // listen submit to trigger qslip on empty checkout
@@ -84,20 +114,11 @@ $(document).ready(function() {
         toggle_onsite_checkout();
     });
 
-    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')
-        }
+    $("#suspend_until").datepicker({
+        onClose: function(dateText, inst) {
+            validate_date(dateText, inst);
+        },
+        minDate: 1, // require that hold suspended until date is after today
     });
 
 });
@@ -111,7 +132,7 @@ $(document).ready(function() {
 [% INCLUDE 'circ-search.inc' %]
 
 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> &rsaquo;
-[% IF ( borrowernumber ) %]
+[% IF borrowernumber and borrower %]
     <a href="/cgi-bin/koha/circ/circulation.pl">Checkouts</a> &rsaquo; [% INCLUDE 'patron-title.inc' %]
 [% ELSE %]
     <strong>Checkouts</strong>
@@ -131,49 +152,12 @@ $(document).ready(function() {
        <div class="yui-b">
 [% END %]
 
-[% IF ( borrowernumber ) %]
+[% IF borrowernumber and borrower %]
 [% INCLUDE 'members-toolbar.inc' %]
 [% END %]
 
 <!--  INITIAL BLOC : PARAMETERS & BORROWER INFO -->
-<div style="display: none;" id="add_message_form">
-<form method="post" action="/cgi-bin/koha/circ/add_message.pl" id="message_form" name="message_f">
-<fieldset id="borrower_messages" class="brief">
-<legend>Leave a message</legend>
-       <ol>
-    <li>
-            <label for="message_type">Add a message for:</label>
-          <select name="message_type" id="message_type">
-            <option value="L">Other librarians</option>
-            <option value="B">[% firstname %]</option>
-        </select>
-    </li>
-    [% IF ( canned_bor_notes_loop ) %]
-        <li>
-                <label for="type">Predefined notes: </label>
-                <select name="type" id="type" onchange="this.form.borrower_message.value=this.options[this.selectedIndex].value;">
-                    <option value="">Select note</option>
-                    [% FOREACH canned_bor_notes_loo IN canned_bor_notes_loop %]
-                    <option value="[% canned_bor_notes_loo.lib %]">[% canned_bor_notes_loo.lib %]</option>
-                    [% END %]
-                </select>
-        </li>
-    [% END %]
-    <li>
-        <textarea rows="3" cols="60" name="borrower_message" id="borrower_message" ></textarea>
-    </li>
-       </ol>
-    <fieldset class="action">
-        <input type="submit" value="Save" /> <a href="#" class="cancel">Cancel</a>
-    </fieldset>
-
-        <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
-        <input type="hidden" name="branchcode" value="[% branch %]" />
-</fieldset>
-</form>
-</div>
-
-[% IF ( was_renewed ) %]<div class="dialog message">Patron's account has been renewed until [% expiry %]</div>[% END %]
+[% IF ( was_renewed ) %]<div class="dialog message">Patron's account has been renewed until [% expiry | $KohaDates %]</div>[% END %]
 
 [% IF additional_materials %]
     <div id="materials" class="dialog message">Note about the accompanying materials: <br />
@@ -186,13 +170,21 @@ $(document).ready(function() {
 [% END %]
 
 [% IF ( alert.OTHER_CHARGES ) %]
-    <div class="dialog message">The patron has unpaid charges for reserves, rentals etc of [% alert.OTHER_CHARGES %]</div>
+    <div class="dialog message">The patron has unpaid charges for holds, rentals etc of [% alert.OTHER_CHARGES %]</div>
+[% END %]
+
+[% IF alert.HIGHHOLDS %]
+    <div class="dialog message">High demand item. <b>Loan period was not shortened due to override.</b> Shortened due date would have been [% alert.HIGHHOLDS.returndate %] ([% alert.HIGHHOLDS.duration %] days).</div>
+[% END %]
+
+[% IF ( nopermission ) %]
+    <div class="dialog alert">Staff members are not allowed to discharge borrowers, nor borrowers to request a discharge.</div>
 [% END %]
 
 [% IF ( NEEDSCONFIRMATION ) %]
 <div class="yui-g">
 
-<div id="circ_needsconfirmation" class="dialog alert">
+<div id="circ_needsconfirmation" class="dialog alert audio-alert-action">
 [% IF CAN_user_circulate_force_checkout %]
   <h3>Please confirm checkout</h3>
 [% ELSE %]
@@ -212,7 +204,11 @@ $(document).ready(function() {
     <li>The patron has a debt of [% DEBT %].</li>
 [% END %]
 
-[% IF ( RENTALCHARGE > 0 ) %]
+[% IF ( DEBT_GUARANTEES ) %]
+    <li>The patron's guarantees collectively have a debt of [% DEBT_GUARANTEES | $Price %].</li>
+[% END %]
+
+[% IF ( RENTALCHARGE && RENTALCHARGE > 0 ) %]
     <li>Rental charge for this item: [% RENTALCHARGE %]</li>
 [% END %]
 
@@ -221,11 +217,11 @@ $(document).ready(function() {
 [% END %]
 
 [% IF ( RESERVE_WAITING ) %]
-    <li>Item <i>[% getTitleMessageIteminfo %]</i> ([% getBarcodeMessageIteminfo %]) has been waiting for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resborrowernumber %]">[% resfirstname %] [% ressurname %]</a> ([% rescardnumber %]) at [% resbranchname %] since [% reswaitingdate %]</li>
+    <li>Item <i>[% getTitleMessageIteminfo %]</i> ([% getBarcodeMessageIteminfo %]) has been waiting for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resborrowernumber %]">[% resfirstname %] [% ressurname %]</a> ([% rescardnumber %]) at [% Branches.GetName( resbranchcode ) %] since [% reswaitingdate | $KohaDates %]</li>
 [% END %]
 
 [% IF ( RESERVED ) %]
-    <li>Item <i>[% getTitleMessageIteminfo %]</i> ([% getBarcodeMessageIteminfo %]) has been on hold for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resborrowernumber %]">[% resfirstname %] [% ressurname %]</a> ([% rescardnumber %]) at [% resbranchname %] since [% resreservedate %]</li>
+    <li>Item <i>[% getTitleMessageIteminfo %]</i> ([% getBarcodeMessageIteminfo %]) has been on hold for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resborrowernumber %]">[% resfirstname %] [% ressurname %]</a> ([% rescardnumber %]) at [% Branches.GetName( resbranchcode ) %] since [% resreservedate | $KohaDates %]</li>
 [% END %]
 
 [% IF ( ISSUED_TO_ANOTHER ) %]
@@ -236,16 +232,24 @@ $(document).ready(function() {
     </li>
 [% END %]
 
-[% IF ( TOO_MANY ) %]
+[% IF TOO_MANY and TOO_MANY == 'TOO_MANY_CHECKOUTS' %]
     <li>Too many checked out. [% current_loan_count %] checked out, only [% max_loans_allowed %] are allowed.</li>
 [% END %]
 
+[% IF TOO_MANY and TOO_MANY == 'TOO_MANY_ONSITE_CHECKOUTS' %]
+    <li>Too many on-site checked out. [% current_loan_count %] on-site checked out, only [% max_loans_allowed %] are allowed.</li>
+[% END %]
+
 [% IF ( BORRNOTSAMEBRANCH ) %]
-    <li>This patrons is from a different library ([% BORRNOTSAMEBRANCH %])</li>
+    <li>This patron is from a different library ([% Branches.GetName( BORRNOTSAMEBRANCH ) %])</li>
 [% END %]
 
 [% IF ( PATRON_CANT ) %]
-    <li>This patron can't check out this item per library circulation policy</li>
+    <li>This patron can't check out this item per library circulation policy.</li>
+[% END %]
+
+[% IF ( TOO_MANY and TOO_MANY == 'NO_RULE_DEFINED' ) %]
+    <li>No circulation rule is defined for this patron and itemtype combination.</li>
 [% END %]
 
 [% IF ( NOT_FOR_LOAN_FORCING ) %]
@@ -278,10 +282,14 @@ $(document).ready(function() {
     </li>
 [% END %]
 
-[% IF  HIGHHOLDS %]
+[% IF HIGHHOLDS %]
     <li>High demand item. Loan period shortened to [% HIGHHOLDS.duration %] days (due [% HIGHHOLDS.returndate %]). Check out anyway?</li>
 [% END %]
 
+[% IF PREVISSUE %]
+    <li>Patron has previously checked out this title: <b>[% item.title %] [% IF item.author %] by [% item.author %][% END %]</b>. Check out anyway?</li>
+[% END %]
+
 [% IF BIBLIO_ALREADY_ISSUED %]
   <li>
     Patron has already checked out another item from this record.
@@ -293,18 +301,39 @@ $(document).ready(function() {
 </ul>
 
 [% IF HIGHHOLDS %]
-       <script language="JavaScript" type="text/javascript">
-       $(document).ready(function() {
-               $("input[name=duedatespec]:hidden").val('[% HIGHHOLDS.returndate %]');
-       });
-       </script>
+<script language="JavaScript" type="text/javascript">
+$(document).ready(function() {
+    [% IF !override_high_holds %]
+        $("input[name=duedatespec]:hidden").val('[% HIGHHOLDS.returndate %]');
+        if ('[% duedatespec %]' === '') {
+            $("input[name=restoreduedatespec]:hidden").val('highholds_empty');
+        } else {
+            $("input[name=restoreduedatespec]:hidden").val('[% duedatespec %]');
+        }
+    [% END %]
+
+    $("#override_high_holds_tmp").on( 'change', function() {
+        if ( this.checked ) {
+            $("input[name=duedatespec]:hidden").val('');
+        }
+    });
+});
+</script>
 [% END %]
 
 [% IF CAN_user_circulate_force_checkout or HIGHHOLDS %]
 <form method="post" action="/cgi-bin/koha/circ/circulation.pl" autocomplete="off">
+    <input type="hidden" name="restoreduedatespec" />
 
 [% IF (forceallow) %]<input type="hidden" name="forceallow" value="1">[% END %]
 
+[% IF HIGHHOLDS %]
+    <p class="circ-override-high-holds">
+    <input type="checkbox" name="override_high_holds_tmp" id="override_high_holds_tmp" value="1" />
+    <label for="override_high_holds_tmp">Don't decrease loan length based on holds</label>
+    </p>
+[% END %]
+
 [% IF ( RESERVED ) %]
     <p>
     <input type="checkbox" id="cancelreserve" name="cancelreserve" value="cancel" />
@@ -324,10 +353,11 @@ $(document).ready(function() {
     <input type="hidden" name="barcode" value="[% barcode |html %]" />
     <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
     <input type="hidden" name="issueconfirmed" value="1" />
+    <input type="hidden" name="override_high_holds" value="[% override_high_holds %]"/>
     [% IF ( DEBT ) %]<input type="hidden" name="debt_confirmed" value="1" />[% END %]
     [% IF ( INVALID_DATE ) %]
     <p>
-    <input type="text" size="13" id="duedatespec" name="duedatespec" readonly="readonly" value="[% duedatespec %]" />
+    <input type="text" size="13" id="duedatespec" name="duedatespec" value="[% duedatespec %]" />
     <label for="duedatespec">Due date</label>
     </p>
     [% ELSE %]
@@ -336,41 +366,66 @@ $(document).ready(function() {
     <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
     <input type="hidden" name="branch" value="[% branch %]" />
     [% IF ( RENEW_ISSUE ) %]
-    <input type="submit" class="approve" value="Yes, renew (Y)" accesskey="y" />
+    <button type="submit" class="approve" accesskey="y"><i class="fa fa-check"></i> Yes, renew (Y)</button>
     [% ELSE %]
-    <input type="submit" class="approve" value="Yes, check out (Y)" accesskey="y" />
+    <button type="submit" class="approve" accesskey="y"><i class="fa fa-check"></i> Yes, check out (Y)</button>
     [% END %]
     <input type="hidden" name="onsite_checkout" value="[% onsite_checkout %]" />
 </form>
 [% END %]
 
+[% IF ( RESERVED ) %]
+<form method="get" action="/cgi-bin/koha/circ/circulation.pl">
+    <input type="hidden" name="restoreduedatespec" />
+    <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
+    <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
+    <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
+    <button class="print" type="submit" onclick="Dopop('hold-transfer-slip.pl?borrowernumber=[% reserveborrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;op=slip');this.form.submit();"><i class="fa fa-print"></i> Don't check out and print slip (P)</button>
+</form>
+[% END %]
+
+[% IF ( RESERVE_WAITING ) %]
+<form method="get" action="/cgi-bin/koha/circ/circulation.pl">
+    <input type="hidden" name="restoreduedatespec" />
+    <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
+    <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
+    <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
+    <button class="print" type="submit" onclick="Dopop('hold-transfer-slip.pl?borrowernumber=[% reserveborrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;op=slip');this.form.submit();"><i class="fa fa-print"></i> Don't check out and print slip (P)</button>
+</form>
+[% END %]
+
 <form method="get" action="/cgi-bin/koha/circ/circulation.pl">
     [% IF (forceallow) %]<input type="hidden" name="forceallow" value="1">[% END %]
     <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
     <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
+    <input type="hidden" name="restoreduedatespec" />
     <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
     [% IF CAN_user_circulate_force_checkout or HIGHHOLDS %]
         [% IF ( RENEW_ISSUE ) %]
-        <input type="submit" class="deny" value="No, don't renew (N)" accesskey="n" />
+        <button type="submit" class="deny" accesskey="n"><i class="fa fa-times"></i> No, don't renew (N)</button>
         [% ELSE %]
-        <input type="submit" class="deny" value="No, don't check out (N)" accesskey="n" />
+        <button type="submit" class="deny" accesskey="n"><i class="fa fa-times"></i> No, don't check out (N)</button>
         [% END %]
     [% ELSE %]
-        <input type="submit" class="deny" value="Continue" />
+        <button type="submit" class="deny"><i class="fa fa-times"></i> Continue</button>
     [% END %]
 </form>
 
+[% IF ( RESERVED || ISSUED_TO_ANOTHER ) && (CAN_user_reserveforothers_place_holds ) %]
+    [% UNLESS noissues %]
+        <button type="submit" onclick="window.location.href='/cgi-bin/koha/reserve/request.pl?biblionumber=[% itembiblionumber %]&borrowernumber=[% borrowernumber %]'"><i class="fa fa-sticky-note-o"></i> Cancel checkout and place a hold for [% INCLUDE 'patron-title.inc' %]</button>
+    [% END %]
+[% END %]
 </div></div>
 [% END %] <!-- NEEDSCONFIRMATION -->
 
         [% IF ( IMPOSSIBLE ) %]
 
-[% IF ( soundon ) %]
-<audio src="[% interface %]/[% theme %]/sound/critical.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
-[% END %]        
-
 <div class="yui-g">
-<div id="circ_impossible" class="dialog alert">
+<div id="circ_impossible" class="dialog alert audio-alert-warning">
+    [% IF ( UNKNOWN_BARCODE ) %]
+        <h3>Barcode not found</h3>
+    [% END %]
 <!-- RESULT OF ISSUING REQUEST -->
         <ul>
         [% IF ( STATS ) %]
@@ -382,10 +437,10 @@ $(document).ready(function() {
         [% END %]
 
         [% IF ( UNKNOWN_BARCODE ) %]
-            <li>The barcode was not found [% barcode |html %]
+            <li>The barcode was not found: <span class="ex">[% barcode |html %]</span>
            [% IF ( fast_cataloging ) %]
                [% IF ( CAN_user_editcatalogue_fast_cataloging ) %]
-            <a href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=FA&amp;barcode=[% barcode |uri %]&amp;circborrowernumber=[% borrowernumber %]&amp;branch=[% branch %]&amp;duedatespec=[% duedatespec %]&amp;stickyduedate=[% stickyduedate %]">Fast cataloging</a>
+            <a href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=FA&amp;barcode=[% barcode |uri %]&amp;circborrowernumber=[% borrowernumber %]&amp;branch=[% branch %]&amp;duedatespec=[% duedatespec %]&amp;stickyduedate=[% stickyduedate %]">Add record using fast cataloging</a>
                [% END %]
            [% END %]
 
@@ -396,12 +451,13 @@ $(document).ready(function() {
                     <br />
                     <form method="post" action="/cgi-bin/koha/circ/circulation.pl" autocomplete="off">
                     [% IF (forceallow) %]<input type="hidden" name="forceallow" value="1">[% END %]
+                        <input type="hidden" name="restoreduedatespec" />
                         <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
                         <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
                         <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
                         <input type="hidden" name="branch" value="[% branch %]" />
                         <input type="hidden" name="barcode" value="[% book.barcode %]" />
-                        <input type="submit" name="x" value="Check out [% book.barcode %]: [% book.title %]" />
+                        <button type="submit" name="x"><i class="fa fa-check"></i> Check out [% book.barcode %]: [% book.title %]</button>
                     </form>
                 [% END %]
             [% ELSE %]
@@ -447,6 +503,10 @@ $(document).ready(function() {
             <li>No more renewals possible</li>
         [% END %]
 
+        [% IF NO_RENEWAL_FOR_ONSITE_CHECKOUTS %]
+            <li>This item can not be renewed, it's an on-site checkout</li>
+        [% END %]
+
         [%IF ( AGE_RESTRICTION ) %]
             <li>Age restriction [% AGE_RESTRICTION %].</li>
         [% END %]
@@ -463,6 +523,10 @@ $(document).ready(function() {
             <li>This item belongs to [% Branches.GetName( itemhomebranch ) %] and cannot be checked out from this location.</li>
         [% END %]
 
+        [% IF RETURN_IMPOSSIBLE %]
+            <li>This item must be returned to [% Branches.GetName( branch_to_return ) %].</li>
+        [% END %]
+
         [% IF ( USERBLOCKEDWITHENDDATE ) %]
             <li>Patron has a restriction until [% USERBLOCKEDWITHENDDATE | $KohaDates %].</li>
         [% END %]
@@ -482,15 +546,12 @@ $(document).ready(function() {
 
 </div></div>
 [% ELSE %]
-[% IF ( soundon ) %]
-<audio src="[% interface %]/[% theme %]/sound/beep.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
-[% END %]
-
   [% IF (forceallow) %]
       <div id="overridden_debarment" class="dialog alert">Restriction overridden temporarily</div>
   [% END %]
+[% END %] <!-- /impossible -->
 
-    [% END %] <!-- /impossible -->
+<span class="audio-alert-success"></span>
 
 [% IF ( issued ) %]
 <p>Item checked out</p>
@@ -499,131 +560,132 @@ $(document).ready(function() {
 [% IF ( message ) %]
 [% INCLUDE 'patron-toolbar.inc' %]
 <h4>
-No patron matched <span class="ex">[% message %]</span>
+No patron matched <span class="ex">[% message | html %]</span>
 </h4>
 [% END %]
 
-
-[% IF ( selectborrower ) %]
+[% IF ( borrowers ) %]
 [% INCLUDE 'patron-toolbar.inc' %]
 
-<form method="post" action="/cgi-bin/koha/circ/circulation.pl" id="mainform" name="mainform" autocomplete="off">
-<fieldset id="circ_circulation_selectborrower" class="brief">
-    <legend>Patron selection</legend>
-
-[% IF (forceallow) %]<input type="hidden" name="forceallow" value="1">[% END %]
-    <input type="hidden" name="branch" value="[% branch %]" />
-    <input type="hidden" name="printer" value="[% printer %]" />
-    <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
-    <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
-
-    <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>
-    <fieldset class="action"><input type="submit" value="Select" /></fieldset>
+<fieldset id="circ_circulation_selectborrower">
+    [% INCLUDE 'circ-patron-search-results.inc' destination = "circ" %]
 </fieldset>
-</form>
 [% ELSE %]
 
 <!-- BARCODE ENTRY -->
 
-[% IF ( borrowernumber ) %]
+[% IF borrowernumber and borrower %]
 <div class="yui-g">
-[% IF ( !noissues ) || ( Koha.Preference('OnSiteCheckouts') && Koha.Preference('OnSiteCheckoutsForce') )%]
-[% IF ( flagged ) %]
-<div class="yui-u first">
-[% ELSE %]
-<div>
 
+[% IF privacy == 2 AND NOT Koha.Preference('AnonymousPatron') %]
+    <div class="dialog alert"><strong>Error:</strong> This patron has requested their circulation history be anonymized on check-in, but the AnonymousPatron system preference is empty or incorrect.</div>
 [% END %]
 
+[% IF ( !noissues ) || ( Koha.Preference('OnSiteCheckouts') && Koha.Preference('OnSiteCheckoutsForce') )%]
+<div class="yui-u first">
 
 <form method="post" action="/cgi-bin/koha/circ/circulation.pl" id="mainform" name="mainform" autocomplete="off">
-<fieldset id="circ_circulation_issue">
+    <input type="hidden" name="restoreduedatespec" />
+[% IF ( issue ) %]
+    <fieldset id="circ_circulation_issue" class="lastchecked">
+[% ELSE %]
+    <fieldset id="circ_circulation_issue">
+[% END %]
     [% IF ( DisplayClearScreenButton ) %]
         <span id="clearscreen"><a href="/cgi-bin/koha/circ/circulation.pl" title="Clear screen">x</a></span>
     [% END %]
 
     [% IF (forceallow) %]<input type="hidden" name="forceallow" value="1">[% END %]
 
-    <label for="barcode">Checking out to [% INCLUDE 'patron-title.inc' %]</label>
+    <label class="circ_barcode" for="barcode">Checking out to [% INCLUDE 'patron-title.inc' %]</label>
 
-       <div class="hint">Enter item barcode:</div>
+        [% IF Koha.Preference('itemBarcodeFallbackSearch') %]
+            <div class="hint">Enter item barcode or keyword:</div>
+        [% ELSE %]
+            <div class="hint">Enter item barcode:</div>
+        [% END %]
 
     [% IF NEEDSCONFIRMATION %]
         <input type="text" name="barcode" id="barcode" class="barcode focus" size="14" disabled="disabled" />
     [% ELSE %]
         <input type="text" name="barcode" id="barcode" class="barcode focus" size="14" />
     [% END %]
-    <button type="submit" class="btn">Check out</button>
+    <button type="submit" class="btn btn-default">Check out</button>
 
-    <div class="date-select">
-        [% IF NEEDSCONFIRMATION %]
-            <input type="checkbox" name="auto_renew" id="auto_renew" value="auto_renew" disabled="disabled" />
-        [% ELSE %]
-            <input type="checkbox" name="auto_renew" id="auto_renew" value="auto_renew" />
-        [% END %]
-        <label for="auto_renew">Automatic renewal</label>
+    <div id="show-checkout-settings">
+        <a href="#"><i class="fa fa-caret-right checkout-settings-icon"></i> Checkout settings</a>
     </div>
 
-    [% UNLESS ( noissues && Koha.Preference('OnSiteCheckoutsForce') ) %]
-        [% IF ( SpecifyDueDate ) %]
-            <div class="date-select">
-                <div class="hint">Specify due date [% INCLUDE 'date-format.inc' %]: </div>
-                [% IF ( duedatespec ) %]
-                    <input type="text" size="13" id="duedatespec" name="duedatespec" value="[% duedatespec %]" readonly="readonly" />
+    <div class="checkout-settings">
+
+        [% UNLESS ( noissues && Koha.Preference('OnSiteCheckoutsForce') ) %]
+            [% IF ( SpecifyDueDate ) %]
+                <div id="specify-due-date" class="checkout-setting">
+                    <div class="hint">Specify due date [% INCLUDE 'date-format.inc' %]: </div>
+                    [% IF ( duedatespec ) %]
+                        <input type="text" size="13" id="duedatespec" name="duedatespec" value="[% duedatespec %]" />
+                    [% ELSE %]
+                        <input type="text" size="13" id="duedatespec" name="duedatespec" value="" />
+                    [% END %]
+                    <label for="stickyduedate"> Remember for session:</label>
+                    [% IF ( stickyduedate ) %]
+                        <input type="checkbox" id="stickyduedate" onclick="this.form.barcode.focus();" name="stickyduedate" checked="checked" />
+                    [% ELSE %]
+                        <input type="checkbox" id="stickyduedate" onclick="this.form.barcode.focus();" name="stickyduedate" />
+                    [% END %]
+                    <button class="btn btn-default btn-sm action" id="cleardate" name="cleardate" onclick="this.checked = false; this.form.duedatespec.value = ''; this.form.stickyduedate.checked = false; this.form.barcode.focus(); return false;" >Clear</button>
+                </div>
+            [% END %]
+        [% END %]
+
+        [% UNLESS ( noissues ) %]
+            <div id="set-automatic-renewal" class="checkout-setting">
+                [% IF NEEDSCONFIRMATION %]
+                    <input type="checkbox" name="auto_renew" id="auto_renew" value="auto_renew" disabled="disabled" />
                 [% ELSE %]
-                    <input type="text" size="13" id="duedatespec" name="duedatespec" value="" readonly="readonly" />
+                    <input type="checkbox" name="auto_renew" id="auto_renew" value="auto_renew" />
                 [% END %]
-                <label for="stickyduedate"> Remember for session:</label>
-                [% IF ( stickyduedate ) %]
-                    <input type="checkbox" id="stickyduedate" onclick="this.form.barcode.focus();" name="stickyduedate" checked="checked" />
+
+                <label for="auto_renew">Automatic renewal</label>
+            </div>
+            [% IF Koha.Preference('decreaseLoanHighHolds') %]
+                <div id="set_high_holds_overrride" class="checkout-setting">
+                    [% IF NEEDSCONFIRMATION %]
+                        [% IF override_high_holds %]
+                            <input type="checkbox" name="override_high_holds" id="override_high_holds" value="1" disabled="disabled" checked="checked"/>
+                        [% ELSE %]
+                            <input type="checkbox" name="override_high_holds" id="override_high_holds" value="1" disabled="disabled"/>
+                        [% END %]
+                    [% ELSE %]
+                        [% IF override_high_holds %]
+                            <input type="checkbox" name="override_high_holds" id="override_high_holds" value="1" checked="checked" />
+                        [% ELSE %]
+                            <input type="checkbox" name="override_high_holds" id="override_high_holds" value="1" />
+                        [% END %]
+                    [% END %]
+                    <label for="override_high_holds">Don't decrease checkout length based on holds</label>
+                </div>
+            [% END %]
+        [% END %]
+
+        [% IF Koha.Preference('OnSiteCheckouts') %]
+            <div id="onsite_checkout-select" class="checkout-setting">
+                [% IF noissues %]
+                    <div class="onsite-checkout-only">
+                        <input type="checkbox" id="onsite_checkout" name="onsite_checkout_forced" checked="checked" disabled="disabled" /> <label for="onsite_checkout">On-site checkouts only. Automatic due date: </label>
+                        <input type="text" name="duedatespec" id="duedatespec" />
+                        <input type="hidden" name="onsite_checkout" checked="checked" value="1" />
+                    </div>
                 [% ELSE %]
-                    <input type="checkbox" id="stickyduedate" onclick="this.form.barcode.focus();" name="stickyduedate" />
+                    <input type="checkbox" id="onsite_checkout" name="onsite_checkout" /> <label for="onsite_checkout">On-site checkout</label>
                 [% END %]
-                <button class="btn btn-small action" id="cleardate" name="cleardate" onclick="this.checked = false; this.form.duedatespec.value = ''; this.form.stickyduedate.checked = false; this.form.barcode.focus(); return false;" >Clear</button>
             </div>
         [% END %]
-    [% END %]
 
-    [% IF Koha.Preference('OnSiteCheckouts') %]
-        <div class="onsite_checkout-select">
-            [% IF noissues %]
-                <div class="onsite-checkout-only">
-                    <input type="checkbox" id="onsite_checkout" name="onsite_checkout_forced" checked="checked" disabled="disabled" /> <label for="onsite_checkout">On-site checkouts only. Automatic due date: </label>
-                    <input type="text" name="duedatespec" id="duedatespec" readonly="readonly" />
-                    <input type="hidden" name="onsite_checkout" checked="checked" value="1" />
-                </div>
-            [% ELSE %]
-                <input type="checkbox" id="onsite_checkout" name="onsite_checkout" /> <label for="onsite_checkout">On-site checkout</label>
-            [% END %]
-        </div>
-    [% END %]
+    </div> <!-- /.checkout-settings -->
 
           <input type="hidden" name="borrowernumber" id="borrowernumber" value="[% borrowernumber %]" />
           <input type="hidden" name="branch" value="[% branch %]" />
-          <input type="hidden" name="printer" value="[% printer %]" />
           <input type="hidden" name="print" value="maybe" />
           <input type="hidden" name="debt_confirmed" value="[% debt_confirmed %]" />
                 [% IF ( CHARGES ) %]
@@ -631,7 +693,14 @@ No patron matched <span class="ex">[% message %]</span>
                         <input type="hidden" name="oldamount" value="[% amountold %]" />
                 [% END %]
 </fieldset>
-</form></div>[% END %]<!-- /unless noissues -->
+[% IF ( issue ) %]
+    <div class="lastchecked">
+        <p><strong>Checked out: </strong>[% issue.item.biblioitemnumber.biblionumber.title %] ([% issue.item.barcode %]). Due on [% issue.date_due | $KohaDates %]</p>
+    </div>
+[% END %]
+</form></div>
+
+[% END %]<!-- /unless noissues -->
 
 [% IF ( noissues ) %]
     [% IF ( Koha.Preference('OnSiteCheckouts') && Koha.Preference('OnSiteCheckoutsForce') ) %]
@@ -643,7 +712,6 @@ No patron matched <span class="ex">[% message %]</span>
     <div class="yui-u">
 [% END %]
 
-    [% IF flagged %]
         [% IF ( noissues ) %]
             [% IF ( Koha.Preference('OnSiteCheckouts') && Koha.Preference('OnSiteCheckoutsForce') ) %]
                 <div id="circmessages" class="circmessage attention">
@@ -664,9 +732,17 @@ No patron matched <span class="ex">[% message %]</span>
 
                <ul>
 
+                   [% IF ( has_modifications ) %]
+                    <li><span class="circ-hlt">Pending modifications:</span> Patron has pending modifications.
+                            [% IF CAN_user_borrowers && ( !Koha.Preference('IndependentBranchesPatronModifications') || borrower.branch == branch ) %]
+                                    <a href="/cgi-bin/koha/members/members-update.pl">View all pending patron modifications</a>
+                            [% END %]
+                   </li>
+                  [% END %]
+
                        [% IF ( warndeparture ) %]
                        <li><span class="circ-hlt">Expiration:</span> Patron's card will expire soon.
-                       Patron's card expires on [% expiry %] <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% borrowernumber %]&amp;cardnumber=[% cardnumber %]&amp;destination=circ&amp;reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=[% borrowernumber %]&amp;categorycode=[% categorycode %]">Edit Details</a>
+            Patron's card expires on [% expiry | $KohaDates %] <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% borrowernumber %]&amp;destination=circ&amp;reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=[% borrowernumber %]&amp;categorycode=[% categorycode %]">Edit Details</a>
 
                        </li>
                        [% END %]
@@ -679,7 +755,7 @@ No patron matched <span class="ex">[% message %]</span>
 
                        [% IF ( expired ) %]
                        <li><span class="circ-hlt">Expiration:</span> Patron's card has expired.
-                       [% IF ( expiry ) %]Patron's card expired on [% expiry %][% END %] <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% borrowernumber %]&amp;cardnumber=[% cardnumber %]&amp;destination=circ&amp;reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=[% borrowernumber %]&amp;categorycode=[% categorycode %]">Edit Details</a>
+            [% IF ( expiry ) %]Patron's card expired on [% expiry | $KohaDates %][% END %] <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% borrowernumber %]&amp;destination=circ&amp;reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=[% borrowernumber %]&amp;categorycode=[% categorycode %]">Edit Details</a>
 
                        </li>
                        [% END %]
@@ -697,60 +773,79 @@ No patron matched <span class="ex">[% message %]</span>
                    <span class="circ-hlt"> Restricted:</span> Patron's account is restricted
 
                    [% IF ( userdebarreddate ) %]
-                       until [% userdebarreddate %]
+                       until [% userdebarreddate | $KohaDates %]
                    [% END %]
 
                    [% IF ( debarredcomment ) %]
-                       with the explanation: <br/><i>[% debarredcomment | html_line_break %]</i>
+                       with the explanation: <br/><i>
+                          [% IF debarredcomment.search('OVERDUES_PROCESS') %]
+                              Restriction added by overdues process [% debarredcomment.remove('OVERDUES_PROCESS ') | html_line_break %]
+                          [% ELSE %]
+                              [% debarredcomment | html_line_break %]
+                          [% END %]
+                    </i>
                    [% END %]
-
                    <br/>
-                   <a class="btn btn-small" href="#reldebarments" onclick="$('#debarments-tab-link').click()"><i class="icon-ban-circle"></i> View restrictions</a>
+                   <a class="btn btn-default btn-sm" href="#reldebarments" onclick="$('#debarments-tab-link').click()"><i class="fa fa-ban"></i> View restrictions</a>
                     [% IF (noissues && borrowernumber && CAN_user_circulate_force_checkout) %]
                         <span class="override_debarment">
-                            <a href="/cgi-bin/koha/circ/circulation.pl?forceallow=1&amp;borrowernumber=[% borrowernumber %]" class="btn btn-small">Override restriction temporarily</a>
+                            <a href="/cgi-bin/koha/circ/circulation.pl?forceallow=1&amp;borrowernumber=[% borrowernumber %]" class="btn btn-default btn-sm">Override restriction temporarily</a>
                         </span>
                     [% END %]
                </li>
             [% END %]
 
-               [% IF ( odues ) %]<li>[% IF ( nonreturns ) %]<span class="circ-hlt">Overdues:</span> Patron has <span class="circ-hlt">ITEMS OVERDUE</span>. See highlighted items <a href="#checkouts">below</a>[% END %]</li>
+                [% IF ( odues ) %]<li>[% IF ( nonreturns ) %]<span class="circ-hlt">Overdues: Patron has ITEMS OVERDUE.</span> <a href="#checkouts">See highlighted items below</a>[% END %]</li>
             [% END %]
 
-               [% IF ( charges ) %]
-                           <li>
-            <span class="circ-hlt">Fees &amp; Charges:</span> Patron has  <a href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% borrowernumber %]">Outstanding fees &amp; charges[% IF ( chargesamount ) %] of [% chargesamount %][% END %]</a>.
-                [% IF ( charges_is_blocker ) %]
-                    Checkouts are <span class="circ-hlt">BLOCKED</span> because fine balance is <span class="circ-hlt">OVER THE LIMIT</span>.
-                [% END %]
-            <a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% borrowernumber %]">Make payment</a></li>
-                       [% END %]
+            [% IF ( charges ) %]
+                [% INCLUDE 'blocked-fines.inc'
+                    fines = chargesamount
+                %]
+            [% END %]
 
-               [% IF ( credits ) %]
-                       <li>
-                <span class="circ-hlt">Credits:</span> Patron has a credit[% IF ( creditsamount ) %] of [% creditsamount %][% END %]
-            </li>
-                       [% END %]
+            [% IF ( charges_guarantees ) %]
+                <li>
+                    <span class="circ-hlt">Fees &amp; Charges:</span> Patron's guarantees collectively owe [% chargesamount_guarantees %].
+                        [% IF ( charges_guarantees_is_blocker ) %]
+                            <span class="circ-hlt">Checkouts are BLOCKED because fine balance is OVER THE LIMIT.</span>
+                        [% END %]
+                </li>
+            [% END %]
 
 
+            [% IF ( credits ) %]
+                <li>
+                    <span class="circ-hlt">Credits:</span> Patron has a credit[% IF ( creditsamount ) %] of [% creditsamount %][% END %]
+                </li>
+            [% END %]
 
                        </ul>
         </div>
 
-                       [% IF ( WaitingReserveLoop ) %]
-                       <div id="holdswaiting" class="circmessage">
-                   <h4>Holds waiting:</h4>
-                               [% FOREACH WaitingReserveLoo IN WaitingReserveLoop %]
-                                   <ul>
-                                       <li> <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% WaitingReserveLoo.biblionumber %]">[% WaitingReserveLoo.title |html %]</a> ([% WaitingReserveLoo.itemtype %]), [% IF ( WaitingReserveLoo.author ) %]by [% WaitingReserveLoo.author %][% END %] [% IF ( WaitingReserveLoo.itemcallnumber ) %][[% WaitingReserveLoo.itemcallnumber %]] [% END %]Hold placed on [% WaitingReserveLoo.reservedate %].
-                                   [% IF ( WaitingReserveLoo.waitingat ) %]
-                                       <br />[% IF ( WaitingReserveLoo.waitinghere ) %]<strong class="waitinghere">[% ELSE %]<strong>[% END %]Waiting at [% WaitingReserveLoo.waitingat %]</strong>
-                                   [% END %]
-                                       </li>
-                                   </ul>
-                           [% END %]
-                       </div>
-                       <!-- /If WaitingReserveLoop -->[% END %]
+            [% IF WaitingHolds.count %]
+                <div id="holdswaiting" class="circmessage">
+                    <h4>Holds waiting:</h4>
+                    [% FOREACH w IN WaitingHolds %]
+                        <ul>
+                            <li>
+                                <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% w.biblio.biblionumber %]">[% w.biblio.title | html %]</a>
+                                ([% ItemTypes.GetDescription( w.item.effective_itemtype ) %]),
+                                [% IF ( w.biblio.author ) %] by [% w.biblio.author | html %] [% END %]
+                                [% IF ( w.item.itemcallnumber ) %] [[% w.item.itemcallnumber %]] [% END %]
+                                Hold placed on [% w.reservedate | $KohaDates %].
+
+                                <br/>
+                                [% IF ( w.branch.branchcode == Branches.GetLoggedInBranchcode()  ) %]<strong class="waitinghere">[% ELSE %]<strong>[% END %]
+                                    [% SET waiting_expires_on = w.waiting_expires_on %]
+                                    Waiting at [% w.branch.branchname | html %] [% IF waiting_expires_on %] until [% waiting_expires_on | $KohaDates %] [% END %]
+                                </strong>
+                            </li>
+                        </ul>
+                    [% END %]
+                </div>
+            [% END %]
+
        [% IF ( notes ) %]
                        <div id="circnotes" class="circmessage">
                        <h4>Notes:</h4>
@@ -760,38 +855,31 @@ No patron matched <span class="ex">[% message %]</span>
 
     <!-- /If notes -->[% END %]
 
-       <div id="messages" class="circmessage">
-               <h4>Messages:</h4>
-               <ul>
-                       [% FOREACH lib_messages_loo IN lib_messages_loop %]
-                               <li>
-                                       <span class="circ-hlt">
-                                               [% lib_messages_loo.message_date_formatted %]
-                                               [% lib_messages_loo.branchcode %]
-                                               <i>"[% lib_messages_loo.message %]"</i>
-                                       </span>
-                                       [% IF ( lib_messages_loo.can_delete ) %]
-                                               <a href="/cgi-bin/koha/circ/del_message.pl?message_id=[% lib_messages_loo.message_id %]&amp;borrowernumber=[% lib_messages_loo.borrowernumber %]">[Delete]</a>
-                                       [% ELSE %]
-                                               [% IF ( all_messages_del ) %]
-                                                       <a href="/cgi-bin/koha/circ/del_message.pl?message_id=[% lib_messages_loo.message_id %]&amp;borrowernumber=[% lib_messages_loo.borrowernumber %]">[Delete]</a>
-                                               [% END %]
-                                       [% END %]
-                               </li>
-                       [% END %]
-                       [% FOREACH bor_messages_loo IN bor_messages_loop %]
-                               <li><span class="">[% bor_messages_loo.message_date_formatted %] [% bor_messages_loo.branchcode %] <i>"[% bor_messages_loo.message %]"</i></span> [% IF ( bor_messages_loo.can_delete ) %]<a href="/cgi-bin/koha/circ/del_message.pl?message_id=[% bor_messages_loo.message_id %]&amp;borrowernumber=[% bor_messages_loo.borrowernumber %]">[Delete]</a>
-                [% ELSIF ( all_messages_del ) %]
-                    <a href="/cgi-bin/koha/circ/del_message.pl?message_id=[% bor_messages_loo.message_id %]&amp;borrowernumber=[% bor_messages_loo.borrowernumber %]">[Delete]</a>
-                [% END %]</li>
-                       [% END %]
-
-               </ul>
-       </div>  
-       
-     <!-- /If flagged -->[% END %]
-
-       
+    <div id="messages" class="circmessage">
+        <h4>Messages:</h4>
+        <ul>
+            [% FOREACH message IN messages %]
+                <li>
+                    [% IF(message.message_type == "L") %]
+                        <span class="circ-hlt">
+                    [% ELSE %]
+                        <span>
+                    [% END %]
+                        [% message.message_date | $KohaDates %]
+                        [% Branches.GetName( message.branchcode ) %]
+                        [% IF message.manager_id %]
+                            ( <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% message.manager_id %]">[% message.get_column('manager_firstname') %] [% message.get_column('manager_surname') %]</a> )
+                        [% END %]
+                        <i>"[% message.message %]"</i>
+                    </span>
+                    [% IF message.branchcode == branch OR Koha.Preference('AllowAllMessageDeletion') %]
+                        <a class="btn btn-link btn-sm" href="/cgi-bin/koha/circ/del_message.pl?message_id=[% message.message_id %]&amp;borrowernumber=[% message.borrowernumber %]" onclick="return confirm(MSG_CONFIRM_DELETE_MESSAGE);"><i class="fa fa-trash"></i> Delete</a>
+                    [% END %]
+                </li>
+            [% END %]
+        </ul>
+        <a id="addnewmessageLabel" href="#add_message_form" class="btn btn-link btn-sm" data-toggle="modal"><i class="fa fa-plus"></i> Add a new message</a>
+    </div>
 
 </div>
 </div>
@@ -807,6 +895,16 @@ No patron matched <span class="ex">[% message %]</span>
         [% END %]
     </li>
 
+    [% SET enrollments = patron.get_club_enrollments.size || 0 %]
+    [% SET enrollable  = patron.get_enrollable_clubs.size || 0 %]
+    [% IF CAN_user_clubs && ( enrollable || enrollments ) %]
+        <li>
+            <a id="clubs-tab-link" href="#clubs-tab">
+                Clubs ([% enrollments %]/[% enrollable %])
+            </a>
+        </li>
+    [% END %]
+
     [% IF relatives_issues_count %]
         <li><a id="relatives-issues-tab" href="#relatives-issues">Relatives' checkouts</a></li>
     [% END %]
@@ -819,6 +917,12 @@ No patron matched <span class="ex">[% message %]</span>
         [% END %]
     </li>
 
+    [% IF Koha.Preference('ArticleRequests') %]
+        <li>
+            <a href="#article-requests" id="article-requests-tab"> [% patron.article_requests_current.count %] Article requests</a>
+        </li>
+    [% END %]
+
     <li><a id="debarments-tab-link" href="#reldebarments">[% debarments.size %] Restrictions</a></li>
 </ul>
 
@@ -835,10 +939,12 @@ No patron matched <span class="ex">[% message %]</span>
                     <th scope="col">Due date</th>
                     <th scope="col">Title</th>
                     <th scope="col">Item type</th>
+                    <th scope="col">Location</th>
                     <th scope="col">Checked out on</th>
                     <th scope="col">Checked out from</th>
                     <th scope="col">Call no</th>
                     <th scope="col">Charge</th>
+                    <th scope="col">Fine</th>
                     <th scope="col">Price</th>
                     <th scope="col">Patron</th>
                 </tr>
@@ -847,6 +953,12 @@ No patron matched <span class="ex">[% message %]</span>
     </div>
 [% END %]
 
+[% IF CAN_user_clubs && ( enrollable || enrollments ) %]
+    <div id="clubs-tab">
+        Loading...
+    </div>
+[% END %]
+
 [% INCLUDE borrower_debarments.inc %]
 
 <div id="reserves">
@@ -860,9 +972,11 @@ No patron matched <span class="ex">[% message %]</span>
                     <th>Title</th>
                     <th>Call number</th>
                     <th>Barcode</th>
+                    <th>Pickup at</th>
                     <th>Expiration</th>
                     <th>Priority</th>
                     <th>Delete?</th>
+                    <th>Suspend?</th>
                 </tr>
             </thead>
         </table>
@@ -881,7 +995,7 @@ No patron matched <span class="ex">[% message %]</span>
 
             [% IF AutoResumeSuspendedHolds %]
             <label for="suspend_until">until</label>
-            <input type="text" size="10" id="suspend_until" name="suspend_until" class="datepicker" />
+            <input type="text" size="10" id="suspend_until" name="suspend_until datepicker" />
             <span class="hint">Specify date on which to resume [% INCLUDE 'date-format.inc' %]: </span>
              [% END %]
         </form>
@@ -902,20 +1016,38 @@ No patron matched <span class="ex">[% message %]</span>
 [% END %]
 </div> <!-- reservesloop -->
 
-[% END %] <!-- borrowernumber -->
-</div></div>
+[% IF Koha.Preference('ArticleRequests') %]
+    [% INCLUDE 'patron-article-requests.inc' %]
 [% END %]
 
-
-
+[% ELSIF borrowernumber %]
+    <div class="dialog message">This patron does not exist. <a href="/cgi-bin/koha/members/members-home.pl">Find another patron?</a></div>
+[% END %] <!-- borrowernumber and borrower-->
+</div></div>
+[% END %]
+[% IF Koha.Preference('CircSidebar') %]
+[% UNLESS ( borrowers ) %]
+    [% IF not( borrowernumber and borrower ) %]
+        <div class="yui-b noprint">
+            [% INCLUDE 'circ-nav.inc' %]
+        </div>
+    [% END %]
+[% END %]
+[% END %]
 </div>
 </div>
-[% UNLESS ( borrowers ) %][% IF ( borrowernumber ) %]<div class="yui-b">
-[% INCLUDE 'circ-menu.inc' %]
-</div>[% END %][% END %]
+[% UNLESS ( borrowers ) %]
+    [% IF borrowernumber and borrower %]
+        <div class="yui-b">
+            [% INCLUDE 'circ-menu.inc' %]
+        </div>
+    [% END %]
+[% END %]
 </div>
 <!-- Modal -->
-<div id="barcodeSubmittedModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="barcodeSubmittedModalLabel" aria-hidden="true">
+<div id="barcodeSubmittedModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="barcodeSubmittedModalLabel" aria-hidden="true">
+    <div class="modal-dialog">
+    <div class="modal-content">
     <div class="modal-header">
         <h3 id="barcodeSubmittedModalLabel">Barcode submitted</h3>
     </div>
@@ -923,5 +1055,7 @@ No patron matched <span class="ex">[% message %]</span>
     <div class="modal-body">
         <p>You have already submitted a barcode, please wait for the checkout to process...</p>
     </div>
+    </div>
+    </div>
 </div>
 [% INCLUDE 'intranet-bottom.inc' %]