]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/ui/default/staff/circ/curbside/directives/delivered_manager.js
LP#1879983: AngularJS staff interface for curbside pickup
[Evergreen.git] / Open-ILS / web / js / ui / default / staff / circ / curbside / directives / delivered_manager.js
1 angular.module('egCurbsideAppDep')
2
3 .directive('egCurbsideDeliveredManager', function() {
4     return {
5         transclude: true,
6         restrict:   'E',
7         scope: { },
8         templateUrl: './circ/curbside/t_delivered_manager',
9         controller:
10        ['$scope','$q','egCurbsideCoreSvc','egCore','egGridDataProvider',
11         '$uibModal','$timeout','$location','egConfirmDialog','ngToast','$interval',
12 function($scope , $q , egCurbsideCoreSvc , egCore , egGridDataProvider ,
13          $uibModal , $timeout , $location , egConfirmDialog , ngToast , $interval) {
14
15     $scope.gridControls = {};
16
17     $scope.refreshNeeded = false;
18
19     latestTime = undefined;
20     var checkRefresh = undefined;
21     function startRefreshCheck() {
22         if (!angular.isDefined(checkRefresh)) {
23             checkRefresh = $interval(function() {
24                 egCurbsideCoreSvc.get_latest_delivered().then(function(latest) {
25                     if (angular.isDefined(latest)) {
26                         if (angular.isDefined(latestTime) && latestTime != latest) {
27                             $scope.refreshNeeded = true;
28                             stopRefreshCheck();
29                         }
30                         latestTime = latest;
31                     }
32                 });
33             }, 15000);
34         }
35     }
36     function stopRefreshCheck() {
37         if (angular.isDefined(checkRefresh)) {
38             $interval.cancel(checkRefresh);
39             checkRefresh = undefined;
40         }
41     }
42     this.$onInit = function() {
43         startRefreshCheck();
44     }
45     this.$onDestroy = function() {
46         stopRefreshCheck();
47     }
48
49     $scope.gridDataProvider = egGridDataProvider.instance({
50         get : function(offset, count) {
51             $scope.refreshNeeded = false;
52             startRefreshCheck();
53             return egCurbsideCoreSvc.get_delivered(offset, count);
54         }
55     });
56
57     $scope.refresh_delivered = function() {
58         $scope.gridControls.refresh();
59     }
60
61     $scope.gridCellHandlers = { };
62
63 }]}});