1 angular.module('egWorkLogApp',
2 ['ngRoute', 'ui.bootstrap', 'egCoreMod', 'egUiMod', 'egGridMod'])
4 .config(function($routeProvider, $locationProvider, $compileProvider) {
5 $locationProvider.html5Mode(true);
6 $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/); // grid export
8 var resolver = {delay :
9 ['egStartup', function(egStartup) {return egStartup.go()}]}
11 $routeProvider.when('/admin/workstation/log', {
12 templateUrl: './admin/workstation/t_log',
13 controller: 'WorkLogCtrl',
17 $routeProvider.otherwise({redirectTo : '/admin/workstation/log'});
20 .controller('WorkLogCtrl',
21 ['$scope','$q','$routeParams','$window','$location','$timeout','egCore','egGridDataProvider','egWorkLog',
22 function($scope , $q , $routeParams , $window , $location , $timeout , egCore , egGridDataProvider , egWorkLog ) {
24 var work_log_entries = [];
25 var patron_log_entries = [];
27 var work_log_provider = egGridDataProvider.instance({});
28 var patron_log_provider = egGridDataProvider.instance({});
29 $scope.grid_work_log_provider = work_log_provider;
30 $scope.grid_patron_log_provider = patron_log_provider;
32 function load_item(log_entries) {
33 if (!log_entries) return;
34 if (!angular.isArray(log_entries)) log_entries = [log_entries];
35 angular.forEach(log_entries, function(log_entry) {
38 '/cat/item/' + log_entry.item_id
45 $scope.load_item = function(action, data, entries) {
49 function load_patron(log_entries) {
50 if (!log_entries) return;
51 if (!angular.isArray(log_entries)) log_entries = [log_entries];
52 angular.forEach(log_entries, function(log_entry) {
55 '/circ/patron/' + log_entry.patron_id + '/checkout'
62 $scope.load_patron = function(action, data, entries) {
66 $scope.grid_controls = {
67 activateItem : load_patron
70 function refresh_page() {
71 work_log_entries = [];
72 patron_log_entries = [];
76 function fetch_hold(deferred,entry) {
77 egCore.pcrud.search('ahr',
78 { 'id' : entry.data.hold_id }, {
81 'ahr' : ['usr','current_copy'],
85 deferred.resolve, null,
87 entry.patron_id = hold.usr().id();
88 entry.user = hold.usr().family_name();
89 if (hold.current_copy()) {
90 entry.item = hold.current_copy().barcode();
92 deferred.notify(entry);
97 function fetch_patron(deferred,entry) {
98 egCore.pcrud.search('au',
99 { 'id' : entry.data.patron_id }, {}
101 deferred.resolve, null,
103 entry.user = usr.family_name();
104 deferred.notify(entry);
109 work_log_provider.get = function(offset, count) {
110 var log_entries = egWorkLog.retrieve_all();
111 console.log(log_entries);
112 var deferred = $q.defer();
114 $timeout( function() {
115 log_entries.work_log.forEach(
118 if (el.action == 'requested_hold') {
119 fetch_hold(deferred,el);
120 } else if (el.action == 'registered_patron') {
121 fetch_patron(deferred,el);
122 } else if (el.action == 'edited_patron') {
123 fetch_patron(deferred,el);
124 } else if (el.action == 'paid_bill') {
125 fetch_patron(deferred,el);
132 return deferred.promise;
135 patron_log_provider.get = function(offset, count) {
136 var log_entries = egWorkLog.retrieve_all();
137 console.log(log_entries);
138 var deferred = $q.defer();
140 $timeout( function() {
141 log_entries.patron_log.forEach(
144 if (el.action == 'requested_hold') {
145 fetch_hold(deferred,el);
146 } else if (el.action == 'registered_patron') {
147 fetch_patron(deferred,el);
148 } else if (el.action == 'edited_patron') {
149 fetch_patron(deferred,el);
150 } else if (el.action == 'paid_bill') {
151 fetch_patron(deferred,el);
158 return deferred.promise;