From: pines Date: Tue, 27 Mar 2007 01:48:40 +0000 (+0000) Subject: remote auto_select for transit list and offline xact manager..robustify xact manager... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=785721d679d679e36c0e9de128a90d50f0f68a00;p=Evergreen.git remote auto_select for transit list and offline xact manager..robustify xact manager for when CGI component is busted git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_0@7108 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.js b/Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.js index 2d20e1bb24..aed9b2a88d 100644 --- a/Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.js +++ b/Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.js @@ -367,17 +367,23 @@ admin.offline_manage_xacts.prototype = { 'check_perm' : function(perms) { var obj = this; - var robj = obj.network.simple_request('PERM_CHECK',[ses(),obj.data.list.au[0].id(),obj.data.list.au[0].ws_ou(),perms]); - if (typeof robj.ilsevent != 'undefined') { - obj.error.standard_unexpected_error_alert('check permission',E); - return false; + try { + var robj = obj.network.simple_request('PERM_CHECK',[ses(),obj.data.list.au[0].id(),obj.data.list.au[0].ws_ou(),perms]); + if (typeof robj.ilsevent != 'undefined') { + obj.error.standard_unexpected_error_alert('check permission',E); + return false; + } + return robj.length == 0 ? true : false; + } catch(E) { + obj.error.standard_unexpected_error_alert('Error checking permissions',E); } - return robj.length == 0 ? true : false; }, 'execute_ses' : function() { var obj = this; + try { + clear_the_cache(); obj.data.stash_retrieve(); @@ -393,17 +399,24 @@ admin.offline_manage_xacts.prototype = { x.send(null); dump(url + ' = ' + x.responseText + '\n' ); + if (!x.responseText) throw('Bad response from CGI component'); var robj = JSON2js(x.responseText); if (robj.ilsevent != 0) { alert('Execute error: ' + x.responseText); } obj.retrieve_seslist(); obj.render_seslist(); } + + } catch(E) { + obj.error.standard_unexpected_error_alert('Error executing session',E); + } }, 'ses_errors' : function() { var obj = this; + try { + clear_the_cache(); obj.data.stash_retrieve(); @@ -418,15 +431,23 @@ admin.offline_manage_xacts.prototype = { x.send(null); dump(url + ' = ' + x.responseText + '\n' ); + if (!x.responseText) throw('Bad response from CGI component'); var robj = JSON2js(x.responseText); return { 'errors' : robj, 'description' : obj.seslist[ obj.sel_list[0] ].description }; + } catch(E) { + throw('Error retrieving session errors: ' + E); + } + }, 'rename_file' : function() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var obj = this; + + try { + JSAN.use('util.file'); var pending = new util.file('pending_xacts'); if ( !pending._file.exists() ) { throw("Can't rename a non-existent file"); } @@ -439,29 +460,50 @@ admin.offline_manage_xacts.prototype = { if (count++>100) throw("Taking too long to find a unique filename."); } pending._file.moveTo(null,obj.transition_filename); + + } catch(E) { + obj.error.standard_unexpected_error_alert('Error renaming xact file',E); + } }, 'revert_file' : function() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var obj = this; + + try { + JSAN.use('util.file'); var pending = new util.file('pending_xacts'); if (pending._file.exists()) { obj.error.yns_alert('Something bad happened. New offline transactions were accumulated during our attempted upload. Tell your system admin that the file involved is ' + obj.transition_filename,'Scary Error','Ok',null,null,'Check here to confirm this message'); return; } var file = new util.file(obj.transition_filename); file._file.moveTo(null,'pending_xacts'); + + } catch(E) { + obj.error.standard_unexpected_error_alert('Error reverting xact file',E); + } }, 'archive_file' : function() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var obj = this; + + try { + JSAN.use('util.file'); var file = new util.file(obj.transition_filename); - if (file._file.exists()) file._file.moveTo(null,obj.transition_filename + '.complete') + if (file._file.exists()) file._file.moveTo(null,obj.transition_filename + '.complete'); + + } catch(E) { + obj.error.standard_unexpected_error_alert('Error archiving xact file',E); + } }, 'upload' : function() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var obj = this; + + try { + if (obj.sel_list.length == 0) { alert('Please select a session to upload to.'); return; } if (obj.sel_list.length > 1) { alert('Please select a single session to upload to.'); return; } @@ -517,11 +559,17 @@ admin.offline_manage_xacts.prototype = { } }; x.contentWindow.xulG = newG; + + } catch(E) { + obj.error.standard_unexpected_error_alert('Error uploading xacts',E); + } }, 'ses_status' : function() { var obj = this; + try { + clear_the_cache(); obj.data.stash_retrieve(); @@ -536,15 +584,25 @@ admin.offline_manage_xacts.prototype = { x.send(null); dump(url + ' = ' + x.responseText + '\n' ); + if (!x.responseText) throw('Bad response from CGI component'); var robj = JSON2js(x.responseText); return robj; + + } catch(E) { + + obj.error.standard_unexpected_error_alert('Error retrieving session status',E); + return { 'ilsevent' : -2 }; + + } }, 'create_ses' : function() { var obj = this; + try { + var desc = window.prompt('Please enter a description:','','Create an Offline Transaction Session'); if (desc=='' || desc==null) { return; } @@ -561,12 +619,18 @@ admin.offline_manage_xacts.prototype = { x.send(null); dump(url + ' = ' + x.responseText + '\n' ); + if (!x.responseText) throw('Bad response from CGI component'); var robj = JSON2js(x.responseText); if (robj.ilsevent == 0) { obj.retrieve_seslist(); obj.render_seslist(); } else { alert('Error: ' + x.responseText); } + + } catch(E) { + obj.error.standard_unexpected_error_alert('Error creating session',E); + } + }, 'retrieve_seslist' : function() { @@ -587,11 +651,15 @@ admin.offline_manage_xacts.prototype = { x.open("GET",url,false); x.send(null); - dump(url + ' = ' + x.responseText + '\n' ); + dump(url + ' = ' + typeof(x.responseText) + '\n' ); + + if (!x.responseText) throw('Bad response from CGI component'); var robj = JSON2js( x.responseText ); if (typeof robj.ilsevent != 'undefined') throw(robj); + if (!robj) throw(robj); + obj.seslist = robj.sort( function(a,b) { return b.create_time - a.create_time; @@ -607,6 +675,8 @@ admin.offline_manage_xacts.prototype = { var obj = this; + try { + var old_idx = obj.list.node.currentIndex; if (old_idx < 0) old_idx = 0; @@ -617,7 +687,7 @@ admin.offline_manage_xacts.prototype = { funcs.push( function(idx,row){ return function(){ - obj.list.append( { 'retrieve_id' : idx, 'row' : row } ); + obj.list.append( { 'retrieve_id' : idx, 'row' : row, 'no_auto_select' : true } ); if (idx == old_idx) obj.list.node.view.selection.select(idx); }; }(i,{ 'my' : obj.seslist[i] }) @@ -630,16 +700,21 @@ admin.offline_manage_xacts.prototype = { document.getElementById('execute').disabled = true; document.getElementById('upload').disabled = true; + } catch(E) { + obj.error.standard_unexpected_error_alert('Error rendering session list',E); + } }, 'render_scriptlist' : function() { dump('render_scriptlist\n'); - document.getElementById('deck').selectedIndex = 1; - var obj = this; + try { + + document.getElementById('deck').selectedIndex = 1; + obj.script_list.clear(); var status = obj.ses_status(); @@ -652,23 +727,29 @@ admin.offline_manage_xacts.prototype = { funcs.push( function(row){ return function(){ - obj.script_list.append( { 'row' : row } ); + obj.script_list.append( { 'row' : row, 'no_auto_select' : true } ); }; }({ 'my' : scripts[i] }) ); } JSAN.use('util.exec'); var exec = new util.exec(); exec.chain( funcs ); + + } catch(E) { + obj.error.standard_unexpected_error_alert('Error rendering script list',E); + } }, 'render_errorlist' : function() { dump('render_errorlist\n'); - document.getElementById('deck').selectedIndex = 2; - var obj = this; + try { + + document.getElementById('deck').selectedIndex = 2; + obj.error_list.clear(); var error_meta = obj.ses_errors(); @@ -681,13 +762,17 @@ admin.offline_manage_xacts.prototype = { funcs.push( function(idx,row){ return function(){ - obj.error_list.append( { 'retrieve_id' : idx, 'row' : row } ); + obj.error_list.append( { 'retrieve_id' : idx, 'row' : row, 'no_auto_select' : true } ); }; }(i,{ 'my' : obj.errors[i] }) ); } JSAN.use('util.exec'); var exec = new util.exec(); exec.chain( funcs ); + + } catch(E) { + obj.error.standard_unexpected_error_alert('Error rendering error list',E); + } }, 'render_status' : function() { diff --git a/Open-ILS/xul/staff_client/server/admin/transit_list.js b/Open-ILS/xul/staff_client/server/admin/transit_list.js index b301a0b453..10a697117b 100644 --- a/Open-ILS/xul/staff_client/server/admin/transit_list.js +++ b/Open-ILS/xul/staff_client/server/admin/transit_list.js @@ -37,8 +37,8 @@ admin.transit_list.prototype = { function gen_list_append(id,which_list) { return function() { switch(which_list) { - case 0: obj.list.append( { 'row' : { 'my' : { 'transit_id' : id } } } ); break; - case 1: obj.list2.append( { 'row' : { 'my' : { 'transit_id' : id } } } ); break; + case 0: obj.list.append( { 'row' : { 'my' : { 'transit_id' : id } }, 'no_auto_select' : true } ); break; + case 1: obj.list2.append( { 'row' : { 'my' : { 'transit_id' : id } }, 'no_auto_select' : true } ); break; } }; }