Koha/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
Owen Leonard 9cb89b4639 Bug 20168: Update of the OPAC bootstrap template to bootstrap v4
This patch updates the version of Bootstrap in the OPAC from 2.3.1 to
4.5.0. The Bootstrap JavaScript files have been replaced with custom
builds of the 4.5.0 JavaScript source files. The Bootstrap CSS is now
built into the OPAC CSS by loading the required Bootstrap 4.5.0 SCSS
files in node_modules.

OPAC SCSS now starts with Bootstrap customizations:

/* Bootstrap variable customizations */
$headings-color: #727272;
...

Followed by loading the necessary Bootstrap SCSS files:

/* Bootstrap imports */
@import "../../../../../node_modules/bootstrap/scss/functions";
@import "../../../../../node_modules/bootstrap/scss/variables";
...

Followed by our CSS. The build process for generating compiled CSS now
creates a file which bundles Bootstrap CSS and ours. Removed from the
Koha source: Bootstrap CSS files, Bootstrap "glyphicons" images.

The upgrade to Bootstrap 4 involved a lot of markup changes to conform
with new Bootstrap classes, especially in classes related to the grid.
Besides duplicating the grid we used before, this upgrade adds some new
features made possible by Bootstrap 4.5's use of flexbox as a layout
tool. This includes custom ordering of columns based on class names:
https://getbootstrap.com/docs/4.5/layout/grid/#order-classes.

Other areas where the most changes have been made: Navigation menus,
breadcrumb menus, buttons, dropdowns.

Bootstrap's JavaScript file is now "bootstrap.bundle.min.js" to reflect
the fact that a required JavaScript asset is now distributed separately
in Bootstrap 4. The "bundle" version includes Popper.js.

Unrelated changes: Indentation corrections, removal of invalid
"//<![CDATA[" markers, removal of invalid script type attributes.

To test, apply the patch and run 'yarn install' to install Bootstrap as
an npm module. Run 'yarn build --view opac' to regenerate the OPAC CSS.

Test as many aspect of the OPAC as possible, viewing pages at various
browser widths to confirm that everything adjusts well. Test with
various OPAC interface system preferences enabled and disabled.

Test self checkout and self checkin.

Known issues: RTL support has not been updated.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2020-09-09 14:13:03 +02:00

