1 dump('entering circ.hold_capture.js\n');
3 if (typeof circ == 'undefined') circ = {};
4 circ.hold_capture = function (params) {
6 JSAN.use('util.error'); this.error = new util.error();
7 JSAN.use('util.network'); this.network = new util.network();
8 this.OpenILS = {}; JSAN.use('OpenILS.data'); this.OpenILS.data = new OpenILS.data(); this.OpenILS.data.init({'via':'stash'});
11 circ.hold_capture.prototype = {
13 'init' : function( params ) {
17 obj.session = params['session'];
19 JSAN.use('circ.util');
20 var columns = circ.util.columns(
22 'barcode' : { 'hidden' : false },
23 'title' : { 'hidden' : false },
24 'status' : { 'hidden' : false },
25 //'checkin_status' : { 'hidden' : false },
26 'checkin_route_to' : { 'hidden' : false },
27 'checkin_text' : { 'hidden' : false, 'flex' : 3 },
30 dump('columns = ' + js2JSON(columns) + '\n');
32 JSAN.use('util.list'); obj.list = new util.list('hold_capture_list');
36 'map_row_to_column' : circ.util.std_map_row_to_column(),
40 JSAN.use('util.controller'); obj.controller = new util.controller();
44 'hold_capture_barcode_entry_textbox' : [
47 if (ev.keyCode && ev.keyCode == 13) {
54 function() { alert('Not Yet Implemented'); }
56 'cmd_hold_capture_submit_barcode' : [
62 'cmd_hold_capture_print' : [
67 'cmd_hold_capture_reprint' : [
72 'cmd_hold_capture_done' : [
80 this.controller.view.hold_capture_barcode_entry_textbox.focus();
84 'hold_capture' : function() {
87 var barcode = obj.controller.view.hold_capture_barcode_entry_textbox.value;
88 JSAN.use('circ.util');
89 var hold_capture = circ.util.hold_capture_via_copy_barcode(
90 obj.session, barcode, true
93 JSAN.use('patron.util');
95 if (hold_capture.hold && hold_capture.hold.usr()) {
97 au_obj = patron.util.retrieve_au_via_id( obj.session, hold_capture.hold.usr() );
101 au_obj = new au(); au_obj.family_name( '???' );
109 'hr' : hold_capture.hold,
110 'circ' : hold_capture.circ,
111 'mvr' : hold_capture.record,
112 'acp' : hold_capture.copy,
113 'status' : hold_capture.status,
114 'route_to' : hold_capture.route_to,
115 'text' : hold_capture.text,
118 //I could override map_row_to_column here
123 alert('To Printer\n' + hold_capture.text + '\r\n' + 'Barcode: ' + barcode + ' Title: ' + hold_capture.record.title() +
124 ' Author: ' + hold_capture.record.author() + '\r\n' +
125 'Route To: ' + hold_capture.route_to +
126 ' Patron: ' + au_obj.card().barcode() + ' ' + au_obj.family_name() + ', ' + au_obj.first_given_name() +
128 } catch(E) { dump('errors\n'); }
130 sPrint(hold_capture.text + '<br />\r\n' + 'Barcode: ' + barcode + ' Title: ' + hold_capture.record.title() +
131 ' Author: ' + hold_capture.record.author() + '<br />\r\n' +
132 'Route To: ' + hold_capture.route_to +
133 ' Patron: ' + au_obj.card().barcode() + ' ' + au_obj.family_name() + ', ' + au_obj.first_given_name() +
138 if (typeof obj.on_hold_capture == 'function') {
139 obj.on_hold_capture(hold_capture);
141 if (typeof window.xulG == 'object' && typeof window.xulG.on_hold_capture == 'function') {
142 obj.error.sdump('D_CIRC','circ.hold_capture: Calling external .on_hold_capture()\n');
143 window.xulG.on_hold_capture(hold_capture);
145 obj.error.sdump('D_CIRC','circ.hold_capture: No external .on_hold_capture()\n');
148 throw("Could not capture hold.");
152 alert('FIXME: need special alert and error handling\n'
154 if (typeof obj.on_failure == 'function') {
157 if (typeof window.xulG == 'object' && typeof window.xulG.on_failure == 'function') {
158 obj.error.sdump('D_CIRC','circ.hold_capture: Calling external .on_failure()\n');
159 window.xulG.on_failure(E);
161 obj.error.sdump('D_CIRC','circ.hold_capture: No external .on_failure()\n');
167 'on_hold_capture' : function() {
168 this.controller.view.hold_capture_barcode_entry_textbox.value = '';
169 this.controller.view.hold_capture_barcode_entry_textbox.focus();
172 'on_failure' : function() {
173 this.controller.view.hold_capture_barcode_entry_textbox.select();
174 this.controller.view.hold_capture_barcode_entry_textbox.focus();
178 dump('exiting circ.hold_capture.js\n');