]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/staff/circ/patron/pending.js
Docs: incorporating offline circ docs
[working/Evergreen.git] / Open-ILS / web / js / ui / default / staff / circ / patron / pending.js
1 angular.module('egPendingPatronsApp', 
2     ['ngRoute', 'ui.bootstrap', 'egCoreMod', 'egUiMod', 'egGridMod'])
3
4 .config(function($routeProvider, $locationProvider, $compileProvider) {
5     $locationProvider.html5Mode(true);
6     $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|mailto|blob):/); // grid export
7         
8     var resolver = {delay : 
9         ['egStartup', function(egStartup) {return egStartup.go()}]}
10
11     $routeProvider.when('/circ/patron/pending/list', {
12         templateUrl: './circ/patron/t_pending_list',
13         controller: 'PendingPatronsCtrl',
14         resolve : resolver
15     });
16
17     $routeProvider.otherwise({redirectTo : '/circ/patron/pending/list'});
18 })
19
20 .controller('PendingPatronsCtrl',
21        ['$scope','$q','$routeParams','$window','$location','egCore','egGridDataProvider',
22 function($scope , $q , $routeParams , $window , $location , egCore , egGridDataProvider) {
23
24     console.log('HERE');
25
26     var pending_patrons = [];
27     var provider = egGridDataProvider.instance({});
28     $scope.grid_data_provider = provider;
29
30     function load_patron(item) {
31         if (angular.isArray(item)) item = item[0];
32         if (!item) return;
33         $window.open(
34             $location.path(
35                 '/circ/patron/register/stage/' + item.user.usrname()).absUrl(),
36             '_blank'
37         ).focus();
38     }
39
40     $scope.load_patron = function(action, data, items) {
41         load_patron(items);
42     }
43
44     $scope.grid_controls = {
45         activateItem : load_patron
46     }
47
48     function refresh_page() {
49         pending_patrons = [];
50         provider.refresh();
51     }
52
53     provider.get = function(offset, count) {
54         var deferred = $q.defer();
55         var recv_index = 0;
56
57         egCore.net.request(
58             'open-ils.actor',
59             'open-ils.actor.user.stage.retrieve.by_org',
60             egCore.auth.token(), $scope.context_org.id()
61
62         ).then(
63             deferred.resolve, null, 
64             function(user) {
65                 user.id = user.user.row_id();
66                 user.user.home_ou(egCore.org.get(user.user.home_ou()));
67
68                 // only one (mailing) address is captured during patron
69                 // self-registration
70                 user.mailing_address = user.mailing_addresses[0];
71                 pending_patrons[offset + recv_index++] = user;
72                 deferred.notify(user);
73             }
74         );
75
76         return deferred.promise;
77     }
78
79     $scope.context_org = egCore.org.get(egCore.auth.user().ws_ou())
80     $scope.$watch('context_org', function(newVal, oldVal) {
81         if (newVal && newVal != oldVal) refresh_page();
82     });
83 }])
84