LP#1770478: Offline org unit tree can break user/miker/lp-1770478-offline-org-tree
authorMike Rylander <mrylander@gmail.com>
Tue, 15 May 2018 21:21:00 +0000 (17:21 -0400)
committerMike Rylander <mrylander@gmail.com>
Tue, 15 May 2018 21:21:00 +0000 (17:21 -0400)
A thinko in the org tree reconstruction for offline mode caused the tree to be
broken in some situations, when the orgs were not ordered strictly by ID in
the list stored in the browser's IndexedDB storage.  This commit removes that
requirement, and allows trees of any ID and storage ordering to be
reconstituted.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/web/js/ui/default/staff/services/lovefield.js

index 174a420..d0cd9c1 100644 (file)
@@ -402,15 +402,17 @@ angular.module('egCoreMod')
                 angular.forEach(list, function (item) {
                     item.children([]); // just clear it out if there's junk in there
 
-                    if (item[parent_field]()) {
-                        item[parent_field]( hash[''+item[parent_field]()] );
-                    }
-
                     item.children( list.filter(function (kid) {
                         return kid[parent_field]() == item[pkey]();
                     }) );
                 });
 
+                angular.forEach(list, function (item) {
+                    if (item[parent_field]()) {
+                        item[parent_field]( hash[''+item[parent_field]()] );
+                    }
+                });
+
                 egCore.env.absorbTree(top, type, true)
                 return $q.when(true)
             });