# 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;
}
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) {
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',
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",
# 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)
$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,
# 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
return $api_request->recv->content;
}
- return 1;
+ return 0;
}
sub _get_ebook_session_id {
<option value='pubdate.descending'[% value == 'pubdate.descending' ? ' selected="selected"' : '' %]>[% l("Date: Newest to Oldest") %]</option>
<option value='pubdate'[% value == 'pubdate' ? ' selected="selected"' : '' %]>[% l("Date: Oldest to Newest") %]</option>
</optgroup>
- <optgroup label='[% l("Sort by Popularity") %]'>
- <option value='popularity'[% value == 'popularity' ? ' selected="selected"' : '' %]>[% l("Most Popular") %]</option>
- </optgroup>
</select>
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;
#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";
%]
+
<!-- ****************** rdetail_summary.xml ***************************** -->
<!-- Ebook Spinner -->
<span id="ebook_spinner" class="hidden"> Processing ... <img style="width:20px;height:auto" src="[% ctx.media_prefix %]/opac/images/progressbar_green.gif[% ctx.cache_key %]" alt="[% l("Processing...") %]"/></span>
[% END %]
<div id="rdetail_actions_div">
- [% IF ebook_item.isTitleAvailable == true; %]
+ [% IF ebook_item.isAvailable == 1; %]
<div class="rdetail_aux_utils ebook_action">
[% IF ctx.checkouts.$ebook_isbn != ""; %]
<a id="[% ebook_item.isbn %]_ebook_checkout_download_link"
[% END; %]
</div>
- [% END; %]
-
- [% IF ctx.checkouts.$ebook_isbn == ""; %]
-
+ [% ELSE; %]
<div id="[% ebook_item.isbn %]_ebook_hold" class="rdetail_aux_utils ebook_action">
<a id="[% ebook_item.isbn %]_ebook_place_hold"
href="#" data-isbn="[% ebook_item.isbn %]"
IF ctx.result_stop > ctx.hit_count; ctx.result_stop = ctx.hit_count; END;
result_count = ctx.result_start;
+ USE Dumper;
%]
[% PROCESS "opac/parts/result/paginate.tt2" %]
[% ctx.results_count_header = PROCESS results_count_header;
[%
FOR rec IN ctx.records;
ebook_record_item = rec.item;
+ ebook_record_item.interest = rec.interest;
PROCESS "opac/ebook_api/rbdigital/parts/item_parser.tt2";
#ebook_item variable is populated inside the item_parser file
ebook_isbn = ebook_item.isbn;
</div>
<div class="result_table_utils_cont">
<div class="result_table_utils">
- [% IF ebook_item.isTitleAvailable == true; %]
- <div id="[%- rec.item.isbn -%]_ebook_checkout" class="results_aux_utils result_util ebook_action">
- [% IF ctx.checkouts.$ebook_isbn != ""; %]
- <a id="[% ebook_item.isbn %]_ebook_checkout_download_link"
- href="#"
- data-downloadurl="[% ctx.checkouts.$ebook_isbn; %]"
- class="no-dec ebook_checkout_download_link"
- rel="nofollow" vocab=""
- data-isbn="[% ebook_item.isbn %]">
- <img src="[% ctx.media_prefix %]/images/minus_sign.png[% ctx.cache_key %]" alt="" /> [% l("Download") %]</a>
+ [% IF ebook_item.isAvailable == 1; %]
+ <div id="[%- rec.item.isbn -%]_ebook_checkout" class="results_aux_utils result_util ebook_action">
+ [% IF ctx.checkouts.$ebook_isbn != ""; %]
+ <a id="[% ebook_item.isbn %]_ebook_checkout_download_link"
+ href="#"
+ data-downloadurl="[% ctx.checkouts.$ebook_isbn; %]"
+ class="no-dec ebook_checkout_download_link"
+ rel="nofollow" vocab=""
+ data-isbn="[% ebook_item.isbn %]">
+ <img src="[% ctx.media_prefix %]/images/minus_sign.png[% ctx.cache_key %]" alt="" /> [% l("Download") %]</a>
- [% ELSE; %]
- <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_checkout',
- {title => args.ebook.ebook_id, vendor => args.ebook.vendor, action => 'checkout'},
- ['query','tag','subfield','term','_special','sort','page']) %]"
- [% html_text_attr('title', l('Check Out [_1]', ebook_item.title)) %]
- data-isbn="[% ebook_item.isbn %]"
- class="no-dec ebook_checkout_link" rel="nofollow" vocab="">
- <img src="[% ctx.media_prefix %]/images/green_check.png[% ctx.cache_key %]"
- alt=""/><span class="result_place_hold">[% l('Check Out E-Item') %]</span></a>
- [% END; %]
- </div>
+ [% ELSE; %]
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_checkout',
+ {title => args.ebook.ebook_id, vendor => args.ebook.vendor, action => 'checkout'},
+ ['query','tag','subfield','term','_special','sort','page']) %]"
+ [% html_text_attr('title', l('Check Out [_1]', ebook_item.title)) %]
+ data-isbn="[% ebook_item.isbn %]"
+ class="no-dec ebook_checkout_link" rel="nofollow" vocab="">
+ <img src="[% ctx.media_prefix %]/images/green_check.png[% ctx.cache_key %]"
+ alt=""/><span class="result_place_hold">[% l('Check Out E-Item') %]</span></a>
+ [% END; %]
+ </div>
+ [% ELSE; %]
+ <div id="[% ebook_item.isbn %]_ebook_hold" class="rdetail_aux_utils result_util ebook_action">
+ <a id="[% ebook_item.isbn %]_ebook_place_hold"
+ href="#" data-isbn="[% ebook_item.isbn %]"
+ class="no-dec ebook_place_hold [% IF ctx.holds.$ebook_isbn == "1"; %] hidden [% END; %]" rel="nofollow" vocab="">
+ <img src="[% ctx.media_prefix %]/images/green_check.png[% ctx.cache_key %]"
+ [% img_alt(l('Place Hold on [_1]', ebook_item.title)) %]/>
+ <span class="result_place_hold">[% l('Place Hold on E-Item') %]</span></a>
+
+ <a id="[% ebook_item.isbn %]_ebook_cancel_hold"
+ href="#" data-isbn="[% ebook_item.isbn %]"
+ class="no-dec ebook_cancel_hold [% IF ctx.holds.$ebook_isbn != "1"; %] hidden [% END; %]" rel="nofollow" vocab="">
+ <img src="[% ctx.media_prefix %]/images/minus_sign.png[% ctx.cache_key %]"
+ [% img_alt(l('Cancel Hold on [_1]', ebook_item.title)) %]/>
+ <span class="result_place_hold">[% l('Cancel Hold on E-Item') %]</span></a>
+ </div>
[% END; %]
[% IF !ctx.is_meta %]
- <div class="results_aux_utils result_util">
+ <div class="results_aux_utils result_util ebook_action">
[% IF !ctx.is_staff; %]
<a id="[% ebook_item.isbn %]_ebook_wishlist_add" href="#"
class="no-dec ebook_wishlist_link_add [% IF ctx.wishlist.$ebook_isbn == "1"; %] hidden [% END; %]"
<!-- Modal -->
<div id="rbdigitalRegisterModal" class="modal fade" role="dialog">
<div class="modal-dialog">
-
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<form id="frmRegisterRBDigital" role="form">
<div class="form-group">
<label for="usrname"><span class="glyphicon glyphicon-user"></span> Username</label>
- <input type="text" class="form-control" id="userrname" placeholder="Enter email" value="[% ctx.user.usrname | html %]" disabled>
+ <input type="text" class="form-control" id="userrname" placeholder="Enter email" value="[% ctx.user.usrname | html; %]" disabled>
</div>
<div id="divPassword" class="form-group">
<label for="psw"><span class="glyphicon glyphicon-eye-open"></span> New Password</label>
<button id="btnCloseRegisterSuccess" type="submit" class="btn btn-danger btn-default pull-right" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Close</button>
</div>
</div>
+ </div>
+ </div>
</div>
\ No newline at end of file
</div>
</div>
<input type="hidden" id="rbdigitalPatronId" value="[% ctx.rbdigital_patron_id %]">
- [% IF ctx.rbdigital_patron_id == 0 %]
+ [% IF ctx.rbdigital_patron_id == 0; %]
<!-- Load Code for displaying the password prompt -->
- [%- INCLUDE 'opac/ebook_api/rbdigital/register_modal.tt2' %]
- [% END;%]
-
+ [% INCLUDE 'opac/ebook_api/rbdigital/register_modal.tt2'; %]
+ [% END; %]
[% END; %]
function cancelHoldCallback(responseContents, isbn) {
if (responseContents.message == "success") {
- showNotification('Success','Item is no loger on hold!','success');
+ showNotification('Success','Item is no longer on hold!','success');
$("#"+isbn+"_ebook_place_hold").removeClass('hidden');
$("#"+isbn+"_ebook_cancel_hold").addClass('hidden');
} else if (responseContents.message.indexOf("already exists") > 1) {