1 dump('entering circ.checkout.js\n');
3 if (typeof patron == 'undefined') patron = {};
4 circ.checkout = function (params) {
6 JSAN.use('util.error'); this.error = new util.error();
7 JSAN.use('util.network'); this.network = new util.network();
9 JSAN.use('OpenILS.data'); this.OpenILS = {};
10 this.OpenILS.data = new OpenILS.data(); this.OpenILS.data.init({'via':'stash'});
13 circ.checkout.prototype = {
15 'init' : function( params ) {
19 obj.session = params['session'];
20 obj.patron_id = params['patron_id'];
22 JSAN.use('circ.util');
23 var columns = circ.util.columns(
25 'barcode' : { 'hidden' : false },
26 'title' : { 'hidden' : false },
27 'due_date' : { 'hidden' : false },
31 JSAN.use('util.list'); obj.list = new util.list('checkout_list');
35 'map_row_to_column' : function(row,col) {
36 // row contains { 'my' : { 'acp' : {}, 'circ' : {}, 'mvr' : {} } }
37 // col contains one of the objects listed above in columns
39 return eval( col.render );
44 JSAN.use('util.controller'); obj.controller = new util.controller();
48 'checkout_barcode_entry_textbox' : [
51 if (ev.keyCode && ev.keyCode == 13) {
58 function() { alert('Not Yet Implemented'); }
60 'cmd_checkout_submit_barcode' : [
66 'cmd_checkout_print' : [
71 'cmd_checkout_reprint' : [
76 'cmd_checkout_done' : [
84 this.controller.view.checkout_barcode_entry_textbox.focus();
88 'checkout' : function() {
91 var barcode = obj.controller.view.checkout_barcode_entry_textbox.value;
92 var permit = obj.network.request(
93 api.checkout_permit_via_barcode.app,
94 api.checkout_permit_via_barcode.method,
95 [ obj.session, barcode, obj.patron_id, 0 ]
98 if (permit.status == 0) {
99 var checkout = obj.network.request(
100 api.checkout_via_barcode.app,
101 api.checkout_via_barcode.method,
102 [ obj.session, barcode, obj.patron_id ]
108 'circ' : checkout.circ,
109 'mvr' : checkout.record,
110 'acp' : checkout.copy
113 //I could override map_row_to_column here
116 if (typeof obj.on_checkout == 'function') {
117 obj.on_checkout(checkout);
119 if (typeof window.xulG == 'object' && typeof window.xulG.on_checkout == 'function') {
120 obj.error.sdump('D_CIRC','circ.checkout: Calling external .on_checkout()\n');
121 window.xulG.on_checkout(checkout);
123 obj.error.sdump('D_CIRC','circ.checkout: No external .on_checkout()\n');
130 alert('FIXME: need special alert and error handling\n'
132 if (typeof obj.on_failure == 'function') {
135 if (typeof window.xulG == 'object' && typeof window.xulG.on_failure == 'function') {
136 obj.error.sdump('D_CIRC','circ.checkout: Calling external .on_failure()\n');
137 window.xulG.on_failure(E);
139 obj.error.sdump('D_CIRC','circ.checkout: No external .on_failure()\n');
145 'on_checkout' : function() {
146 this.controller.view.checkout_barcode_entry_textbox.value = '';
147 this.controller.view.checkout_barcode_entry_textbox.focus();
150 'on_failure' : function() {
151 this.controller.view.checkout_barcode_entry_textbox.select();
152 this.controller.view.checkout_barcode_entry_textbox.focus();
156 dump('exiting circ.checkout.js\n');