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