1 dump('entering patron/display.js\n');
3 if (typeof patron == 'undefined') patron = {};
4 patron.display = 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.display.prototype = {
14 'init' : function( params ) {
18 obj.session = params['session'];
19 obj.barcode = params['barcode'];
21 JSAN.use('OpenILS.data'); this.OpenILS = {};
22 obj.OpenILS.data = new OpenILS.data(); obj.OpenILS.data.init({'via':'stash'});
24 JSAN.use('util.deck');
25 obj.right_deck = new util.deck('patron_right_deck');
26 obj.left_deck = new util.deck('patron_left_deck');
28 function spawn_checkout_interface() {
29 obj.right_deck.set_iframe(
31 + '?session=' + window.escape( obj.session )
32 + '&patron_id=' + window.escape( obj.patron.id() ),
35 'on_checkout' : function(checkout) {
36 var c = obj.summary_window.g.summary.patron.checkouts();
38 obj.summary_window.g.summary.patron.checkouts( c );
39 obj.summary_window.g.summary.controller.render('patron_checkouts');
43 dump('obj.right_deck.node.childNodes.length = ' + obj.right_deck.node.childNodes.length + '\n');
46 JSAN.use('util.controller'); obj.controller = new util.controller();
52 function() { alert('Not Yet Implemented'); }
54 'cmd_patron_retrieve' : [
59 'cmd_patron_refresh' : [
62 obj.controller.view.patron_name.setAttribute(
63 'value','Retrieving...'
65 try { obj.summary_window.refresh(); } catch(E) { dump(E + '\n'); }
66 try { obj.refresh_deck(); } catch(E) { dump(E + '\n'); }
69 'cmd_patron_checkout' : [
71 spawn_checkout_interface
73 'cmd_patron_items' : [
76 obj.right_deck.set_iframe(
77 urls.remote_patron_items
78 + '?session=' + window.escape( obj.session )
79 + '&patron_id=' + window.escape( obj.patron.id() ),
82 'checkouts' : obj.patron.checkouts()
85 dump('obj.right_deck.node.childNodes.length = ' + obj.right_deck.node.childNodes.length + '\n');
88 'cmd_patron_holds' : [
91 obj.right_deck.set_iframe(
92 urls.remote_patron_holds
93 + '?session=' + window.escape( obj.session )
94 + '&patron_id=' + window.escape( obj.patron.id() ),
97 //FIXME//'holds' : obj.patron.holds()
100 dump('obj.right_deck.node.childNodes.length = ' + obj.right_deck.node.childNodes.length + '\n');
103 'cmd_patron_bills' : [
106 obj.right_deck.set_iframe(
107 urls.remote_patron_bills
108 + '?session=' + window.escape( obj.session )
109 + '&patron_id=' + window.escape( obj.patron.id() ),
112 //FIXME//'bills' : obj.patron.bills()
115 dump('obj.right_deck.node.childNodes.length = ' + obj.right_deck.node.childNodes.length + '\n');
118 'cmd_patron_edit' : [
121 obj.right_deck.set_iframe(
122 urls.remote_patron_edit
123 + '?ses=' + window.escape( obj.session )
124 + '&usr=' + window.escape( obj.patron.id() ),
127 dump('obj.right_deck.node.childNodes.length = ' + obj.right_deck.node.childNodes.length + '\n');
130 'cmd_patron_info' : [
133 obj.right_deck.set_iframe(urls.remote_patron_info);
134 dump('obj.right_deck.node.childNodes.length = ' + obj.right_deck.node.childNodes.length + '\n');
141 e.setAttribute('value',
142 obj.patron.family_name() + ', ' + obj.patron.first_given_name()
144 e.setAttribute('style','background-color: lime');
145 if (obj.summary_window) {
146 //FIXME//bills should become a virtual field
147 if (obj.summary_window.g.summary.patron.bills.length > 0)
148 e.setAttribute('style','background-color: yellow');
149 if (obj.summary_window.g.summary.patron.standing() == 2)
150 e.setAttribute('style','background-color: lightred');
167 obj.controller.view.PatronNavBar.selectedIndex = 1;
168 obj.controller.view.cmd_patron_refresh.setAttribute('disabled','true');
169 obj.controller.view.cmd_patron_checkout.setAttribute('disabled','true');
170 obj.controller.view.cmd_patron_items.setAttribute('disabled','true');
171 obj.controller.view.cmd_patron_holds.setAttribute('disabled','true');
172 obj.controller.view.cmd_patron_bills.setAttribute('disabled','true');
173 obj.controller.view.cmd_patron_edit.setAttribute('disabled','true');
174 obj.controller.view.cmd_patron_info.setAttribute('disabled','true');
175 obj.controller.view.patron_name.setAttribute('value','Retrieving...');
176 var frame = obj.left_deck.set_iframe(
177 urls.remote_patron_summary
178 +'?session=' + window.escape(obj.session)
179 +'&barcode=' + window.escape(obj.barcode),
182 'on_finished' : function(patron) {
183 obj.patron = patron; obj.controller.render();
184 obj.controller.view.cmd_patron_refresh.setAttribute('disabled','false');
185 obj.controller.view.cmd_patron_checkout.setAttribute('disabled','false');
186 obj.controller.view.cmd_patron_items.setAttribute('disabled','false');
187 obj.controller.view.cmd_patron_holds.setAttribute('disabled','false');
188 obj.controller.view.cmd_patron_bills.setAttribute('disabled','false');
189 obj.controller.view.cmd_patron_edit.setAttribute('disabled','false');
190 obj.controller.view.cmd_patron_info.setAttribute('disabled','false');
191 if (!obj._checkout_spawned) {
192 spawn_checkout_interface();
193 obj._checkout_spawned = true;
198 obj.summary_window = frame.contentWindow;
200 obj.controller.view.PatronNavBar.selectedIndex = 0;
201 obj.controller.view.cmd_patron_retrieve.setAttribute('disabled','true');
202 var form_frame = obj.left_deck.set_iframe(
203 urls.remote_patron_search_form
204 +'?session=' + window.escape(obj.session),
207 'on_submit' : function(query) {
208 var list_frame = obj.right_deck.reset_iframe(
209 urls.remote_patron_search_result
210 +'?session=' + window.escape(obj.session) + '&' + query,
215 obj.search_result = list_frame.contentWindow;
219 obj.search_window = form_frame.contentWindow;
220 obj._checkout_spawned = true;
224 '_checkout_spawned' : false,
226 'refresh_deck' : function() {
228 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
229 for (var i = 0; i < obj.right_deck.node.childNodes.length; i++) {
232 var f = obj.right_deck.node.childNodes[i];
233 var w = f.contentWindow;
234 if (typeof w.refresh == 'function') {
239 dump('refresh_deck: ' + E + '\n');
245 dump('exiting patron/display.js\n');