From 52a5cb91104552c0688411831d595a1ac8826c20 Mon Sep 17 00:00:00 2001 From: Jaswinder Singh Date: Mon, 23 Jul 2018 12:06:19 -0400 Subject: [PATCH] LP#1772680: Fixed multiple issues and add the ability to return an e-item Signed-off-by: Jaswinder Singh Signed-off-by: Galen Charlton --- .../lib/OpenILS/Application/EbookAPI/RBDigital.pm | 4 ++-- .../ebook_api/rbdigital/parts/record/summary.tt2 | 2 +- .../ebook_api/rbdigital/parts/result/table.tt2 | 4 ++-- .../src/templates/opac/parts/ebook_api/base_js.tt2 | 3 ++- Open-ILS/web/js/ui/default/opac/ebook_api/ebook.js | 27 ++++++++++++++++++++++ .../web/js/ui/default/opac/ebook_api/loggedin.js | 7 +++++- .../web/js/ui/default/opac/ebook_api/rbdigital.js | 23 ++++++++++++++++++ 7 files changed, 63 insertions(+), 7 deletions(-) mode change 100644 => 100755 Open-ILS/web/js/ui/default/opac/ebook_api/loggedin.js diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm index 5f4094673b..789db8c78a 100755 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm @@ -733,10 +733,10 @@ sub checkin { my $res = $self->request($req, $session_id); if (defined ($res)) { if ($res->{is_success}) { - return $res; + return $res->{content}; } else { $logger->error("EbookAPI: checkin failed for RBDigital title $isbn"); - return { error_msg => $res->{content} }; + return { message => 'failed', error_msg => $res->{content} }; } } else { $logger->error("EbookAPI: no response received from RBDigital server"); diff --git a/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/record/summary.tt2 b/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/record/summary.tt2 index 584419b873..6e82f7f6e9 100755 --- a/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/record/summary.tt2 +++ b/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/record/summary.tt2 @@ -56,7 +56,7 @@ rel="nofollow" vocab="" data-isbn="[% ebook_item.isbn %]">  [% l("Download") %] - + [% l("Return") %] [% ELSE; %] -  [% l("Download") %] - +  [% l("Download") %] +   [% l("Return") %] [% ELSE; %] - + diff --git a/Open-ILS/web/js/ui/default/opac/ebook_api/ebook.js b/Open-ILS/web/js/ui/default/opac/ebook_api/ebook.js index 1bcec2d818..f13a17309d 100755 --- a/Open-ILS/web/js/ui/default/opac/ebook_api/ebook.js +++ b/Open-ILS/web/js/ui/default/opac/ebook_api/ebook.js @@ -70,6 +70,7 @@ Ebook.prototype.getHoldings = function(callback) { }).send(); } +//Checkout and E-item Ebook.prototype.checkout = function(authtoken, patron_id, callback) { var ebook = this; //Reload new session (if any) @@ -98,6 +99,32 @@ Ebook.prototype.checkout = function(authtoken, patron_id, callback) { }); } +//Checkin / Return an E-item +Ebook.prototype.checkin = function(authtoken, patron_id, callback) { + var ebook = this; + //Reload new session (if any) + checkSession(this.vendor, function(vendor_cookie_name) { + var ses = ebook.ses || dojo.cookie(vendor_cookie_name); + + var checkout_format = ""; + + // perform checkout + new OpenSRF.ClientSession('open-ils.ebook_api').request({ + method: 'open-ils.ebook_api.checkin', + params: [ authtoken, ses, ebook.id, patron_id, checkout_format ], + async: true, + oncomplete: function(r) { + var resp = r.recv(); + if (resp) { + console.log('checkout response: ' + resp.content()); + return callback(resp.content()); + } + } + }).send(); + }); +} + +//Place hold on an ebook Ebook.prototype.placeHold = function(authtoken, patron_id, callback) { var ebook = this; diff --git a/Open-ILS/web/js/ui/default/opac/ebook_api/loggedin.js b/Open-ILS/web/js/ui/default/opac/ebook_api/loggedin.js old mode 100644 new mode 100755 index abc46e5084..216f0b3568 --- a/Open-ILS/web/js/ui/default/opac/ebook_api/loggedin.js +++ b/Open-ILS/web/js/ui/default/opac/ebook_api/loggedin.js @@ -125,9 +125,14 @@ function updateCheckoutView() { dojo.create("td", { innerHTML: x.author }, tr); dojo.create("td", { innerHTML: x.due_date }, tr); var dl_td = dojo.create("td", null, tr); + var actions_html = ""; if (x.download_url) { - dl_td.innerHTML = '' + l_strings.download + ''; + actions_html = '' + l_strings.download + ''; } + actions_html += ' '+l_strings.return+''; + + dl_td.innerHTML = actions_html; + if (x.formats) { var select = dojo.create("select", { id: "download-format" }, dl_td); for (f in x.formats) { diff --git a/Open-ILS/web/js/ui/default/opac/ebook_api/rbdigital.js b/Open-ILS/web/js/ui/default/opac/ebook_api/rbdigital.js index 71a66f9657..0364bb9181 100755 --- a/Open-ILS/web/js/ui/default/opac/ebook_api/rbdigital.js +++ b/Open-ILS/web/js/ui/default/opac/ebook_api/rbdigital.js @@ -199,6 +199,15 @@ function setupEventHandlers() { ebook_rbdigital.cancelHold(authtoken, rbdigitalPatronId, cancelHoldCallback); }); + //Return an e-item + $(document).on('click','.lnk_ebook_checkin', function () { + var isbn = $(this).data('isbn'); + ebook_rbdigital.id = isbn; + showEbookSpinner($(this), true); + ebook_rbdigital.checkin(authtoken, rbdigitalPatronId, checkinCallback); + }); + + //Download an ebook/eaudio $(document).on('click','#ebook_circs_main_table_body a', function () { var that = $(this); var api_url = that.attr('href'); @@ -294,6 +303,7 @@ function cancelHoldCallback(responseContents, isbn) { hideEbookSpinner(); } +//Checkout function checkoutAddCallback(responseContents) { if (responseContents.message == "success") { showNotification('Success','Succesfully checked out item!','success'); @@ -304,6 +314,19 @@ function checkoutAddCallback(responseContents) { } else { showNotification('Unknown Error','Unable to checkout the item. Please try it again!','error'); console.log(responseContents.message); + hideEbookSpinner(); + } +} + +//Checkin/Return +function checkinCallback(responseContents) { + if (responseContents.message == "success") { + showNotification('Success','Succesfully returned the item!','success'); + location.reload(); + } else { + showNotification('Unknown Error','Unable to return the item. Please try it again!','error'); + console.log(responseContents.message); + hideEbookSpinner(); } } -- 2.11.0