]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/staff/circ/services/patrons.js
08e55488265ee789c2e4ff840666d39cc2eab24e
[working/Evergreen.git] / Open-ILS / web / js / ui / default / staff / circ / services / patrons.js
1 angular.module('egCoreMod')
2
3 .factory('egPatronMerge',
4        ['$uibModal','$q','egCore',
5 function($uibModal , $q , egCore) {
6
7     var service = {};
8
9     service.do_merge = function(patron_ids) {
10         var deferred = $q.defer();
11         $uibModal.open({
12             templateUrl: './circ/share/t_merge_patrons',
13             size: 'lg',
14             windowClass: 'eg-wide-modal',
15             controller:
16                 ['$scope', '$uibModalInstance', function($scope, $uibModalInstance) {
17                     $scope.lead_id = 0;
18                     $scope.patron_ids = patron_ids;
19                     $scope.ok = function() {
20                         $uibModalInstance.close({ lead_id : $scope.lead_id });
21                     }
22                     $scope.cancel = function () { $uibModalInstance.dismiss() }
23                 }]
24         }).result.then(function (args) {
25             if (args.lead_id == 0) return;
26             var sub_id = (args.lead_id == patron_ids[0]) ?
27                 patron_ids[1] :
28                 patron_ids[0];
29             egCore.net.request(
30                 'open-ils.actor',
31                 'open-ils.actor.user.merge',
32                 egCore.auth.token(),
33                 args.lead_id,
34                 [ sub_id ]
35             ).then(function(resp) {
36                 var evt = egCore.evt.parse(resp);
37                 if (evt) {
38                     console.debug(evt);
39                     deferred.reject(evt);
40                     return;
41                 } else {
42                     deferred.resolve(); 
43                 }
44             });
45         });
46         return deferred.promise;
47     }
48
49     return service;
50
51 }])
52
53 .directive('egPatronSummary', ['egUser','patronSvc', function(egUser, patronSvc) {
54     return {
55         restrict : 'E',
56         transclude: true,
57         templateUrl : './circ/patron/t_summary',
58         scope : {
59             patronId : '='
60         },
61         controller : [
62                     '$scope','egCore',
63             function($scope , egCore) {
64                 var user;
65                 var user_stats;
66                 egUser.get($scope.patronId).then(function(u) {
67                     user = u;
68                     patronSvc.localFlesh(user);
69                 });
70                 patronSvc.getUserStats($scope.patronId).then(function(s) {
71                     user_stats = s;
72                 });
73                 $scope.patron = function() {
74                     return user;
75                 }
76                 $scope.patron_stats = function() {
77                     return user_stats;
78                 }
79
80                 // needed because this directive shares a template with
81                 // the patron summary in circ app, but the circ app
82                 // displays the patron name elsewhere. 
83                 $scope.show_name = function() {
84                     return true;
85                 }
86             }
87         ]
88     }
89 }]);