4 dump('entering admin/offline_manage_xacts.js\n');
6 if (typeof admin == 'undefined') admin = {};
7 admin.offline_manage_xacts = function (params) {
9 JSAN.use('util.error'); this.error = new util.error();
10 JSAN.use('util.network'); this.network = new util.network();
13 admin.offline_manage_xacts.prototype = {
19 'init' : function( params ) {
23 JSAN.use('OpenILS.data'); obj.data = new OpenILS.data(); obj.data.init({'via':'stash'});
25 obj.init_list(); obj.init_script_list(); obj.init_error_list();
27 obj.retrieve_seslist(); obj.render_seslist();
29 var x = document.getElementById('create');
30 if (obj.check_perm(['OFFLINE_UPLOAD'])) {
32 x.addEventListener('command',function() { try{obj.create_ses();}catch(E){alert(E);} },false);
36 x.addEventListener('command',function() { try{obj.upload();}catch(E){alert(E);} },false);
39 x.addEventListener('command',function() { try{$('deck').selectedIndex=0;obj.retrieve_seslist();obj.render_seslist();}catch(E){alert(E);} },false);
42 x.addEventListener('command',function() { try{obj.execute_ses();}catch(E){alert(E);} },false);
44 x = obj.$('retrieve_item');
45 x.addEventListener('command',function() { try{obj.retrieve_item();}catch(E){alert(E);} },false);
47 x = obj.$('retrieve_patron');
48 x.addEventListener('command',function() { try{obj.retrieve_patron();}catch(E){alert(E);} },false);
50 x = obj.$('retrieve_details');
51 x.addEventListener('command',function() { try{obj.retrieve_details();}catch(E){alert(E);} },false);
53 obj.$('deck').selectedIndex = 0;
56 '$' : function(id) { return document.getElementById(id); },
58 'init_list' : function() {
59 var obj = this; JSAN.use('util.list'); JSAN.use('util.date'); JSAN.use('patron.util');
60 obj.list = new util.list('session_tree');
64 'id' : 'org', 'hidden' : 'true', 'flex' : '1',
65 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.organization'),
66 'render' : function(my) { return obj.data.hash.aou[ my.org ].shortname(); }
69 'id' : 'description', 'flex' : '2',
70 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.description'),
71 'render' : function(my) { return my.description; }
74 'id' : 'create_time', 'flex' : '1',
75 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.date_created'),
76 'render' : function(my) { if (my.create_time) { var x = new Date(); x.setTime(my.create_time+"000"); return util.date.formatted_date(x,"%F %H:%M"); } else { return ""; }; }
79 'id' : 'creator', 'flex' : '1', 'hidden' : 'true',
80 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.created_by'),
81 'render' : function(my) { var staff_obj = patron.util.retrieve_name_via_id( ses(), my.creator ); return staff_obj[0] + " @ " + obj.data.hash.aou[ staff_obj[3] ].shortname(); }
84 'id' : 'count', 'flex' : '1',
85 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.upload_count'),
86 'render' : function(my) { return my.scripts.length; }
89 'id' : 'num_complete', 'flex' : '1',
90 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.transactions_processed'),
91 'render' : function(my) { return my.num_complete; }
94 'id' : 'in_process', 'flex' : '1',
95 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.processing'),
96 'render' : function(my) {
98 return $('adminStrings').getString('staff.admin.offline_manage_xacts.completed')
100 return get_bool(my.in_process) ? $('adminStrings').getString('staff.admin.offline_manage_xacts.yes') : $('adminStrings').getString('staff.admin.offline_manage_xacts.no')
105 'id' : 'start_time', 'flex' : '1', 'hidden' : 'true',
106 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.date_started'),
107 'render' : function(my) { if (my.start_time) {var x = new Date(); x.setTime(my.start_time+"000"); return util.date.formatted_date(x,"%F %H:%M");} else { return ""; }; }
110 'id' : 'end_time', 'flex' : '1',
111 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.date_completed'),
112 'render' : function(my) { if (my.end_time) {var x = new Date(); x.setTime(my.end_time+"000"); return util.date.formatted_date(x,"%F %H:%M");} else { return ""; }; }
115 'id' : 'key', 'hidden' : 'true', 'flex' : '1',
116 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_list.session'),
117 'render' : function(my) { return my.key; }
120 'map_row_to_columns' : patron.util.std_map_row_to_columns(),
121 'on_select' : function(ev) {
123 $('deck').selectedIndex = 0;
124 $('execute').disabled = true;
125 $('upload').disabled = true;
129 JSAN.use('util.functional');
130 var sel = obj.list.retrieve_selection();
131 obj.sel_list = util.functional.map_list(
133 function(o) { return o.getAttribute('retrieve_id'); }
135 if (obj.sel_list.length == 0) return;
137 var upload = true; var process = true;
139 if (obj.sel_list.length > 1) upload = false;
141 if (obj.seslist[ obj.sel_list[0] ].end_time) {
142 upload = false; process = false;
144 if (obj.seslist[ obj.sel_list[0] ].in_process == 1) {
145 upload = false; process = false;
148 /* should we really have this next restriction? */
149 for (var i = 0; i < obj.seslist[ obj.sel_list[0] ].scripts.length; i++) {
150 if (obj.seslist[ obj.sel_list[0] ].scripts[i].workstation ==
151 obj.data.ws_name ) upload = false;
155 if (obj.check_perm(['OFFLINE_UPLOAD'])) {
156 document.getElementById('upload').disabled = false;
159 document.getElementById('upload').disabled = true;
162 if (obj.check_perm(['OFFLINE_EXECUTE'])) {
163 document.getElementById('execute').disabled = false;
166 document.getElementById('execute').disabled = true;
169 var complete = false;
170 for (var i = 0; i < obj.sel_list.length; i++) {
171 if (obj.seslist[ obj.sel_list[i] ].end_time) { complete = true; }
174 obj.render_errorlist();
176 if (obj.seslist[ obj.sel_list[0] ].in_process == 1) {
179 obj.render_scriptlist();
183 alert('on_select: ' + E);
188 alert('on_select:\nobj.seslist.length = ' + obj.seslist.length + ' obj.sel_list.length = ' + obj.sel_list.length + '\nerror: ' + E);
196 'init_script_list' : function() {
197 var obj = this; JSAN.use('util.list'); JSAN.use('util.date'); JSAN.use('patron.util');
198 obj.script_list = new util.list('script_tree');
199 obj.script_list.init( {
202 'id' : 'create_time', 'flex' : '1',
203 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_script_list.date_uploaded'),
204 'render' : function(my) { if (my.create_time) { var x = new Date(); x.setTime(my.create_time+"000"); return util.date.formatted_date(x,"%F %H:%M"); } else { return ""; }; }
207 'id' : 'requestor', 'flex' : '1', 'hidden' : 'true',
208 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_script_list.uploaded_by'),
209 'render' : function(my) { var staff_obj = patron.util.retrieve_name_via_id( ses(), my.requestor ); return staff_obj[0] + " @ " + obj.data.hash.aou[ staff_obj[3] ].shortname(); }
212 'id' : 'time_delta', 'hidden' : 'true', 'flex' : '1',
213 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_script_list.time_delta'),
214 'render' : function(my) { return my.time_delta; }
217 'id' : 'workstation', 'flex' : '1',
218 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_script_list.workstation'),
219 'render' : function(my) { return my.workstation; }
222 'map_row_to_columns' : patron.util.std_map_row_to_columns()
228 'init_error_list' : function() {
229 var obj = this; JSAN.use('util.list'); JSAN.use('util.date'); JSAN.use('patron.util'); JSAN.use('util.functional');
230 obj.error_list = new util.list('error_tree');
231 obj.error_list.init( {
234 'id' : 'workstation', 'flex' : '1',
235 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.workstation'),
236 'render' : function(my) { return my.command._workstation ? my.command._workstation : my.command._worksation; }
239 'id' : 'timestamp', 'flex' : '1',
240 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.timestamp'),
241 'render' : function(my) { if (my.command.timestamp) { var x = new Date(); x.setTime(my.command.timestamp+"000"); return util.date.formatted_date(x,"%F %H:%M"); } else { return my.command._realtime; }; }
244 'id' : 'type', 'flex' : '1',
245 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.type'),
246 'render' : function(my) { return my.command.type; }
249 'id' : 'ilsevent', 'hidden' : 'true', 'flex' : '1',
250 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.event_code'),
251 'render' : function(my) { return my.event.ilsevent; }
254 'id' : 'textcode', 'flex' : '1',
255 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.event_name'),
256 'render' : function(my) { return typeof my.event.textcode != 'undefined' ? my.event.textcode : util.functional.map_list( my.event, function(o) { return o.textcode; }).join('/'); }
259 'id' : 'desc', 'flex' : '1', 'hidden' : 'true',
260 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.event_description'),
261 'render' : function(my) { return my.event.desc; }
264 'id' : 'i_barcode', 'flex' : '1',
265 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.item_barcode'),
266 'render' : function(my) { return my.command.barcode ? my.command.barcode : ""; }
269 'id' : 'p_barcode', 'flex' : '1',
270 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.patron_barcode'),
271 'render' : function(my) { if (my.command.patron_barcode) { return my.command.patron_barcode; } else { if (my.command.user.card.barcode) { return my.command.user.card.barcode; } else { return ""; } }; }
274 'id' : 'duedate', 'flex' : '1', 'hidden' : 'true',
275 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.due_date'),
276 'render' : function(my) { return my.command.due_date || ""; }
279 'id' : 'backdate', 'flex' : '1', 'hidden' : 'true',
280 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.backdate'),
281 'render' : function(my) { return my.command.backdate || ""; }
284 'id' : 'count', 'flex' : '1', 'hidden' : 'true',
285 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.count'),
286 'render' : function(my) { return my.command.count || ""; }
289 'id' : 'noncat', 'flex' : '1', 'hidden' : 'true',
290 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.noncat'),
291 'render' : function(my) { return get_bool(my.command.noncat) ? $('adminStrings').getString('staff.admin.offline_manage_xacts.yes') : $('adminStrings').getString('staff.admin.offline_manage_xacts.no'); }
294 'id' : 'noncat_type', 'flex' : '1', 'hidden' : 'true',
295 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.noncat_type'),
296 'render' : function(my) { return data.hash.cnct[ my.command.noncat_type ] ? obj.data.hash.cnct[ my.command.noncat_type ].name() : ""; }
299 'id' : 'noncat_count', 'flex' : '1', 'hidden' : 'true',
300 'label' : $('adminStrings').getString('staff.admin.offline_manage_xacts.init_error_list.noncat_count'),
301 'render' : function(my) { return my.command.noncat_count || ""; }
304 'map_row_to_columns' : patron.util.std_map_row_to_columns(),
305 'on_select' : function(ev) {
307 var sel = obj.error_list.retrieve_selection();
308 obj.sel_errors = util.functional.map_list(
310 function(o) { return o.getAttribute('retrieve_id'); }
312 if (obj.sel_errors.length > 0) {
313 obj.$('retrieve_item').disabled = false;
314 obj.$('retrieve_patron').disabled = false;
315 obj.$('retrieve_details').disabled = false;
317 obj.$('retrieve_item').disabled = true;
318 obj.$('retrieve_patron').disabled = true;
319 obj.$('retrieve_details').disabled = true;
327 var export_button = document.getElementById('export_btn');
328 if (export_button) export_button.addEventListener(
332 obj.error_list.dump_csv_to_clipboard();
334 obj.error.standard_unexpected_error_alert('export',E);
340 var print_export_button = document.getElementById('print_export_btn');
341 if (print_export_button) print_export_button.addEventListener(
345 obj.error_list.on_all_fleshed =
348 dump( obj.error_list.dump_csv() + '\n' );
349 //copy_to_clipboard(obj.error_list.dump_csv());
350 JSAN.use('util.print'); var p = new util.print();
351 p.simple( obj.error_list.dump_csv(), { 'content_type' : 'text/plain' } );
352 setTimeout(function(){ obj.error_list.on_all_fleshed = null; },0);
354 obj.error.standard_unexpected_error_alert('export',E);
357 obj.error_list.full_retrieve();
359 obj.error.standard_unexpected_error_alert('print export',E);
367 'check_perm' : function(perms) {
370 var robj = obj.network.simple_request('PERM_CHECK',[ses(),obj.data.list.au[0].id(),obj.data.list.au[0].ws_ou(),perms]);
371 if (typeof robj.ilsevent != 'undefined') {
372 obj.error.standard_unexpected_error_alert('check permission',E);
375 return robj.length == 0 ? true : false;
377 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.check_perm'),E);
381 'execute_ses' : function() {
387 obj.data.stash_retrieve();
389 for (var i = 0; i < obj.sel_list.length; i++) {
391 var url = xulG.url_prefix(urls.XUL_OFFLINE_MANAGE_XACTS_CGI)
392 + "?ses=" + window.escape(ses())
394 + "&seskey=" + window.escape(obj.seslist[obj.sel_list[i]].key)
395 + "&ws=" + window.escape(obj.data.ws_name);
396 var x = new XMLHttpRequest();
397 x.open("GET",url,false);
400 dump(url + ' = ' + x.responseText + '\n' );
401 if (!x.responseText) {
402 throw($('adminStrings').getString('staff.admin.offline_manage_xacts.error.bad_cgi_response'));
404 var robj = JSON2js(x.responseText);
406 if (robj.ilsevent != 0) { alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.execute_error') + ' ' + x.responseText); }
408 obj.retrieve_seslist(); obj.render_seslist();
412 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.session_execute_error'),E);
416 'ses_errors' : function() {
422 obj.data.stash_retrieve();
424 var url = xulG.url_prefix(urls.XUL_OFFLINE_MANAGE_XACTS_CGI)
425 + "?ses=" + window.escape(ses())
427 + "&seskey=" + window.escape(obj.seslist[ obj.sel_list[0] ].key)
428 + "&ws=" + window.escape(obj.data.ws_name)
429 + '&status_type=exceptions';
430 var x = new XMLHttpRequest();
431 x.open("GET",url,false);
434 dump(url + ' = ' + x.responseText + '\n' );
435 if (!x.responseText) {
436 throw($('adminStrings').getString('staff.admin.offline_manage_xacts.error.bad_cgi_response'));
438 var robj = JSON2js(x.responseText);
440 return { 'errors' : robj, 'description' : obj.seslist[ obj.sel_list[0] ].description };
443 throw($('adminStrings').getString('staff.admin.offline_manage_xacts.error.session_retrieval') + ' ' + E);
448 'rename_file' : function() {
449 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
454 JSAN.use('util.file');
455 var pending = new util.file('pending_xacts');
456 if ( !pending._file.exists() ) {
457 throw($('adminStrings').getString('staff.admin.offline_manage_xacts.error.non_existent_file'));
459 obj.transition_filename = 'pending_xacts_' + new Date().getTime();
461 var file = new util.file(obj.transition_filename);
462 while (file._file.exists()) {
463 obj.transition_filename = 'pending_xacts_' + new Date().getTime();
464 file = new util.file(obj.transition_filename);
466 throw($('adminStrings').getString('staff.admin.offline_manage_xacts.error.unique_file'));
469 pending._file.moveTo(null,obj.transition_filename);
472 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.renaming_file'),E);
476 'revert_file' : function() {
477 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
482 JSAN.use('util.file');
483 var pending = new util.file('pending_xacts');
484 if (pending._file.exists()) {
486 $('adminStrings').getFormattedString('staff.admin.offline_manage_xacts.error.transaction_conflicts', [obj.transition_filename]),
487 $('adminStrings').getString('staff.admin.offline_manage_xacts.error.transaction_conflicts.title'),
488 $('adminStrings').getString('staff.admin.offline_manage_xacts.error.transaction_conflicts.ok'),
491 $('adminStrings').getString('staff.admin.offline_manage_xacts.error.transaction_conflicts.confirm')
495 var file = new util.file(obj.transition_filename);
496 file._file.moveTo(null,'pending_xacts');
499 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.reverting_file'),E);
503 'archive_file' : function() {
504 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
509 JSAN.use('util.file');
510 var file = new util.file(obj.transition_filename);
511 if (file._file.exists()) file._file.moveTo(null,obj.transition_filename + '.complete');
514 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.archiving_file'),E);
518 'upload' : function() {
519 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
524 if (obj.sel_list.length == 0) {
525 alert($('adminStrings').getString('staff.admin.offline_manage_xacts.session_upload'));
528 if (obj.sel_list.length > 1) {
529 alert($('adminStrings').getString('staff.admin.offline_manage_xacts.single_session_upload'));
533 JSAN.use('util.file');
535 var file = new util.file('pending_xacts');
536 if (!file._file.exists()) {
537 alert($('adminStrings').getString('staff.admin.offline_manage_xacts.no_transactions'));
543 obj.data.stash_retrieve();
544 var seskey = obj.seslist[ obj.sel_list[0] ].key;
545 JSAN.use('util.widgets');
546 var xx = document.getElementById('iframe_placeholder'); util.widgets.remove_children(xx);
547 var x = document.createElement('iframe'); xx.appendChild(x); x.flex = 1;
550 window.xulG.url_prefix( urls.XUL_REMOTE_BROWSER )
552 + '?url=' + window.escape(
553 urls.XUL_OFFLINE_UPLOAD_XACTS
554 + '?ses=' + window.escape(ses())
555 + '&seskey=' + window.escape(seskey)
556 + '&ws=' + window.escape(obj.data.ws_name)
557 + '&delta=' + window.escape('0')
558 + '&filename=' + window.escape( obj.transition_filename )
563 'url' : urls.XUL_OFFLINE_UPLOAD_XACTS,
564 'url_prefix' : window.xulG.url_prefix,
565 'passthru_content_params' : {
568 'ws' : obj.data.ws_name,
570 'filename' : obj.transition_filename,
571 'url_prefix' : window.xulG.url_prefix,
572 'handle_event' : function(robj){
573 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
575 dump('robj = ' + js2JSON(robj) + '\n');
576 if ( robj.ilsevent != 0 ) {
578 alert($('adminStrings').getFormattedString('staff.admin.offline_manage_xacts.error.uploading_file') + '\n' + js2JSON(robj));
582 obj.retrieve_seslist(); obj.render_seslist();
585 JSAN.use('util.widgets');
586 util.widgets.remove_children('iframe_placeholder');
590 alert('handle_event error: ' + E);
595 get_contentWindow(x).xulG = newG;
598 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.uploading_transactions'),E);
602 'ses_status' : function() {
608 obj.data.stash_retrieve();
610 var url = xulG.url_prefix(urls.XUL_OFFLINE_MANAGE_XACTS_CGI)
611 + "?ses=" + window.escape(ses())
613 + "&seskey=" + window.escape(obj.seslist[obj.sel_list[0]].key)
614 + "&ws=" + window.escape(obj.data.ws_name)
615 + "&status_type=scripts";
616 var x = new XMLHttpRequest();
617 x.open("GET",url,false);
620 dump(url + ' = ' + x.responseText + '\n' );
621 if (!x.responseText) {
622 throw($('adminStrings').getString('staff.admin.offline_manage_xacts.error.bad_cgi_response'));
624 var robj = JSON2js(x.responseText);
630 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.retrieving_session'),E);
631 return { 'ilsevent' : -2 };
636 'create_ses' : function() {
642 var desc = window.prompt(
643 $('adminStrings').getString('staff.admin.offline_manage_xacts.create_session.prompt'),
645 $('adminStrings').getString('staff.admin.offline_manage_xacts.create_session')
647 if (desc=='' || desc==null) { return; }
650 obj.data.stash_retrieve();
652 var url = xulG.url_prefix(urls.XUL_OFFLINE_MANAGE_XACTS_CGI)
653 + "?ses=" + window.escape(ses())
655 + "&desc=" + window.escape(desc)
656 + "&ws=" + window.escape(obj.data.ws_name);
657 var x = new XMLHttpRequest();
658 x.open("GET",url,false);
661 dump(url + ' = ' + x.responseText + '\n' );
662 if (!x.responseText) {
663 throw($('adminStrings').getString('staff.admin.offline_manage_xacts.error.bad_cgi_response'));
665 var robj = JSON2js(x.responseText);
666 if (robj.ilsevent == 0) {
667 obj.retrieve_seslist(); obj.render_seslist();
669 alert($('adminStrings').getFormattedString('staff.admin.offline_manage_xacts.error.create_session.alert', [x.responseText]));
673 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.create_session'), E);
678 'retrieve_seslist' : function() {
685 obj.data.stash_retrieve();
687 var url = xulG.url_prefix(urls.XUL_OFFLINE_MANAGE_XACTS_CGI)
688 + "?ses=" + window.escape(ses())
690 + "&org=" + window.escape(obj.data.list.au[0].ws_ou())
691 + "&status_type=sessions";
692 var x = new XMLHttpRequest();
693 x.open("GET",url,false);
696 dump(url + ' = ' + typeof(x.responseText) + '\n' );
698 if (!x.responseText) {
699 throw($('adminStrings').getString('staff.admin.offline_manage_xacts.error.bad_cgi_response'));
702 var robj = JSON2js( x.responseText );
703 if (typeof robj.ilsevent != 'undefined') throw(robj);
705 if (!robj) throw(robj);
707 obj.seslist = robj.sort(
709 return b.create_time - a.create_time;
714 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.retrieving_sessions'),E);
718 'render_seslist' : function() {
724 var old_idx = obj.list.node.currentIndex;
725 if (old_idx < 0) old_idx = 0;
730 for (var i = 0; i < obj.seslist.length; i++) {
734 obj.list.append( { 'retrieve_id' : idx, 'row' : row, 'no_auto_select' : true, 'to_bottom' : true } );
735 //if (idx == old_idx) obj.list.node.view.selection.select(idx);
737 }(i,{ 'my' : obj.seslist[i] })
741 JSAN.use('util.exec'); var exec = new util.exec();
744 document.getElementById('execute').disabled = true;
745 document.getElementById('upload').disabled = true;
748 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.rendering_session'),E);
752 'render_scriptlist' : function() {
754 dump('render_scriptlist\n');
760 document.getElementById('deck').selectedIndex = 1;
762 obj.script_list.clear();
764 var status = obj.ses_status();
765 $('status_caption').setAttribute('label', $('adminStrings').getFormattedString('staff.admin.offline_manage_xacts.upload_status', [status.description]));
767 var scripts = status.scripts;
770 for (var i = 0; i < scripts.length; i++) {
774 obj.script_list.append( { 'row' : row, 'no_auto_select' : true } );
776 }({ 'my' : scripts[i] })
779 JSAN.use('util.exec'); var exec = new util.exec();
783 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.rendering_script'),E);
787 'render_errorlist' : function() {
789 dump('render_errorlist\n');
795 document.getElementById('deck').selectedIndex = 2;
797 obj.error_list.clear();
799 var error_meta = obj.ses_errors();
800 $('errors_caption').setAttribute('label',$('adminStrings').getFormattedString('staff.admin.offline_manage_xacts.error.rendering_errors', [error_meta.description]));
802 obj.errors = error_meta.errors;
805 for (var i = 0; i < obj.errors.length; i++) {
809 obj.error_list.append( { 'retrieve_id' : idx, 'row' : row, 'no_auto_select' : true } );
811 }(i,{ 'my' : obj.errors[i] })
814 JSAN.use('util.exec'); var exec = new util.exec();
818 obj.error.standard_unexpected_error_alert($('adminStrings').getString('staff.admin.offline_manage_xacts.error.rendering_error_list'),E);
822 'render_status' : function() {
824 dump('render_status\n');
826 document.getElementById('deck').selectedIndex = 3;
830 'retrieve_item' : function() {
834 for (var i = 0; i < obj.sel_errors.length; i++) {
835 var error = obj.errors[ obj.sel_errors[i] ];
836 if ( ! error.command.barcode ) continue;
837 if ( [ '', ' ', '???' ].indexOf( error.command.barcode ) != -1 ) continue;
838 barcodes.push( error.command.barcode );
840 if (typeof window.xulG == 'object' && typeof window.xulG.new_tab == 'function') {
842 var url = urls.XUL_COPY_STATUS;
843 //+ '?barcodes=' + window.escape( js2JSON(barcodes) );
845 url, {}, { 'barcodes' : barcodes }
856 'retrieve_patron' : function() {
860 for (var i = 0; i < obj.sel_errors.length; i++) {
861 var error = obj.errors[ obj.sel_errors[i] ];
862 if ( ! error.command.patron_barcode ) continue;
863 if ( [ '', ' ', '???' ].indexOf( error.command.patron_barcode ) != -1 ) continue;
864 patrons[ error.command.patron_barcode ] = true;
866 for (var barcode in patrons) {
867 if (typeof window.xulG == 'object' && typeof window.xulG.new_tab == 'function') {
869 window.xulG.new_patron_tab(
870 {}, { 'barcode' : barcode }
883 'retrieve_details' : function() {
885 JSAN.use('util.window'); var win = new util.window();
887 for (var i = 0; i < obj.sel_errors.length; i++) {
888 var error = obj.errors[ obj.sel_errors[i] ];
890 'data:text/plain,' + window.escape(
891 'Details:\n' + obj.error.pretty_print(js2JSON(error))
893 'offline_error_details',
894 'height=780,width=580,scrollbars=yes,chrome,resizable,modal'
904 dump('exiting admin/offline_manage_xacts.js\n');