Bug 20341: Use AuthorisedValues plugin on the staff side
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / catalogue / detail.tt
index 2b6583b..635781b 100644 (file)
@@ -4,6 +4,12 @@
 [% USE Branches %]
 [% USE Biblio %]
 
+[% IF Koha.Preference('AmazonAssocTag') %]
+    [% AmazonAssocTag = '?tag=' _ Koha.Preference('AmazonAssocTag') %]
+[% ELSE %]
+    [% AmazonAssocTag = '' %]
+[% END %]
+
 [% ShowCourseReserves = 0 %]
 [% IF UseCourseReserves %]
     [% FOREACH item IN itemloop %]
@@ -17,8 +23,8 @@
     [% END %]
 [% END %]
 
+[% SET footerjs = 1 %]
 [% INCLUDE 'doc-head-open.inc' %]
-[% INCLUDE 'greybox.inc' %]
 <title>Koha &rsaquo; Catalog &rsaquo;
   [% IF ( unknownbiblionumber ) %]
     Unknown record
     Details for [% title |html %] [% FOREACH subtitl IN subtitle %] [% subtitl.subfield | html %][% END %]
   [% END %]
 </title>
-
-[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectProfile') && ( normalized_isbn || normalized_upc ) ) %]
-    <script type="text/javascript" src="https://imageserver.ebscohost.com/novelistselect/ns2init.js"></script>
-[% END %]
-
-[% INCLUDE 'doc-head-close.inc' %]<script type="text/JavaScript">
-//<![CDATA[
-// http://www.oreillynet.com/pub/a/javascript/2003/10/21/amazonhacks.html
-function verify_images() {
-    $("#bookcoverimg").each(function(i){
-        $(this).find('img').each(function(i){
-           if ((this.src.indexOf('images.amazon.com') >= 0) || (this.src.indexOf('g-images.amazon.com') >=0) || (this.src.indexOf('images-na.ssl-images-amazon.com'))) {
-                w = this.width;
-                h = this.height;
-                if ((w == 1) || (h == 1)) {
-                    $("#amazon-bookcoverimg").remove();
-                    $(".yui-gb").attr("class","yui-g");
-                } else if ((this.complete != null) && (!this.complete)) {
-                    $("#amazon-bookcoverimg").remove();
-                    $(".yui-gb").attr("class","yui-g");
-                }
-            }
-        });
-        if( $(this).find('img').length < 1 ) $(this).remove();
-    });
-       $("#editions img").each(function(i){
-           if ((this.src.indexOf('images.amazon.com') >= 0) || (this.src.indexOf('g-images.amazon.com') >=0) || (this.src.indexOf('images-na.ssl-images-amazon.com'))) {
-            w = this.width;
-            h = this.height;
-            if ((w == 1) || (h == 1)) {
-                          this.src = 'https://images-na.ssl-images-amazon.com/images/G/01/x-site/icons/no-img-sm.gif';
-            } else if ((this.complete != null) && (!this.complete)) {
-                             this.src = 'https://images-na.ssl-images-amazon.com/images/G/01/x-site/icons/no-img-sm.gif';
-            }
-        }
-        });
-}
-
-    function removeLocalImage(imagenumber) {
-
-        $.ajax({
-            url: "/cgi-bin/koha/svc/cover_images?action=delete&biblionumber=" + [% biblionumber %] + "&imagenumber=" + imagenumber,
-            success: function(data) {
-                $(data).each( function(i) {
-                    if ( this.deleted == 1 ) {
-                        $('#imagenumber-' + this.imagenumber).remove();
-                    }
-                    if ( $('ul.thumbnails > li').length == 0 ) {
-                        showNoImageMessage();
-                    }
-                });
-            },
-            error: function(data) {
-                alert(_("An error occurred on deleting this image"));
-            }
-        });
-
-    }
-
-    function showNoImageMessage() {
-
-        var no_images_msg = _("No images have been uploaded for this bibliographic record yet.");
-        no_images_msg = '<p>' + no_images_msg + '</p>';
-    [% IF ( CAN_user_tools_upload_local_cover_images ) %]
-        var please_upload = _("Please select the image file to upload. %sUpload%s").format(
-            "<a class='btn btn-mini' href='/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber %]&amp;filetype=image'><i class='fa fa-upload' aria-hidden='true'></i> ",
-            "</a>");
-        no_images_msg += "<p id='upload_image'>" + please_upload + '</p>';
-    [% END %]
-
-        $('#images').html(no_images_msg);
-    }
-
-    [% IF StaffDetailItemSelection %]
-
-        function itemSelectionBuildDeleteLink(div) {
-            var itemnumbers = new Array();
-            $("input[name='itemnumber'][type='checkbox']:checked", div).each(function() {
-                itemnumbers.push($(this).val());
-            });
-            if (itemnumbers.length > 0) {
-                  var url = '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1';
-                  url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
-                  url += '&src=' + '[% "/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber" |uri %]';
-                  $('a.itemselection_action_delete').attr('href', url);
-            } else {
-                return false;
-            }
-            return true
-        }
-
-        function itemSelectionBuildModifyLink(div) {
-            var itemnumbers = new Array();
-            $("input[name='itemnumber'][type='checkbox']:checked", div).each(function() {
-                itemnumbers.push($(this).val());
-            });
-            if (itemnumbers.length > 0) {
-                  var url = '/cgi-bin/koha/tools/batchMod.pl?op=show';
-                  url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
-                  url += '&src=' + '[% "/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber" |uri %]';
-                  $('a.itemselection_action_modify').attr('href', url);
-            } else {
-                return false;
-            }
-            return true;
-        }
-
-        function itemSelectionBuildActionLinks(tab) {
-            var div = $("#" + tab);
-          var delete_link_ok = itemSelectionBuildDeleteLink(div);
-          var modify_link_ok = itemSelectionBuildModifyLink(div);
-          if (modify_link_ok || delete_link_ok) {
-            $('.itemselection_actions', div).show();
-          } else {
-            $('.itemselection_actions', div).hide();
-          }
-        }
-
-        $(document).ready(function() {
-
-          $('table.items_table').each(function() {
-            var div = $(this).parent().attr("id");
-            itemSelectionBuildActionLinks(div);
-          });
-
-          $("input[name='itemnumber'][type='checkbox']").change(function() {
-            var div = $(this).parents('table').parent().parent().attr("id");
-            itemSelectionBuildActionLinks(div);
-          });
-
-            $(".SelectAll").on("click",function(e){
-                e.preventDefault();
-                var tab = $(this).data("tab");
-                $("input[name='itemnumber'][type='checkbox']", $("#"+tab)).prop('checked', true);
-                itemSelectionBuildActionLinks(tab);
-            });
-
-            $(".ClearAll").on("click",function(e){
-                e.preventDefault();
-                var tab = $(this).data("tab");
-                $("input[name='itemnumber'][type='checkbox']", $("#"+tab)).prop('checked', false);
-                itemSelectionBuildActionLinks(tab);
-            });
-
-        });
-    [% END %]
-
-    $(document).ready(function() {
-        $('#bibliodetails').tabs();
-        [% IF count == 0 %]
-            $('#bibliodetails').tabs("option", "active", 3);
-        [% END %]
-        $('#search-form').focus();
-        $('.thumbnails > li > a > span.remove').click(function() {
-            var result = confirm(_("Are you sure you want to delete this cover image?"));
-
-            if ( result == true ) {
-                var imagenumber = $(this).parent().parent().attr('id').split('-')[1];
-                removeLocalImage(imagenumber);
-            }
-
-            return false;
-        });
-    [%# inject no images message %]
-    [% IF ( LocalCoverImages && ! localimages.0 ) %]
-        showNoImageMessage();
-    [% END %]
-    [% IF LocalCoverImages %]
-        KOHA.LocalCover.GetCoverFromBibnumber(true);
-    [% END %]
-        $("body").on("click",".previewMARC", function(e){
-            e.preventDefault();
-            var page = $(this).attr("href");
-            $("#marcPreview .modal-body").load(page + " table");
-            $('#marcPreview').modal({show:true});
-        });
-        $("#marcPreview").on("hidden", function(){
-            $("#marcPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface %]/[% theme %]/img/loading-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
-        });
-     [% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectProfile') && ( normalized_isbn || normalized_upc ) ) %]
-         novSelect.loadContentForQuery(
-             {
-                 ClientIdentifier : '[% IF normalized_isbn %][% normalized_isbn %][% ELSE %][% normalized_upc %][% END %]',
-                 ISBN : '[% IF normalized_isbn %][% normalized_isbn %][% ELSE %][% normalized_upc %][% END %]',
-                 version : '2.1'
-             },
-             '[% Koha.Preference('NovelistSelectProfile') %]',
-             '[% Koha.Preference('NovelistSelectPassword') %]',
-             function(d){
-                 if ( d.length > 0 ){ //If no content
-                     $(".NovelistSelect").show();
-                 }
-             });
-     [% END %]
-
-    });
-
-     [% IF ( AmazonCoverImages || LocalCoverImages ) %]$(window).load(function() {
-        verify_images();
-     });[% END %]
-//]]>
-</script>
-<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
-[% INCLUDE 'datatables.inc' %]
-<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.dataTables.columnFilter.js"></script>
-[% INCLUDE 'browser-strings.inc' %]
-<!--[if lt IE 9]>
-<script type="text/javascript" src="[% interface %]/lib/shims/json2.min.js"></script>
-<![endif]-->
-<script type="text/javascript" src="[% interface %]/js/browser.js"></script>
-<script type="text/javascript">
-//<![CDATA[
-    var browser = KOHA.browser('[% searchid %]', parseInt('[% biblionumber %]', 10));
-    browser.show();
-
-    function activate_filters(id) {
-        var table = $("#" + id + " table");
-        if (table.length == 1) {
-            filters_row = table.find('thead tr.filters_row');
-
-                var aoColumns = [];
-                filters_row.find('th').each(function() {
-                    if(this.className === "NoSort"){
-                        aoColumns.push(null);
-                    } else {
-                        aoColumns.push('text');
-                    }
-                });
-
-            if (table.find('thead tr.columnFilter').length == 0) {
-                table.dataTable().columnFilter({
-                    'sPlaceHolder': 'head:after'
-                    ,   'aoColumns': aoColumns
-                });
-                filters_row.addClass('columnFilter');
-            }
-            filters_row.show();
-        }
-
-        $('#' + id + '_activate_filters')
-            .html('<i class="fa fa-filter"></i> ' + _("Deactivate filters") )
-            .unbind('click')
-            .click(function() {
-                deactivate_filters(id);
-                return false;
-            });
-    }
-
-    function deactivate_filters(id) {
-        filters_row = $("#" + id + " table").find('thead tr.filters_row');
-
-        filters_row.find('input[type="text"]')
-            .val('')            // Empty filter text boxes
-            .trigger('keyup')   // Filter (display all rows)
-            .trigger('blur');   // Reset value to the column name
-        filters_row.hide();
-
-        $('#' + id + '_activate_filters')
-            .html('<i class="fa fa-filter"></i> ' + _("Activate filters") )
-            .unbind('click')
-            .click(function() {
-                activate_filters(id);
-                return false;
-            });
-    }
-
-    $(document).ready(function() {
-        var ids = ['holdings', 'otherholdings'];
-        for (var i in ids) {
-            var id = ids[i];
-            var table = $('#' + id + ' table');
-
-            // Duplicate the table header row for columnFilter
-            thead_row = table.find('thead tr');
-            clone = thead_row.clone().addClass('filters_row');
-            clone.find("th.NoSort").html('');
-            thead_row.before(clone);
-
-            // Enable sorting
-            table.dataTable($.extend(true, {}, dataTablesDefaults, {
-                'sDom': 't',
-                'bPaginate': false,
-                'bAutoWidth': false,
-                "aoColumnDefs": [
-                    { "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] }
-                ]
-            }));
-
-            // Show a link to activate filtering
-            link = $('<a>')
-                .attr('href', '#')
-                .attr('id', id + '_activate_filters');
-            $("." + id + "_table_controls").prepend(link);
-            deactivate_filters(id);
-        }
-        [% IF Koha.Preference('AcquisitionDetails') %]
-            $("#orders").dataTable($.extend(true, {}, dataTablesDefaults, {
-                'sDom': 't',
-                'bPaginate': false,
-                'bAutoWidth': false,
-                "aaSorting": [[ 4, "desc" ]],
-                "aoColumnDefs": [
-                    { "aTargets": "title-string", "sType": "title-string" }
-                ]
-            }));
-
-        [% END %]
-    });
-//]]>
-</script>
+[% INCLUDE 'doc-head-close.inc' %]
+<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables_[% KOHA_VERSION %].css" />
 </head>
 
 <body id="catalog_detail" class="catalog">
@@ -434,7 +132,7 @@ function verify_images() {
         [% END %]
         [% IF ( AmazonCoverImages ) %]
             <div id="amazon-bookcoverimg">
-            <a href="http://www.amazon[% AmazonTld %]/gp/reader/[% normalized_isbn %]/ref=sib_dp_pt/002-7879865-0184864#reader-link">
+            <a href="http://www.amazon[% AmazonTld %]/gp/reader/[% normalized_isbn %][% AmazonAssocTag %]#reader-link">
                 <img src="https://images-na.ssl-images-amazon.com/images/P/[% normalized_isbn %].01.MZZZZZZZ.jpg" alt="" />
         </a></div>
         [% END %]
@@ -469,7 +167,7 @@ function verify_images() {
     <li><strong>Published by:</strong>
         <a href="/cgi-bin/koha/catalogue/search.pl?q=pb:[% publishercode |url %]">
             [% publishercode |html %]
-        </a> [% IF ( place ) %]([% place %])[% END %] [% IF ( publicationyear ) %], [% publicationyear %][% END %] [% IF ( editionstatement ) %][% editionstatement %][% END %] [% IF ( editionresponsability ) %][% editionresponsability %][% END %]
+        </a> [% IF ( place ) %]([% place %])[% END %] [% IF ( publicationyear ) %], [% publicationyear %][% END %] [% IF ( editionstatement ) %][% editionstatement %][% END %] [% IF ( editionresponsibility ) %][% editionresponsibility %][% END %]
     </li>
     [% END %]
         <li><strong>Description:</strong>
@@ -508,7 +206,7 @@ function verify_images() {
         [% END %]
         [% IF ( AmazonCoverImages ) %]
             <div id="amazon-bookcoverimg">
-            <a href="http://www.amazon[% AmazonTld %]/gp/reader/[% normalized_isbn %]/ref=sib_dp_pt/002-7879865-0184864#reader-link">
+            <a href="http://www.amazon[% AmazonTld %]/gp/reader/[% normalized_isbn %][% AmazonAssocTag %]#reader-link">
             <img src="https://images-na.ssl-images-amazon.com/images/P/[% normalized_isbn %].01.MZZZZZZZ.jpg" alt="" />
             </a>
         </div>
@@ -553,7 +251,7 @@ function verify_images() {
             <li><strong>Dewey:</strong> [% dewey %]</li>
         [% END %]
         [% IF ( urlS ) %]
-            <li><strong>url:</strong> 
+            <li><strong>URL:</strong>
                 [% FOREACH url IN urlS %]
                     <a href="[% url.url %]">[% url.url %]</a>
                 [% END %]
@@ -583,7 +281,7 @@ function verify_images() {
                     [% END %]
                     </ul></li>
         [% END %]
-            [% IF ( holdcount ) %]<li><strong>Holds:</strong> <span class="holdcount"><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% biblionumber %]">[% holdcount %]</a></span></li>[% ELSE %][% END %]
+            [% IF ( holdcount ) %]<li><strong>Holds:</strong> <span class="number_box"><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% biblionumber %]">[% holdcount %]</a></span></li>[% ELSE %][% END %]
         </ul>
                [% END %]
 
@@ -612,7 +310,7 @@ function verify_images() {
 [% items_table_block_iter = 0 %]
 [% BLOCK items_table %]
     [% items_table_block_iter = items_table_block_iter + 1 %]
-    <div class="[% tab %]_table_controls">
+    <div class="[% tab %]_table_table_controls">
         [% IF (StaffDetailItemSelection) %]
             | <a href="#" class="SelectAll" data-tab="[% tab %]"><i class="fa fa-check"></i> Select all</a> |
             <a href="#" class="ClearAll" data-tab="[% tab %]"><i class="fa fa-remove"></i> Clear all</a>
@@ -627,7 +325,7 @@ function verify_images() {
             </span>
         [% END %]
     </div>
-    <table class="items_table">
+    <table class="items_table" id="[% tab %]_table">
         <thead>
             <tr>
                 [% IF (StaffDetailItemSelection) %]<th class="NoSort"></th>[% END %]
@@ -640,7 +338,7 @@ function verify_images() {
                 <th>Last seen</th>
                 <th>Barcode</th>
                 [% IF ( volinfo ) %]<th>Serial enumeration / chronology</th>[% END %]
-                [% IF ( itemdata_uri ) %]<th>url</th>[% END %]
+                [% IF ( itemdata_uri ) %]<th>URL</th>[% END %]
                 [% IF ( itemdata_copynumber ) %]<th>Copy number</th>[% END %]
                 [% IF ( itemdata_stocknumber ) %]<th>Inventory number</th>[% END %]
                 [% IF materials %]<th>Materials specified</th>[% END %]
@@ -675,7 +373,7 @@ function verify_images() {
                     <td class="itemcallnumber">[% IF ( item.itemcallnumber ) %] [% item.itemcallnumber %][% END %]</td>
                     <td class="status">
 
-                        [% IF ( item.datedue ) %]
+                        [% IF item.CheckedOutFor %]
                           [% IF item.onsite_checkout %]
                             <span>Currently in local use
                           [% ELSE %]
@@ -683,16 +381,11 @@ function verify_images() {
                           [% END %]
                                 [% UNLESS ( item.NOTSAMEBRANCH ) %]
                                   [% IF item.onsite_checkout %]
-                                    by <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% item.borrowernumber %]">
+                                    by
                                   [% ELSE %]
-                                    to <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% item.borrowernumber %]">
+                                    to
                                   [% END %]
-                                        [% IF ( item.hidepatronname ) %]
-                                            [% item.cardnumber %]
-                                        [% ELSE %]
-                                            [% item.firstname %] [% item.surname %]
-                                        [% END %]
-                                    </a>
+                                  [% INCLUDE 'patron-title.inc' patron=item.CheckedOutFor hide_patron_infos_if_needed=1 %]
                                 [% END %]
                                 : due [% item.datedue %]
                             </span>
@@ -700,29 +393,28 @@ function verify_images() {
                             <span class="intransit">In transit from [% Branches.GetName( item.transfertfrom ) %] to [% Branches.GetName( item.transfertto ) %] since [% item.transfertwhen | $KohaDates %]</span>
                         [% END %]
 
+                        [% itemlost_desc = AuthorisedValues.GetByCode( 'LOST', item.itemlost ) %]
                         [% IF ( item.itemlost ) %]
-                            [% IF itemlostloop %]
-                                [% FOREACH itemlostloo IN itemlostloop %]
-                                    [% IF itemlostloo.authorised_value == item.itemlost %]
-                                        <span class="lost">[% itemlostloo.lib %]</span>
-                                    [% END %]
-                                [% END %]
+                            [% IF itemlost_desc %]
+                                <span class="lost">[% itemlost_desc %]</span>
                             [% ELSE %]
                                 <span class="lost">Unavailable (lost or missing)</span>
                             [% END %]
                         [% END %]
 
+                        [% withdrawn_desc = AuthorisedValues.GetByCode( 'WITHDRAWN', item.withdrawn ) %]
                         [% IF ( item.withdrawn ) %]
-                            <span class="wdn">Withdrawn</span>
+                            [% IF withdrawn_desc %]
+                                <span class="wdn">[% withdrawn_desc %]</span>
+                            [% ELSE %]
+                                <span class="wdn">Withdrawn</span>
+                            [% END %]
                         [% END %]
 
+                        [% damaged_desc = AuthorisedValues.GetByCode( 'DAMAGED', item.damaged ) %]
                         [% IF ( item.damaged ) %]
-                            [% IF itemdamagedloop %]
-                                [% FOREACH itemdamagedloo IN itemdamagedloop %]
-                                    [% IF itemdamagedloo.authorised_value == item.damaged %]
-                                        <span class="dmg">[% itemdamagedloo.lib %]</span>
-                                    [% END %]
-                                [% END %]
+                            [% IF damaged_desc %]
+                                <span class="dmg">[% damaged_desc %]</span>
                             [% ELSE %]
                                 <span class="dmg">Damaged</span>
                             [% END %]
@@ -742,13 +434,8 @@ function verify_images() {
                                 Item-level hold (placed [% item.reservedate | $KohaDates %]) for delivery at [% Branches.GetName( item.ExpectedAtLibrary ) %].
                             [% END %]
                             [% IF ( canreservefromotherbranches ) %]
-                                Hold for: <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% item.ReservedForBorrowernumber %]">
-                                    [% IF ( item.hidepatronname ) %]
-                                        [% item.Reservedcardnumber %]
-                                    [% ELSE %]
-                                        [% item.ReservedForFirstname _ " " _ item.ReservedForSurname _ " (" _ item.Reservedcardnumber _ ")" %]
-                                    [% END %]
-                                </a>
+                                Hold for:
+                                [% INCLUDE 'patron-title.inc' patron=item.ReservedFor hide_patron_infos_if_needed=1 %]
                             [% END %]
                         [% END %]
                         [% UNLESS ( item.itemnotforloan || item.notforloan_per_itemtype || item.onloan || item.itemlost || item.withdrawn || item.damaged || item.transfertwhen || item.reservedate ) %]
@@ -769,12 +456,12 @@ function verify_images() {
                                     <span class="enum">[% item.enumchron %]</span>
                                     [% IF ( item.serialseq && item.enumchron!=item.serialseq ) %]
                                         <span class="sep"> -- </span>
-                                        <span class="serialseq">[% item.serialseq %]</span>
+                                        <span class="serialseq">[% item.serialseq | html %]</span>
                                     [% END %]
                                 [% ELSIF item.enumchron %]
-                                    <span class="enum">[% item.enumchron %]</span>
+                                    <span class="enum">[% item.enumchron | html %]</span>
                                 [% ELSIF item.serialseq %]
-                                    <span class="serialseq">[% item.serialseq %]</span>
+                                    <span class="serialseq">[% item.serialseq | html %]</span>
                                 [% END %]
                                 [% IF ( item.publisheddate ) %]
                                     <span class="pubdate">([% item.publisheddate | $KohaDates %])</span>
@@ -838,7 +525,7 @@ function verify_images() {
                 [% IF CAN_user_editcatalogue_edit_items %]
                     <td class="actions">
                         [% UNLESS item.cannot_be_edited %]
-                            <a class="btn btn-mini" href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=[% item.biblionumber %]&itemnumber=[% item.itemnumber %]#edititem"><i class="fa fa-pencil"></i> Edit</a>
+                            <a class="btn btn-default btn-xs" href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=[% item.biblionumber %]&itemnumber=[% item.itemnumber %]#edititem"><i class="fa fa-pencil"></i> Edit</a>
                         [% END %]
                     </td>
                 [% END %]
@@ -1045,11 +732,11 @@ function verify_images() {
 [% IF ( FRBRizeEditions ) %][% IF ( XISBNS ) %]
 <div id="editions"><h4>Editions</h4>
 <table>
-[% FOREACH XISBN IN XISBNS %]<tr>[% IF ( AmazonCoverImages ) %]<td><a href="http://www.amazon.com/gp/reader/[% XISBN.normalized_isbn %]/ref=sib_dp_pt/002-7879865-0184864#reader-link"><img src="https://images-na.ssl-images-amazon.com/images/P/[% XISBN.normalized_isbn %].01._AA75_PU_PU-5_.jpg" /></a></td>[% END %]
+[% FOREACH XISBN IN XISBNS %]<tr>[% IF ( AmazonCoverImages ) %]<td><a href="http://www.amazon.com/gp/reader/[% XISBN.normalized_isbn %][% AmazonAssocTag %]#reader-link"><img src="https://images-na.ssl-images-amazon.com/images/P/[% XISBN.normalized_isbn %].01._AA75_PU_PU-5_.jpg" /></a></td>[% END %]
 [% UNLESS ( item_level_itypes ) %]<td>[% IF ( noItemTypeImages ) %][% XISBN.description %][% ELSE %]<img src="[% XISBN.imageurl %]" alt="[% XISBN.description %]" title="[% XISBN.description %]">[% END %]</td>[% END %]
 <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% XISBN.biblionumber %]">[% XISBN.title |html %]</a> by [% XISBN.author | html %] &copy;[% XISBN.copyrightdate %]
   [% IF ( XISBN.publishercode ) %]
-[% XISBN.publishercode %] [% IF ( XISBN.place ) %]([% XISBN.place %])[% END %] [% IF ( XISBN.publicationyear ) %], [% XISBN.publicationyear %][% END %] [% IF ( XISBN.editionstatement ) %][% XISBN.editionstatement %][% END %] [% IF ( XISBN.editionresponsability ) %][% XISBN.editionresponsability %][% END %]
+[% XISBN.publishercode %] [% IF ( XISBN.place ) %]([% XISBN.place %])[% END %] [% IF ( XISBN.publicationyear ) %], [% XISBN.publicationyear %][% END %] [% IF ( XISBN.editionstatement ) %][% XISBN.editionstatement %][% END %] [% IF ( XISBN.editionresponsibility ) %][% XISBN.editionresponsibility %][% END %]
     [% END %]
                 [% IF ( XISBN.pages ) %] [% END %][% XISBN.pages %] [% IF ( XISBN.illus ) %][% XISBN.illus %][% END %]
                 [% IF ( XISBN.size ) %], [% END %][% XISBN.size %]
@@ -1123,16 +810,20 @@ function verify_images() {
 </form>
 </div>
 
-<div id="marcPreview" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="marcPreviewLabel" aria-hidden="true">
+<div id="marcPreview" class="modal" tabindex="-1" role="dialog" aria-labelledby="marcPreviewLabel" aria-hidden="true">
+    <div class="modal-dialog modal-lg">
+    <div class="modal-content">
     <div class="modal-header">
         <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
         <h3 id="marcPreviewLabel">MARC preview</h3>
     </div>
     <div class="modal-body">
-        <div id="loading"> <img src="[% interface %]/[% theme %]/img/loading-small.gif" alt="" /> Loading </div>
+        <div id="loading"> <img src="[% interface %]/[% theme %]/img/spinner-small.gif" alt="" /> Loading </div>
     </div>
     <div class="modal-footer">
-        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
+        <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
+    </div>
+    </div>
     </div>
 </div>
 
@@ -1144,4 +835,237 @@ function verify_images() {
 [% END %]
 </div>
 
+[% MACRO jsinclude BLOCK %]
+    [% INCLUDE 'catalog-strings.inc' %]
+    <script type="text/javascript" src="[% interface %]/[% theme %]/js/catalog_[% KOHA_VERSION %].js"></script>
+    [% INCLUDE 'greybox.inc' %]
+    <script type="text/javascript">
+        // http://www.oreillynet.com/pub/a/javascript/2003/10/21/amazonhacks.html
+        function verify_images() {
+            $("#bookcoverimg").each(function(i){
+                $(this).find('img').each(function(i){
+                   if ((this.src.indexOf('images.amazon.com') >= 0) || (this.src.indexOf('g-images.amazon.com') >=0) || (this.src.indexOf('images-na.ssl-images-amazon.com'))) {
+                        w = this.width;
+                        h = this.height;
+                        if ((w == 1) || (h == 1)) {
+                            $("#amazon-bookcoverimg").remove();
+                            $(".yui-gb").attr("class","yui-g");
+                        } else if ((this.complete != null) && (!this.complete)) {
+                            $("#amazon-bookcoverimg").remove();
+                            $(".yui-gb").attr("class","yui-g");
+                        }
+                    }
+                });
+                if( $(this).find('img').length < 1 ) $(this).remove();
+            });
+            $("#editions img").each(function(i){
+                if ((this.src.indexOf('images.amazon.com') >= 0) || (this.src.indexOf('g-images.amazon.com') >=0) || (this.src.indexOf('images-na.ssl-images-amazon.com'))) {
+                    w = this.width;
+                    h = this.height;
+                    if ((w == 1) || (h == 1)) {
+                        this.src = 'https://images-na.ssl-images-amazon.com/images/G/01/x-site/icons/no-img-sm.gif';
+                    } else if ((this.complete != null) && (!this.complete)) {
+                        this.src = 'https://images-na.ssl-images-amazon.com/images/G/01/x-site/icons/no-img-sm.gif';
+                    }
+                }
+            });
+        }
+
+        function removeLocalImage(imagenumber) {
+            $.ajax({
+                url: "/cgi-bin/koha/svc/cover_images?action=delete&biblionumber=" + biblionumber + "&imagenumber=" + imagenumber,
+                success: function(data) {
+                    $(data).each( function(i) {
+                        if ( this.deleted == 1 ) {
+                            $('#imagenumber-' + this.imagenumber).remove();
+                        }
+                        if ( $('ul.thumbnails > li').length == 0 ) {
+                            showNoImageMessage();
+                        }
+                    });
+                },
+                error: function(data) {
+                    alert(_("An error occurred on deleting this image"));
+                }
+            });
+        }
+
+        function showNoImageMessage() {
+            var no_images_msg = _("No images have been uploaded for this bibliographic record yet.");
+            no_images_msg = '<p>' + no_images_msg + '</p>';
+            [% IF ( CAN_user_tools_upload_local_cover_images ) %]
+                var please_upload = _("Please select the image file to upload. %sUpload%s").format("<a class='btn btn-default btn-xs' href='/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=" + biblionumber + "&amp;filetype=image'><i class='fa fa-upload' aria-hidden='true'></i> ","</a>");
+                no_images_msg += "<p id='upload_image'>" + please_upload + '</p>';
+            [% END %]
+            $('#images').html(no_images_msg);
+        }
+
+        [% IF StaffDetailItemSelection %]
+            function itemSelectionBuildDeleteLink(div) {
+                var itemnumbers = new Array();
+                $("input[name='itemnumber'][type='checkbox']:checked", div).each(function() {
+                    itemnumbers.push($(this).val());
+                });
+                if (itemnumbers.length > 0) {
+                    var url = '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1';
+                    url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
+                    url += '&src=' + '[% "/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber" |uri %]';
+                    $('a.itemselection_action_delete').attr('href', url);
+                } else {
+                    return false;
+                }
+                return true
+            }
+
+            function itemSelectionBuildModifyLink(div) {
+                var itemnumbers = new Array();
+                $("input[name='itemnumber'][type='checkbox']:checked", div).each(function() {
+                    itemnumbers.push($(this).val());
+                });
+                if (itemnumbers.length > 0) {
+                    var url = '/cgi-bin/koha/tools/batchMod.pl?op=show';
+                    url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
+                    url += '&src=' + '[% "/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber" |uri %]';
+                    $('a.itemselection_action_modify').attr('href', url);
+                } else {
+                    return false;
+                }
+                return true;
+            }
+
+            function itemSelectionBuildActionLinks(tab) {
+                var div = $("#" + tab);
+                var delete_link_ok = itemSelectionBuildDeleteLink(div);
+                var modify_link_ok = itemSelectionBuildModifyLink(div);
+                if (modify_link_ok || delete_link_ok) {
+                    $('.itemselection_actions', div).show();
+                } else {
+                    $('.itemselection_actions', div).hide();
+                }
+            }
+
+            $(document).ready(function() {
+                $('table.items_table').each(function() {
+                    var div = $(this).parent().attr("id");
+                    itemSelectionBuildActionLinks(div);
+                });
+
+                $("input[name='itemnumber'][type='checkbox']").change(function() {
+                    var div = $(this).parents('table').parent().parent().attr("id");
+                    itemSelectionBuildActionLinks(div);
+                });
+
+                $(".SelectAll").on("click",function(e){
+                    e.preventDefault();
+                    var tab = $(this).data("tab");
+                    $("input[name='itemnumber'][type='checkbox']", $("#"+tab)).prop('checked', true);
+                    itemSelectionBuildActionLinks(tab);
+                });
+
+                $(".ClearAll").on("click",function(e){
+                    e.preventDefault();
+                    var tab = $(this).data("tab");
+                    $("input[name='itemnumber'][type='checkbox']", $("#"+tab)).prop('checked', false);
+                    itemSelectionBuildActionLinks(tab);
+                });
+            });
+        [% END %]
+
+        $(document).ready(function() {
+            $('#bibliodetails').tabs();
+            [% IF count == 0 %]
+                $('#bibliodetails').tabs("option", "active", 3);
+            [% END %]
+            $('#search-form').focus();
+            $('.thumbnails > li > a > span.remove').click(function() {
+                var result = confirm(_("Are you sure you want to delete this cover image?"));
+
+                if ( result == true ) {
+                    var imagenumber = $(this).parent().parent().attr('id').split('-')[1];
+                    removeLocalImage(imagenumber);
+                }
+
+                return false;
+            });
+            [%# inject no images message %]
+            [% IF ( LocalCoverImages && ! localimages.0 ) %]
+                showNoImageMessage();
+            [% END %]
+            [% IF LocalCoverImages %]
+                KOHA.LocalCover.GetCoverFromBibnumber(true);
+            [% END %]
+            $("body").on("click",".previewMARC", function(e){
+                e.preventDefault();
+                var page = $(this).attr("href");
+                $("#marcPreview .modal-body").load(page + " table");
+                $('#marcPreview').modal({show:true});
+            });
+            $("#marcPreview").on("hidden", function(){
+                $("#marcPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface %]/[% theme %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
+            });
+            [% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectProfile') && ( normalized_isbn || normalized_upc ) ) %]
+                novSelect.loadContentForQuery({
+                    ClientIdentifier : '[% IF normalized_isbn %][% normalized_isbn %][% ELSE %][% normalized_upc %][% END %]',
+                    ISBN : '[% IF normalized_isbn %][% normalized_isbn %][% ELSE %][% normalized_upc %][% END %]',
+                    version : '2.1'
+                },
+                '[% Koha.Preference('NovelistSelectProfile') %]',
+                '[% Koha.Preference('NovelistSelectPassword') %]',
+                function(d){
+                    if ( d.length > 0 ){ //If no content
+                        $(".NovelistSelect").show();
+                    }
+                 });
+             [% END %]
+
+        });
+
+        [% IF ( AmazonCoverImages || LocalCoverImages ) %]$(window).load(function() {
+            verify_images();
+        });[% END %]
+    </script>
+    [% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectProfile') && ( normalized_isbn || normalized_upc ) ) %]
+        <script type="text/javascript" src="https://imageserver.ebscohost.com/novelistselect/ns2init_[% KOHA_VERSION %].js"></script>
+    [% END %]
+    [% INCLUDE 'datatables.inc' %]
+    <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.dataTables.columnFilter_[% KOHA_VERSION %].js"></script>
+    [% INCLUDE 'browser-strings.inc' %]
+    [% INCLUDE 'columns_settings.inc' %]
+    <script type="text/javascript" src="[% interface %]/js/browser_[% KOHA_VERSION %].js"></script>
+    <script type="text/javascript" src="[% interface %]/[% theme %]/js/table_filters_[% KOHA_VERSION %].js"></script>
+    <script type="text/javascript">
+        var browser;
+        browser = KOHA.browser('[% searchid %]', parseInt(biblionumber, 10));
+        browser.show();
+
+        $(document).ready(function() {
+            var ids = ['holdings_table', 'otherholdings_table'];
+
+            for (var i in ids) {
+                var id = ids[i];
+                var dt_parameters = {
+                    'sDom': 't',
+                    'bPaginate': false,
+                    'bAutoWidth': false,
+                    "aoColumnDefs": [
+                        { "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] }
+                    ]
+                };
+                var table = KohaTable(id, dt_parameters, null, 'with_filters');
+            }
+
+            [% IF Koha.Preference('AcquisitionDetails') %]
+                $("#orders").dataTable($.extend(true, {}, dataTablesDefaults, {
+                    'sDom': 't',
+                    'bPaginate': false,
+                    'bAutoWidth': false,
+                    "aaSorting": [[ 4, "desc" ]],
+                    "aoColumnDefs": [
+                        { "aTargets": "title-string", "sType": "title-string" }
+                    ]
+                }));
+            [% END %]
+        });
+    </script>
+[% END %]
 [% INCLUDE 'intranet-bottom.inc' %]