LP1125567 - Staff client doesn't sort patron's checked out items user/ktomita/lp1125567-sort_checked_out
authorKyle Tomita <tomitakyle@gmail.com>
Thu, 13 Jun 2013 21:00:11 +0000 (14:00 -0700)
committerKyle Tomita <tomitakyle@gmail.com>
Thu, 13 Jun 2013 21:29:51 +0000 (14:29 -0700)
The checked out items are sorted in items.js.  After the array
of checked out items is created, we sort the array by Due Date
(earliest to latest).

Signed-off-by: Kyle Tomita <tomitakyle@gmail.com>
Open-ILS/xul/staff_client/server/patron/items.js

index a2fc061..0f13ece 100644 (file)
@@ -889,6 +889,23 @@ patron.items.prototype = {
             } else {
                 obj.checkouts = obj.checkouts.concat( robj.overdue );
                 obj.checkouts = obj.checkouts.concat( robj.out );
+
+                var circ_checkouts = [];
+                for (var i = 0; i < obj.checkouts.length; ++i)
+                {
+                    circ_checkouts[i] = obj.network.simple_request(
+                        'FM_CIRC_RETRIEVE_VIA_ID', [ ses(), obj.checkouts[i]]
+                    );
+                }
+                circ_checkouts.sort(function(a, b) {
+                    return util.date.db_date2Date(a.due_date()).getTime() -
+                           util.date.db_date2Date(b.due_date()).getTime()
+                });
+                for (var i = 0; i < circ_checkouts.length; ++i)
+                {
+                    obj.checkouts[i] = circ_checkouts[i].id();
+                }
+
                 obj.checkouts2 = obj.checkouts2.concat( robj.lost );
                 obj.checkouts2 = obj.checkouts2.concat( robj.claims_returned );
                 obj.checkouts2 = obj.checkouts2.concat( robj.long_overdue );