]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/chrome/content/circ/util.js
LP 2061136 follow-up: ng lint --fix
[Evergreen.git] / Open-ILS / xul / staff_client / chrome / content / circ / util.js
1 dump('entering circ/util.js\n');
2
3 if (typeof circ == 'undefined') var circ = {};
4 circ.util = {};
5
6 circ.util.EXPORT_OK    = [ 
7     'offline_checkout_columns', 
8     'offline_checkin_columns', 
9     'offline_renew_columns', 
10     'offline_inhouse_use_columns', 
11     'hold_columns', 'CHECKIN_VIA_BARCODE', 'std_map_row_to_column', 'hold_capture_via_copy_barcode'
12 ];
13 circ.util.EXPORT_TAGS    = { ':all' : circ.util.EXPORT_OK };
14
15 circ.util.offline_checkout_columns = function(modify,params) {
16     
17     var c = [
18         { 
19             'id' : 'timestamp', 
20             'label' : 'Timestamp', 
21             'flex' : 1, 'primary' : false, 'hidden' : true, 
22             'render' : 'my.timestamp' 
23         },
24         { 
25             'id' : 'checkout_time', 
26             'label' : 'Check Out Time', 
27             'flex' : 1, 'primary' : false, 'hidden' : true, 
28             'render' : 'my.checkout_time' 
29         },
30         { 
31             'id' : 'type', 
32             'label' : 'Transaction Type', 
33             'flex' : 1, 'primary' : false, 'hidden' : true, 
34             'render' : 'my.type' 
35         },
36         {
37             'id' : 'noncat',
38             'label' : 'Non-Cataloged?',
39             'flex' : 1, 'primary' : false, 'hidden' : true, 
40             'render' : 'my.noncat'
41         },
42         {
43             'id' : 'noncat_type',
44             'label' : 'Non-Cat Type ID',
45             'flex' : 1, 'primary' : false, 'hidden' : true,
46             'render' : 'my.noncat_type'
47         },
48         {
49             'id' : 'noncat_count',
50             'label' : 'Count',
51             'flex' : 1, 'primary' : false, 'hidden' : false,
52             'render' : 'my.noncat_count'
53         },
54         { 
55             'id' : 'patron_barcode', 
56             'label' : 'Patron Barcode', 
57             'flex' : 1, 'primary' : false, 'hidden' : true, 
58             'render' : 'my.patron_barcode' 
59         },
60         { 
61             'id' : 'barcode', 
62             'label' : 'Item Barcode', 
63             'flex' : 2, 'primary' : true, 'hidden' : false, 
64             'render' : 'my.barcode' 
65         },
66         { 
67             'id' : 'due_date', 
68             'label' : 'Due Date', 
69             'flex' : 1, 'primary' : false, 'hidden' : false, 
70             'render' : 'my.due_date' 
71         },
72     ];
73     if (modify) for (var i = 0; i < c.length; i++) {
74         if (modify[ c[i].id ]) {
75             for (var j in modify[ c[i].id ]) {
76                 c[i][j] = modify[ c[i].id ][j];
77             }
78         }
79     }
80     if (params) {
81         if (params.just_these) {
82             JSAN.use('util.functional');
83             var new_c = [];
84             for (var i = 0; i < params.just_these.length; i++) {
85                 var x = util.functional.find_list(c,function(d){return(d.id==params.just_these[i]);});
86                 new_c.push( function(y){ return y; }( x ) );
87             }
88             return new_c;
89         }
90     }
91     return c;
92 }
93
94 circ.util.offline_checkin_columns = function(modify,params) {
95     
96     var c = [
97         { 
98             'id' : 'timestamp', 
99             'label' : 'Timestamp', 
100             'flex' : 1, 'primary' : false, 'hidden' : true, 
101             'render' : 'my.timestamp' 
102         },
103         { 
104             'id' : 'backdate', 
105             'label' : 'Back Date', 
106             'flex' : 1, 'primary' : false, 'hidden' : true, 
107             'render' : 'my.backdate' 
108         },
109         { 
110             'id' : 'type', 
111             'label' : 'Transaction Type', 
112             'flex' : 1, 'primary' : false, 'hidden' : true, 
113             'render' : 'my.type' 
114         },
115         { 
116             'id' : 'barcode', 
117             'label' : 'Item Barcode', 
118             'flex' : 2, 'primary' : true, 'hidden' : false, 
119             'render' : 'my.barcode' 
120         },
121     ];
122     if (modify) for (var i = 0; i < c.length; i++) {
123         if (modify[ c[i].id ]) {
124             for (var j in modify[ c[i].id ]) {
125                 c[i][j] = modify[ c[i].id ][j];
126             }
127         }
128     }
129     if (params) {
130         if (params.just_these) {
131             JSAN.use('util.functional');
132             var new_c = [];
133             for (var i = 0; i < params.just_these.length; i++) {
134                 var x = util.functional.find_list(c,function(d){return(d.id==params.just_these[i]);});
135                 new_c.push( function(y){ return y; }( x ) );
136             }
137             return new_c;
138         }
139     }
140     return c;
141 }
142
143 circ.util.offline_renew_columns = function(modify,params) {
144     
145     var c = [
146         { 
147             'id' : 'timestamp', 
148             'label' : 'Timestamp', 
149             'flex' : 1, 'primary' : false, 'hidden' : true, 
150             'render' : 'my.timestamp' 
151         },
152         { 
153             'id' : 'checkout_time', 
154             'label' : 'Check Out Time', 
155             'flex' : 1, 'primary' : false, 'hidden' : true, 
156             'render' : 'my.checkout_time' 
157         },
158         { 
159             'id' : 'type', 
160             'label' : 'Transaction Type', 
161             'flex' : 1, 'primary' : false, 'hidden' : true, 
162             'render' : 'my.type' 
163         },
164         { 
165             'id' : 'patron_barcode', 
166             'label' : 'Patron Barcode', 
167             'flex' : 1, 'primary' : false, 'hidden' : true, 
168             'render' : 'my.patron_barcode' 
169         },
170         { 
171             'id' : 'barcode', 
172             'label' : 'Item Barcode', 
173             'flex' : 2, 'primary' : true, 'hidden' : false, 
174             'render' : 'my.barcode' 
175         },
176         { 
177             'id' : 'due_date', 
178             'label' : 'Due Date', 
179             'flex' : 1, 'primary' : false, 'hidden' : false, 
180             'render' : 'my.due_date' 
181         },
182     ];
183     if (modify) for (var i = 0; i < c.length; i++) {
184         if (modify[ c[i].id ]) {
185             for (var j in modify[ c[i].id ]) {
186                 c[i][j] = modify[ c[i].id ][j];
187             }
188         }
189     }
190     if (params) {
191         if (params.just_these) {
192             JSAN.use('util.functional');
193             var new_c = [];
194             for (var i = 0; i < params.just_these.length; i++) {
195                 var x = util.functional.find_list(c,function(d){return(d.id==params.just_these[i]);});
196                 new_c.push( function(y){ return y; }( x ) );
197             }
198             return new_c;
199         }
200     }
201     return c;
202 }
203
204 circ.util.offline_inhouse_use_columns = function(modify,params) {
205     
206     var c = [
207         { 
208             'id' : 'timestamp', 
209             'label' : 'Timestamp', 
210             'flex' : 1, 'primary' : false, 'hidden' : true, 
211             'render' : 'my.timestamp' 
212         },
213         { 
214             'id' : 'use_time', 
215             'label' : 'Use Time', 
216             'flex' : 1, 'primary' : false, 'hidden' : true, 
217             'render' : 'my.use_time' 
218         },
219         { 
220             'id' : 'type', 
221             'label' : 'Transaction Type', 
222             'flex' : 1, 'primary' : false, 'hidden' : true, 
223             'render' : 'my.type' 
224         },
225         {
226             'id' : 'count',
227             'label' : 'Count',
228             'flex' : 1, 'primary' : false, 'hidden' : false,
229             'render' : 'my.count'
230         },
231         { 
232             'id' : 'barcode', 
233             'label' : 'Item Barcode', 
234             'flex' : 2, 'primary' : true, 'hidden' : false, 
235             'render' : 'my.barcode' 
236         },
237     ];
238     if (modify) for (var i = 0; i < c.length; i++) {
239         if (modify[ c[i].id ]) {
240             for (var j in modify[ c[i].id ]) {
241                 c[i][j] = modify[ c[i].id ][j];
242             }
243         }
244     }
245     if (params) {
246         if (params.just_these) {
247             JSAN.use('util.functional');
248             var new_c = [];
249             for (var i = 0; i < params.just_these.length; i++) {
250                 var x = util.functional.find_list(c,function(d){return(d.id==params.just_these[i]);});
251                 new_c.push( function(y){ return y; }( x ) );
252             }
253             return new_c;
254         }
255     }
256     return c;
257 }
258
259
260
261 circ.util.std_map_row_to_column = function(error_value) {
262     return function(row,col) {
263         // row contains { 'my' : { 'barcode' : xxx, 'duedate' : xxx } }
264         // col contains one of the objects listed above in columns
265
266         var my = row.my;
267         var value;
268         try {
269             value = eval( col.render );
270             if (typeof value == 'undefined') value = '';
271
272         } catch(E) {
273             JSAN.use('util.error'); var error = new util.error();
274             error.sdump('D_WARN','map_row_to_column: ' + E);
275             if (error_value) value = error_value; else value = '???';
276         }
277         return value;
278     }
279 }
280
281
282 dump('exiting circ/util.js\n');