TPac; indicate search results previously checked out tpac-results-highlight-checked-out-items
authorBill Erickson <berick@esilibrary.com>
Tue, 29 Nov 2011 21:54:52 +0000 (16:54 -0500)
committerBill Erickson <berick@esilibrary.com>
Tue, 29 Nov 2011 21:54:52 +0000 (16:54 -0500)
When a user is logged in to the tpac and performs a search, indicate in
the results set when any of the result items were ever checked out by
the logged in user.

TODO: UI description

Only items that are within the user's visible circulation history will
be tagged.  These include items currently checked out for all users.

TODO: org setting info

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm
Open-ILS/src/templates/opac/parts/result/table.tt2
Open-ILS/web/css/skin/default/opac/style.css

index dc45d3b..eb166a6 100644 (file)
@@ -1292,14 +1292,14 @@ sub staged_search {
                 $results = [map {[$_->{id}]} @$results];
             }
 
-            tag_circulated_records($search_hash->{authtoken}, $results, $IAmMetabib) 
-                if $search_hash->{tag_circulated_records} and $search_hash->{authtoken};
-
             push @$new_ids, grep {defined($_)} map {$_->[0]} @$results;
             $results = [grep {defined $_->[0]} @$results];
             cache_staged_search_page($key, $page, $summary, $results) if $docache;
         }
 
+        tag_circulated_records($search_hash->{authtoken}, $results, $IAmMetabib) 
+            if $search_hash->{tag_circulated_records} and $search_hash->{authtoken};
+
         $current_page_summary = $summary;
 
         # add the new set of results to the set under construction
index 93f90b6..bb9d6ba 100644 (file)
@@ -174,6 +174,8 @@ sub load_rresults {
     my $offset = $page * $limit;
     my $metarecord = $cgi->param('metarecord');
     my $results; 
+    my $tag_circs = 0;
+    $tag_circs = 1 if $e->requestor; # TODO: org setting
 
     $ctx->{page_size} = $limit;
     $ctx->{search_page} = $page;
@@ -226,6 +228,11 @@ sub load_rresults {
         # the query string, not special args.
         my $args = {'limit' => $limit, 'offset' => $offset};
 
+        if ($tag_circs) {
+            $args->{tag_circulated_records} = 1;
+            $args->{authtoken} = $self->editor->authtoken;
+        }
+
         # Stuff these into the TT context so that templates can use them in redrawing forms
         $ctx->{processed_search_query} = $query;
 
@@ -276,6 +283,16 @@ sub load_rresults {
         );
     }
 
+    if ($tag_circs) {
+        for my $rec (@{$ctx->{records}}) {
+            my ($res_rec) = grep { $_->[0] == $rec->{id} } @{$results->{ids}};
+            # index 1 in the per-record result array is a boolean which
+            # indicates whether the record in question is in the users
+            # accessible circ history list
+            $rec->{user_circulated} = 1 if $res_rec->[1];
+        }
+    }
+
     $ctx->{search_facets} = $facets;
 
     return Apache2::Const::OK;
index 422a378..0858a3d 100644 (file)
@@ -50,9 +50,7 @@
                                                         src='[% ctx.media_prefix %]/opac/extras/ac/jacket/small/[% ident | uri %]' /></a><br />
                                                 [% END %]
                                             </td>
-                                            <td class='result_table_title_cell'
-                                                name='result_table_title_cell'
-                                                valign="top">
+                                            <td class='result_table_title_cell' name='result_table_title_cell' valign="top">
                                                 <div class="bold">
                                                     <a name='record_[% rec.id %]' title="[% attrs.title | uri %]" name='item_title'
                                                         href="[% mkurl(ctx.opac_root _ '/record/' _ rec.id) %]"
                                                             #rec.copy_counts.available, rec.copy_counts.visible) 
                                                         %]
                                                     </div>
+                                                    [% IF rec.user_circulated %]
+                                                    <div class="result_item_circulated">
+                                                        <img src="[% ctx.media_prefix %]/images/green_check.png" alt="[% l('Checked Out Before') %]"/>
+                                                        <span style="position:relative;top:-3px;left:3px;">[%  l('I have checked this item out before') %]</span></a>
+                                                    </div>
+                                                    [% END %]
                                                 </div>
                                                 <div class="hide_me">
                                                     <span name='result_table_extra_span' class='hide_me'>
                                                         class='classic_link hide_me'
                                                         name="googleBooks-link">[% l("Browse in Google Books Search") %]</a>
                                                 </span>
-
                                             </td>
                                             <td nowrap='nowrap' width="1" align="right">
                                                 <div style="width:250px;text-align:left;">
index e81b9d6..15c3baf 100644 (file)
@@ -1175,3 +1175,6 @@ table.bookbag-specific {
 #staff-saved-search { /* wraps .saved-searches-header and .saved-searches on the record page */
     border-right: 1px solid #333;
 }
+.result_item_circulated {
+    padding-top: 4px;
+}