Koha/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
Owen Leonard 5bad8da970 Bug 26037: openlibrary.org is hit on every Koha requests
This patch moves the inclusion of Open Library JavaScript from
opac-bottom.inc to the three templates where it might be used.

In addition, the Open Library JS has been modified to check for the
existence of the relevant markup on the page before executing a query.

Unrelated: The Open Library label is now hidden when the status returned
is "Not found." Previously this information was displayed.

To test, apply the patch and enable the OpenLibrarySearch system
preference.

 - Perform a search in the OPAC which will return results from Open
   Library. Some ISBNs: 0140423826, 0395082552, 0679436405.
   - On the search result page there should be an Open Library "Read
     now" button for each result that can be opened for reading in Open
     Library.
 - Add these titles to a list and view the list.
   - The "Read now" button should appear on the list page.
 - View the details for one of these titles.
   - The "Read now" button should appear on the page below the holdings.
 - Watch the browser's developer tools on these and other pages in the
   OPAC. There should be no errors in the console and no 404 errors in
   the network tab.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2020-08-06 11:37:07 +02:00

1774 lines
111 KiB
Text

[% USE raw %]
[% USE Asset %]
[% USE Math %]
[% USE Koha %]
[% USE KohaDates %]
[% USE Branches %]
[% USE TablesSettings %]
[% USE AuthorisedValues %]
[% SET TagsShowEnabled = ( ( Koha.Preference( 'TagsEnabled' ) == 1 ) && TagsShowOnDetail ) %]
[% SET TagsInputEnabled = ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) && ( Koha.Preference( 'TagsEnabled' ) == 1 ) && TagsInputOnDetail ) %]
[% IF Koha.Preference('AmazonAssocTag') %]
[% AmazonAssocTag = '?tag=' _ Koha.Preference('AmazonAssocTag') %]
[% ELSE %]
[% AmazonAssocTag = '' %]
[% END %]
[% SET AdlibrisEnabled = Koha.Preference('AdlibrisCoversEnabled') %]
[% SET AdlibrisURL = Koha.Preference('AdlibrisCoversURL') %]
[% ShowCourseReservesHeader = 0 %]
[% IF Koha.Preference( 'UseCourseReserves' ) == 1 %]
[% FOREACH ITEM_RESULT IN itemloop %]
[% IF ITEM_RESULT.course_reserves %]
[% FOREACH r IN ITEM_RESULT.course_reserves %]
[% IF r.course.enabled == 'yes' %]
[% ShowCourseReservesHeader = 1 %]
[% END %]
[% END %]
[% END %]
[% END %]
[% END %]
[% INCLUDE 'doc-head-open.inc' %]
<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog &rsaquo; Details for: [% INCLUDE 'biblio-title-head.inc' %]</title>
[% INCLUDE 'doc-head-close.inc' %]
[% Asset.css("lib/emoji-picker/css/emoji.css") | $raw %]
[% IF ( Koha.Preference('OPACShowMusicalInscripts') ) %]
[% Asset.css("lib/verovio/midiplayer.css") | $raw %]
[% END %]
</head>
[% BLOCK cssinclude %][% END %]
[% INCLUDE 'bodytag.inc' bodyid='opac-detail' bodyclass='scrollto' %]
[% INCLUDE 'masthead.inc' %]
<div class="main">
<ul class="breadcrumb">
<li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#"><span>Details for: </span>[% INCLUDE 'biblio-title.inc' %]</a></li>
</ul>
<div class="container-fluid">
<div class="row-fluid">
<div class="span9">
<div id="catalogue_detail_biblio" class="maincontent">
<div id="bookcover">
[% IF ( biblio.title ) %]
[% img_title = biblio.title %]
[% ELSE %]
[% img_title = biblio.biblionumber %]
[% END %]
[% IF ( OPACLocalCoverImages ) %]
<div title="[% img_title | html %]" class="[% biblio.biblionumber | html %]" id="local-thumbnail-preview"></div>
[% END %]
[% IF ( AdlibrisEnabled && normalized_isbn ) %]
<a href="[% AdlibrisURL | url %]?isbn=[% normalized_isbn | uri %]"><img src="[% AdlibrisURL | url %]?isbn=[% normalized_isbn | uri %]" alt="Cover image" class="adlibris-cover-big" /></a>
[% END %]
[% IF ( OPACAmazonCoverImages ) %]
[% IF ( OPACURLOpenInNewWindow ) %]
<a href="http://www.amazon[% AmazonTld | uri %]/gp/reader/[% normalized_isbn | uri %][% AmazonAssocTag | uri %]#reader-link" target="_blank" rel="noreferrer">
[% ELSE %]
<a href="http://www.amazon[% AmazonTld | uri %]/dp/[% normalized_isbn | uri %][% AmazonAssocTag | uri %]">
[% END %]
<img border="0" src="https://images-na.ssl-images-amazon.com/images/P/[% normalized_isbn | html %].01.MZZZZZZZ.jpg" alt="Cover image" /></a>
[% END %]
[% IF ( SyndeticsEnabled && SyndeticsCoverImages ) %]
[% IF ( content_identifier_exists ) %]
<img src="https://secure.syndetics.com/index.aspx?isbn=[% normalized_isbn | html %]/[% SyndeticsCoverImageSize | html %].GIF&amp;client=[% SyndeticsClientCode | html %]&amp;type=xw10&amp;upc=[% normalized_upc | html %]&amp;oclc=[% normalized_oclc | html %]" alt="" class="thumbnail" />
[% ELSE %]
<span class="no-image">No cover image available</span>
[% END %]
[% END %]
[% IF ( GoogleJackets ) %]
<div title="[% img_title | html %]" class="[% normalized_isbn | html %]" id="gbs-thumbnail-preview"></div>
[% END %]
[% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %]
[% coce_id = normalized_ean || normalized_isbn | html %]
<div title="[% img_title | html %]" class="[% coce_id | html %]" id="coce-thumbnail-preview"></div>
[% END %]
[% IF OpenLibraryCovers %]
<div title="[% img_title | html %]" class="[% normalized_isbn | html %]" id="openlibrary-thumbnail-preview"></div>
[% END %]
[% bt_id = ( normalized_upc || normalized_isbn ) %]
[% IF ( BakerTaylorEnabled && bt_id ) %]
[% IF BakerTaylorBookstoreURL %]
[% IF ( OPACURLOpenInNewWindow ) %]
<a href="https://[% BakerTaylorBookstoreURL | url %][% bt_id | url %]" target="_blank" rel="noreferrer"><img alt="See Baker &amp; Taylor" src="[% BakerTaylorImageURL | html %][% bt_id | html %]" /></a>
[% ELSE %]
<a href="https://[% BakerTaylorBookstoreURL | url %][% bt_id | url %]"><img alt="See Baker &amp; Taylor" src="[% BakerTaylorImageURL | html %][% bt_id | html %]" /></a>
[% END %]
[% ELSE %]
<img alt="See Baker &amp; Taylor" src="[% BakerTaylorImageURL | html %][% bt_id | html %]" />
[% END %]
[% END %]
[% IF Koha.Preference('OPACCustomCoverImages') AND Koha.Preference('CustomCoverImagesURL') %]
[% IF ( OPACURLOpenInNewWindow ) %]
<a class="custom_cover_image" href="[% biblio.custom_cover_image_url | url %]" target="_blank" rel="noreferrer"><img alt="Cover image" src="[% biblio.custom_cover_image_url | url %]" /></a>
[% ELSE %]
<a class="custom_cover_image" href="[% biblio.custom_cover_image_url | url %]"><img alt="Cover image" src="[% biblio.custom_cover_image_url | url %]" /></a>
[% END %]
[% END %]
</div><!-- / #bookcover -->
<abbr class="unapi-id" title="koha:biblionumber:[% biblio.biblionumber | html %]"><!-- unAPI --></abbr>
[% IF ( ocoins ) # COinS / Openurl %]
<span class="Z3988" title="[% ocoins | html %]"></span>
[% END %]
<div id="views">
<span class="view current-view"><span id="Normalview"><i class="fa fa-file-text-o" aria-hidden="true"></i> Normal view</span></span>
<span class="view">
<a id="MARCview" class="btn btn-link" href="/cgi-bin/koha/opac-MARCdetail.pl?biblionumber=[% biblio.biblionumber | html %]"><i class="fa fa-list-alt" aria-hidden="true"></i> MARC view</a>
</span>
[% IF ( ISBD ) %]<span class="view"><a id="ISBDview" class="btn btn-link" href="/cgi-bin/koha/opac-ISBDdetail.pl?biblionumber=[% biblio.biblionumber | html %]"><i class="fa fa-list-ul" aria-hidden="true"></i> ISBD view</a></span>[% END %]
</div>
[% IF ( OPACXSLTDetailsDisplay ) %]
[% XSLTBloc | $raw %]
[% ELSE %]
<h2 class="title">[% INCLUDE 'biblio-title.inc' %]</h2>
[% IF ( author ) %]<span class="results_summary author h3">by <a class="contributors" href="/cgi-bin/koha/opac-search.pl?q=au:[% author |url %]">[% author | html %]</a></span>[% END %]
<span class="results_summary">[% UNLESS ( item_level_itypes ) %]
[
[% IF ( description ) %]
[% description | html %]
[% ELSE %]
[% itemtype | html %]
[% END %]
] [% END %]
[% IF ( unititle ) %], [% unititle | html %][% END %]
</span>
[% IF ( MARCAUTHORS ) %]
<div class="results_summary">
<span class="label">Additional authors:</span>
[% FOREACH MARCAUTHOR IN MARCAUTHORS %]
[% FOREACH MARCAUTHOR_SUBFIELDS_LOO IN MARCAUTHOR.MARCAUTHOR_SUBFIELDS_LOOP %]
[% MARCAUTHOR_SUBFIELDS_LOO.separator | html %]
[% IF ( MARCAUTHOR.authoritylink ) %]
<a title="‡[% MARCAUTHOR_SUBFIELDS_LOO.code | html %] [% MARCAUTHOR_SUBFIELDS_LOO.value | html %]" class="contributors authority_link" data-authid="[% MARCAUTHOR.authoritylink | html %]" href="/cgi-bin/koha/opac-search.pl?q=[% FOREACH link_loo IN MARCAUTHOR_SUBFIELDS_LOO.link_loop %][% link_loo.operator |url %][% link_loo.limit |url %]:[% link_loo.link |url %][% END %]">
[% ELSE %]
<a title="‡[% MARCAUTHOR_SUBFIELDS_LOO.code | html %] [% MARCAUTHOR_SUBFIELDS_LOO.value | html %]" class="contributors" href="/cgi-bin/koha/opac-search.pl?q=[% FOREACH link_loo IN MARCAUTHOR_SUBFIELDS_LOO.link_loop %][% link_loo.operator |url %][% link_loo.limit |url %]:[% link_loo.link |url %][% END %]">
[% END %]
[% MARCAUTHOR_SUBFIELDS_LOO.value | html %]</a>
[% END %]
[% IF (MARCAUTHOR.authoritylink) %]
<a class="authlink" href="/cgi-bin/koha/opac-authoritiesdetail.pl?authid=[% MARCAUTHOR.authoritylink | html %]"><i class="fa fa-search" aria-hidden="true"></i></a>
[% END %]
[% IF IDREF and MARCAUTHOR.unimarc3 %]
<a href="/cgi-bin/koha/opac-idref.pl?unimarc3=[% MARCAUTHOR.unimarc3 | uri %]" title="IdRef" rel="gb_page_center[600,500]">IdRef</a>
[% END %]
[% UNLESS ( loop.last ) %]|[% END %]
[% END # /FOREACH MARCAUTHORS %]
</div>
[% END # IF MARCAUTHORS %]
[% IF ( MARCSERIES ) %]
<span class="results_summary series"><span class="label">Series:</span>
[% FOREACH MARCSERIE IN MARCSERIES %]
[% FOREACH MARCSERIES_SUBFIELDS_LOO IN MARCSERIE.MARCSERIES_SUBFIELDS_LOOP %]
[% IF ( MARCSERIES_SUBFIELDS_LOO.value ) %]
<a href="/cgi-bin/koha/opac-search.pl?q=se:[% MARCSERIES_SUBFIELDS_LOO.value |url %]">[% MARCSERIES_SUBFIELDS_LOO.value | html %]</a>
[% END %]
[% IF ( MARCSERIES_SUBFIELDS_LOO.volumenum ) %]
. [% MARCSERIES_SUBFIELDS_LOO.volumenum | html %]
[% END %]
[% END %]
[% UNLESS ( loop.last ) %]|[% END %]
[% END # / FOREACH MARCSERIES %]
</span>
[% END # /MARCSERIES %]
[% IF ( editionstatement ) %]
<span class="results_summary edition"><span class="label">Edition statement:</span>[% editionstatement | html %][% IF ( editionresponsibility ) %]/[% editionresponsibility | html %][% END %]</span>
[% END %]
[% IF ( publishercode ) %]
<span class="results_summary publisher"><span class="label">Published by :</span>
<a href="/cgi-bin/koha/opac-search.pl?q=pb:[% publishercode |url %] ">
[% publishercode | html %]
</a> [% IF ( place ) %]([% place | html %])[% END %] [% IF ( publicationyear ) %], [% publicationyear | html %][% END %]
</span>
[% END %]
[% IF ( pages ) %]
<span class="results_summary physical"><span class="label">Physical details:</span> [% pages | html %] [% illus | html %] [% size | html %]</span>
[% END %]
[% IF ( MARCISBNS ) %]
<span class="results_summary isbn"><span class="label">ISBN:</span>[% FOREACH MARCISBN IN MARCISBNS %][% MARCISBN | html %][% IF ( loop.last ) %].[% ELSE %]; [% END %][% END %]</span>
[% ELSE %]
[% IF ( normalized_isbn ) %]
<span class="results_summary isbn"><span class="label">ISBN: </span>[% normalized_isbn | html %]</span>
[% END %]
[% END %]
[% IF ( issn ) %]
<span class="results_summary issn"><span class="label">ISSN:</span>[% issn | html %]</span>
[% END %]
[% IF ( collectiontitle ) %]
<span class="results_summary collection"><span class="label">Collection: </span>
[% collectiontitle | html %]
[% IF ( collectionissn ) %] [% ', ISSN ' _ collectionissn | html %][% END %]
[% IF ( collectionvolume ) %] [% ' ; ' _ collectionvolume | html %] [% END %]
</span>
[% END %]
[% IF ( unititles ) %]
<span class="results_summary unititle"><span class="label">Uniform titles:</span>
[% FOREACH unititle IN unititles %]
[% unititle.unititle | html %] ;
[% END %]
</span>
[% END %]
[% IF ( MARCSUBJCTS ) %]
<div class="results_summary subjects">
<span class="label">Subject(s):</span>
[% FOREACH MARCSUBJCT IN MARCSUBJCTS %]
[% subjectsloop = loop %]
[% FOREACH SUBFIELD IN MARCSUBJCT.MARCSUBJECT_SUBFIELDS_LOOP %]
[% SUBFIELD.separator | html %]
<a title="[% '$' _ SUBFIELD.code _ ' ' _ SUBFIELD.value | html %]" class="subject" href="/cgi-bin/koha/opac-search.pl?q=[% FOREACH link_loo IN SUBFIELD.link_loop %][% link_loo.operator |url %][% link_loo.limit |url %]:[% link_loo.link |url %][% END %]">[% SUBFIELD.value | html %]</a>
[% END %]
[% IF (MARCSUBJCT.authoritylink) %]
<a class="authlink" href="/cgi-bin/koha/opac-authoritiesdetail.pl?authid=[% MARCSUBJCT.authoritylink | html %]"><i class="fa fa-search" aria-hidden="true"></i></a>
[% END %]
[% UNLESS ( loop.last ) %] | [% END %]
[% END # / FOREACH MARCSUBJCTS %]
</div>
[% ELSE # /IF MARCSUBJCTS %]
[% IF ( subjects ) %]<span class="results_summary subjects"><span class="label">Subject(s):</span> [% FOREACH subject IN subjects %]<a class="subject" href="/cgi-bin/koha/opac-search.pl?q=su:[% subject.subject |url %]">[% subject.subject | html %]</a> | [% END %]</span>[% END %]
[% END %]
[% IF ( copyrightdate ) %]
<span class="results_summary year"><span class="label">Year: </span>[% copyrightdate | html %]</span>
[% END %]
[% UNLESS ( item_level_itypes ) %]
[% IF ( imgeurl && !Koha.Preference('OpacNoItemTypeImages') ) %]
<img src="[% imageurl | html %]" alt="" />
[% END %]
<span class="results_summary itemtype"><span class="label">Item type: </span>
[% IF ( description ) %]
[% description | html %]
[% ELSE %]
[% itemtype | html %]
[% END %]
</span>
[% END %]
[% IF ( MARCURLS ) %]
<div class="results_summary online_resources"><span class="label">Online resources:</span>
<ul>
[% FOREACH MARCurl IN MARCURLS %]
<li>[% IF ( MARCurl.part ) %][% MARCurl.part | html %]<br />[% END %]
[% IF ( OPACURLOpenInNewWindow ) %]
[% IF trackclicks == 'track' || trackclicks == 'anonymous' %]
<a href="/cgi-bin/koha/tracklinks.pl?uri=[% MARCurl.MARCURL | uri %]&amp;biblionumber=[% biblio.biblionumber | uri %]" title="[% MARCurl.MARCURL | html %]" target="_blank" rel="noreferrer">
[% ELSE %]
<a href="[% MARCurl.MARCURL | url %]" title="[% MARCurl.MARCURL | html %]" target="_blank" rel="noreferrer">
[% END %]
[% ELSE %]
[% IF trackclicks == 'track' || trackclicks == 'anonymous' %]
<a href="/cgi-bin/koha/tracklinks.pl?uri=[% MARCurl.MARCURL | uri %]&amp;biblionumber=[% biblio.biblionumber | uri %]" title="[% MARCurl.MARCURL | html %]">
[% ELSE %]
<a href="[% MARCurl.MARCURL | url %]" title="[% MARCurl.MARCURL | html %]">
[% END %]
[% END %]
[% MARCurl.linktext | html %]</a>
[% IF ( MARCurl.notes ) %]
<ul>
[% FOREACH note IN MARCurl.notes %]
<li>[% note.note | html %]</li>
[% END %]
</ul>
[% END %]
</li>
[% END # /FOREACH MARCURLS %]
</ul>
</div>
[% END # / IF MARCURLS %]
[% END # / IF OPACXSLTDetailsDisplay %]
<!-- This puts the LTFL reviews in, and if TabbedView is not set, puts the remaining content above the Tabs instead of in them -->
[% IF ( LibraryThingForLibrariesID ) %]
[% UNLESS ( LibraryThingForLibrariesTabbedView ) %]
<div class="results_summary"><div id="ltfl_related" class="ltfl"></div></div>
<div class="results_summary"><div id="ltfl_similars" class="ltfl"></div></div>
<div class="results_summary"><div id="ltfl_tagbrowse" class="ltfl"></div></div>
[% END %]
<span class="results_summary">
<span class="label">Reviews from LibraryThing.com:</span>
<span style="display: block;" class="ltfl_reviews"></span>
</span>
[% END # / LibraryThingForLibrariesID %]
<!--This grabs all of the lists a bib record appears in -->
[% IF shelves.count %]
<span class="results_summary lists"><span class="label">List(s) this item appears in: </span>
[% FOREACH s IN shelves %]
<a href="/cgi-bin/koha/opac-shelves.pl?op=view&amp;shelfnumber=[% s.shelfnumber | uri %]">[% s.shelfname | html %]</a>
[% IF ( loop.last ) %][% ELSE %]|[% END %]
[% END %]
</span>
[% END %]
[% IF ( TagsShowEnabled ) %]
<div class="results_summary tags">
[% IF ( TagLoop ) %]
<span class="label">Tags from this library:</span>
<ul id="tagslist">
[% FOREACH TagLoo IN TagLoop %]
<li><a href="/cgi-bin/koha/opac-search.pl?tag=[% TagLoo.term |url %]&amp;q=[% TagLoo.term |url %]">[% TagLoo.term | html %]</a> <span class="weight">([% TagLoo.weight_total | html %])</span>
[% IF ( loop.last ) %][% ELSE %], [% END %]
</li>
[% END %]
</ul>
[% ELSE %]
<span class="label">Tags from this library:</span> <span class="notags">No tags from this library for this title.</span>
[% END %]
[% IF ( TagsInputEnabled ) %]
[% IF ( loggedinusername ) %]
<form id="tagform[% biblio.biblionumber | html %]" method="post" action="/cgi-bin/koha/opac-tags.pl" style="display:none;">
<label for="newtag[% biblio.biblionumber | html %]">New tag(s), separated by a comma:</label>
<p class="emoji-picker-container">
<input
name="newtag[% biblio.biblionumber | html %]"
id="newtag[% biblio.biblionumber | html %]"
type="text"
maxlength="100"
data-emojiable="true"
data-emoji-input="unicode">
</p>
<input name="tagbutton" class="btn btn-small tagbutton" title="[% biblio.biblionumber | html %]" type="submit" value="Add" />
<a class="cancel_tag_add" id="cancel[% biblio.biblionumber | html %]" href="#">(done)</a>
</form>
<span id="newtag[% biblio.biblionumber | html %]_status" class="tagstatus" style="display:none;">
Tag status here.
</span>
<a class="tag_add" id="tag_add[% biblio.biblionumber | html %]" href="#">Add tag(s)</a>
[% ELSE %]
<span id="login4tags">
[% IF Koha.Preference('casAuthentication') %]
[%# CAS authentication is too complicated for modal window %]
<a href="/cgi-bin/koha/opac-user.pl">Log in to add tags.</a>
[% ELSE %]
<a class="loginModal-trigger" data-toggle="modal" role="button" href="/cgi-bin/koha/opac-user.pl">Log in to add tags.</a>
[% END %]
</span>
[% END %]
[% END # / IF TagsInputEnabled %]
</div>
[% END # /IF TagsShowEnabled %]
[% IF ( SyndeticsEnabled ) %]
[% IF ( SyndeticsSeries && SyndeticsSERIES1Exists ) %]
<span class="results_summary">
<span class="label">Series information:</span>
<a target="_blank" rel="noreferrer" href="https://secure.syndetics.com/ffseries.aspx?isbn=[% normalized_isbn | html %]&amp;type=series&amp;num=1&amp;client=[% SyndeticsClientCode | html %][% IF ( normalized_upc ) %]&amp;upc=[% normalized_upc | html %][% END %][% IF ( normalized_oclc ) %]&amp;oclc=[% normalized_oclc | html %][% END %]">Click to open in new window</a>
</span>
[% END # / IF SyndeticsSeries && SyndeticsSERIES1Exists%]
[% IF ( SyndeticsAVPROFILEExists ) %]
<span class="results_summary">
<span class="label">Audiovisual profile:</span>
<a target="_blank" rel="noreferrer" href="https://secure.syndetics.com/index.aspx?isbn=[% normalized_isbn | html %]/avprofile.html&amp;client=[% SyndeticsClientCode | html %][% IF ( normalized_upc ) %]&amp;upc=[% normalized_upc | html %][% END %][% IF ( normalized_oclc ) %]&amp;oclc=[% normalized_oclc | html %][% END %]&amp;type=xw10">Click to open in new window</a>
</span>
[% END # / IF SyndeticsAVPROFILEExists %]
[% IF ( SyndeticsFICTIONExists ) %]
<span class="results_summary">
<span class="label">Fiction notes:</span>
<a target="_blank" rel="noreferrer" href="https://secure.syndetics.com/index.aspx?isbn=[% normalized_isbn | html %]/fiction.html&amp;client=[% SyndeticsClientCode | html %][% IF ( normalized_upc ) %]&amp;upc=[% normalized_upc | html %][% END %][% IF ( normalized_oclc ) %]&amp;oclc=[% normalized_oclc | html %][% END %]&amp;type=xw10">Click to open in new window</a>
</span>
[% END # / IF SyndeticsFICTIONExists %]
[% IF ( SyndeticsAwards && SyndeticsAWARDS1Exists ) %]
<span class="results_summary">
<span class="label">Awards:</span>
<a target="_blank" rel="noreferrer" href="https://secure.syndetics.com/ffawards.aspx?isbn=[% normalized_isbn | html %]&amp;type=awards&amp;client=[% SyndeticsClientCode | html %][% IF ( normalized_upc ) %]&amp;upc=[% normalized_upc | html %][% END %][% IF ( normalized_oclc ) %]&amp;oclc=[% normalized_oclc | html %][% END %]">Click to open in new window</a>
</span>
[% END # / IF SyndeticsAwards && SyndeticsAWARDS1Exists %]
[% END # / IF SyndeticsEnabled%]
[% IF ( OpacStarRatings != 'disable' ) %]
<form method="post" action="/cgi-bin/koha/opac-ratings.pl">
<div class="results_summary ratings">
[% SET rating_avg = ratings.get_avg_rating() %]
[% rating_avg_int = BLOCK %][% rating_avg | format("%.0f") %][% END %]
[% IF ( borrowernumber ) %]
<select id="star_rating" name="rating" data-rating-enabled="1" autocomplete="off">
[% ELSE %]
<select id="star_rating" name="rating" data-rating-enabled="0" disabled="disabled" autocomplete="off">
[% END %]
[% IF ( rating_avg_int == 0 ) %]
<option value="" selected="selected"></option>
[% END %]
[% FOREACH i IN [ 1 2 3 4 5 ] %]
[% IF rating_avg_int == i %]
<option value="[% i | html %]" selected="selected">[% i | html %]</option>
[% ELSE %]
<option value="[% i | html %]">[% i | html %]</option>
[% END %]
[% END %]
</select>
<img id="rating-loading" style="display:none" src="[% interface | html %]/[% theme | html %]/images/spinner-small.gif" alt="" />
<!-- define some hidden vars for ratings -->
<input type="hidden" name='biblionumber' value="[% biblio.biblionumber | html %]" />
<input type="hidden" name='rating_value' id='rating_value' value="[% my_rating.rating_value | html %]" />
[% UNLESS ( rating_readonly ) %]&nbsp; <input name="rate_button" type="submit" value="Rate me" />[% END %]&nbsp;
[% IF my_rating %]
<span id="rating_value_text">Your rating: [% my_rating.rating_value | html %].</span>
<span id="cancel_rating_text"><a href="#"><i class="fa fa-remove" aria-hidden="true"></i> Cancel rating</a>.</span>
[% ELSE %]
<span id="rating_value_text"></span>
<span id="cancel_rating_text" style="display:none;"><a href="#"><i class="fa fa-remove" aria-hidden="true"></i> Cancel rating</a>.</span>
[% END %]
<span id="rating_text">Average rating: [% rating_avg | html %] ([% ratings.count | html %] votes)</span>
</div>
</form>
[% END # / IF OpacStarRatings != 'disable' %]
[% IF ( BakerTaylorContentURL ) %]
<span class="results_summary">
<span class="label">Enhanced content: </span>
[% IF ( OPACURLOpenInNewWindow ) %]<a href="[% BakerTaylorContentURL | url %]" target="_blank" rel="noreferrer">Content Cafe</a>[% ELSE %]<a href="[% BakerTaylorContentURL | url %]">Content Cafe</a>[% END %]
</span>
[% END # / IF BakerTaylorContentURL %]
[% IF ( NovelistSelectProfile && (normalized_isbn || normalized_upc) ) %]
[% IF ( NovelistSelectView == 'above') %]
<span class="results_summary NovelistSelect" style="display:none;">
<span class="label">Novelist Select: </span>
<div data-novelist-novelistselect=[% IF normalized_isbn %][% normalized_isbn | html %][% ELSE %][% normalized_upc | html %][% END %]></div>
</span>
[% END %]
[% END # / IF NovelistSelectProfile %]
[% IF ( Babeltheque ) %]
<input type="hidden" name="BW_id_isbn" id="BW_id_isbn" value="[% normalized_isbn | html %]"/>
<div id="BW_notes"></div>
<div id="BW_critiques"></div>
<div id="BW_critiques_pro"></div>
<div id="BW_citations"></div>
[% END # / IF Babeltheque%]
</div> <!-- / #catalogue_detail_biblio -->
<div id="bibliodescriptions" class="toptabs">
<ul>
[% IF ( defaulttab == 'holdings' ) %]
<li id="tab_holdings" class="ui-tabs-active">
[% ELSE %]
<li id="tab_holdings">
[% END %]
[% BLOCK holding_tab_title %][% IF SeparateHoldings %]<span>[% Branches.GetLoggedInBranchname | html %] holdings</span>[% ELSE %][% IF specific_item %]<span>Item details</span>[% ELSE %]<span>Holdings</span>[% END %][% END %][% END %]
<a href="#holdings">[% PROCESS holding_tab_title %] [% UNLESS too_many_items OR specific_item %][% ' ( ' _ (itemloop.size || 0) _ ' )' | html %][% END %]</a>
</li>
[% IF (SeparateHoldings) %]
<li><a href="#otherholdings">Other holdings [% ' ( ' _ (otheritemloop.size || 0) _ ' )' | html %]</a></li>
[% END %]
[% IF ( MARCNOTES || notes || ( SyndeticsEnabled && SyndeticsSummary && SYNDETICS_SUMMARY )) %]
[% SET title_notes_count = 0 %]
[% IF MARCNOTES %]
[% SET title_notes_count = MARCNOTES.size %]
[% ELSIF notes %]
[% SET title_notes_count = 1 %]
[% END %]
[% IF SYNDETICS_SUMMARY %][% SET title_notes_count = title_notes_count + 1 %][% END %]
<li id="tab_descriptions"> <a href="#descriptions">Title notes ( [% title_notes_count | html %] )</a></li>
[% END %]
[% IF ( SYNDETICS_TOC ) %]
<li id="tab_toc"> <a href="#toc">TOC</a></li>
[% END %]
[% IF ( SyndeticsEnabled ) %]
[% IF ( SyndeticsExcerpt && SYNDETICS_EXCERPT ) %]
<li id="tab_excerpt"> <a href="#excerpt">Excerpt</a></li>
[% END %]
[% IF ( ( SyndeticsReviews && SYNDETICS_REVIEWS ) || ( LibraryThingForLibrariesTabbedView && LibraryThingForLibrariesID) ) %]
<li id="tab_reviews"> <a href="#reviews">Reviews</a></li>
[% IF ( LibraryThingForLibrariesID ) %]
<li id="tab_LTFLreviews">
<script src="https://www.librarything.com/forlibraries/widget.js?id=[% LibraryThingForLibrariesID | html %]"></script>
<noscript>This page contains enriched content visible when JavaScript is enabled or by clicking <a href="https://www.librarything.com/forlibraries/noscript.php?id=[% LibraryThingForLibrariesID | uri %]&amp;accessibility=1">here</a>.</noscript>
</li>
[% END %]
[% END %]
[% IF ( SyndeticsAuthorNotes && SYNDETICS_ANOTES ) %]
<li id="tab_anotes"> <a href="#anotes">About the author</a></li>
[% END %]
[% END # / IF SyndeticsEnabled %]
[% IF ( LibraryThingForLibrariesID && LibraryThingForLibrariesTabbedView ) %]
<li id="tab_LFTLSimilarItems"> <a href="#LFTLSimilarItems">Similar items</a></li>
<li id="tab_LTFLTagBrowse"> <a href="#LTFLTagBrowse">Tag browser</a></li>
[% END %]
[% IF ( subscriptionsnumber ) %]
[% IF ( defaulttab == 'subscriptions' ) %]<li id="tab_subscriptions" class="ui-tabs-active">[% ELSE %]<li id="tab_subscriptions">[% END %]
<a href="#subscriptions">Subscriptions ( [% subscriptionsnumber | html %] )</a>
</li>
[% END %]
[% IF Koha.Preference( 'reviewson' ) == 1 %]
<li id="tab_comments"><a href="#comments">Comments[% ' ( ' _ (reviews.size || 0) _ ' )' | html %]</a></li>
[% END %]
[% IF ( NovelistSelectProfile && (normalized_isbn || normalized_upc) ) %]
[% IF ( NovelistSelectView == 'tab') %]
<li id="tab_NovelistSelect" class="NovelistSelect" style="display:none;"> <a href="#NovelistSelect">Novelist Select</a></li>
[% END %]
[% END %]
[% IF ( OPACFRBRizeEditions && XISBNS ) %]
<li id="tab_editions"><a href="#editions">Editions</a></li>
[% END %]
[% IF ( serialcollection ) %]
[% IF ( defaulttab == 'serialcollection' ) %]<li id="tab_serialcollection" class="ui-tabs-active">[% ELSE %]<li id="tab_serialcollection">[% END %]
<a href="#serialcollection">Serial collection</a>
</li>
[% END %]
[% IF ( OPACLocalCoverImages && localimages.size ) %]
<li id="tab_images"><a href="#images">Images</a></li>
[% END %]
[% IF HTML5MediaEnabled && HTML5MediaSets.size %]
[% IF ( defaulttab == 'media' ) %]<li id="tab_html5media" class="ui-tabs-active">[% ELSE %]<li id="tab_html5media">[% END %]<a href="#html5media">Play media</a></li>
[% END %]
</ul>
[% IF ( serialcollection ) %]
<div id="serialcollection">
<table id="serialcollectiont" class="table table-bordered table-striped">
<thead>
<tr>
<th id="serial_library">Library</th>
<th id="serial_collection">Serial collection</th>
<th id="serial_itemcallnumber">Item call number</th>
</tr>
</thead>
<tbody>
[% FOREACH serialcollection IN serialcollections %]
<tr>
<td>[% serialcollection.branch | html %]</td>
<td>[% serialcollection.text | html %]</td>
<td>[% serialcollection.itemcallnumber | html %]</td>
</tr>
[% END %]
</tbody>
</table>
</div>
[% END # / IF serialcollection %]
<div id="holdings">
[% IF too_many_items %]
<p>This record has many physical items ([% items_count | html %]). <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblio.biblionumber | uri %]&amp;viewallitems=1">Click here to view them all.</a></p>
[% ELSIF ( itemloop.size ) %]
[% INCLUDE items_table items=itemloop tab="holdings" table_id="holdingst" %]
[% IF specific_item %]
<p><a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblio.biblionumber | uri %]">Show all items</a></p>
[% ELSE %]
[% IF Koha.Preference('OPACAcquisitionDetails') and acquisition_details.total_quantity > 0 %]
[% IF acquisition_details.total_quantity == 1 %]
<span>1 item is on order.</span>
[% ELSE %]
<span>[% acquisition_details.total_quantity | html %] items are on order.</span>
[% END %]
[% END %]
[% IF holds_count.defined || priority %]
<div id="bib_holds">
[% IF holds_count.defined %]
<span>Total holds: [% holds_count | html %]</span>
[% END %]
[% IF priority %]
[% IF holds_count.defined %]
<span>(priority [% priority | html %])</span>
[% ELSE %]
<span>Overall queue priority: [% priority | html %]</span>
[% END %]
[% END %]
</div>
[% END %]
[% END %]
[% ELSE %]
[% IF ( ALTERNATEHOLDINGS ) %]
[% FOREACH ALTERNATEHOLDING IN ALTERNATEHOLDINGS %]
<div id="alternateholdings"><span class="holdings_label">Holdings:</span> [% ALTERNATEHOLDING.holding | html %]</div>
[% END %]
[% ELSE %]
[% IF Koha.Preference('OPACAcquisitionDetails') and acquisition_details.total_quantity > 0 %]
[% IF acquisition_details.total_quantity == 1 %]
<span>1 item is on order.</span>
[% ELSE %]
<span>[% acquisition_details.total_quantity | html %] items are on order.</span>
[% END %]
[% ELSE %]
<div id="noitems">No physical items for this record</div>
[% END %]
[% END %]
[% END # IF itemloop.size %]
[% PROCESS 'shelfbrowser.inc' %]
[% INCLUDE shelfbrowser tab='holdings' %]
<br style="clear:both;" />
</div> <!-- / #holdings -->
[% IF (SeparateHoldings) %]
<div id="otherholdings">
[% IF (otheritemloop.size) %]
[% INCLUDE items_table items=otheritemloop tab="otherholdings" table_id="otherholdingst" %]
[% ELSE %]
<span>No other items.</span>
[% END %]
[% INCLUDE shelfbrowser tab='otherholdings' %]
</div>
[% END # / SeparateHoldings %]
[% IF ( MARCNOTES || notes || ( SyndeticsEnabled && SyndeticsSummary && SYNDETICS_SUMMARY )) %]
<div id="descriptions">
<div class="content_set">
[% IF ( SyndeticsEnabled && SyndeticsSummary && SYNDETICS_SUMMARY ) %]
<h4>Enhanced descriptions from Syndetics:</h4>
<p>[% SYNDETICS_SUMMARY | $raw %]</p>
[% END %]
[% IF ( MARCNOTES ) %]
<div id="marcnotes">
[% FOREACH MARCNOTE IN MARCNOTES %]
<p>
[% IF MARCNOTE.marcnote.match('^https?://\S+$') %]
<a href="[% MARCNOTE.marcnote | url %]">[% MARCNOTE.marcnote | html %]</a>
[% ELSE %]
[% MARCNOTE.marcnote | html | html_line_break %]
[% END %]
</p>
[% END %]
</div>
[% ELSE %]
[% IF ( notes ) %]
<p>[% notes | html %]</p>
[% END %]
[% END %]
</div>
</div> <!-- / #descriptions -->
[% END # / IF MARCNOTES || notes %]
[% IF ( SyndeticsEnabled ) %]
[% IF ( SyndeticsTOC && SYNDETICS_TOC ) %]
<div id="toc">
<div class="content_set">
<h3>Table of contents provided by Syndetics</h3>
<ul>
[% FOREACH SYNDETICS_TO IN SYNDETICS_TOC %]
<li><strong>[% SYNDETICS_TO.l | html %] [% SYNDETICS_TO.t | html %]</strong>[% IF ( SYNDETICS_TO.p ) %] ([% SYNDETICS_TO.p | $raw %])[% END %]</li>
[% END %]
</ul>
</div>
</div>
[% END # / IF SyndeticsTOC && SYNDETICS_TOC %]
[% IF ( SyndeticsExcerpt && SYNDETICS_EXCERPT ) %]
<div id="excerpt">
<div class="content_set">
<h3>Excerpt provided by Syndetics</h3>
[% SYNDETICS_EXCERPT | $raw %]
</div>
</div>
[% END # / IF SyndeticsExcerpt && SYNDETICS_EXCERPT %]
[% IF ( SyndeticsReviews && SYNDETICS_REVIEWS ) %]
<div id="reviews">
<div class="content_set">
<h3>Reviews provided by Syndetics</h3>
[% FOREACH SYNDETICS_REVIEW IN SYNDETICS_REVIEWS %]
[% IF ( SYNDETICS_REVIEW.title ) %]
<h4>[% SYNDETICS_REVIEW.title | html %]</h4>
[% FOREACH review IN SYNDETICS_REVIEW.reviews %]
[% IF ( review.content ) %]
[% review.content | $raw %]
[% END %]
[% END %]
[% END %]
[% END %]
</div>
</div>
[% END # / IF SyndeticsReviews && SYNDETICS_REVIEWS %]
[% IF ( SyndeticsAuthorNotes && SYNDETICS_ANOTES ) %]
<div id="anotes">
<div class="content_set">
<h3>Author notes provided by Syndetics</h3>
[% FOREACH SYNDETICS_ANOTE IN SYNDETICS_ANOTES %]
[% IF ( SYNDETICS_ANOTE.content ) %]
[% SYNDETICS_ANOTE.content | $raw %]
[% END %]
[% END %]
</div>
</div>
[% END # / IF SyndeticsReviews && SYNDETICS_REVIEWS %]
[% END # / IF SyndeticsEnabled %]
[% IF ( NovelistSelectProfile && NovelistSelectView == 'tab' && (normalized_isbn || normalized_upc) ) %]
<div id="NovelistSelect" >
<div data-novelist-novelistselect=[% IF normalized_isbn %][% normalized_isbn | html %][% ELSE %][% normalized_upc | html %][% END %]></div>
</div>
[% END # / IF NovelistSelectProfile && NovelistSelectView == 'tab' %]
[% IF ( subscriptionsnumber ) %]
<div id="subscriptions">
<h2>This is a serial</h2>
<p class="subscription_count">There are [% subscriptionsnumber | html %] subscription(s) associated with this title.</p>
[% FOREACH subscription IN subscriptions %]
[% IF ( subscription.branchcode ) %]
<h3>At library: [% Branches.GetName( subscription.branchcode ) | html %]</h3>
[% ELSE %]
[% IF ( subscription.branchcode ) %]
<h3>At library: [% subscription.branchcode | html %]</h3>
[% END %]
[% END %]
[% IF ( subscription.closed ) %]
<p class="subscription_closed">This subscription is closed.</p>
[% END %]
[% IF ( subscription.location ) %]
<p class="subscription_location">Location: [% AuthorisedValues.GetByCode( 'LOC', subscription.location, 1 ) | html %]
[% END %]
[% IF ( subscription.callnumber ) %]
<p class="subscription_callnumber">Call number: [% subscription.callnumber | html %]</p>
[% END %]
[% IF ( subscription.subscriptionnotes ) %]
<p class="subscription_notes">[% subscription.subscriptionnotes | html | html_line_break %] </p>
[% END %]
<p class="subscription_dates">Subscription from: [% subscription.histstartdate | $KohaDates %] to:[% IF ( subscription.histenddate ) %] [% subscription.histenddate | $KohaDates %] [% ELSE %] now (current)[% END %]</p>
[% IF ( subscription.letter ) %]<span class="email_notifications">
[% IF ( loggedinusername ) %]
[% IF ( subscription.hasalert ) %]
<span>You have subscribed to email notification on new issues. </span><a style="color:#000;" class="btn" title="Cancel email notification" href="/cgi-bin/koha/opac-alert-subscribe.pl?op=cancel&amp;subscriptionid=[% subscription.subscriptionid | html %]&amp;biblionumber=[% subscription.biblionumber | html %]">Cancel email notification</a>
[% ELSE %]
<a style="color:#000;" class="btn" title="Subscribe to email notification on new issues" href="/cgi-bin/koha/opac-alert-subscribe.pl?subscriptionid=[% subscription.subscriptionid | html %]&amp;biblionumber=[% subscription.biblionumber | html %]">Subscribe to email notification on new issues</a>
[% END %]
[% ELSE %]
<span>You must log in if you want to subscribe to email notification on new issues</span>
[% END %]
</span>[% END %]
[% IF ( subscription.missinglist ) %]
<p class="subscription_missing">Missing issues: [% subscription.missinglist | html | html_line_break %] </p>
[% END %]
[% IF ( subscription.opacnote ) %]
<p class="subscription_opacnote">[% subscription.opacnote | html | html_line_break %]</p>
[% END %]
[% IF ( subscription.latestserials ) %]
<p class="subscription_latestissues"> The [% subscription.opacdisplaycount | html %] latest issues for this subscription:</p>
<table class="table table-bordered table-striped" id="subscriptionst">
<thead>
<tr>
<th id="serial_serialseq" data-colname="serial_serialseq">Issue #</th>
<th id="serial_publisheddate" data-colname="serial_publisheddate" class="title-string">Publication date</th>
<th id="serial_planneddate" data-colname="serial_planneddate" class="title-string">Received date</th>
<th id="serial_status" data-colname="serial_status">Status</th>
<th id="serial_notes" data-colname="serial_notes">Note</th>
</tr>
</thead>
<tbody>
[% FOREACH latestserial IN subscription.latestserials %]
<tr>
<td class="serialseq">[% latestserial.serialseq | html %]</td>
<td class="publisheddate"><span title="[% latestserial.publisheddate | html %]">[% latestserial.publisheddate | $KohaDates %]</span></td>
<td class="planneddate"><span title="[% latestserial.planneddate | html %]">[% latestserial.planneddate | $KohaDates %]</span></td>
<td class="serial_status">
[% IF (latestserial.status1 ) %]<span>Expected</span>[% END %]
[% IF (latestserial.status2 ) %]<span>Arrived</span>[% END %]
[% IF (latestserial.status3 ) %]<span>Late</span>[% END %]
[% IF (latestserial.status4 ) %]<span>Missing</span>[% END %]
[% IF (latestserial.status41 ) %]<span>Missing (never received)</span>[% END %]
[% IF (latestserial.status42 ) %]<span>Missing (sold out)</span>[% END %]
[% IF (latestserial.status43 ) %]<span>Missing (damaged)</span>[% END %]
[% IF (latestserial.status44 ) %]<span>Missing (lost)</span>[% END %]
[% IF (latestserial.status5 ) %]<span>Not issued</span>[% END %]
[% IF (latestserial.status6 ) %]<span>Delete</span>[% END %]
[% IF (latestserial.status7 ) %]<span>Claimed</span>[% END %]
[% IF (latestserial.status8 ) %]<span>Stopped</span>[% END %]
</td>
<td class="serial_notes">[% latestserial.notes | html %]</td>
</tr>
[% END # / FOREACH latestserials %]
</tbody>
</table>
[% END # / IF subscription.latestserials %]
[% END # / FOREACH subscriptions %]
<p class="subscription_moredetails"><a href="opac-serial-issues.pl?biblionumber=[% biblio.biblionumber | uri %]">More details</a></p>
</div> <!-- / #subscriptions -->
[% END # IF subscriptionsnumber %]
[% IF ( LibraryThingForLibrariesID && LibraryThingForLibrariesTabbedView ) %]
<!-- Library Thing for Libraries Content -->
<div id="LFTLSimilarItems">
<div class="content_set">
<!-- Uncommenting this span makes the font smaller in the tab for LTFL -->
<!-- but breaks Xhtml validation -->
<!-- <span class="results_summary">-->
<div id="ltfl_related"></div>
<div id="ltfl_similars"></div>
<!-- </span>-->
</div>
</div>
<div id="LTFLTagBrowse">
<div class="content_set">
<!-- <span class="results_summary"> -->
<div id="ltfl_tagbrowse" class="ltfl"></div>
<!-- </span> -->
</div>
</div>
[% END # / IF LibraryThingForLibrariesID && LibraryThingForLibrariesTabbedView %]
[% IF Koha.Preference( 'reviewson' ) == 1 %]
<div id="comments">
<div id="newcomment"></div>
[% IF ( reviews ) %]
[% FOREACH review IN reviews %]
[% IF borrowernumber && review.borrowernumber == borrowernumber %]
<div class="commentline yours" id="c[% review.reviewid | html %]">
[% IF ( review.avatarurl ) %]
<img class="avatar" src="[% review.avatarurl | html %]" height="80" width="80" alt="" />
[% END %]
[% IF review.approved %]
<h5>Your comment</h5>
[% ELSE %]
<h5>Your comment (preview, pending approval)</h5>
[% END %]
<small>[% review.datereviewed | $KohaDates %]</small>
<p>
[% FILTER html_break %]
[% review.review | html %]
[% END %]
<a href="#" onclick="Dopop('/cgi-bin/koha/opac-review.pl?biblionumber=[% review.biblionumber | uri %]&amp;reviewid=[% review.reviewid | uri %]');">Edit</a>
</p>
</div>
[% ELSE %]
<div class="commentline">
[% IF ( ShowReviewer != "none" && review.patron) %]
[% IF ( review.avatarurl ) %]
<img class="avatar" src="[% review.avatarurl | html %]" height="80" width="80" alt="" />
[% END %]
[% SWITCH ShowReviewer %]
[% CASE 'full' %]
<h5>Comment by [% review.patron.title | html %] [% review.patron.firstname | html %] [% review.patron.surname | html %]</h5>
[% CASE 'first' %]
<h5>Comment by [% review.patron.firstname | html %]</h5>
[% CASE 'surname' %]
<h5>Comment by [% review.patron.surname | html %]</h5>
[% CASE 'firstandinitial' %]
<h5>Comment by [% review.patron.firstname | html %] [% review.patron.surname|truncate(2,'.') | html %]</h5>
[% CASE 'username' %]
<h5>Comment by [% review.patron.userid | html %]</h5>
[% END %]
<small>[% review.datereviewed | $KohaDates %]</small>
[% ELSE %]
<h5>Patron comment on [% review.datereviewed | $KohaDates %]</h5>
[% END # / IF ShowReviewer != "none" && review.patron %]
<p>
[% FILTER html_break %]
[% review.review | html %]
[% END %]
</p>
</div> <!-- / .commentline -->
[% END %]
[% END # / FOREACH reviews %]
[% ELSE %]
<p>There are no comments on this title.</p>
[% END # / IF reviews %]
[% IF ( loggedinusername ) %]
[% UNLESS ( loggedincommenter ) %]
<div id="addcomment"> <a href="#" onclick="Dopop('/cgi-bin/koha/opac-review.pl?biblionumber=[% biblio.biblionumber | uri %]'); return false;">
Post your comments on this title.
</a></div>
[% END %]
[% ELSE %]
<div id="addcomment"><a class="login-link loginModal-trigger" role="button" data-toggle="modal" href="/cgi-bin/koha/opac-user.pl">Log in to your account</a> to post a comment.</div>
[% END # / IF loggedinusername %]
</div> <!-- / #comments -->
[% END # / IF reviewson %]
[% IF ( OPACFRBRizeEditions && XISBNS ) %]
<div id="editions">
<h4>Other editions of this work</h4>
<table class="table table-bordered table-striped">
[% FOREACH XISBN IN XISBNS %]
<tr>
<td>
[% IF ( OPACAmazonCoverImages ) %]
<img src="https://images-na.ssl-images-amazon.com/images/P/[% XISBN.normalized_isbn | html %].01._AA75_PU_PU-5_.jpg" alt="" />
[% END %]
[% IF ( SyndeticsEnabled && SyndeticsCoverImages ) %]
[% IF ( XISBN.content_identifier_exists ) %]
<img src="https://secure.syndetics.com/index.aspx?isbn=[% XISBN.browser_normalized_isbn | html %]/SC.GIF&amp;client=[% SyndeticsClientCode | html %][% IF ( XISBN.browser_normalized_upc ) %]&amp;upc=[% XISBN.browser_normalized_upc | html %][% END %][% IF ( XISBN.browser_normalized_oclc ) %]&amp;oclc=[% XISBN.browser_normalized_oclc | html %][% END %]&amp;type=xw10" alt="" />
[% ELSE %]
<span class="no-image">No cover image available</span>
[% END # / IF XISBN.content_identifier_exists %]
[% END # / IF SyndeticsEnabled && SyndeticsCoverImages %]
</td>
[% UNLESS ( item_level_itypes ) %]
<td>[% XISBN.description | html %]</td>
[% END %]
<td><a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% XISBN.biblionumber | uri %]">[% XISBN.title | html %]</a>
[% IF ( XISBN.author ) %]<span> by </span>[% XISBN.author | html %][% END %]
[% IF ( XISBN.copyrightdate ) %]<span> &copy;</span>[% XISBN.copyrightdate | html %][% END %]
[% IF ( XISBN.publishercode ) %]
<p>[% XISBN.publishercode | html %]
[% IF ( XISBN.place ) %]([% XISBN.place | html %])[% END %]
[% IF ( XISBN.publicationyear ) %][% ', ' _ XISBN.publicationyear | html %][% END %]
[% IF ( XISBN.pages ) %][% XISBN.pages | html %] [% XISBN.illus | html %] [% XISBN.size | html %][% END %]
</p>
[% END %]
</td>
</tr>
[% END # / FOREACH XISBNS %]
</table>
</div> <!-- / #editions -->
[% END # / IF OPACFRBRizeEditions && XISBNS %]
[% IF ( HTML5MediaEnabled ) %]
<div id="html5media">
[% FOREACH HTML5MediaSet IN HTML5MediaSets %]
<p>
[% IF HTML5MediaSet.is_youtube %]
<iframe id="player" type="text/html" width="640" height="360"
src="[% HTML5MediaSet.srcblock | url %]" frameborder="0"></iframe>
[% ELSE %]
[% SET ctrl_preload = ' controls preload=none' #translatability %]
<[% HTML5MediaParent _ ctrl_preload | html %] >
<[% HTML5MediaSet.child | html %] src="[% HTML5MediaSet.srcblock | url %]" [% HTML5MediaSet.typeblock | html %] />
<span>[[% HTML5MediaParent | html %] tag not supported by your browser.]</span>
</[% HTML5MediaParent | html %]>
[% END %]
</p>
[% END %]
</div>
[% END # / IF HTML5MediaEnabled %]
[% IF ( OPACLocalCoverImages && localimages.size ) %]
<div id="images">
<p>Click on an image to view it in the image viewer</p>
[% FOREACH image IN localimages %]
[% IF image %]
<a class="localimage" href="/cgi-bin/koha/opac-imageviewer.pl?biblionumber=[% biblio.biblionumber | html %]&amp;imagenumber=[% image | html %]"><img alt="" src="/cgi-bin/koha/opac-image.pl?thumbnail=1&amp;imagenumber=[% image | html %]" /></a>
[% END %]
[% END %]
</div><!-- / #images -->
[% END # / IF OPACLocalCoverImages && localimages.size %]
</div> <!-- / #bibliodescriptions -->
[% IF ( NovelistSelectProfile && NovelistSelectView == 'below' && ( normalized_isbn || normalized_upc ) ) %]
<div id="NovelistSelect">
<h3>Novelist Select</h3>
<div data-novelist-novelistselect="[% IF normalized_isbn %][% normalized_isbn | html %][% ELSE %][% normalized_upc | html %][% END %]"></div>
</div>
[% END %]
[% IF ( Babeltheque ) %]
<div>
<div id="BW_etiquettes"></div>
<div id="BW_suggestions"></div>
</div>
<div class="clearfix"></div>
<div>
<div id="BW_podcasts"></div>
</div>
<div class="clearfix"></div>
<div>
<div id="BW_videos"></div>
</div>
[% END # / IF Babeltheque %]
[%# Following on one line due to translation issues %]
[% INCLUDE "openlibrary-readapi.inc" bib = { normalized_isbn => normalized_isbn,lccn => lccn, normalized_oclc => normalized_oclc } %]
</div> <!-- /.span9 -->
<div class="span3">
<div id="ulactioncontainer">
[% IF ( Koha.Preference('OpacBrowseResults') && busc ) %]
<div class="nav_results">
<div class="l_Results" style="display:none;">
[% IF ( listResults ) %]
<a href="#" id="a_listResults"><i class="fa fa-bars" aria-hidden="true"></i> Browse results</a>
[% ELSE %]
<span><i class="fa fa-bars" aria-hidden="true"></i> Browse results</span>
[% END %]
<a href="#" class="close_pagination"><i class="fa fa-remove" aria-hidden="true"></i> Close</a>
</div>
<ul class="pg_menu clearfix">
<li class="left_results">
[% IF ( previousBiblionumber ) %]
<a href="opac-detail.pl?biblionumber=[% previousBiblionumber | uri %][% IF ( query_desc && OpacHighlightedWords ) %]&query_desc=[% query_desc |uri %][% END %]" title="See: [% IF ( previousTitle ) %][% previousTitle | html %][% ELSE %]previous biblio[% END %]"><i class="fa fa-angle-double-left" aria-hidden="true"></i> Previous</a>
[% ELSE %]
<span>Previous</span>
[% END %]
</li>
[%# busc is already URI encoded %]
<li class="back_results"><a href="opac-search.pl?[% busc | $raw %]" title="Back to the results search list">Back to results</a></li>
<li class="right_results">
[% IF ( nextBiblionumber ) %]
<a href="opac-detail.pl?biblionumber=[% nextBiblionumber | uri %][% IF ( query_desc && OpacHighlightedWords ) %]&query_desc=[% query_desc |uri %][% END %]" title="See: [% IF ( nextTitle ) %][% nextTitle | html %][% ELSE %]next biblio[% END %]">Next <i class="fa fa-angle-double-right" aria-hidden="true"></i></a>
[% ELSE %]
<span>Next</span>
[% END %]
</li>
</ul>
[% IF ( listResults ) %]
<div class="results-pagination">
<div class="nav_pages">
<ul id="listResults">
[% FOREACH listitem IN listResults %]
[% IF ( listitem.biblionumber == biblionumber ) %]
<li class="li_pag_[% loop.count | html %] highlight">
[% ELSE %]
<li class="li_pag_[% loop.count | html %]">
[% END %]
<a href="opac-detail.pl?biblionumber=[% listitem.biblionumber | uri %]&amp;query_desc=[% query_desc |uri %]" title="View record &quot;[% listitem.title | html %]&quot;" class="a_pag" id="a_pag_[% loop.count | html %]">[% loop.count + offset | html %]</a></li>
[% END %]
</ul>
</div>
<div class="pagination_list">
<ul id="ul_pagination_lists">
[% FOREACH listitem IN listResults %]
[% IF ( listitem.biblionumber == biblionumber ) %]
<li id="li_pag_[% loop.count | html %]" class="highlight" title="Go to detail"><span class="li_pag_index"><i class="fa fa-arrow-left" aria-hidden="true"></i> [% loop.count + offset | html %]</span><a href="opac-detail.pl?biblionumber=[% biblionumber | uri %]&amp;query_desc=[% query_desc |uri %]">[% title | html %]</a><br> [% IF ( author ) %]by [% author | html %][% END %]</li>
[% ELSE %]
<li id="li_pag_[% loop.count | html %]" title="Go to detail"><span class="li_pag_index">[% loop.count + offset | html %]</span><a href="opac-detail.pl?biblionumber=[% listitem.biblionumber | uri %]&amp;query_desc=[% query_desc |uri %]">[% listitem.title | html %]</a><br> [% IF ( listitem.author ) %]by [% listitem.author | html %][% END %]</li>
[% END %]
[% END %]
</ul>
</div>
</div>
[% END %]
<div class="pagination_footer">
<a href="#" class="close_pagination"><i class="fa fa-remove" aria-hidden="true"></i> Close</a>
</div>
</div>
[% END # / IF OpacBrowseResults && busc %]
[% INCLUDE 'opac-detail-sidebar.inc' %]
[% IF ( NovelistSelectProfile && NovelistSelectView == 'right' && ( normalized_isbn || normalized_upc ) ) %]
<div id="NovelistSelect">
<h4>Novelist Select</h4>
<div data-novelist-novelistselect=[% IF normalized_isbn %][% normalized_isbn | html %][% ELSE %][% normalized_upc | html %][% END %]></div>
</div>
[% END %]
[% IF ( Babeltheque ) %]
<div class="babeltheque_adds">
<div id="BW_critiques_aj"></div>
<div id="BW_citations_aj"></div>
</div>
[% END %]
[% IF ( Koha.Preference('SocialNetworks') ) %]
<div id="social_networks" class="clearfix">
<span>Share</span>
[% SET SocialNetworks = Koha.Preference('SocialNetworks') %]
[% FOREACH network IN SocialNetworks.split(",") %]
[% SWITCH network -%]
[% CASE "facebook" -%]
<div><a id="facebook" href="https://www.facebook.com/sharer.php?u=[% current_url |url %]&amp;t=[% title |url %]" title="Share on Facebook"><i class="fa fa-facebook" aria-hidden="true"></i></a></div>
[% CASE "linkedin" -%]
<div><a id="linkedin" href="https://www.linkedin.com/shareArticle?mini=true&amp;url=[% current_url |url %]&amp;title=[% title |url %]" title="Share on LinkedIn"><i class="fa fa-linkedin" aria-hidden="true"></i></a></div>
[% CASE "email" -%]
<div><a id="email" href="mailto:?subject=[% title |url %]&amp;body=[% title |url %]%20([% current_url |url %])" title="Share by email"><i class="fa fa-envelope-o" aria-hidden="true"></i></a></div>
[% CASE "twitter" -%]
<div><a id="twitter" href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-text="[% title |url %]" data-lang="[% lang | html %]" title="Share on Twitter"><i class="fa fa-twitter" aria-hidden="true"></i></a></div>
[% END -%]
[% END %]
</div>
[% END # /IF SocialNetworks %]
</div> <!-- / .ulactioncontainer -->
</div> <!-- / .span4 -->
</div> <!-- / .row-fluid -->
<div class="row-fluid">
[% IF ( LibraryThingForLibrariesID ) %]
<script src="https://ltfl.librarything.com/forlibraries/widget.js?systype=koha&amp;id=[% LibraryThingForLibrariesID | html %]"></script>
<noscript>This page contains enriched content visible when JavaScript is enabled or by clicking
<a href="https://www.librarything.com/forlibraries/noscript.php?id=[% LibraryThingForLibrariesID | uri %]&amp;accessibility=1">here</a>.</noscript>
[% END %]
[% IF ( NovelistSelectProfile && ( normalized_isbn || normalized_upc ) ) %]
<script src="https://imageserver.ebscohost.com/novelistselect/ns2init.js"></script>
[% END %]
[% IF ( Babeltheque ) %]
<script src="[% Babeltheque_url_js | html %]"></script>
[% END %]
</div> <!-- / .row-fluid -->
</div> <!-- / .container-fluid -->
</div> <!-- / .main -->
[% INCLUDE 'opac-bottom.inc' %]
[%# End of template %]
[% BLOCK items_table %]
<table class="table table-bordered table-striped" id="[% table_id | html %]">
<thead>
<tr>
[% IF ( item_level_itypes ) %]
<th id="item_itemtype" data-colname="item_itemtype" class="itype">Item type</th>[% END %]
[% IF ( OpacLocationBranchToDisplay == 'holding' || OpacLocationBranchToDisplay == 'both' ) %]
<th id="item_current_location" data-colname="item_current_location" class="item_location">Current location</th>[% END %]
[% IF ( OpacLocationBranchToDisplay == 'home' || OpacLocationBranchToDisplay == 'both' ) %]
<th id="item_home_location" data-colname="item_home_location" class="item_location">Home library</th>[% END %]
[% IF ( itemdata_ccode ) %]
<th id="item_ccode" data-colname="item_ccode" class="collection">Collection</th>[% END %]
[% IF ( Koha.Preference('OpacLocationOnDetail') == 'column' && itemdata_location ) %]
<th id="item_shelving_location" data-colname="item_shelving_location" class="shelving_location">Shelving location</th>[% END %]
<th id="item_callnumber" data-colname="item_callnumber" class="call_no">Call number</th>
[% UNLESS TablesSettings.is_hidden( 'opac', 'biblio-detail', 'holdingst', 'item_materials') %]
<th id="item_materials" data-colname="item_materials" class="materials">Materials specified</th>[% END %]
[% IF ( itemdata_enumchron ) %]
<th id="item_enumchron" data-colname="item_enumchron" class="vol_info">Vol info</th>[% END %]
[% IF ( itemdata_uri ) %]
<th id="item_url" data-colname="item_url" class="url">URL</th>[% END %]
[% IF ( itemdata_copynumber ) %]
<th id="item_copy" data-colname="item_copy" class="copynumber">Copy number</th>[% END %]
<th id="item_status" data-colname="item_status" class="status">Status</th>
[% IF ( itemdata_itemnotes ) %]
<th id="item_notes" data-colname="item_notes" class="notes">Notes</th>[% END %]
<th id="item_datedue" data-colname="item_datedue" class="date_due">Date due</th>
<th id="item_barcode" data-colname="item_barcode" class="barcode">Barcode</th>
[% IF holds_count.defined %]
<th id="item_holds" data-colname="item_holds">Item holds</th>
[% ELSIF show_priority %]
<th id="item_priority" data-colname="item_priority">Item hold queue priority</th>
[% END %]
[% IF ( ShowCourseReservesHeader ) %]
<th id="item_coursereserves" data-colname="item_coursereserves">Course reserves</th>[% END %]
</tr>
</thead>
<tbody>
[% FOREACH ITEM_RESULT IN items %]
[% IF ITEM_RESULT.this_branch %]
<tr class="highlight-row-detail" vocab="http://schema.org/" typeof="Offer">
[% ELSE %]
<tr vocab="http://schema.org/" typeof="Offer">
[% END %]
[% IF ( item_level_itypes ) %]
<td class="itype">
[% UNLESS ( Koha.Preference('OpacNoItemTypeImages') ) %]
[% IF ( ITEM_RESULT.imageurl ) %]
<img src="[% ITEM_RESULT.imageurl | html %]" title="[% ITEM_RESULT.description | html %]" alt="[% ITEM_RESULT.description | html %]" />
[% END %]
[% END %]
[% ITEM_RESULT.description | html %]
</td>
[% END %]
[% IF ( OpacLocationBranchToDisplay == 'holding' || OpacLocationBranchToDisplay == 'both' ) %]
<td class="location" property="seller">
<link property="itemOffered" href="#record" />
<link property="businessFunction" href="http://purl.org/goodrelations/v1#LeaseOut">
<span class="[% ITEM_RESULT.holding_branch_opac_info ? 'branch-info-tooltip-trigger' : '' %]" title="">
[% IF ( ITEM_RESULT.branchurl ) %]
<a href="[% ITEM_RESULT.branchurl | url %]">[% ITEM_RESULT.branchname | html %]</a>
[% ELSE %]
<span>[% ITEM_RESULT.branchname | html %]</span>
[% END %]
</span>
<div class="branch-info-tooltip">[% ITEM_RESULT.holding_branch_opac_info | $raw %]</div>
[% IF ( Koha.Preference('OpacLocationOnDetail') == 'holding' || Koha.Preference('OpacLocationOnDetail') == 'both' ) %]
<span class="shelvingloc">[% ITEM_RESULT.location_description | html %]</span>
[% END %]
</td>
[% END %]
[% IF ( OpacLocationBranchToDisplay == 'home' || OpacLocationBranchToDisplay == 'both' ) %]
<td class="location" property="seller">
<link property="itemOffered" href="#record" />
<link property="businessFunction" href="http://purl.org/goodrelations/v1#LeaseOut">
<span class="[% ITEM_RESULT.home_branch_opac_info ? 'branch-info-tooltip-trigger' : '' %]" title="">
[% IF Branches.GetURL( ITEM_RESULT.homebranch ) %]
[% home_branch_url = Branches.GetURL( ITEM_RESULT.homebranch ) %]
[% IF ( home_branch_url ) %]
<a href="[% home_branch_url | url %]">[% Branches.GetName( ITEM_RESULT.homebranch ) | html %]</a>
[% ELSE %]
<span>[% Branches.GetName( ITEM_RESULT.homebranch ) | html %]</span>
[% END %]
[% ELSE %]
<span>[% Branches.GetName( ITEM_RESULT.homebranch ) | html %]</span>
[% END %]
</span>
<div class="branch-info-tooltip">[% ITEM_RESULT.home_branch_opac_info | $raw %]</div>
[% IF ( Koha.Preference('OpacLocationOnDetail') == 'home' || Koha.Preference('OpacLocationOnDetail') == 'both' ) %]
<span class="shelvingloc">[% ITEM_RESULT.location_description | html %]</span>
[% END %]
</td>
[% END %]
[% IF ( itemdata_ccode ) %]
<td class="collection">[% ITEM_RESULT.ccode | html %]</td>
[% END %]
[% IF ( Koha.Preference('OpacLocationOnDetail') == 'column' && itemdata_location ) %]
<td class="shelving_location"><span class="shelvingloc">[% ITEM_RESULT.location_description | html %]</span></td>
[% END %]
<td class="call_no" property="sku">
[% IF ( ITEM_RESULT.itemcallnumber ) %]
[% ITEM_RESULT.itemcallnumber | html %]
[% IF ( OPACShelfBrowser ) %]
[% IF ( ITEM_RESULT.itemnumber == starting_itemnumber ) %]
(<a class="close_shelf" href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% ITEM_RESULT.biblionumber | html %]&amp;shelfbrowse_itemnumber=[% ITEM_RESULT.itemnumber | html %]#[% tab | html %]">Browse shelf</a>)
[% ELSE %]
(<a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% ITEM_RESULT.biblionumber | uri %]&amp;shelfbrowse_itemnumber=[% ITEM_RESULT.itemnumber | uri %]#[% tab | uri %]">Browse shelf</a>)
[% END %]
[% END %]
[% END %]
</td>
[% UNLESS TablesSettings.is_hidden( 'opac', 'biblio-detail', 'holdingst', 'item_materials') %]
<td class="materials">[% ITEM_RESULT.materials | html %]</td>
[% END %]
[% IF ( itemdata_enumchron ) %]
<td class="vol_info">
[% IF ITEM_RESULT.enumchron && ITEM_RESULT.serialseq %]
<span class="enum">[% ITEM_RESULT.enumchron | html %]</span>
[% IF ( ITEM_RESULT.serialseq && ITEM_RESULT.enumchron!=ITEM_RESULT.serialseq ) %]
<span class="sep"> -- </span>
<span class="serialseq">[% ITEM_RESULT.serialseq | html %]</span>
[% END %]
[% ELSIF ITEM_RESULT.enumchron %]
<span class="enum">[% ITEM_RESULT.enumchron | html %]</span>
[% ELSIF ITEM_RESULT.serialseq %]
<span class="serialseq">[% ITEM_RESULT.serialseq | html %]</span>
[% END %]
[% IF ( ITEM_RESULT.publisheddate ) %]
<span class="pubdate">([% ITEM_RESULT.publisheddate | $KohaDates %])</span>
[% END %]
</td>
[% END %]
[% IF ( itemdata_uri ) %]
<td class="url">
[% IF ITEM_RESULT.uri %]
[%# Initialize three helper vars %]
[% SET target_attr = ''; SET rel_attr = ''; SET href_attr = '' %]
[% IF Koha.Preference('OPACURLOpenInNewWindow') %][% SET target_attr = '_blank'; SET rel_attr = 'noreferrer' %][% END %]
[%# Check if there are multiple URIs; in the single case we only use pref URLLinkText or Link to resource %]
[% IF ITEM_RESULT.uri.split(' \| ').size > 1 %]
[% FOREACH uri IN ITEM_RESULT.uri.split(' \| ') %]
[% IF trackclicks == 'track' || trackclicks == 'anonymous' %][% SET href_attr = "/cgi-bin/koha/tracklinks.pl?uri=" _ uri _ "&amp;biblionumber=" _ biblio.biblionumber _ "&amp;itemnumber=" _ ITEM_RESULT.itemnumber %] [% ELSE %][% SET href_attr = uri %][% END %]
<a target="[% target_attr | html %]" rel="[% rel_attr | html %]" href="[% href_attr | url %]" property="url">[% uri | html %]</a><br>
[% END %]
[% ELSE %]
[% IF trackclicks == 'track' || trackclicks == 'anonymous' %][% SET href_attr = "/cgi-bin/koha/tracklinks.pl?uri=" _ ITEM_RESULT.uri _ "&amp;biblionumber=" _ biblio.biblionumber _ "&amp;itemnumber=" _ ITEM_RESULT.itemnumber %] [% ELSE %][% SET href_attr = ITEM_RESULT.uri %][% END %]
<a target="[% target_attr | html %]" rel="[% rel_attr | html %]" href="[% href_attr | url %]" property="url">[% IF Koha.Preference('URLLinkText') %][% Koha.Preference('URLLinkText') | html %][% ELSE %]Link to resource[% END %]</a>
[% END %]
[% END %]
</td>
[% END %]
[% IF ( itemdata_copynumber ) %]<td class="copynumber">[% ITEM_RESULT.copynumber | html %]</td>[% END %]
<td class="status">[% INCLUDE 'item-status-schema-org.inc' item = ITEM_RESULT %][% INCLUDE 'item-status.inc' item = ITEM_RESULT %]</td>
[% IF ( itemdata_itemnotes ) %]<td class="notes" property="description">[% ITEM_RESULT.itemnotes | $raw %]</td>[% END %]
<td class="date_due"><span title="[% ITEM_RESULT.datedue | html %]">[% ITEM_RESULT.datedue | $KohaDates as_due_date => 1 %]</span></td>
<td class="barcode" property="serialNumber">[% ITEM_RESULT.barcode | html %]</td>
[% IF holds_count.defined || show_priority %]
<td class="holds_count">
[% IF holds_count.defined %] [% ITEM_RESULT.holds_count | html %] [% END %]
[% IF ITEM_RESULT.priority %]
[% IF holds_count.defined %]
<span>(priority [% ITEM_RESULT.priority | html %])</span>
[% ELSE %]
<span>[% ITEM_RESULT.priority | html %]</span>
[% END %]
[% END %]
</td>
[% END %]
[% IF ShowCourseReservesHeader %]
<td>
[% IF ITEM_RESULT.course_reserves %]
[% FOREACH r IN ITEM_RESULT.course_reserves %]
[% IF r.course.enabled == 'yes' %]
<p>
<a href="opac-course-details.pl?course_id=[% r.course.course_id | uri %]">
[% r.course.course_name | html %]
<!--[% IF r.course.course_number %] [% r.course.course_number | html %] [% END %]-->
[% IF r.course.section %] [% r.course.section | html %] [% END %]
[% IF r.course.term %] [% AuthorisedValues.GetByCode( 'TERM', r.course.term, 1 ) | html %] [% END %]
</a>
</p>
[% END %]
[% END %]
[% END %]
</td>
[% END # /IF ShowCourseReservesHeader %]
</tr>
[% END %]
</tbody>
</table>
[% END %][%# end of items_table block %]
[% IF ( OPACPopupAuthorsSearch ) %]
<!-- Modal -->
<div class="modal hide" id="multiSearch" tabindex="-1" role="dialog" aria-labelledby="multiSearchLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="closebtn" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h3 id="multiSearchLabel">Select the item(s) to search</h3>
</div>
<div class="modal-body">
<a href="#" class="check_all"><i class="fa fa-check" aria-hidden="true"></i> Select all</a> <span class="sep">|</span>
<a href="#" class="check_none"><i class="fa fa-remove" aria-hidden="true"></i> Select none</a>
<ul id="termsList">
</ul>
</div>
<div class="modal-footer">
<a id="validMultiSearch" href="#" class="btn btn-primary">Search</a>
<a href="#" class="cancel" data-dismiss="modal" aria-hidden="true">Cancel</a>
</div>
</div> <!-- /.modal-content -->
</div> <!-- /.modal-dialog -->
</div> <!-- /#myModal -->
[% END %]
[% BLOCK jsinclude %]
[% INCLUDE 'datatables.inc' %]
[% INCLUDE 'columns_settings.inc' %]
[% INCLUDE greybox.inc %]
[% IF ( SocialNetworks ) %]
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
[% END %]
[% IF ( OpacStarRatings != 'disable' ) %][% Asset.js("lib/jquery/plugins/jquery.barrating.min.js") | $raw %][% END %]
[% IF ( OpacHighlightedWords ) %][% Asset.js("lib/jquery/plugins/jquery.highlight-3.js") | $raw %][% END %]
[% IF ( Koha.Preference('OPACDetailQRCode') ) %]
[% Asset.js("lib/kjua/kjua.min.js") | $raw %]
[% END %]
[% IF ( Koha.Preference('OPACShowMusicalInscripts') ) %]
<script>
var interface = "[% interface | html %]";
var PREF_OPACPlayMusicalInscripts = "[% Koha.Preference('OPACPlayMusicalInscripts') | html %]";
</script>
[% Asset.js("js/verovio.js") | $raw %]
[% END %]
[% Asset.js("lib/emoji-picker/js/emoji-picker-all.min.js") | $raw %]
[% IF OpenLibraryCovers || OpenLibrarySearch %]
[% Asset.js("js/openlibrary.js") | $raw %]
[% END %]
<script>
window.emojiPicker = new EmojiPicker({
emojiable_selector: '[data-emojiable=true]',
assetsPath: '[% interface | html %]/lib/emoji-picker/img/',
popupButtonClasses: 'fa fa-smile-o'
});
window.emojiPicker.discover();
var OPACPopupAuthorsSearch = "[% Koha.Preference('OPACPopupAuthorsSearch') | html %]";
[% IF ( OpacHighlightedWords ) %]
var q_array = new Array(); // holds search terms if available
function highlightOff() {
$("#catalogue_detail_biblio").removeHighlight();
$(".highlight_toggle").toggle();
}
function highlightOn() {
var x;
for (x in q_array) {
if ( q_array[x].length > 0 ) {
q_array[x] = q_array[x].replace(/\w*:([\w])/, "$1");
q_array[x] = q_array[x].toLowerCase();
var myStopwords = "[% Koha.Preference('NotHighlightedWords') | html %]".toLowerCase().split('|');
if( $.inArray(q_array[x], myStopwords) == -1 ) {
$(".title").highlight(q_array[x]);
$(".author").highlight(q_array[x]);
$(".results_summary").highlight(q_array[x]);
}
}
}
$(".highlight_toggle").toggle();
}
[% END %]
$(document).ready(function() {
[% IF ( Koha.Preference('OPACDetailQRCode') ) %]
var qrcode = kjua({
ecLevel: "H",
render: "canvas",
rounded: 100,
size: 150,
text: location.href,
});
if (qrcode) {
document.getElementById("qrcode").appendChild( qrcode );
}
$(".show_qrcode").on("click", function(){
var qrcodeImg = $("#qrcode");
if( qrcodeImg.hasClass("hidden") ){
qrcodeImg.removeClass("hidden");
} else {
qrcodeImg.addClass("hidden");
}
});
[% END %]
$('#bibliodescriptions').tabs();
$(".branch-info-tooltip-trigger").uitooltip({
position: { my: "left+15 center", at: "right center" },
show: 50,
hide: 50,
content: function(){
var element = $(this).next("div");
return element.html();
}
});
[% IF ( Koha.Preference('OpacBrowseResults') && busc ) %]
$(".l_Results").show();
$("#a_listResults").on("click", function(e){
e.preventDefault();
$(".results-pagination, .close_pagination, .pg_menu").toggle();
});
$(".close_pagination").on("click", function(e){
e.preventDefault();
$(".results-pagination, .close_pagination, .pg_menu").toggle();
});
[% END %]
var columns_settings = [% TablesSettings.GetColumns( 'opac', 'biblio-detail', 'holdingst', 'json' ) | $raw %];
KohaTable("#holdingst", {
dom: '<"clearfix">t',
"columnDefs": [
{ "targets": [ -1 ], "sortable": false, "searchable": false },
{ "type": "title-string", "targets" : [ "title-string" ] }
],
"bKohaColumnsUseNames": true,
"autoWidth": false
}, columns_settings);
KohaTable("#otherholdingst", {
dom: '<"clearfix">t',
"columnDefs": [
{ "targets": [ -1 ], "sortable": false, "searchable": false },
{ "type": "title-string", "targets" : [ "title-string" ] }
],
"bKohaColumnsUseNames": true,
"autoWidth": false
}, columns_settings);
var serial_column_settings = [% TablesSettings.GetColumns( 'opac', 'biblio-detail', 'subscriptionst', 'json' ) | $raw %];
KohaTable("#subscriptionst", {
dom: '<"clearfix">t',
"sorting": [[ 1, "desc" ]],
"columnDefs": [
{ "type": "title-string", "targets" : [ "title-string" ] }
],
"autoWidth": false,
"bKohaColumnsUseNames": true
}, serial_column_settings);
[% IF ( TagsInputEnabled && loggedinusername ) %]
$(".tag_add").click(function(){
var thisid = $(this).attr("id");
thisid = thisid.replace("tag_add","");
$(this).hide();
$("#tagform"+thisid).show();
$("#newtag"+thisid).focus();
$("#newtag"+thisid+"_status").empty().hide();
return false;
});
$(".cancel_tag_add").click(function(){
var thisid = $(this).attr("id");
thisid = thisid.replace("cancel","");
$("#tagform"+thisid).hide();
$("#tag_add"+thisid).show();
$("#newtag"+thisid).val("");
$("#newtag"+thisid+"_status").empty().hide();
return false;
});
$(".tagbutton").click(function(){
var thisid = $(this).attr("title");
var tag = $("#newtag"+thisid).val();
if (!tag || (tag == "")) {
alert(MSG_NO_TAG_SPECIFIED);
return false;
}
KOHA.Tags.add_tag_button(thisid, tag);
return false;
});
[% END %]
[%# Note that there is no way atm to target a column with its class name to set it as the default sort order %]
[% IF Koha.Preference('OpacLocationBranchToDisplay') == 'home' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'homebranch' AND item_level_itypes
OR Koha.Preference('OpacLocationBranchToDisplay') == 'holding' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'holdingbranch' AND item_level_itypes
OR Koha.Preference('OpacLocationBranchToDisplay') == 'both' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'homebranch' AND NOT item_level_itypes
OR Koha.Preference('OpacLocationBranchToDisplay') == 'both' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'holdingbranch' AND item_level_itypes %]
var default_order_index = 1;
[% ELSIF Koha.Preference('OpacLocationBranchToDisplay') == 'both' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'homebranch' AND item_level_itypes %]
var default_order_index = 2;
[% ELSE %]
var default_order_index = 0;
[% END %]
[% IF ( query_desc ) %][% IF ( OpacHighlightedWords ) %]var query_desc = "[% query_desc |replace("'", "\'") |replace('\n', '\\n') |replace('\r', '\\r') | html %]";
q_array = query_desc.split(" ");
q_array = q_array.filter(function(n){ return n }); // Remove empty strings
highlightOn();
$("#highlight_toggle_on" ).hide().click(function() {highlightOn() ; return false;});
$("#highlight_toggle_off").show().click(function() {highlightOff(); return false;});[% END %][% END %]
[% IF ( GoogleJackets ) %]
KOHA.Google.GetCoverFromIsbn([% covernewwindow | html %]);
[% END %]
[% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %]
KOHA.coce.getURL('[% Koha.Preference('CoceHost') | html %]', '[% Koha.Preference('CoceProviders') | html %]',[% covernewwindow | html %]);
[% END %]
[% IF OpenLibraryCovers %]
KOHA.OpenLibrary.GetCoverFromIsbn();
[% END %]
[% IF OPACLocalCoverImages %]
KOHA.LocalCover.GetCoverFromBibnumber(true);
[% END %]
[% IF ( NovelistSelectProfile && ( normalized_isbn || normalized_upc ) ) %]
novSelect.loadContentForQuery(
{
ClientIdentifier : '[% IF normalized_isbn %][% normalized_isbn | html %][% ELSE %][% normalized_upc | html %][% END %]',
ISBN : '[% IF normalized_isbn %][% normalized_isbn | html %][% ELSE %][% normalized_upc | html %][% END %]',
version : '2.1'
},
'[% NovelistSelectProfile | html %]',
'[% NovelistSelectPassword | html %]',
function(d){
if ( d.length > 0 ){ //If no content
$(".NovelistSelect").show();
}
});
[% END %]
[% IF ( OPACShelfBrowser ) %]
(function prepareShelfBrowser(){
$(".main").on("click",".close_shelf",function(e){
e.preventDefault();
$("#shelfbrowser").toggle();
});
$(".main").on("click", "#browser_previous a", function(e){
e.preventDefault();
$.ajax({
url: "/cgi-bin/koha/svc/shelfbrowser.pl",
type: "POST",
data: {
"shelfbrowse_itemnumber": $("#browser_previous a").data( "prev-itemnumber" )
},
success: function(data){
$("#shelfbrowser").replaceWith(data);
[% IF ( GoogleJackets ) %]
KOHA.Google.GetCoverFromIsbn([% covernewwindow | html %]);
[% END %]
[% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %]
KOHA.coce.getURL('[% Koha.Preference('CoceHost') | html %]', '[% Koha.Preference('CoceProviders') | html %]',[% covernewwindow | html %]);
[% END %]
[% IF OpenLibraryCovers %]
KOHA.OpenLibrary.GetCoverFromIsbn();
[% END %]
[% IF OPACLocalCoverImages %]
KOHA.LocalCover.GetCoverFromBibnumber(true);
[% END %]
}
});
});
$(".main").on("click", "#browser_next a", function(e){
e.preventDefault();
$.ajax({
url: "/cgi-bin/koha/svc/shelfbrowser.pl",
type: "POST",
data: {
"shelfbrowse_itemnumber": $("#browser_next a").data( "next-itemnumber" )
},
success: function(data){
$("#shelfbrowser").replaceWith(data);
[% IF ( GoogleJackets ) %]
KOHA.Google.GetCoverFromIsbn([% covernewwindow | html %]);
[% END %]
[% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %]
KOHA.coce.getURL('[% Koha.Preference('CoceHost') | html %]', '[% Koha.Preference('CoceProviders') | html %]',[% covernewwindow | html %]);
[% END %]
[% IF OpenLibraryCovers %]
KOHA.OpenLibrary.GetCoverFromIsbn();
[% END %]
[% IF OPACLocalCoverImages %]
KOHA.LocalCover.GetCoverFromBibnumber(true);
[% END %]
}
});
});
}());
[% END %]
[% IF ( OpacStarRatings != 'disable' ) %]
// -----------------------------------------------------
// star-ratings code
// -----------------------------------------------------
// hide 'rate' button if javascript enabled
$('input[name="rate_button"]').remove();
var rating_enabled = ( $("#star_rating").data("rating-enabled") == "1" ) ? false : true;
$('#star_rating').barrating({
theme: 'fontawesome-stars',
showSelectedRating: false,
allowEmpty: true,
deselectable: false,
readonly: rating_enabled,
onSelect: function(value, text) {
$("#rating-loading").show();
$.post("/cgi-bin/koha/opac-ratings-ajax.pl", {
rating_old_value: $("#rating_value").attr("value"),
borrowernumber: "[% borrowernumber | html %]",
biblionumber: "[% biblio.biblionumber | html %]",
rating_value: value,
auth_error: value
}, function (data) {
$("#rating_value").val(data.rating_value);
if (data.rating_value) {
$("#rating_value_text").text(_("Your rating: %s, ").format(data.rating_value));
$("#cancel_rating_text").show();
} else {
$("#rating_value_text").text('');
$("#cancel_rating_text").hide();
}
$("#rating_text").text(_("Average rating: %s (%s votes)").format(data.rating_avg, data.rating_total));
$("#rating-loading").hide();
}, "json");
}
});
$("#cancel_rating_text a").on("click", function(e){
e.preventDefault();
$("#star_rating").barrating("set", "");
});
[% END # / IF ( OpacStarRatings != 'disable' )%]
});
$(document).ready(function() {
if( OPACPopupAuthorsSearch == "1" ){
var terms = {
contributors : {
"label" : "author",
"keyword_search" : "au:",
},
subject : {
"label" : "subject",
"keyword_search" : "su:",
}
}
$(".contributors,.subject").on("click", function(e){
e.preventDefault();
var term = $(this).attr("class");
var selected_term = $(this).text();
var term_links = $("." + term );
if( term_links.length > 1 ){
term_links.each(function( index ){
var authid = "";
var preselected = false;
var search_label = $(this).text().trim();
if( $(this).text() == selected_term ){ preselected = true }
if( $(this).hasClass("authority_link") ){
authid = $(this).data("authid");
search_string = "an:" + authid;
} else {
search_string = terms[term]["keyword_search"] + encodeURIComponent( search_label );
}
var termLink = $("<li>")
.append( $("<input>", { type: "checkbox", class: "select_term", value: search_string, id: terms[term]["label"] + index } ).prop("checked", preselected ) )
.append("&nbsp;")
.append( $("<label>", { for: terms[term]["label"] + index, text: search_label } ) )
$("#termsList").append( termLink );
$("#multiSearch").modal("show");
});
} else {
location.href = $(this).attr("href");
}
});
$("#multiSearch").on("hide.bs.modal", function(){
$("#termsList").html("");
});
$(".check_all").on("click", function(e){
e.preventDefault();
$(".select_term").each(function(){
$(this).prop("checked", true );
});
});
$(".check_none").on("click", function(e){
e.preventDefault();
$(".select_term").each(function(){
$(this).prop("checked", false );
});
});
$("#validMultiSearch").on("click", function(e){
e.preventDefault();
multiSearchRequest();
});
}
});
function multiSearchRequest(){
var values = [];
$(".select_term").each(function(){
if( $(this).prop("checked") ){
values.push( $(this).val() );
}
});
if (values.length > 0) {
var request = "/cgi-bin/koha/opac-search.pl?q=" + values.join(' and ');
location.href = request;
}
}
</script>
[% END %]