From: Galen Charlton Date: Thu, 28 May 2020 14:15:02 +0000 (-0400) Subject: get checking for refresh-needed working X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=c61edb06403d18e5ebe9adb94418d2d833c46a3e;p=working%2FEvergreen.git get checking for refresh-needed working This cleans up using of the component lifecycle hooks, but the key to this is using ng-if to conditionally embed the to-be-staged manager directive, as all that uib-tab does for inactive tabs is slap a display:none on them. Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/templates/staff/circ/curbside/t_main.tt2 b/Open-ILS/src/templates/staff/circ/curbside/t_main.tt2 index bb1ddb94e7..5f7eb3b2d5 100644 --- a/Open-ILS/src/templates/staff/circ/curbside/t_main.tt2 +++ b/Open-ILS/src/templates/staff/circ/curbside/t_main.tt2 @@ -11,7 +11,7 @@ otherwise selecting the active table won't work cleanly -->
- +
diff --git a/Open-ILS/web/js/ui/default/staff/circ/curbside/directives/to_be_staged_manager.js b/Open-ILS/web/js/ui/default/staff/circ/curbside/directives/to_be_staged_manager.js index ce101dcc27..94cca76357 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/curbside/directives/to_be_staged_manager.js +++ b/Open-ILS/web/js/ui/default/staff/circ/curbside/directives/to_be_staged_manager.js @@ -16,29 +16,42 @@ function($scope , $q , egCurbsideCoreSvc , egCore , egGridDataProvider , $scope.wasHandled = {}; $scope.refreshNeeded = false; + latestTime = undefined; - var checkRefresh; - checkRefresh = $interval(function() { - egCurbsideCoreSvc.get_latest_to_be_staged().then(function(latest) { - if (angular.isDefined(latest)) { - if (angular.isDefined(latestTime) && latestTime != latest) { - $scope.refreshNeeded = true; - } - latestTime = latest; - } - }); - }, 10000); - $scope.$on('$destroy', function() { + var checkRefresh = undefined; + function startRefreshCheck() { + if (!angular.isDefined(checkRefresh)) { + checkRefresh = $interval(function() { + egCurbsideCoreSvc.get_latest_to_be_staged().then(function(latest) { + if (angular.isDefined(latest)) { + if (angular.isDefined(latestTime) && latestTime != latest) { + $scope.refreshNeeded = true; + stopRefreshCheck(); + } + latestTime = latest; + } + }); + }, 1000); + } + } + function stopRefreshCheck() { if (angular.isDefined(checkRefresh)) { $interval.cancel(checkRefresh); checkRefresh = undefined; - }; - }); + } + } + this.$onInit = function() { + startRefreshCheck(); + } + this.$onDestroy = function() { + stopRefreshCheck(); + } $scope.gridDataProvider = egGridDataProvider.instance({ get : function(offset, count) { $scope.wasHandled = {}; $scope.refreshNeeded = false; + startRefreshCheck(); return egCurbsideCoreSvc.get_to_be_staged(offset, count); } }); @@ -57,7 +70,7 @@ function($scope , $q , egCurbsideCoreSvc , egCore , egGridDataProvider , )); return; } - if (typeof resp == 'undefined') { + if (!angular.isDefined(resp)) { ngToast.warning(egCore.strings.$replace( egCore.strings.NOTFOUND_CURBSIDE_MARK_STAGED, { slot_id : id }