Followup for bug 10320: minor bugfixes and style improvements
authorJesse Weaver <pianohacker@gmail.com>
Thu, 18 Jul 2013 15:48:19 +0000 (09:48 -0600)
committerGalen Charlton <gmc@esilibrary.com>
Sun, 8 Sep 2013 07:04:02 +0000 (07:04 +0000)
Switch to the new method of showing star ratings. Also, fix some
translation bugs, an error that occurred when caching was disabled and
add a stub unit test.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
12 files changed:
C4/External/OverDrive.pm
koha-tmpl/opac-tmpl/ccsr/en/css/opac.css
koha-tmpl/opac-tmpl/prog/en/css/opac.css
koha-tmpl/opac-tmpl/prog/en/modules/opac-overdrive-search.tt
koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt
koha-tmpl/opac-tmpl/prog/images/Star0.gif [deleted file]
koha-tmpl/opac-tmpl/prog/images/Star1.gif [deleted file]
koha-tmpl/opac-tmpl/prog/images/Star2.gif [deleted file]
koha-tmpl/opac-tmpl/prog/images/Star3.gif [deleted file]
koha-tmpl/opac-tmpl/prog/images/Star4.gif [deleted file]
koha-tmpl/opac-tmpl/prog/images/Star5.gif [deleted file]
t/External_Overdrive.t [new file with mode: 0755]

index 179ffe2..9cec867 100644 (file)
@@ -122,7 +122,7 @@ sub GetOverDriveToken {
     $token = $contents->{'token_type'} . ' ' . $contents->{'access_token'};
 
     # Fudge factor to prevent spurious failures
-    $cache->set_in_cache( 'overdrive_token', $token, $contents->{'expires_in'} - 5 );
+    $cache and $cache->set_in_cache( 'overdrive_token', $token, $contents->{'expires_in'} - 5 );
 
     return $token;
 }
index d8c289c..0901d6b 100644 (file)
@@ -2842,6 +2842,7 @@ a.reviewlink,a.reviewlink:visited {
 .branch-info-tooltip {
     display: none;
 }
+
 .sorting_asc {
     padding-right: 19px;
     background: url("../../images/asc.gif") no-repeat scroll right center #EEEEEE;
@@ -2860,4 +2861,18 @@ a.reviewlink,a.reviewlink:visited {
 .nosort.sorting {
     padding-right: 19px;
     background: #EEEEEE none;
-}
\ No newline at end of file
+}
+
+#overdrive-results {
+    font-weight: bold;
+    padding-left: 1em;
+}
+
+.throbber {
+    vertical-align: middle;
+}
+
+#overdrive-results-list .star-rating-control {
+    display: block;
+    overflow: auto;
+}
index be2141a..99a2d45 100644 (file)
@@ -3058,3 +3058,8 @@ padding: 0.1em 0;
 .throbber {
     vertical-align: middle;
 }
