From 7f0696c660e5395489924b99b50b495af4363153 Mon Sep 17 00:00:00 2001 From: Jaswinder Singh Date: Fri, 22 Jun 2018 16:24:38 -0400 Subject: [PATCH] LP#1772680: Fixed issues dealing with search feature and new User Signed-off-by: Jaswinder Singh Signed-off-by: Galen Charlton LP#1772680: Resolved multiple issues Signed-off-by: Jaswinder Singh Signed-off-by: Galen Charlton LP#1772680: Fixed the search issue Signed-off-by: Jaswinder Singh Signed-off-by: Galen Charlton --- .../lib/OpenILS/Application/EbookAPI/RBDigital.pm | 23 +++++--- .../lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm | 12 ++--- .../opac/ebook_api/rbdigital/parts/filtersort.tt2 | 3 -- .../opac/ebook_api/rbdigital/parts/item_parser.tt2 | 5 +- .../ebook_api/rbdigital/parts/record/summary.tt2 | 9 ++-- .../ebook_api/rbdigital/parts/result/table.tt2 | 62 ++++++++++++++-------- .../opac/ebook_api/rbdigital/register_modal.tt2 | 5 +- Open-ILS/src/templates/opac/parts/vendor_tabs.tt2 | 7 ++- .../web/js/ui/default/opac/ebook_api/rbdigital.js | 2 +- 9 files changed, 73 insertions(+), 55 deletions(-) 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 a3e582e5e0..d9977f52db 100755 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm @@ -182,11 +182,9 @@ sub do_patron_auth { # try to authenticate the user with a username $patron_id = $self-> _get_patron_id($username); - if ($patron_id < 1) { - # TODO: Remove/Replace the below line - $patron_id = 99999; - } + $logger->error("EbookAPI: Unable to get RBDigital Patron ID found for $username/$email"); } + return $patron_id; } @@ -291,14 +289,16 @@ sub _build_search_URI { if ($sort_by ne '') { $sort_string = "&sort-by=$sort_by&sort-order=$sort_order"; + } else { + $sort_string = '&sort-by=title'; #Default to Title sort } # convert book to ebook if ($media_format eq 'book') { - $media_format = 'ebook'; + $media_format = ''; } - if ($media_format eq 'eaudio' || $media_format eq 'ebook') { + if ($media_format eq 'eaudio' || $media_format eq 'ebook' || $media_format eq '') { $uri = "search/$media_format?search-source=quick-all&page-size=$page_size". "&page-index=$page_index&all=$value_to_search&mediatype=$media_format".$sort_string; } elsif ($media_format eq '' && scalar (@$search_inputs) == 0) { @@ -810,6 +810,11 @@ sub get_patron_checkouts { my $session_id = $self->{session_id}; my $req; + if ($patron_id == 0) { + $logger->info("EbookAPI: Patron ID is 0. Returning with an API call"); + return; + } + $logger->info("EbookAPI: Getting checkout list for Patron: $patron_id from RBDigital."); $req = { method => 'GET', @@ -853,6 +858,12 @@ sub get_patron_holds { my $base_uri = $self->{base_uri}; my $library_id = $self->{library_id}; my $session_id = $self->{session_id}; + + if ($patron_id == 0) { + $logger->info("EbookAPI: Patron ID is 0. Returning with an API call"); + return; + } + my $req = { method => 'GET', uri => "$base_uri/libraries/$library_id/patrons/$patron_id/holds", diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm index 9011b3307b..4a5abdd614 100755 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm @@ -145,12 +145,6 @@ sub load_rbdigital_results { # filters my $filters = []; - # my $query; - # foreach (grep /^fi:/, $cgi->param) { - # /:(-?\w+)$/ or next; - # my $term = join(",", $cgi->param($_)); - # $query .= " $1($term)" if length $term; - # } # Build array with Search Inputs # Title (if any) @@ -229,7 +223,7 @@ sub load_rbdigital_results { $logger->info('EbookAPI: RBDigitalSearch Checking media type'); # Check if RBDigital can perform requested query - if ($media_format eq 'eaudio' || $media_format eq 'ebook' || $media_format eq 'book' || $media_format eq 'music' || $media_format eq '') { + if ($media_format eq 'eaudio' || $media_format eq 'ebook' || $media_format eq 'book' || $media_format eq 'music' || $media_format eq '' ) { $logger->info('EbookAPI: RBDigitalSearch Invoking search method'); $results = _search ($self->editor->authtoken, $session_id, @@ -245,6 +239,8 @@ sub load_rbdigital_results { # Return hash reference of wishlist {isbn => true} $ctx->{wishlist} = _get_patron_wishlist($self->editor->authtoken, $session_id); + $ctx->{holds} = _get_patron_holds($self->editor->authtoken, $session_id); + $ctx->{checkouts} = _get_patron_checkouts($self->editor->authtoken, $session_id); # Add values to returned query structure for GUI to process @@ -360,7 +356,7 @@ sub _get_patron_id { return $api_request->recv->content; } - return 1; + return 0; } sub _get_ebook_session_id { diff --git a/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/filtersort.tt2 b/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/filtersort.tt2 index 596c82d002..577d09c379 100755 --- a/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/filtersort.tt2 +++ b/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/filtersort.tt2 @@ -18,7 +18,4 @@ - - - diff --git a/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/item_parser.tt2 b/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/item_parser.tt2 index b49775310e..be741bc511 100755 --- a/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/item_parser.tt2 +++ b/Open-ILS/src/templates/opac/ebook_api/rbdigital/parts/item_parser.tt2 @@ -28,10 +28,7 @@ ebook_item.authors_detail = ''; # Check title is available for Checkout Service - ebook_item.isTitleAvailable = false; - IF item.interest.isAvailable == 'true'; - ebook_item.isTitleAvailable = true; - END; + ebook_item.isAvailable = ebook_record_item.interest.isAvailable; # Loop over AUTHORS array FOREACH item IN ebook_record_item.authors; 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 6ae94046b3..64c94f1ca5 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 @@ -6,12 +6,14 @@ #Set the ebook_record_item before processing the item_parser ebook_record_item = ctx.title_info.item; + ebook_record_item.interest = ctx.title_info.interest; ebook_record_item.summary = ctx.title_summary.summary; ebook_record_item.recommended_books = ctx.recommended_books; ebook_isbn = ebook_record_item.isbn; PROCESS "opac/ebook_api/rbdigital/parts/item_parser.tt2"; %] + @@ -44,7 +46,7 @@ [% END %]
- [% IF ebook_item.isTitleAvailable == true; %] + [% IF ebook_item.isAvailable == 1; %]
[% IF ctx.checkouts.$ebook_isbn != ""; %] - [% END; %] - - [% IF ctx.checkouts.$ebook_isbn == ""; %] - + [% ELSE; %]
- [% IF ebook_item.isTitleAvailable == true; %] -
- [% IF ctx.checkouts.$ebook_isbn != ""; %] - -  [% l("Download") %] + [% IF ebook_item.isAvailable == 1; %] +
+ [% IF ctx.checkouts.$ebook_isbn != ""; %] + +  [% l("Download") %] - [% ELSE; %] - - [% l('Check Out E-Item') %] - [% END; %] -
+ [% ELSE; %] + + [% l('Check Out E-Item') %] + [% END; %] +
+ [% ELSE; %] + [% END; %] [% IF !ctx.is_meta %] -