1 angular.module('egCurbsideAppDep')
3 .directive('egCurbsideStagedManager', function() {
8 templateUrl: './circ/curbside/t_staged_manager',
10 ['$scope','$q','egCurbsideCoreSvc','egCore','egGridDataProvider','egProgressDialog',
11 '$uibModal','$timeout','$location','egConfirmDialog','ngToast','$interval',
12 function($scope , $q , egCurbsideCoreSvc , egCore , egGridDataProvider , egProgressDialog ,
13 $uibModal , $timeout , $location , egConfirmDialog , ngToast , $interval) {
15 $scope.gridControls = {};
17 $scope.wasHandled = {};
18 $scope.refreshNeeded = false;
20 latestTime = undefined;
21 var checkRefresh = undefined;
22 function startRefreshCheck() {
23 if (!angular.isDefined(checkRefresh)) {
24 checkRefresh = $interval(function() {
25 egCurbsideCoreSvc.get_latest_staged().then(function(latest) {
26 if (angular.isDefined(latest)) {
27 if (angular.isDefined(latestTime) && latestTime != latest) {
28 $scope.refreshNeeded = true;
37 function stopRefreshCheck() {
38 if (angular.isDefined(checkRefresh)) {
39 $interval.cancel(checkRefresh);
40 checkRefresh = undefined;
43 this.$onInit = function() {
46 this.$onDestroy = function() {
50 $scope.gridDataProvider = egGridDataProvider.instance({
51 get : function(offset, count) {
52 $scope.wasHandled = {};
53 $scope.refreshNeeded = false;
55 return egCurbsideCoreSvc.get_staged(offset, count);
59 $scope.refresh_staged = function() {
60 $scope.gridControls.refresh();
63 $scope.gridCellHandlers = { };
64 $scope.gridCellHandlers.mark_arrived = function(id) {
65 egCurbsideCoreSvc.mark_arrived(id).then(function(resp) {
66 if (evt = egCore.evt.parse(resp)) {
67 ngToast.danger(egCore.strings.$replace(
68 egCore.strings.FAILED_CURBSIDE_MARK_ARRIVED,
69 { slot_id : id, evt_code : evt.code }
73 if (!angular.isDefined(resp)) {
74 ngToast.warning(egCore.strings.$replace(
75 egCore.strings.NOTFOUND_CURBSIDE_MARK_ARRIVED,
80 ngToast.success(egCore.strings.$replace(
81 egCore.strings.SUCCESS_CURBSIDE_MARK_ARRIVED,
84 $scope.wasHandled[id] = true;
85 $timeout(function() { $scope.refresh_staged() }, 500);
88 $scope.gridCellHandlers.mark_unstaged = function(id) {
89 egCurbsideCoreSvc.mark_unstaged(id).then(function(resp) {
90 if (evt = egCore.evt.parse(resp)) {
91 ngToast.danger(egCore.strings.$replace(
92 egCore.strings.FAILED_CURBSIDE_MARK_UNSTAGED,
93 { slot_id : id, evt_code : evt.code }
97 if (!angular.isDefined(resp)) {
98 ngToast.warning(egCore.strings.$replace(
99 egCore.strings.NOTFOUND_CURBSIDE_MARK_UNSTAGED,
104 ngToast.success(egCore.strings.$replace(
105 egCore.strings.SUCCESS_CURBSIDE_MARK_UNSTAGED,
108 $scope.wasHandled[id] = true;
109 $timeout(function() { $scope.refresh_staged() }, 500);
112 $scope.gridCellHandlers.mark_delivered = function(id) {
113 egProgressDialog.open();
114 egCurbsideCoreSvc.mark_delivered(id).then(function(resp) {
115 egProgressDialog.close();
116 if (evt = egCore.evt.parse(resp)) {
117 ngToast.danger(egCore.strings.$replace(
118 egCore.strings.FAILED_CURBSIDE_MARK_DELIVERED,
119 { slot_id : id, evt_code : evt.code }
123 if (!angular.isDefined(resp)) {
124 ngToast.warning(egCore.strings.$replace(
125 egCore.strings.NOTFOUND_CURBSIDE_MARK_DELIVERED,
130 ngToast.success(egCore.strings.$replace(
131 egCore.strings.SUCCESS_CURBSIDE_MARK_DELIVERED,
134 $scope.wasHandled[id] = true;
135 $timeout(function() { $scope.refresh_staged() }, 500);
138 $scope.gridCellHandlers.wasHandled = function(id) {
139 return $scope.wasHandled[id];
141 $scope.gridCellHandlers.patronIsBlocked = function(usr) {
142 return egCurbsideCoreSvc.patron_blocked(usr);