[% USE raw %]
[% USE Asset %]
[% USE Koha %]
+[% USE AdditionalContents %]
+[% SET OpacNav = AdditionalContents.get( location => "OpacNav", lang => lang, library => logged_in_user.branchcode, blocktitle => 0 ) %]
+[% SET OpacNavBottom = AdditionalContents.get( location => "OpacNavBottom", lang => lang, library => logged_in_user.branchcode, blocktitle => 0 ) %]
[% INCLUDE 'doc-head-open.inc' %]
-<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog › OverDrive search for '[% q | html %]'</title>
+<title>OverDrive search for '[% q | html %]' › [% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog</title>
[% INCLUDE 'doc-head-close.inc' %]
+[% Asset.css("css/overdrive.css") | $raw %]
[% BLOCK cssinclude %]
[% END %]
</head>
[% INCLUDE 'masthead.inc' %]
<div class="main">
- <ul class="breadcrumb">
- <li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">›</span></li>
- <li><a href="#">OverDrive search for '[% q | html %]'</a></li>
- </ul>
+ <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumbs">
+ <ol class="breadcrumb">
+ <li class="breadcrumb-item">
+ <a href="/cgi-bin/koha/opac-main.pl">Home</a>
+ </li>
+ <li class="breadcrumb-item active">
+ <a href="#" aria-current="page">OverDrive search for '[% q | html %]'</a>
+ </li>
+ </ol>
+ </nav> <!-- /#breadcrumbs -->
<div class="container-fluid">
- <div class="row-fluid">
- <div class="span2">
+ <div class="row">
+ <div class="col-lg-2">
[% IF ( OpacNav || OpacNavBottom ) %]
[% INCLUDE 'navigation.inc' %]
[% END %]
</div>
- <div class="span10">
+ <div class="col-lg-10 order-first order-md-first order-lg-2">
<div id="overdrive-results-content" class="maincontent searchresults">
<h1>OverDrive search for '[% q | html %]'</h1>
<div id="breadcrumbs">
</div>
<div id="top-pages">
- <div class="pagination pagination-small">
- </div>
+ <nav class="pagination pagination-sm noprint" aria-label="Search results pagination">
+ </nav>
</div>
<table id="overdrive-results-list" class="table table-striped">
</table>
<div id="bottom-pages">
- <div class="pagination pagination-small">
- </div>
+ <nav class="pagination pagination-sm noprint" aria-label="Search results pagination">
+ </nav>
</div>
</div> <!-- / #overdrive-results-content -->
</div> <!-- / .span10 -->
- </div> <!-- / .row-fluid -->
+ </div> <!-- / .row -->
</div> <!-- / .container-fluid -->
</div> <!-- / .main -->
[% INCLUDE 'opac-bottom.inc' %]
[% BLOCK jsinclude %]
-[% Asset.js("js/overdrive.js") | $raw %]
-<script>
-var OD_password_required = [% IF Koha.Preference('OverDrivePasswordRequired') %]1[% ELSE %]0[% END %];
-var querystring = "[% q |replace( "'", "\'" ) |replace( '\n', '\\n' ) |replace( '\r', '\\r' ) | html %]";
-var results_per_page = [% OPACnumSearchResults | html %];
-
-function fetch_availability( prod, $tr ) {
- var $availability_summary = $( '<span class="results_summary availability"></span>' );
- $tr.find( '.mediatype' ).after( $availability_summary );
- $availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + _("Loading...") );
-
- KOHA.OverDrive.Get(
- prod.links.availability.href,
- {},
- function ( data ) {
- if ( data.error ) return;
-
- $availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + '<span class="available"><b>' + _("Items available:") + ' </b>' + data.copiesAvailable + " " + _("out of") + ' ' + data.copiesOwned + '</span>' );
-
- if ( data.numberOfHolds ) {
- $availability_summary.find( '.available' ).append( ', ' + _("waiting holds:") + ' <strong>' + data.numberOfHolds + '</strong>' );
- }
-
- $tr.find( '.info' ).each(function() {
- KOHA.OverDriveCirculation.add_actions(this, data.id, data.copiesAvailable);
- });
- }
- );
-}
+ [% Asset.js("js/overdrive.js") | $raw %]
+ <script>
+ var OD_password_required = [% IF Koha.Preference('OverDrivePasswordRequired') %]1[% ELSE %]0[% END %];
+ var querystring = "[% q |replace( "'", "\'" ) |replace( '\n', '\\n' ) |replace( '\r', '\\r' ) | html %]";
+ var results_per_page = [% OPACnumSearchResults | html %];
+
+ function fetch_availability( prod, $tr ) {
+ var $availability_summary = $( '<span class="results_summary availability"></span>' );
+ $tr.find( '.mediatype' ).after( $availability_summary );
+ $availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + _("Loading...") );
+
+ KOHA.OverDrive.Get(
+ prod.links.availability.href,
+ {},
+ function ( data ) {
+ if ( data.error ) return;
+
+ if( data.availabilityType == 'AlwaysAvailable' ){
+ $availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + '<span class="available"><b>' + _("Always available") + '</b></span>' );
+ } else {
+ $availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + '<span class="available"><b>' + _("Items available:") + ' </b>' + data.copiesAvailable + " " + _("out of") + ' ' + data.copiesOwned + '</span>' );
+ }
-function search( offset ) {
- $( '#overdrive-status' ).html( _("Searching OverDrive...") + ' <img class="throbber" src="[% interface | html %]/lib/jquery/plugins/themes/classic/throbber.gif" /></span>' );
+ if ( data.numberOfHolds ) {
+ $availability_summary.find( '.available' ).append( ', ' + _("waiting holds:") + ' <strong>' + data.numberOfHolds + '</strong>' );
+ }
- KOHA.OverDrive.Search( "[% Koha.Preference('OverDriveLibraryID') | html %]", querystring, results_per_page, offset, function( data ) {
- if ( data.error ) {
- $( '#overdrive-status' ).html( '<strong class="unavailable">' + _("Error searching OverDrive collection.") + '</strong>' );
- return;
+ $tr.find( '.info' ).each(function() {
+ KOHA.OverDriveCirculation.add_actions(this, data.id, data.copiesAvailable);
+ });
+ }
+ );
}
- if ( !data.totalItems ) {
- $( '#overdrive-status' ).html( '<strong>' + _("No results found in the library's OverDrive collection.") + '</strong>' );
- return;
- }
+ function search( offset ) {
+ $( '#overdrive-status' ).html( _("Searching OverDrive...") + ' <img class="throbber" src="[% interface | html %]/lib/jquery/plugins/themes/classic/throbber.gif" /></span>' );
- $( '#overdrive-results-list tbody' ).empty();
+ KOHA.OverDrive.Search( "[% Koha.Preference('OverDriveLibraryID') | html %]", querystring, results_per_page, offset, function( data ) {
+ if ( data.error ) {
+ $( '#overdrive-status' ).html( '<strong class="unavailable">' + _("Error searching OverDrive collection.") + '</strong>' );
+ return;
+ }
- $( '#overdrive-status' ).html( '<strong>' + _("Found") + ' ' + data.totalItems + ' ' + _("results in the library's OverDrive collection.") + '</strong>' );
+ if ( !data.totalItems ) {
+ $( '#overdrive-status' ).html( '<strong>' + _("No results found in the library's OverDrive collection.") + '</strong>' );
+ return;
+ }
- for ( var i = 0; data.products[i]; i++ ) {
- var prod = data.products[i];
- var results = [];
+ $( '#overdrive-results-list tbody' ).empty();
+
+ $( '#overdrive-status' ).html( '<strong>' + _("Found") + ' ' + data.totalItems + ' ' + _("results in the library's OverDrive collection.") + '</strong>' );
+
+ for ( var i = 0; data.products[i]; i++ ) {
+ var prod = data.products[i];
+ var results = [];
+
+ results.push( '<tr>' );
+
+ results.push( '<td class="info"><a class="title" href="', prod.contentDetails[0].href, '">' );
+ results.push( prod.title );
+ if ( prod.subtitle ) results.push( ', ', prod.subtitle );
+ results.push( '</a>' );
+ if ( prod.primaryCreator ) results.push( '<p>' + _("by") + ' ', prod.primaryCreator.name, '</p>' );
+ results.push( '<span class="results_summary mediatype"><span class="label">' + _("Type:") + ' </span>', prod.mediaType, '</span>' );
+
+ if ( prod.starRating ) {
+ var rating_value = Math.round( prod.starRating );
+ results.push( '<div class="results_summary ratings">' );
+ results.push( '<div class="br-wrapper br-theme-fontawesome-stars">');
+ results.push( '<div class="br-widget br-readonly">');
+ for ( var rating = 1; rating <= 5; rating++ ) {
+
+ results.push( '<a href="#"' );
+ if( rating == rating_value ){
+ results.push( ' class="br-selected br-current"></a>' );
+ } else if( rating_value > rating ){
+ results.push( ' class="br-selected"></a>' );
+ } else {
+ results.push( '></a>');
+ }
+ }
+ results.push( '</div>' );
+ results.push( '</div>' );
+ results.push( '</div>' );
+ }
- results.push( '<tr>' );
+ results.push( '</td>' );
- results.push( '<td class="info"><a class="title" href="', prod.contentDetails[0].href, '">' );
- results.push( prod.title );
- if ( prod.subtitle ) results.push( ', ', prod.subtitle );
- results.push( '</a>' );
- if ( prod.primaryCreator ) results.push( '<p>' + _("by") + ' ', prod.primaryCreator.name, '</p>' );
- results.push( '<span class="results_summary mediatype"><span class="label">' + _("Type:") + ' </span>', prod.mediaType, '</span>' );
+ results.push( '<td>' );
+ if ( prod.images.thumbnail ) {
+ results.push( '<a href="', prod.contentDetails[0].href, '">' );
+ results.push( '<img class="overdrive-thumbnail thumbnail" src="', prod.images.thumbnail.href, '" />' );
+ results.push( '</a>' );
+ }
+ results.push( '</td>' );
- if ( prod.starRating ) {
- var rating_value = Math.round( prod.starRating );
- results.push( '<div class="results_summary ratings">' );
- results.push( '<div class="br-wrapper br-theme-fontawesome-stars">');
- results.push( '<div class="br-widget br-readonly">');
- for ( var rating = 1; rating <= 5; rating++ ) {
+ results.push( '</tr>' );
+ var $tr = $( results.join( '' ));
+ $( '#overdrive-results-list tbody' ).append( $tr );
- results.push( '<a href="#"' );
- if( rating == rating_value ){
- results.push( ' class="br-selected br-current"></a>' );
- } else if( rating_value > rating ){
- results.push( ' class="br-selected"></a>' );
- } else {
- results.push( '></a>');
- }
+ fetch_availability( prod, $tr );
}
- results.push( '</div>' );
- results.push( '</div>' );
- results.push( '</div>' );
- }
-
- results.push( '</td>' );
-
- results.push( '<td>' );
- if ( prod.images.thumbnail ) {
- results.push( '<a href="', prod.contentDetails[0].href, '">' );
- results.push( '<img class="thumbnail" src="', prod.images.thumbnail.href, '" />' );
- results.push( '</a>' );
- }
- results.push( '</td>' );
-
- results.push( '</tr>' );
- var $tr = $( results.join( '' ));
- $( '#overdrive-results-list tbody' ).append( $tr );
-
- fetch_availability( prod, $tr );
- }
- $( '#overdrive-results-list tr:odd' ).addClass( 'highlight' );
+ $( '#overdrive-results-list tr:odd' ).addClass( 'highlight' );
- var pages = [];
- var cur_page = offset / results_per_page;
- var max_page = Math.floor( data.totalItems / results_per_page );
+ var pages = [];
+ var cur_page = offset / results_per_page;
+ var max_page = Math.floor( data.totalItems / results_per_page );
- if ( cur_page != 0 ) {
- pages.push( '<li><a class="od-nav" href="#" data-offset="' + (offset - results_per_page) + '">« ' + _("Previous") + '</a></li>' );
- }
+ if ( cur_page != 0 ) {
+ pages.push( '<li class="page-item"><a class="page-link od-nav" href="#" data-offset="' + (offset - results_per_page) + '">« ' + _("Previous") + '</a></li>' );
+ }
- for ( var page = Math.max( 0, cur_page - 9 ); page <= Math.min( max_page, cur_page + 9 ); page++ ) {
- if ( page == cur_page ) {
- pages.push( ' <li class="active"><a href="#">' + ( page + 1 ) + '</a></li>' );
- } else {
- pages.push( ' <li><a class="od-nav" href="#" data-offset="' + ( page * results_per_page ) + '">' + ( page + 1 ) + '</a></li>' );
- }
- }
+ for ( var page = Math.max( 0, cur_page - 9 ); page <= Math.min( max_page, cur_page + 9 ); page++ ) {
+ if ( page == cur_page ) {
+ pages.push( ' <li class="page-item disabled"><a class="page-link" href="#">' + ( page + 1 ) + '</a></li>' );
+ } else {
+ pages.push( ' <li class="page-item"><a class="page-link od-nav" href="#" data-offset="' + ( page * results_per_page ) + '">' + ( page + 1 ) + '</a></li>' );
+ }
+ }
- if ( cur_page < max_page ) {
- pages.push( ' <li><a class="od-nav" href="#" data-offset="' + (offset + results_per_page) + '">' + _("Next") + ' »</a></li>' );
- }
+ if ( cur_page < max_page ) {
+ pages.push( ' <li class="page-item"><a class="page-link od-nav" href="#" data-offset="' + (offset + results_per_page) + '">' + _("Next") + ' »</a></li>' );
+ }
- if ( pages.length > 1 ) $( '#top-pages, #bottom-pages' ).find( '.pagination' ).html( '<ul>' + pages.join( '' ) + '</ul>');
+ if ( pages.length > 1 ) $( '#top-pages, #bottom-pages' ).find( '.pagination' ).html( '<ul class="pagination">' + pages.join( '' ) + '</ul>');
- } );
-}
+ } );
+ }
-$( document ).ready( function() {
- $( '#breadcrumbs p' )
- .append( ' ' )
- .append( '<span id="overdrive-status"></span>' );
+ $( document ).ready( function() {
+ $( '#breadcrumbs p' )
+ .append( ' ' )
+ .append( '<span id="overdrive-status"></span>' );
- $( document ).on( 'click', 'a.od-nav', function() {
- search( $( this ).data( 'offset' ) );
- return false;
- });
+ $( document ).on( 'click', 'a.od-nav', function() {
+ search( $( this ).data( 'offset' ) );
+ return false;
+ });
- [% IF ( overdrive_error ) %]
- KOHA.OverDriveCirculation.display_error("#breadcrumbs", "[% overdrive_error.dquote | html %]");
- [% END %]
- [% IF ( loggedinusername and Koha.Preference('OverDriveCirculation') ) %]
- KOHA.OverDriveCirculation.with_account_details("#breadcrumbs", function() {
- search( 0 );
- });
- [% ELSE %]
- search( 0 );
- [% END %]
-} );
-</script>
+ [% IF ( overdrive_error ) %]
+ KOHA.OverDriveCirculation.display_error("#breadcrumbs", "[% overdrive_error.dquote | html %]");
+ [% END %]
+ [% IF ( loggedinusername and Koha.Preference('OverDriveCirculation') ) %]
+ KOHA.OverDriveCirculation.with_account_details("#breadcrumbs", function() {
+ search( 0 );
+ });
+ [% ELSE %]
+ search( 0 );
+ [% END %]
+ });
+ </script>
[% END %]