1 dump('entering patron.summary.js\n');
3 if (typeof patron == 'undefined') patron = {};
4 patron.summary = function (params) {
6 JSAN.use('util.error'); this.error = new util.error();
7 JSAN.use('util.window'); this.window = new util.window();
8 JSAN.use('util.network'); this.network = new util.network();
12 patron.summary.prototype = {
14 'init' : function( params ) {
18 obj.barcode = params['barcode'];
19 obj.id = params['id'];
20 if (params['show_name']) {
21 document.getElementById('patron_name').hidden = false;
22 document.getElementById('patron_name').setAttribute('hidden','false');
25 JSAN.use('OpenILS.data'); this.OpenILS = {};
26 obj.OpenILS.data = new OpenILS.data(); obj.OpenILS.data.init({'via':'stash'});
28 JSAN.use('util.controller'); obj.controller = new util.controller();
34 function() { alert('Not Yet Implemented'); }
40 JSAN.use('util.widgets');
41 util.widgets.remove_children( e );
42 if (obj.patron.alert_message()) {
44 document.createTextNode(
45 obj.patron.alert_message()
48 e.parentNode.hidden = false;
50 e.parentNode.hidden = true;
59 e.setAttribute('value',obj.patron.usrname());
67 e.setAttribute('value',
68 obj.OpenILS.data.hash.pgt[
80 e.setAttribute('value',
81 obj.OpenILS.data.hash.cst[
86 var e2 = document.getElementById('patron_standing_penalties');
87 JSAN.use('util.widgets');
88 util.widgets.remove_children(e2);
89 var penalties = obj.patron.standing_penalties();
90 for (var i = 0; i < penalties.length; i++) {
91 var x = document.createElement('label');
92 x.setAttribute('value',penalties[i].penalty_type());
102 JSAN.use('util.money');
103 e.setAttribute('value',
106 obj.patron.credit_forward_balance()
116 e.setAttribute('value','...');
117 obj.network.simple_request(
118 'FM_MOBTS_TOTAL_HAVING_BALANCE',
119 [ ses(), obj.patron.id() ],
121 JSAN.use('util.money');
122 e.setAttribute('value',
125 req.getResultObject()
133 'patron_checkouts' : [
137 e.setAttribute('value','...');
138 var e2 = document.getElementById( 'patron_overdue' ); if (e2) e2.setAttribute('value','...');
139 var e3 = document.getElementById( 'patron_claimed_returned' ); if (e3) e3.setAttribute('value','...');
140 var e4 = document.getElementById( 'patron_long_overdue' ); if (e4) e4.setAttribute('value','...');
141 var e5 = document.getElementById( 'patron_lost' ); if (e5) e5.setAttribute('value','...');
142 obj.network.simple_request(
143 'FM_CIRC_COUNT_RETRIEVE_VIA_USER',
144 [ ses(), obj.patron.id() ],
146 e.setAttribute('value', req.getResultObject().out );
147 if (e2) e2.setAttribute('value', req.getResultObject().overdue );
148 if (e3) e3.setAttribute('value', req.getResultObject().claims_returned );
149 if (e4) e4.setAttribute('value', req.getResultObject().long_overdue );
150 if (e5) e5.setAttribute('value', req.getResultObject().lost );
160 /* handled by 'patron_checkouts' */
168 e.setAttribute('value','...');
169 var e2 = document.getElementById('patron_holds_available');
170 if (e2) e2.setAttribute('value','...');
171 obj.network.simple_request(
172 'FM_AHR_COUNT_RETRIEVE',
173 [ ses(), obj.patron.id() ],
175 e.setAttribute('value',
176 req.getResultObject().total
178 if (e2) e2.setAttribute('value',
179 req.getResultObject().ready
186 'patron_holds_available' : [
190 /* handled by 'patron_holds' */
198 e.setAttribute('value',
199 obj.patron.card().barcode()
204 'patron_ident_type_1' : [
208 var ident_string = '';
209 var ident = obj.OpenILS.data.hash.cit[
210 obj.patron.ident_type()
212 if (ident) ident_string = ident.name()
213 e.setAttribute('value',
219 'patron_ident_value_1' : [
223 e.setAttribute('value',
224 obj.patron.ident_value()
229 'patron_ident_type_2' : [
233 var ident_string = '';
234 var ident = obj.OpenILS.data.hash.cit[
235 obj.patron.ident_type2()
237 if (ident) ident_string = ident.name()
238 e.setAttribute('value',
244 'patron_ident_value_2' : [
248 e.setAttribute('value',
249 obj.patron.ident_value2()
254 'patron_date_of_birth' : [
258 e.setAttribute('value',
259 obj.patron.dob().substr(0,10)
264 'patron_day_phone' : [
268 e.setAttribute('value',
269 obj.patron.day_phone()
274 'patron_evening_phone' : [
278 e.setAttribute('value',
279 obj.patron.evening_phone()
284 'patron_other_phone' : [
288 e.setAttribute('value',
289 obj.patron.other_phone()
298 e.setAttribute('value',
304 'patron_photo_url' : [
308 e.setAttribute('src',
309 obj.patron.photo_url()
318 e.setAttribute('value',
319 obj.OpenILS.data.hash.aou[
323 e.setAttribute('tooltiptext',
324 obj.OpenILS.data.hash.aou[
331 'patron_last_library' : [
335 e.setAttribute('value',
336 obj.OpenILS.data.hash.aou[
340 e.setAttribute('tooltiptext',
341 obj.OpenILS.data.hash.aou[
348 'patron_mailing_address_street1' : [
352 e.setAttribute('value',
353 obj.patron.mailing_address().street1()
358 'patron_mailing_address_street2' : [
362 e.setAttribute('value',
363 obj.patron.mailing_address().street2()
368 'patron_mailing_address_city' : [
372 e.setAttribute('value',
373 obj.patron.mailing_address().city()
378 'patron_mailing_address_state' : [
382 e.setAttribute('value',
383 obj.patron.mailing_address().state()
388 'patron_mailing_address_post_code' : [
392 e.setAttribute('value',
393 obj.patron.mailing_address().post_code()
398 'patron_physical_address_street1' : [
402 e.setAttribute('value',
403 obj.patron.billing_address().street1()
408 'patron_physical_address_street2' : [
412 e.setAttribute('value',
413 obj.patron.billing_address().street2()
418 'patron_physical_address_city' : [
422 e.setAttribute('value',
423 obj.patron.billing_address().city()
428 'patron_physical_address_state' : [
432 e.setAttribute('value',
433 obj.patron.billing_address().state()
438 'patron_physical_address_post_code' : [
442 e.setAttribute('value',
443 obj.patron.billing_address().post_code()
456 'retrieve' : function() {
464 // Retrieve the patron
465 function blah_retrieve() {
468 if (obj.barcode && obj.barcode != 'null') {
469 robj = obj.network.request(
470 api.FM_AU_RETRIEVE_VIA_BARCODE.app,
471 api.FM_AU_RETRIEVE_VIA_BARCODE.method,
472 [ ses(), obj.barcode ]
474 } else if (obj.id && obj.id != 'null') {
475 robj = obj.network.simple_request(
476 'FM_AU_FLESHED_RETRIEVE_VIA_ID',
480 throw('summary: No barcode or id');
484 if (instanceOf(robj,au)) {
487 JSAN.use('patron.util');
488 document.getElementById('patron_name').setAttribute('value',
489 obj.patron.family_name() + ', ' + obj.patron.first_given_name() + ' ' +
490 ( obj.patron.second_given_name() ? obj.patron.second_given_name() : '' )
492 patron.util.set_penalty_css(obj.patron);
512 // Retrieve the survey responses for required surveys
516 var surveys = obj.OpenILS.data.list.my_asv;
517 var survey_responses = {};
518 for (var i = 0; i < surveys.length; i++) {
519 var s = obj.network.request(
520 api.FM_ASVR_RETRIEVE.app,
521 api.FM_ASVR_RETRIEVE.method,
522 [ ses(), surveys[i].id(), obj.patron.id() ]
524 survey_responses[ surveys[i].id() ] = s;
526 obj.patron.survey_responses( survey_responses );
528 var error = ('patron.summary.retrieve : ' + js2JSON(E));
529 obj.error.sdump('D_ERROR',error);
537 chain.push( function() { obj.controller.render(); } );
541 chain.push( function() {
543 if (typeof window.xulG == 'object' && typeof window.xulG.on_finished == 'function') {
544 obj.error.sdump('D_PATRON_SUMMARY',
545 'patron.summary: Calling external .on_finished()\n');
546 window.xulG.on_finished(obj.patron);
548 obj.error.sdump('D_PATRON_SUMMARY','patron.summary: No external .on_finished()\n');
554 JSAN.use('util.exec'); obj.exec = new util.exec();
555 obj.exec.on_error = function(E) {
557 if (typeof window.xulG == 'object' && typeof window.xulG.on_error == 'function') {
558 window.xulG.on_error(E);
564 this.exec.chain( chain );
567 if (typeof window.xulG == 'object' && typeof window.xulG.on_error == 'function') {
568 window.xulG.on_error(E);
576 dump('exiting patron.summary.js\n');