Bug 10320: (follow-up) Fix copyright and style errors
[koha.git] / koha-tmpl / opac-tmpl / prog / en / modules / opac-overdrive-search.tt
1 [% INCLUDE 'doc-head-open.inc' %]
2 [% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › OverDrive search for '[% q | html %]'
3 [% INCLUDE 'doc-head-close.inc' %]
4 <script type="text/javascript" src="[% themelang %]/js/overdrive.js"></script>
5 <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.rating.js"></script>
6 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/jquery.rating.css" />
7 <script type="text/javascript">
8 var querystring = "[% q |replace( "'", "\'" ) |replace( '\n', '\\n' ) |replace( '\r', '\\r' ) |html %]";
9 var results_per_page = [% OPACnumSearchResults %];
10
11 function fetch_availability( prod, $tr ) {
12     var $availability_summary = $( '<span class="results_summary"></span>' );
13     $tr.find( '.info' ).append( $availability_summary );
14     $availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + _("Loading...") );
15
16     KOHA.OverDrive.Get(
17         prod.links.availability.href,
18         {},
19         function ( data ) {
20             if ( data.error ) return;
21
22             $availability_summary.html( '<span class="label">' + _("Copies available:") + ' </span><span class="available"><strong>' +  data.copiesAvailable + '</strong> ' + _("out of") + ' ' + data.copiesOwned + '</span>' );
23
24             if ( data.numberOfHolds ) {
25                 $availability_summary.find( '.available' ).append( ', ' + _("waiting holds:") + ' <strong>' + data.numberOfHolds + '</strong>' );
26             }
27
28             $tr.find( '.info' ).append( '<span class="results_summary actions"><span class="label">' + _("Actions:") + ' </span><a href="http://' + prod.contentDetails[0].href + '" ' + ( data.copiesAvailable ? ( ' class="addtocart">' + _("Check out") ) : ( ' class="hold">' + _("Place hold") ) ) + '</a></span>' );
29         }
30     );
31 }
32
33 function search( offset ) {
34     $( '#overdrive-status' ).html( _("Searching OverDrive...") + ' <img class="throbber" src="/opac-tmpl/lib/jquery/plugins/themes/classic/throbber.gif" /></span>' );
35
36     KOHA.OverDrive.Search( "[% OverDriveLibraryID %]", querystring, results_per_page, offset, function( data ) {
37         if ( data.error ) {
38             $( '#overdrive-status' ).html( '<strong class="unavailable">' + _("Error searching OverDrive collection.") + '</strong>' );
39             return;
40         }
41
42         if ( !data.totalItems ) {
43             $( '#overdrive-status' ).html( '<strong>' + _("No results found in the library's OverDrive collection.") + '</strong>' );
44             return;
45         }
46
47         $( '#overdrive-results-list tbody' ).empty();
48
49         $( '#overdrive-status' ).html( '<strong>' + _("Found") + ' ' + data.totalItems + ' ' + _("results in the library's OverDrive collection.") + '</strong>' );
50
51         for ( var i = 0; data.products[i]; i++ ) {
52             var prod = data.products[i];
53             var results = [];
54
55             results.push( '<tr>' );
56
57             results.push( '<td class="info"><a class="title" href="http://', prod.contentDetails[0].href, '">' );
58             results.push( prod.title );
59             if ( prod.subtitle ) results.push( ', ', prod.subtitle );
60             results.push( '</a>' );
61             results.push( '<p>' + _("by") + ' ', prod.primaryCreator.name, '</p>' );
62             if ( prod.starRating ) {
63                 results.push( '<span class="results_summary ratings">' );
64                 for ( var rating = 1; rating <= 5; rating++ ) {
65                     results.push( '<input class="star" type="radio" name="rating-' + i + '" value="' + rating + '"' + ( rating == Math.round( prod.starRating ) ? ' checked="checked"' : '' ) + ' disabled="disabled" />' );
66                 }
67                 results.push( '</span>' );
68             }
69             results.push( '<span class="results_summary"><span class="label">' + _("Type:") + ' </span>', prod.mediaType, '</span>' );
70             results.push( '</td>' );
71
72             results.push( '<td>' );
73             if ( prod.images.thumbnail ) {
74                 results.push( '<a href="http://', prod.contentDetails[0].href, '">' );
75                 results.push( '<img class="thumbnail" src="', prod.images.thumbnail.href, '" />' );
76                 results.push( '</a>' );
77             }
78             results.push( '</td>' );
79
80             results.push( '</tr>' );
81             var $tr = $( results.join( '' ));
82             $( '#overdrive-results-list tbody' ).append( $tr );
83
84             fetch_availability( prod, $tr );
85         }
86
87         $( '#overdrive-results-list tr:odd' ).addClass( 'highlight' );
88
89         var pages = [];
90         var cur_page = offset / results_per_page;
91         var max_page = Math.floor( data.totalItems / results_per_page );
92
93         if ( cur_page != 0 ) {
94             pages.push( '<a class="nav" href="#" data-offset="' + (offset - results_per_page) + '">&lt;&lt; ' + _("Previous") + '</a>' );
95         }
96
97         for ( var page = Math.max( 0, cur_page - 9 ); page <= Math.min( max_page, cur_page + 9 ); page++ ) {
98             if ( page == cur_page ) {
99                 pages.push( ' <span class="current">' + ( page + 1 ) + '</span>' );
100             } else {
101                 pages.push( ' <a class="nav" href="#" data-offset="' + ( page * results_per_page ) + '">' + ( page + 1 ) + '</a>' );
102             }
103         }
104
105         if ( cur_page < max_page ) {
106             pages.push( ' <a class="nav" href="#" data-offset="' + (offset + results_per_page) + '">' + _("Next") + ' >></a>' );
107         }
108
109         if ( pages.length > 1 ) $( '#top-pages, #bottom-pages' ).find( '.pages' ).html( pages.join( '' ) );
110
111         $( '#overdrive-results-list input.star' ).rating();
112     } );
113 }
114
115 $( document ).ready( function() {
116     $( '#breadcrumbs p' )
117         .append( ' ' )
118         .append( '<span id="overdrive-status"></span>' );
119
120     $( document ).on( 'click', 'a.nav', function() {
121         search( $( this ).data( 'offset' ) );
122         return false;
123     });
124
125     search( 0 );
126 } );
127 </script>
128 <style>
129 .actions a.addtocart {
130     display: inline;
131 }
132 </style>
133 </head>
134 <body>
135 [% IF ( OpacNav ) %]
136 <div id="doc3" class="yui-t1">
137 [% ELSE %]
138 <div id="doc3" class="yui-t7">
139 [% END %]
140    <div id="bd">
141 [% INCLUDE 'masthead.inc' %]
142
143     <h1>OverDrive search for '[% q | html %]'</h1>
144     <div id="breadcrumbs">
145         <p></p>
146     </div>
147
148     <div id="yui-main"><div class="yui-b searchresults">
149         <div id="top-pages">
150             <div class="pages">
151             </div>
152         </div>
153         <table id="overdrive-results-list">
154             <tbody>
155             </tbody>
156         </table>
157         <div id="bottom-pages">
158             <div class="pages">
159             </div>
160         </div>
161      </div></div>
162
163 [% IF ( OpacNav ) %]
164 <div class="yui-b"><div id="opacnav" class="container">
165 [% INCLUDE 'navigation.inc' %]
166 </div></div>
167 [% END %]
168
169
170 </div>
171 [% INCLUDE 'opac-bottom.inc' %]