1837 lines
117 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">
<nav aria-label="breadcrumb">
<ul class="breadcrumb">
<li class="breadcrumb-item">
<a href="/cgi-bin/koha/opac-main.pl">Home</a>
</li>
<li class="breadcrumb-item" aria-current="page">
<a href="#"><span>Details for: </span>[% INCLUDE 'biblio-title.inc' %]</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div class="col-lg-9">
<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 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">
[% 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 MARCSUBJCTS %]
[% IF ( copyrightdate ) %]
<span class="results_summary year"><span class="label">Year: </span>[% copyrightdate | html %]</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 %]
[% IF ( !item_level_itypes || Koha.Preference('BiblioItemtypeInfo') ) %]
<span class="results_summary itemtype"><span class="label">Item type: </span>
[% IF ( imageurl && !Koha.Preference('OpacNoItemTypeImages') ) %]
<img src="[% imageurl | html %]" alt="" />
[% END %]
[% IF ( description ) %]
[% description | html %]
[% ELSE %]
[% itemtype | html %]
[% END %]
</span>
[% END %]
[% IF ( LibraryThingForLibrariesID ) %]
<!-- This puts the LTFL reviews in, and if TabbedView is not set, puts the remaining content above the Tabs instead of in them -->
[% 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 %]
[% IF shelves.count %]
<!--This grabs all of the lists a bib record appears in -->
<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 ( TagLoop )%]
[% IF ( TagsInputEnabled ) %]
[% IF ( loggedinusername ) %]
<a class="tag_add btn btn-sm btn-link" id="tag_add[% biblio.biblionumber | html %]" href="#"><i class="fa fa-tag" aria-hidden="true"></i> 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 # / IF ( loggedinusername ) %]
[% END # / IF ( TagsInputEnabled ) %]
</div> <!-- /.results_summary.tags -->
[% END # /IF TagsShowEnabled %]
[% IF ( TagsInputEnabled ) %]
[% IF ( loggedinusername ) %]
<form id="tagform[% biblio.biblionumber | html %]" method="post" action="/cgi-bin/koha/opac-tags.pl" style="display:none;">
<div class="form-row">
<div class="col-3">
<label for="newtag[% biblio.biblionumber | html %]">New tag(s), separated by a comma:</label>
</div> <!-- /.col-3 -->
<div class="col-6">
<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>
</div> <!-- /.col-6 -->
<div class="col-auto">
<input name="tagbutton" class="btn btn-sm btn-primary tagbutton" title="[% biblio.biblionumber | html %]" type="submit" value="Add" />
<a class="cancel_tag_add" id="cancel[% biblio.biblionumber | html %]" href="#">(done)</a>
<span id="newtag[% biblio.biblionumber | html %]_status" class="tagstatus" style="display:none;">
Tag status here.
</span>
</div> <!-- /.col-auto -->
</div> <!-- /.form-row -->
</form>
[% END # / IF ( loggedinusername ) %]
[% END # / IF TagsInputEnabled %]
[% 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> <!-- /#serialcollection -->
[% 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 # /IF specific_item %]
[% 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> <!-- /.content_set -->
</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> <!-- /.col-lg-10 -->
<div class="col-lg-3">
<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>
<div class="pg_menu">
<div class="pg_link 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 %]
</div>
[%# busc is already URI encoded %]
<div class="pg_link back_results">
<a href="opac-search.pl?[% busc | $raw %]" title="Back to the results search list">Back to results</a>
</div>
<div class="pg_link 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 %]
</div>
</div> <!-- /.pg_menu -->
[% 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 # /FOREACH listitem %]
</ul> <!-- /#listResults -->
</div> <!-- /.nav_pages -->
<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 # /IF listitem.biblionumber %]
[% END # /FOREACH listitem %]
</ul> <!-- /#ul_pagination_list -->s
</div> <!-- /.pagination_list -->
</div> <!-- /.results-pagination -->
[% END # /IF ( listResults ) %]
<div class="pagination_footer">
<a href="#" class="close_pagination"><i class="fa fa-remove" aria-hidden="true"></i> Close</a>
</div>
</div> <!-- /.nav_results -->
[% 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?url=[% current_url|url %]&text=[% title | uri %]" class="twitter-share-button" data-count="none" data-lang="[% lang | html %]" title="Share on Twitter"><i class="fa fa-twitter" aria-hidden="true"></i></a></div>
[% END # /SWITCH network -%]
[% END # /FOREACH network %]
</div> <!-- /#social_networks -->
[% END # /IF SocialNetworks %]
</div> <!-- / .ulactioncontainer -->
</div> <!-- / .col-lg-3 -->
</div> <!-- / .row -->
<div class="row">
[% 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 -->
</div> <!-- / .container-fluid -->
</div> <!-- / .main -->
[% IF ( OPACPopupAuthorsSearch ) %]
<!-- Modal -->
<div class="modal" id="multiSearch" tabindex="-1" role="dialog" aria-labelledby="multiSearchLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h3 id="multiSearchLabel">Select the item(s) to search</h3>
<button type="button" class="closebtn" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<a href="#" class="check_all btn btn-link btn-sm"><i class="fa fa-check" aria-hidden="true"></i> Select all</a> <span class="sep">|</span>
<a href="#" class="check_none btn btn-link btn-sm"><i class="fa fa-remove" aria-hidden="true"></i> Select none</a>
<ul id="termsList">
</ul>
</div>
<div class="modal-footer">
<button id="validMultiSearch" class="btn btn-primary">Search</button>
<a href="#" class="cancel" data-dismiss="modal" aria-hidden="true">Cancel</a>
</div>
</div> <!-- /.modal-content -->
</div> <!-- /.modal-dialog -->
</div> <!-- /#myModal -->
[% END %]
[% 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 library</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<span class="hidden"> (Opens below)</span></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<span class="hidden"> (Opens below)</span></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_uri %]
[% 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 %]
[% BLOCK jsinclude %]
[% INCLUDE 'datatables.inc' %]
[% INCLUDE 'columns_settings.inc' %]
[% INCLUDE greybox.inc %]
[% 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 # /IF OpacHighlightedWords %]
$(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("d-none") ){
qrcodeImg.removeClass("d-none");
} else {
qrcodeImg.addClass("d-none");
}
});
[% END # /IF OPACDetailQRCode %]
$('#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 # /IF OpacBrowseResults %]
var columns_settings = [% TablesSettings.GetColumns( 'opac', 'biblio-detail', 'holdingst', 'json' ) | $raw %];
KohaTable("#holdingst", {
dom: '<"clearfix">t',
"columnDefs": [
{ "targets": [ -1 ], "sortable": false, "searchable": false },
],
"bKohaColumnsUseNames": true,
"autoWidth": false
}, columns_settings);
KohaTable("#otherholdingst", {
dom: '<"clearfix">t',
"columnDefs": [
{ "targets": [ -1 ], "sortable": false, "searchable": false },
],
"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" ]],
"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 ) %]
// Focus on shelf browser if present
var shelfbrowser = $("#shelfbrowser");
if (shelfbrowser.length > 0) {
$('html,body').animate({
scrollTop: shelfbrowser.first().offset().top
},
'slow');
shelfbrowser.first().find(':focusable').eq(0).focus();
}
(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 ( OPACShelfBrowser ) %]
[% 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();
});
} /* if( OPACPopupAuthorsSearch == "1" ) */
});
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 %]