+
+#overdrive-results-list .star-rating-control {
+    display: block;
+    overflow: auto;
+}
index 4ba9f8d..086a22b 100644 (file)
@@ -2,6 +2,8 @@
 [% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog &rsaquo; OverDrive search for '[% q | html %]'
 [% INCLUDE 'doc-head-close.inc' %]
 <script type="text/javascript" src="[% themelang %]/js/overdrive.js"></script>
+<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.rating.js"></script>
+<link rel="stylesheet" type="text/css" href="[% themelang %]/css/jquery.rating.css" />
 <script type="text/javascript">
 var querystring = "[% q |replace( "'", "\'" ) |replace( '\n', '\\n' ) |replace( '\r', '\\r' ) |html %]";
 var results_per_page = [% OPACnumSearchResults %];
@@ -9,7 +11,7 @@ var results_per_page = [% OPACnumSearchResults %];
 function fetch_availability( prod, $tr ) {
     var $availability_summary = $( '<span class="results_summary"></span>' );
     $tr.find( '.info' ).append( $availability_summary );
-    $availability_summary.html( '<span class="label">Availability: </span> Loading...' );
+    $availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + _("Loading...") );
 
     KOHA.OverDrive.Get(
         prod.links.availability.href,
@@ -17,34 +19,34 @@ function fetch_availability( prod, $tr ) {
         function ( data ) {
             if ( data.error ) return;
 
-            $availability_summary.html( '<span class="label">Copies available: </span><span class="available"><strong>' +  data.copiesAvailable + '</strong> out of ' + data.copiesOwned + '</span>' );
+            $availability_summary.html( '<span class="label">' + _("Copies available:") + ' </span><span class="available"><strong>' +  data.copiesAvailable + '</strong> ' + _("out of") + ' ' + data.copiesOwned + '</span>' );
 
             if ( data.numberOfHolds ) {
-                $availability_summary.find( '.available' ).append( ', waiting holds: <strong>' + data.numberOfHolds + '</strong>' );
+                $availability_summary.find( '.available' ).append( ', ' + _("waiting holds:") + ' <strong>' + data.numberOfHolds + '</strong>' );
             }
 
-            $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>' );
+            $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>' );
         }
     );
 }
 
 function search( offset ) {
-    $( '#overdrive-status' ).html( 'Searching OverDrive... <img class="throbber" src="/opac-tmpl/lib/jquery/plugins/themes/classic/throbber.gif" /></span>' );
+    $( '#overdrive-status' ).html( _("Searching OverDrive...") + ' <img class="throbber" src="/opac-tmpl/lib/jquery/plugins/themes/classic/throbber.gif" /></span>' );
 
     KOHA.OverDrive.Search( "[% OverDriveLibraryID %]", querystring, results_per_page, offset, function( data ) {
         if ( data.error ) {
-            $( '#overdrive-status' ).html( '<strong class="unavailable">Error searching OverDrive collection.</strong>' );
+            $( '#overdrive-status' ).html( '<strong class="unavailable">' + _("Error searching OverDrive collection.") + '</strong>' );
             return;
         }
 
         if ( !data.totalItems ) {
-            $( '#overdrive-status' ).html( '<strong>No results found in the library\'s OverDrive collection.</strong>' );
+            $( '#overdrive-status' ).html( '<strong>' + _("No results found in the library's OverDrive collection.") + '</strong>' );
             return;
         }
 
-        $( '#results tbody' ).empty();
+        $( '#overdrive-results-list tbody' ).empty();
 
-        $( '#overdrive-status' ).html( '<strong>Found ' + data.totalItems + ' results in the library\'s OverDrive collection.</strong>' );
+        $( '#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];
@@ -56,9 +58,15 @@ function search( offset ) {
             results.push( prod.title );
             if ( prod.subtitle ) results.push( ', ', prod.subtitle );
             results.push( '</a>' );
-            results.push( '<p>by ', prod.primaryCreator.name, '</p>' );
-            results.push( '<span class="results_summary"><span class="label">Type: </span>', prod.mediaType, '</span>' );
-            if ( prod.starRating ) results.push( '<span class="results_summary"><span class="label">Average rating: <img src="[% themelang %]/../images/Star', Math.round( parseInt( prod.starRating )), '.gif" title="" style="max-height: 15px; vertical-align: bottom"/></span>' );
+            results.push( '<p>' + _("by") + ' ', prod.primaryCreator.name, '</p>' );
+            if ( prod.starRating ) {
+                results.push( '<span class="results_summary ratings">' );
+                for ( var rating = 1; rating <= 5; rating++ ) {
+                    results.push( '<input class="star" type="radio" name="rating-' + i + '" value="' + rating + '"' + ( rating == Math.round( prod.starRating ) ? ' checked="checked"' : '' ) + ' disabled="disabled" />' );
+                }
+                results.push( '</span>' );
+            }
+            results.push( '<span class="results_summary"><span class="label">' + _("Type:") + ' </span>', prod.mediaType, '</span>' );
             results.push( '</td>' );
 
             results.push( '<td>' );
@@ -71,19 +79,19 @@ function search( offset ) {
 
             results.push( '</tr>' );
             var $tr = $( results.join( '' ));
-            $( '#results tbody' ).append( $tr );
+            $( '#overdrive-results-list tbody' ).append( $tr );
 
             fetch_availability( prod, $tr );
         }
 
-        $( '#results 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 );
 
         if ( cur_page != 0 ) {
-            pages.push( '<a class="nav" href="#" data-offset="' + (offset - results_per_page) + '">&lt;&lt; Previous</a>' );
+            pages.push( '<a class="nav" href="#" data-offset="' + (offset - results_per_page) + '">&lt;&lt; ' + _("Previous") + '</a>' );
         }
 
         for ( var page = Math.max( 0, cur_page - 9 ); page <= Math.min( max_page, cur_page + 9 ); page++ ) {
@@ -95,10 +103,12 @@ function search( offset ) {
         }
 
         if ( cur_page < max_page ) {
-            pages.push( ' <a class="nav" href="#" data-offset="' + (offset + results_per_page) + '">Next >></a>' );
+            pages.push( ' <a class="nav" href="#" data-offset="' + (offset + results_per_page) + '">' + _("Next") + ' >></a>' );
         }
 
         if ( pages.length > 1 ) $( '#top-pages, #bottom-pages' ).find( '.pages' ).html( pages.join( '' ) );
+
+        $( '#overdrive-results-list input.star' ).rating();
     } );
 }
 
@@ -140,7 +150,7 @@ $( document ).ready( function() {
             <div class="pages">
             </div>
         </div>
-        <table id="results">
+        <table id="overdrive-results-list">
             <tbody>
             </tbody>
         </table>
index 551a515..9235b2b 100644 (file)
@@ -267,18 +267,18 @@ $(document).ready(function(){
         $("#highlight_toggle_off").show().click(function() {highlightOff();});
     [% END %]
     [% IF ( OverDriveEnabled ) %]
-        var $overdrive_results = $( '<span id="overdrive-results">Searching OverDrive... <img class="throbber" src="/opac-tmpl/lib/jquery/plugins/themes/classic/throbber.gif" /></span>' );
+        var $overdrive_results = $( '<span id="overdrive-results">' + _( 'Searching OverDrive...' ) + ' <img class="throbber" src="/opac-tmpl/lib/jquery/plugins/themes/classic/throbber.gif" /></span>' );
         $( '#breadcrumbs p' ).eq(0)
             .append( ' ' )
             .append( $overdrive_results );
         KOHA.OverDrive.Search( "[% OverDriveLibraryID %]", querystring, 1, 0, function( data ) {
             if ( data.error ) {
-                $overdrive_results.html( 'Error searching OverDrive collection' );
+                $overdrive_results.html( _( 'Error searching OverDrive collection' ) );
                 return;
             }
 
             if ( data.totalItems ) {
-                $overdrive_results.html( 'Found <a href="/cgi-bin/koha/opac-overdrive-search.pl?q=' + escape( querystring ) + '">' + data.totalItems + ' results</a> in OverDrive collection' );
+                $overdrive_results.html( _( 'Found' ) + ' <a href="/cgi-bin/koha/opac-overdrive-search.pl?q=' + escape( querystring ) + '">' + data.totalItems + ' ' + _( 'results' ) + '</a> ' + _( 'in OverDrive collection' ) );
             } else {
                 $overdrive_results.remove();
             }
diff --git a/koha-tmpl/opac-tmpl/prog/images/Star0.gif b/koha-tmpl/opac-tmpl/prog/images/Star0.gif
deleted file mode 100644 (file)
index 44ffdf4..0000000
Binary files a/koha-tmpl/opac-tmpl/prog/images/Star0.gif and /dev/null differ
diff --git a/koha-tmpl/opac-tmpl/prog/images/Star1.gif b/koha-tmpl/opac-tmpl/prog/images/Star1.gif
deleted file mode 100644 (file)
index 2038638..0000000
Binary files a/koha-tmpl/opac-tmpl/prog/images/Star1.gif and /dev/null differ
diff --git a/koha-tmpl/opac-tmpl/prog/images/Star2.gif b/koha-tmpl/opac-tmpl/prog/images/Star2.gif
deleted file mode 100644 (file)
index 2b60940..0000000
Binary files a/koha-tmpl/opac-tmpl/prog/images/Star2.gif and /dev/null differ
diff --git a/koha-tmpl/opac-tmpl/prog/images/Star3.gif b/koha-tmpl/opac-tmpl/prog/images/Star3.gif
deleted file mode 100644 (file)
index 3ff6739..0000000
Binary files a/koha-tmpl/opac-tmpl/prog/images/Star3.gif and /dev/null differ
diff --git a/koha-tmpl/opac-tmpl/prog/images/Star4.gif b/koha-tmpl/opac-tmpl/prog/images/Star4.gif
deleted file mode 100644 (file)
index 473cb32..0000000
Binary files a/koha-tmpl/opac-tmpl/prog/images/Star4.gif and /dev/null differ
diff --git a/koha-tmpl/opac-tmpl/prog/images/Star5.gif b/koha-tmpl/opac-tmpl/prog/images/Star5.gif
deleted file mode 100644 (file)
index 0a61173..0000000
Binary files a/koha-tmpl/opac-tmpl/prog/images/Star5.gif and /dev/null differ
diff --git a/t/External_Overdrive.t b/t/External_Overdrive.t
new file mode 100755 (executable)
index 0000000..a659846
--- /dev/null
@@ -0,0 +1,13 @@
+#!/usr/bin/perl
+#
+# This Koha test module is a stub!
+# Add more tests here!!!
+
+use strict;
+use warnings;
+
+use Test::More tests => 1;
+
+BEGIN {
+        use_ok('C4::External::OverDrive');
+}