]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/ui/default/staff/admin/user_perms.js
LP#1350042 Browser client templates/scripts (phase 1)
[Evergreen.git] / Open-ILS / web / js / ui / default / staff / admin / user_perms.js
1 /**
2  * App to drive the base page. 
3  * Login Form
4  * Splash Page
5  */
6
7 angular.module('egUserPermsEditor',
8     ['ngRoute', 'ui.bootstrap', 'egCoreMod','egUiMod'])
9
10 .config(['$routeProvider','$locationProvider','$compileProvider', 
11  function($routeProvider , $locationProvider , $compileProvider) {
12
13     $locationProvider.html5Mode(true);
14     $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/); 
15     var resolver = {delay : function(egStartup) {return egStartup.go()}};
16
17     $routeProvider.when('/admin/user_perms', {
18         templateUrl: './admin/t_user_perms_lookup',
19         controller: 'UserPermsLookupCtrl',
20         resolve : resolver
21     });
22
23     $routeProvider.when('/admin/user_perms/:user_id', {
24         templateUrl: 'user-perms-template',
25         controller: 'UserPermsCtrl',
26         resolve : resolver
27     });
28
29     // default page 
30     $routeProvider.otherwise({
31         templateUrl : 'user-perms-template',
32         controller: 'UserPermsCtrl',
33         resolve : resolver
34     });
35 }])
36
37 .controller('UserPermsLookupCtrl',
38        ['$scope','$window','$location','egCore',
39 function($scope , $window , $location , egCore) {
40     
41     $scope.selectMe = true; // focus text input
42     $scope.args = {};
43
44     // find the user by barcode, the jump to the editor
45     $scope.submitBarcode = function(args) {
46
47         $scope.bcNotFound = null;
48         if (!args.barcode) return;
49
50         $scope.selectMe = false;
51
52         // lookup barcode
53         egCore.net.request(
54             'open-ils.actor',
55             'open-ils.actor.get_barcodes',
56             egCore.auth.token(), egCore.auth.user().ws_ou(), 
57             'actor', args.barcode)
58
59         .then(function(resp) { // get_barcodes
60
61             if (evt = egCore.evt.parse(resp)) {
62                 console.error(evt.toString());
63                 return;
64             }
65
66             if (!resp || !resp[0]) {
67                 $scope.bcNotFound = args.barcode;
68                 $scope.selectMe = true;
69                 return;
70             }
71
72             // see if an opt-in request is needed
73             user_id = resp[0].id;
74             $location.path($location.path() + '/' + user_id);
75         });
76     }
77
78 }])
79
80 .controller('UserPermsCtrl',
81        ['$scope','$routeParams','$window','$location','egCore',
82 function($scope , $routeParams , $window , $location , egCore) {
83     var user_id = $routeParams.user_id;
84
85     var url = $location.absUrl().replace(
86         /\/eg\/staff.*/, '/xul/server/patron/user_edit.xhtml');
87
88     url += '?usr=' + encodeURIComponent(user_id);
89
90     // user_edit does not load the session via cookie.  It uses URL 
91     // params or xulG instead.  Pass via xulG.
92     $scope.funcs = {
93         ses : egCore.auth.token(),
94         on_patron_save : function() {
95             $scope.funcs.reload();
96         }
97     }
98
99     $scope.user_perms_url = url;
100 }])