From 443ed531a19fdea611a01f931252316cffbbce47 Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Mon, 9 Jul 2018 16:31:50 -0400 Subject: [PATCH] LP#1732761: Fetch locations immediately for display This commit closes a race condition where location labels cannot be rendered for the "multiple locations" widget because fetching them takes longer than the initial render of the attribute editor. Signed-off-by: Mike Rylander Signed-off-by: Kathy Lussier --- .../js/ui/default/staff/cat/volcopy/app.js | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js b/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js index 2efb600b4e..df844249d9 100644 --- a/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js +++ b/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js @@ -165,6 +165,20 @@ function(egCore , $q) { ); }; + service.fetch_locations = function(locs) { + return egCore.pcrud.search('acpl', + {id : locs}, + { + flesh : 1, + flesh_fields : { + acpl : ['owning_lib'] + }, + order_by : { acpl : 'name' } + }, + {atomic : true} + ); + }; + service.get_suffixes = function(org) { return egCore.pcrud.search('acns', {owning_lib : egCore.org.fullPath(org, true)}, @@ -1611,6 +1625,17 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , }).then( function() { $scope.data = itemSvc; $scope.workingGridDataProvider.refresh(); + + return itemSvc.fetch_locations( + $scope.data.copies.map(function(cp){ + return cp.location(); + }).filter(function(e,i,a){ + return a.lastIndexOf(e) === i; + }) + ).then(function(list){ + $scope.location_list = list; + }); + }); $scope.can_save = false; @@ -1852,9 +1877,6 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , }); $scope.location_list = []; - itemSvc.get_locations().then(function(list){ - $scope.location_list = list; - }); createSimpleUpdateWatcher('location'); $scope.status_list = []; -- 2.43.2