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 var robj = req.getResultObject();
147 e.setAttribute('value', robj.out + robj.overdue + robj.claims_returned + robj.long_overdue );
148 if (e2) e2.setAttribute('value', robj.overdue );
149 if (e3) e3.setAttribute('value', robj.claims_returned );
150 if (e4) e4.setAttribute('value', robj.long_overdue );
151 if (e5) e5.setAttribute('value', robj.lost );
161 /* handled by 'patron_checkouts' */
169 e.setAttribute('value','...');
170 var e2 = document.getElementById('patron_holds_available');
171 if (e2) e2.setAttribute('value','...');
172 obj.network.simple_request(
173 'FM_AHR_COUNT_RETRIEVE',
174 [ ses(), obj.patron.id() ],
176 e.setAttribute('value',
177 req.getResultObject().total
179 if (e2) e2.setAttribute('value',
180 req.getResultObject().ready
187 'patron_holds_available' : [
191 /* handled by 'patron_holds' */
199 e.setAttribute('value',
200 obj.patron.card().barcode()
205 'patron_ident_type_1' : [
209 var ident_string = '';
210 var ident = obj.OpenILS.data.hash.cit[
211 obj.patron.ident_type()
213 if (ident) ident_string = ident.name()
214 e.setAttribute('value',
220 'patron_ident_value_1' : [
224 e.setAttribute('value',
225 obj.patron.ident_value()
230 'patron_ident_type_2' : [
234 var ident_string = '';
235 var ident = obj.OpenILS.data.hash.cit[
236 obj.patron.ident_type2()
238 if (ident) ident_string = ident.name()
239 e.setAttribute('value',
245 'patron_ident_value_2' : [
249 e.setAttribute('value',
250 obj.patron.ident_value2()
255 'patron_date_of_birth' : [
259 e.setAttribute('value',
260 obj.patron.dob().substr(0,10)
265 'patron_day_phone' : [
269 e.setAttribute('value',
270 obj.patron.day_phone()
275 'patron_evening_phone' : [
279 e.setAttribute('value',
280 obj.patron.evening_phone()
285 'patron_other_phone' : [
289 e.setAttribute('value',
290 obj.patron.other_phone()
299 e.setAttribute('value',
305 'patron_photo_url' : [
309 e.setAttribute('src',
310 obj.patron.photo_url()
319 e.setAttribute('value',
320 obj.OpenILS.data.hash.aou[
324 e.setAttribute('tooltiptext',
325 obj.OpenILS.data.hash.aou[
332 'patron_last_library' : [
336 e.setAttribute('value',
337 obj.OpenILS.data.hash.aou[
341 e.setAttribute('tooltiptext',
342 obj.OpenILS.data.hash.aou[
349 'patron_mailing_address_street1' : [
353 e.setAttribute('value',
354 obj.patron.mailing_address().street1()
359 'patron_mailing_address_street2' : [
363 e.setAttribute('value',
364 obj.patron.mailing_address().street2()
369 'patron_mailing_address_city' : [
373 e.setAttribute('value',
374 obj.patron.mailing_address().city()
379 'patron_mailing_address_state' : [
383 e.setAttribute('value',
384 obj.patron.mailing_address().state()
389 'patron_mailing_address_post_code' : [
393 e.setAttribute('value',
394 obj.patron.mailing_address().post_code()
399 'patron_physical_address_street1' : [
403 e.setAttribute('value',
404 obj.patron.billing_address().street1()
409 'patron_physical_address_street2' : [
413 e.setAttribute('value',
414 obj.patron.billing_address().street2()
419 'patron_physical_address_city' : [
423 e.setAttribute('value',
424 obj.patron.billing_address().city()
429 'patron_physical_address_state' : [
433 e.setAttribute('value',
434 obj.patron.billing_address().state()
439 'patron_physical_address_post_code' : [
443 e.setAttribute('value',
444 obj.patron.billing_address().post_code()
457 'retrieve' : function() {
465 // Retrieve the patron
466 function blah_retrieve() {
469 if (obj.barcode && obj.barcode != 'null') {
470 robj = obj.network.request(
471 api.FM_AU_RETRIEVE_VIA_BARCODE.app,
472 api.FM_AU_RETRIEVE_VIA_BARCODE.method,
473 [ ses(), obj.barcode ]
475 } else if (obj.id && obj.id != 'null') {
476 robj = obj.network.simple_request(
477 'FM_AU_FLESHED_RETRIEVE_VIA_ID',
481 throw('summary: No barcode or id');
485 if (instanceOf(robj,au)) {
488 JSAN.use('patron.util');
489 document.getElementById('patron_name').setAttribute('value',
490 obj.patron.family_name() + ', ' + obj.patron.first_given_name() + ' ' +
491 ( obj.patron.second_given_name() ? obj.patron.second_given_name() : '' )
493 patron.util.set_penalty_css(obj.patron);
513 // Retrieve the survey responses for required surveys
517 var surveys = obj.OpenILS.data.list.my_asv;
518 var survey_responses = {};
519 for (var i = 0; i < surveys.length; i++) {
520 var s = obj.network.request(
521 api.FM_ASVR_RETRIEVE.app,
522 api.FM_ASVR_RETRIEVE.method,
523 [ ses(), surveys[i].id(), obj.patron.id() ]
525 survey_responses[ surveys[i].id() ] = s;
527 obj.patron.survey_responses( survey_responses );
529 var error = ('patron.summary.retrieve : ' + js2JSON(E));
530 obj.error.sdump('D_ERROR',error);
538 chain.push( function() { obj.controller.render(); } );
542 chain.push( function() {
544 if (typeof window.xulG == 'object' && typeof window.xulG.on_finished == 'function') {
545 obj.error.sdump('D_PATRON_SUMMARY',
546 'patron.summary: Calling external .on_finished()\n');
547 window.xulG.on_finished(obj.patron);
549 obj.error.sdump('D_PATRON_SUMMARY','patron.summary: No external .on_finished()\n');
555 JSAN.use('util.exec'); obj.exec = new util.exec();
556 obj.exec.on_error = function(E) {
558 if (typeof window.xulG == 'object' && typeof window.xulG.on_error == 'function') {
559 window.xulG.on_error(E);
565 this.exec.chain( chain );
568 if (typeof window.xulG == 'object' && typeof window.xulG.on_error == 'function') {
569 window.xulG.on_error(E);
577 dump('exiting patron.summary.js\n');