@@ -, +, @@
au:{Author} AND ti:{Title}
q=Author AND Title
---
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt
+++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt
@@ -914,14 +914,19 @@
var $overdrive_results = $( '
' + MSG_SEARCHING.format('OverDrive') + '
' );
$( '#numresults' ) .append( ' ' )
.append( $overdrive_results );
- KOHA.OverDrive.Search( "[% Koha.Preference('OverDriveLibraryID') | html %]", querystring, 1, 0, function( data ) {
+ //Clean querystring, first we remove CCL entities, then decode HTML entities, then swap double quotes for single quotes
+ //as the overdrive API treats double quotes as a search term and returns extra results
+ od_querystring = querystring.replace(/(?:^|\W)([\w-]+)(,[\w-]+)*([:=])/g,' ');
+ od_querystring = new DOMParser().parseFromString( od_querystring, 'text/html').body.innerText;
+ od_querystring = od_querystring.replace(/\"/g,"'");
+ KOHA.OverDrive.Search( "[% Koha.Preference('OverDriveLibraryID') | html %]", od_querystring, 1, 0, function( data ) {
if ( data.error ) {
$overdrive_results.html( MSG_ERROR_SEARCHING_COLLECTION.format('OverDrive') );
return;
}
if ( data.totalItems ) {
- $overdrive_results.html( '' + MSG_RESULTS_FOUND_IN_COLLECTION.format(data.totalItems, 'OverDrive') + '' );
+ $overdrive_results.html( '' + MSG_RESULTS_FOUND_IN_COLLECTION.format(data.totalItems, 'OverDrive') + '' );
} else {
$overdrive_results.remove();
}
--