LP#1770478: Offline org unit tree can break
authorMike Rylander <mrylander@gmail.com>
Tue, 15 May 2018 21:21:00 +0000 (17:21 -0400)
committerJason Stephenson <jason@sigio.com>
Wed, 23 May 2018 19:15:44 +0000 (15:15 -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>
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Jason Stephenson <jason@sigio.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)
             });