(undef, $self->ctx->{mylist}) = $self->fetch_mylist unless
$path =~ /opac\/my(opac\/lists|list)/;
- return $self->load_simple("home") if $path =~ /opac\/home/;
- return $self->load_simple("advanced") if $path =~ /opac\/advanced/;
- return $self->load_rresults if $path =~ /opac\/results/;
- return $self->load_record if $path =~ /opac\/record/;
+ return $self->load_simple("home") if $path =~ m|opac/home|;
+ return $self->load_simple("advanced") if $path =~ m|opac/advanced|;
+ return $self->load_rresults if $path =~ m|opac/results|;
+ return $self->load_record if $path =~ m|opac/record|;
- return $self->load_mylist_add if $path =~ /opac\/mylist\/add/;
- return $self->load_mylist_move if $path =~ /opac\/mylist\/move/;
- return $self->load_mylist if $path =~ /opac\/mylist/;
- return $self->load_cache_clear if $path =~ /opac\/cache\/clear/;
+ return $self->load_mylist_add if $path =~ m|opac/mylist/add|;
+ return $self->load_mylist_move if $path =~ m|opac/mylist/move|;
+ return $self->load_mylist if $path =~ m|opac/mylist|;
+ return $self->load_cache_clear if $path =~ m|opac/cache/clear|;
# ----------------------------------------------------------------
# Logout and login require SSL
# ----------------------------------------------------------------
- if($path =~ /opac\/login/) {
+ if($path =~ m|opac/login|) {
return $self->redirect_ssl unless $self->cgi->https;
return $self->load_login;
}
- if($path =~ /opac\/logout/) {
+ if($path =~ m|opac/logout|) {
#return Apache2::Const::FORBIDDEN unless $self->cgi->https;
$self->apache->log->warn("catloader: logout called in non-secure context from " .
($self->ctx->{referer} || '<no referer>')) unless $self->cgi->https;
return $self->redirect_auth
unless $self->cgi->https and $self->editor->requestor;
- return $self->load_place_hold if $path =~ /opac\/place_hold/;
- return $self->load_myopac_holds if $path =~ /opac\/myopac\/holds/;
- return $self->load_myopac_circs if $path =~ /opac\/myopac\/circs/;
- return $self->load_myopac_fines if $path =~ /opac\/myopac\/main/;
- return $self->load_myopac_update_email if $path =~ /opac\/myopac\/update_email/;
- return $self->load_myopac_bookbags if $path =~ /opac\/myopac\/lists/;
- return $self->load_myopac_bookbag_update if $path =~ /opac\/myopac\/list\/update/;
- return $self->load_myopac if $path =~ /opac\/myopac/;
+ return $self->load_place_hold if $path =~ m|opac/place_hold|;
+ return $self->load_myopac_holds if $path =~ m|opac/myopac/holds|;
+ return $self->load_myopac_circs if $path =~ m|opac/myopac/circs|;
+ return $self->load_myopac_fines if $path =~ m|opac/myopac/main|;
+ return $self->load_myopac_update_email if $path =~ m|opac/myopac/update_email|;
+ return $self->load_myopac_bookbags if $path =~ m|opac/myopac/lists|;
+ return $self->load_myopac_bookbag_update if $path =~ m|opac/myopac/list/update|;
+ return $self->load_myopac_circ_history if $path =~ m|opac/myopac/circ_history|;
+ return $self->load_myopac_hold_history if $path =~ m|opac/myopac/hold_history|;
+ return $self->load_myopac if $path =~ m|opac/myopac|;
return Apache2::Const::OK;
}
return Apache2::Const::OK;
}
+sub load_myopac_circ_history {
+ my $self = shift;
+ my $e = $self->editor;
+ my $ctx = $self->ctx;
+ my $limit = $self->cgi->param('limit');
+ my $offset = $self->cgi->param('offset');
+
+ my $circs = $e->json_query({
+ from => ['action.usr_visible_circs', $e->requestor->id],
+ limit => $limit || 25,
+ offset => $offset || 0
+ });
+
+ $ctx->{circs} = $self->fetch_user_circs(1, [map { $_->{id} } @$circs], $limit, $offset);
+
+ return Apache2::Const::OK;
+}
+
+sub load_myopac_hold_history {
+ my $self = shift;
+ my $e = $self->editor;
+ my $ctx = $self->ctx;
+ my $limit = $self->cgi->param('limit');
+ my $offset = $self->cgi->param('offset');
+
+ my $holds = $e->json_query({
+ from => ['action.usr_visible_holds', $e->requestor->id],
+ limit => $limit || 25,
+ offset => $offset || 0
+ });
+
+ $ctx->{holds} = $self->fetch_user_holds([map { $_->{id} } @$holds], 0, 1, 0, $limit, $offset);
+
+ return Apache2::Const::OK;
+}
+
sub load_myopac_fines {
my $self = shift;
my $e = $self->editor;
--- /dev/null
+[% PROCESS "default/opac/parts/header.tt2";
+ PROCESS "default/opac/parts/marc_misc.tt2";
+ WRAPPER "default/opac/parts/base.tt2" +
+ "default/opac/parts/myopac/base.tt2";
+ myopac_page = "circs";
+ limit = CGI.param('limit') || 25;
+ offset = CGI.param('offset') || 0;
+%]
+
+<div style="padding:0px;">
+
+ <div id="acct_checked_tabs" style="padding-bottom: 12px;color:#666;">
+ <div class="align selected">
+ <a href='circs'><img src="[% ctx.media_prefix %]/images/sub_checked_out_off.jpg"/></a>
+ </div>
+ <div class="align">
+ <img src="[% ctx.media_prefix %]/images/sub_checked_hist_on.jpg"/>
+ </div>
+ <div class="clear-both"></div>
+ </div>
+
+ <div class="header_middle">
+ <span class="float-left">[% l('Current Items Checked Out') %]</span>
+ <span class='float-left' style='padding-left: 10px;'>
+ [% IF offset > 0 %]
+ <a href='circ_history?limit=[% limit %]&offset=[% offset - 1 %]'>[% l('Previous') %]</a>
+ [% END %]
+ [% IF ctx.circs.size == limit %]
+ [%# TODO: get total to prevent paging off then end of the list.. %]
+ <a href='circ_history?limit=[% limit %]&offset=[% offset + 1 %]'>[% l('Next') %]</a>
+ [% END %]
+ </span>
+ <span class="float-right">
+ <a class="hide_me" href="#">[% l('Export List') %]</a>
+ </span>
+ </div>
+ <div class="clear-both"></div>
+
+ [% IF ctx.circs.size < 1 %]
+ <div class="opac-auto-079">
+ <big><strong>[% l('You have no items checked out.') %]</strong></big>
+ </div>
+ [% ELSE %]
+
+ [% IF ctx.success_renewals %]
+ <div class="renew-summary">
+ [% l("Successfully renewed [_1] item(s)", ctx.success_renewals) %]
+ </div>
+ [% END %]
+
+ [% IF ctx.failed_renewals %]
+ <div class="renew-summary red">
+ [% l("Failed to renew [_1] item(s)", ctx.failed_renewals) %]
+ </div>
+ [% END %]
+
+ <div id='checked_main'>
+ <table style='border-collapse:collapse;'>
+ <thead id="acct_checked_main_header">
+ <tr>
+ <td width="32%" style="padding-left:5px;">
+ <span title="Click to sort" class='pointer'>[% l('Title') %]</span> /
+ <span title="Click to sort" class='pointer'>[% l('Author') %]</span>
+ </td>
+ <td width="10%" style="padding-left:5px;">
+ <span title="Click to sort" class='pointer'>[% l('Checkout Date') %]</span>
+ </td>
+ <td width="10%" style="padding-left:5px;">
+ <span title="Click to sort" class='pointer'>[% l('Due Date') %]</span>
+ </td>
+ <td width="10%" style="padding-left:5px;">
+ <span title="Click to sort" class='pointer'>[% l('Date Returned') %]</span>
+ </td>
+ <td width="16%">
+ <span title="Click to sort" class='pointer'>[% l('Barcode') %]</span>
+ </td>
+ <td width="22%">
+ <span title="Click to sort" class='pointer'>[% l('Call Number') %]</span>
+ </td>
+ </tr>
+ </thead>
+ <tbody>
+ [% FOR circ IN ctx.circs;
+ attrs = {marc_xml => circ.marc_xml};
+ PROCESS get_marc_attrs args=attrs; %]
+ <tr>
+ <td style="padding-left:5px;padding-bottom:10px;">
+ <a href="[% ctx.opac_root %]/record/[% circ.circ.target_copy.call_number.record.id %]"
+ name="[% l('Catalog record') %]">[% attrs.title %]</a>
+ [% IF attrs.author %] /
+ <a href="[% ctx.opac_root %]/results?qtype=author&query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author %]</a>
+ [% END %]
+ </td>
+ <td style="padding-left:5px;">
+ [% date.format(ctx.parse_datetime(circ.circ.xact_start),DATE_FORMAT); %]
+ </td>
+ <td style="padding-left:5px;">
+ [% date.format(ctx.parse_datetime(circ.circ.due_date),DATE_FORMAT); %]
+ </td>
+ <td style="padding-left:5px;">
+ [% IF circ.circ.checkin_time;
+ date.format(ctx.parse_datetime(circ.circ.checkin_time),DATE_FORMAT);
+ END; %]
+ </td>
+ <td>[% circ.circ.target_copy.barcode %]</td>
+ <td>[% circ.circ.target_copy.call_number.label %]</td>
+ </tr>
+ [% END %]
+ </tbody>
+ </table>
+ </div>
+ [% END %]
+</div>
+[% END %]
"default/opac/parts/myopac/base.tt2";
myopac_page = "circs" %]
<div id='myopac_checked_div' style="padding:0px;">
- <div id="acct_checked_tabs" style="padding-bottom: 12px;color:#666;" class="hide_me">
- <div class="align selected" id="checked_label">
+
+ <div id="acct_checked_tabs" style="padding-bottom: 12px;color:#666;">
+ <div class="align selected">
<img src="[% ctx.media_prefix %]/images/sub_checked_out_on.jpg" />
</div>
- <div class="align" id="checked_hist_link">
- <a class="" href="#"><img
+ <div class="align">
+ <a href="circ_history"><img
src="[% ctx.media_prefix %]/images/sub_checked_hist_off.jpg" /></a>
</div>
- <div class="align hide_me" id="checked_link">
- <a href="#">
- <img src="[% ctx.media_prefix %]/images/sub_checked_out_off.jpg" />
- </a>
- </div>
- <div class="align selected hide_me" id="checked_hist_label">
- <img src="[% ctx.media_prefix %]/images/sub_checked_hist_on.jpg" />
- </div>
<div class="clear-both"></div>
</div>
-
+
<div class="header_middle">
<span class="float-left">[% l('Current Items Checked Out') %]</span>
<span class="float-right">
</form>
</div>
[% END %]
- <div id='checked_hist' class="hide_me" style="padding-top:8px;">
- <table id="acct_checked_hist_header" cellpadding='0' cellspacing='0'
- border='0' width='100%'>
- <tr>
- <td width="45%" style="padding-left:15px;">
- <span title="Click to sort" class='pointer'>Title</span> /
- <span title="Click to sort" class='pointer'>Author</span>
- </td>
- <td width="22%"
- style="white-space:nowrap;padding-left:5px;">
- <span title="Click to sort" class='pointer'>Call Number</span>
- </td>
- <td width="11%">
- <span title="Click to sort" class='pointer'>Checkout</span>
- </td>
- <td width="11%">
- <span title="Click to sort" class='pointer'>Due Date</span>
- </td>
- <td width="11%">
- <span title="Click to sort" class='pointer'>Returned</span>
- </td>
- </tr>
- </table>
- <table cellpadding='0' cellspacing='0' border='0'
- style="margin-top:5px;" width="100%">
- <tbody id="acct_checked_hist_parent">
- <tr id="acct_checked_hist_temp">
- <td width="45%"
- style="padding-left:15px;padding-bottom:10px;">
- <a href="#" name="title"></a> /
- <span name="author"></span>
- </td>
- <td width="22%" style="padding-left:5px;"
- name="call_number"></td>
- <td width="11%" name="checkout"></td>
- <td width="11%" name="due_date"></td>
- <td width="11%" name="returned"
- nowrap="nowrap" style="white-space:nowrap;"></td>
- </tr>
- </tbody>
- </table>
- </div>
<div id='non_cat_circs_div' class='hide_me'>
<br/>
<div style='text-align: center'><b>[% l("Other Circulations") %]</b></div>
</tr>
</tbody>
</table>
- <span class='hide_me' id='myopac_renew_fail'>[% l("The system is unable to renew the selected item at this time. This usually means the item is needed to fulfill a hold. Please see a librarian for further help.") %]</span>
- <span class='hide_me' id='myopac_renew_fail2'>[% l("Library policy prevents the renewal of this item at this time. Please see a librarian for further details.") %]</span>
+ </div>
</div>
[% END %]