Bug 29320: Update OverDrive availability to V2
This patch updates the call to overdrive_proxy to allow passing a version
and updates the code to use V2 for availability
To test:
1 - Enable OverDrive integration by setting the sysprefs
2 - Log in to your overdrive account in the Koha opac
3 - Perform a search and note availability display
4 - Confirm you can checkout/hold/return books
5 - Apply patch
6 - Repeat search and test functionality
7 - Note that title with '0 out of 0 copies available' now say 'Currently unavailable'
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
(cherry picked from commit 3eb290c949)
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
This commit is contained in:
parent
554d6ff354
commit
7b43ac2544
|
|
@ -78,13 +78,17 @@
|
|||
$availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + _("Loading...") );
|
||||
|
||||
KOHA.OverDrive.Get(
|
||||
prod.links.availability.href,
|
||||
{},
|
||||
prod.links.availabilityV2.href,
|
||||
{ version: 2},
|
||||
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 if ( data.availabilityType == 'LimitedAvailability' && data.available ) {
|
||||
$availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + '<span class="available"><b>' + _("Currently available") + '</b></span>' );
|
||||
} else if ( !data.available ) {
|
||||
$availability_summary.html( '<span class="label">' + _("Availability:") + ' </span> ' + '<span class="unavailable"><b>' + _("Currently unavailable") + '</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>' );
|
||||
}
|
||||
|
|
@ -94,7 +98,7 @@
|
|||
}
|
||||
|
||||
$tr.find( '.info' ).each(function() {
|
||||
KOHA.OverDriveCirculation.add_actions(this, data.id, data.copiesAvailable);
|
||||
KOHA.OverDriveCirculation.add_actions(this, data.reserveId, data.copiesAvailable);
|
||||
});
|
||||
}
|
||||
);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ KOHA.OverDrive = ( function() {
|
|||
Get: function( url, params, callback ) {
|
||||
$.ajax( {
|
||||
type: 'GET',
|
||||
url: url.replace( /https?:\/\/api.overdrive.com\/v1/, proxy_base_url ),
|
||||
url: url.replace( /https?:\/\/api.overdrive.com\/v[1|2]/, proxy_base_url ),
|
||||
dataType: 'json',
|
||||
data: params,
|
||||
error: function( xhr, error ) {
|
||||
|
|
|
|||
|
|
@ -59,10 +59,11 @@ if ( !(C4::Context->preference('OverDriveClientKey') && C4::Context->preference(
|
|||
|
||||
exit;
|
||||
}
|
||||
my $version = $query->param('version') // 1;
|
||||
my $fixed_query = $query->query_string;
|
||||
$fixed_query =~ tr/;/&/;
|
||||
|
||||
my $request = HTTP::Request::Common::GET( "https://api.overdrive.com/v1" . $query->path_info . '?' . $fixed_query );
|
||||
my $request = HTTP::Request::Common::GET( "https://api.overdrive.com/v$version" . $query->path_info . '?' . $fixed_query );
|
||||
$request->header( Authorization => $token );
|
||||
|
||||
my $ua = LWP::UserAgent->new( "Koha " . Koha::version() );
|
||||
|
|
|
|||
Loading…
Reference in New Issue