From 74dc248e2333240df39abdbdc9e28b7c98259cd0 Mon Sep 17 00:00:00 2001
From: Galen Charlton <gmc@equinoxinitiative.org>
Date: Fri, 8 Dec 2017 10:29:40 -0500
Subject: [PATCH] LP#1729922: correctly display most recent transit in item
 status

This patch ensures that the 'Most Recent Transit' display in
the web staff client's item status page shows the latest transit,
not the oldest one. This also fixes a bug where the transit
receive time never got displayed.  As a side effect, this patch
also ensures that only the transit in question is fetched from
the database, not all transits on the item.

To test
-------
[1] Set up an item with some closed transits and display in in
    detail view in the Item Status page. Note that the
    /oldest/ transit is displayed and that the transit
    receive time field is blank.
[2] Apply the patch and repeat step 1.
[3] This time, the most recent transit should be displayed, and
    if that transit was received, the receive time should be
    displayed.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
---
 Open-ILS/src/templates/staff/cat/item/t_holds_pane.tt2 |  2 +-
 Open-ILS/web/js/ui/default/staff/cat/item/app.js       | 10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/Open-ILS/src/templates/staff/cat/item/t_holds_pane.tt2 b/Open-ILS/src/templates/staff/cat/item/t_holds_pane.tt2
index b66ba06a53..c4f389b31a 100644
--- a/Open-ILS/src/templates/staff/cat/item/t_holds_pane.tt2
+++ b/Open-ILS/src/templates/staff/cat/item/t_holds_pane.tt2
@@ -118,7 +118,7 @@
   <div class="flex-row">
     <div class="flex-cell">[% l('Transit Receive Time') %]</div>
     <div class="flex-cell well">
-      {{transit.source_recv_time() | date:egDateAndTimeFormat}}
+      {{transit.dest_recv_time() | date:egDateAndTimeFormat}}
     </div>
   </div>
 </div>
diff --git a/Open-ILS/web/js/ui/default/staff/cat/item/app.js b/Open-ILS/web/js/ui/default/staff/cat/item/app.js
index 8b8f9ef3ca..e58781851b 100644
--- a/Open-ILS/web/js/ui/default/staff/cat/item/app.js
+++ b/Open-ILS/web/js/ui/default/staff/cat/item/app.js
@@ -857,16 +857,20 @@ function($scope , $q , $location , $routeParams , $timeout , $window , egCore ,
         });
     }
 
-    function loadTransits() {
+    function loadMostRecentTransit() {
         delete $scope.transit;
         delete $scope.hold_transit;
         if (!copyId) return;
 
         egCore.pcrud.search('atc', 
             {target_copy : copyId},
-            {order_by : {atc : 'source_send_time DESC'}}
+            {
+                order_by : {atc : 'source_send_time DESC'},
+                limit : 1
+            }
 
         ).then(null, null, function(transit) {
+            // use progress callback since we'll get up to one result
             $scope.transit = transit;
             transit.source(egCore.org.get(transit.source()));
             transit.dest(egCore.org.get(transit.dest()));
@@ -892,7 +896,7 @@ function($scope , $q , $location , $routeParams , $timeout , $window , egCore ,
 
             case 'holds':
                 loadHolds()
-                loadTransits();
+                loadMostRecentTransit();
                 break;
 
             case 'triggered_events':
-- 
2.11.0