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();
10 circ.checkout.prototype = {
12 'init' : function( params ) {
16 obj.session = params['session'];
17 obj.patron_id = params['patron_id'];
19 JSAN.use('circ.util');
20 var columns = circ.util.columns(
22 'barcode' : { 'hidden' : false },
23 'title' : { 'hidden' : false },
24 'due_date' : { 'hidden' : false },
28 JSAN.use('util.list'); obj.list = new util.list('checkout_list');
32 'map_row_to_column' : function(row,col) {
33 // row contains { 'my' : { 'acp' : {}, 'circ' : {}, 'mvr' : {} } }
34 // col contains one of the objects listed above in columns
36 return eval( col.render );
41 JSAN.use('util.controller'); obj.controller = new util.controller();
45 'checkout_barcode_entry_textbox' : [
48 if (ev.keyCode && ev.keyCode == 13) {
55 function() { alert('Not Yet Implemented'); }
57 'cmd_checkout_submit_barcode' : [
63 'cmd_checkout_print' : [
68 'cmd_checkout_reprint' : [
73 'cmd_checkout_done' : [
81 this.controller.view.checkout_barcode_entry_textbox.focus();
85 'checkout' : function() {
88 var barcode = obj.controller.view.checkout_barcode_entry_textbox.value;
89 var permit = obj.network.request(
90 api.checkout_permit_via_barcode.app,
91 api.checkout_permit_via_barcode.method,
92 [ obj.session, barcode, obj.patron_id, 0 ]
95 if (permit.status == 0) {
96 var checkout = obj.network.request(
97 api.checkout_via_barcode.app,
98 api.checkout_via_barcode.method,
99 [ obj.session, barcode, obj.patron_id ]
105 'circ' : checkout.circ,
106 'mvr' : checkout.record,
107 'acp' : checkout.copy
110 //I could override map_row_to_column here
113 if (typeof obj.on_checkout == 'function') {
114 obj.on_checkout(checkout);
116 if (typeof window.xulG == 'object' && typeof window.xulG.on_checkout == 'function') {
117 obj.error.sdump('D_CIRC','circ.checkout: Calling external .on_checkout()\n');
118 window.xulG.on_checkout(checkout);
120 obj.error.sdump('D_CIRC','circ.checkout: No external .on_checkout()\n');
127 alert('FIXME: need special alert and error handling\n'
129 if (typeof obj.on_failure == 'function') {
132 if (typeof window.xulG == 'object' && typeof window.xulG.on_failure == 'function') {
133 obj.error.sdump('D_CIRC','circ.checkout: Calling external .on_failure()\n');
134 window.xulG.on_failure(E);
136 obj.error.sdump('D_CIRC','circ.checkout: No external .on_failure()\n');
142 'on_checkout' : function() {
143 this.controller.view.checkout_barcode_entry_textbox.value = '';
144 this.controller.view.checkout_barcode_entry_textbox.focus();
147 'on_failure' : function() {
148 this.controller.view.checkout_barcode_entry_textbox.select();
149 this.controller.view.checkout_barcode_entry_textbox.focus();
153 dump('exiting circ.checkout.js\n');