From cae2a462d6e1591b2ba2cb34f92b863739cca41b Mon Sep 17 00:00:00 2001 From: berick Date: Mon, 28 Mar 2011 17:26:36 -0400 Subject: [PATCH] added circulation history backend and template; use |-style regex containers to reduce escapes in path checking --- .../perlmods/lib/OpenILS/WWW/EGCatLoader.pm | 38 +++--- .../lib/OpenILS/WWW/EGCatLoader/Account.pm | 36 ++++++ .../default/opac/myopac/circ_history.tt2 | 114 ++++++++++++++++++ .../templates/default/opac/myopac/circs.tt2 | 64 ++-------- 4 files changed, 177 insertions(+), 75 deletions(-) create mode 100644 Open-ILS/web/templates/default/opac/myopac/circ_history.tt2 diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm index 7ddec2ebf1..b947908f88 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm @@ -87,25 +87,25 @@ sub load { (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} || '')) unless $self->cgi->https; @@ -118,14 +118,16 @@ sub load { 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; } diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm index bed70d496c..99223c1e1c 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm @@ -390,6 +390,42 @@ sub load_myopac_circs { 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; diff --git a/Open-ILS/web/templates/default/opac/myopac/circ_history.tt2 b/Open-ILS/web/templates/default/opac/myopac/circ_history.tt2 new file mode 100644 index 0000000000..e21e67fd8d --- /dev/null +++ b/Open-ILS/web/templates/default/opac/myopac/circ_history.tt2 @@ -0,0 +1,114 @@ +[% 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; +%] + +
+ +
+
+ +
+
+ +
+
+
+ +
+ [% l('Current Items Checked Out') %] + + [% IF offset > 0 %] + [% l('Previous') %] + [% END %] + [% IF ctx.circs.size == limit %] + [%# TODO: get total to prevent paging off then end of the list.. %] + [% l('Next') %] + [% END %] + + + [% l('Export List') %] + +
+
+ + [% IF ctx.circs.size < 1 %] +
+ [% l('You have no items checked out.') %] +
+ [% ELSE %] + + [% IF ctx.success_renewals %] +
+ [% l("Successfully renewed [_1] item(s)", ctx.success_renewals) %] +
+ [% END %] + + [% IF ctx.failed_renewals %] +
+ [% l("Failed to renew [_1] item(s)", ctx.failed_renewals) %] +
+ [% END %] + +
+ + + + + + + + + + + + + [% FOR circ IN ctx.circs; + attrs = {marc_xml => circ.marc_xml}; + PROCESS get_marc_attrs args=attrs; %] + + + + + + + + + [% END %] + +
+ [% l('Title') %] / + [% l('Author') %] + + [% l('Checkout Date') %] + + [% l('Due Date') %] + + [% l('Date Returned') %] + + [% l('Barcode') %] + + [% l('Call Number') %] +
+ [% attrs.title %] + [% IF attrs.author %] / + [% attrs.author %] + [% END %] + + [% date.format(ctx.parse_datetime(circ.circ.xact_start),DATE_FORMAT); %] + + [% date.format(ctx.parse_datetime(circ.circ.due_date),DATE_FORMAT); %] + + [% IF circ.circ.checkin_time; + date.format(ctx.parse_datetime(circ.circ.checkin_time),DATE_FORMAT); + END; %] + [% circ.circ.target_copy.barcode %][% circ.circ.target_copy.call_number.label %]
+
+ [% END %] +
+[% END %] diff --git a/Open-ILS/web/templates/default/opac/myopac/circs.tt2 b/Open-ILS/web/templates/default/opac/myopac/circs.tt2 index 8846bdfdd9..20c6dbfab2 100644 --- a/Open-ILS/web/templates/default/opac/myopac/circs.tt2 +++ b/Open-ILS/web/templates/default/opac/myopac/circs.tt2 @@ -4,25 +4,18 @@ "default/opac/parts/myopac/base.tt2"; myopac_page = "circs" %]
-
-
+ +
+
- - -
- -
- +
[% l('Current Items Checked Out') %] @@ -150,48 +143,6 @@
[% END %] -
- - - - - - - - -
- Title / - Author - - Call Number - - Checkout - - Due Date - - Returned -
- - - - - - - - - - -
- / - -
-

[% l("Other Circulations") %]
@@ -211,7 +162,6 @@ - [% 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.") %] - [% l("Library policy prevents the renewal of this item at this time. Please see a librarian for further details.") %] +
[% END %] -- 2.43.2