1 dump('entering util/network.js\n');
3 if (typeof util == 'undefined') util = {};
4 util.network = function () {
6 JSAN.use('util.error'); this.error = new util.error();
7 // Place a test here for network connectivity
8 // this.offline = true;
13 util.network.prototype = {
15 // Flag for whether the staff client should act as if it were offline or not
20 'simple_request' : function(id,params,f) {
21 return this.request(api[id].app,api[id].method,params,f);
24 'request' : function (app,name,params,f) {
25 var request = this.bare_request(app,name,params,f);
27 return request.getResultObject();
33 'bare_request' : function (app,name,params,f) {
36 var sparams = js2JSON(params);
37 obj.error.sdump('D_SES','request '+app+' '+name+' '+sparams.slice(1,sparams.length-1)+
38 '\nResult #' + (++obj.link_id) + ( f ? ' asynced' : ' synced' ) );
39 var request = new RemoteRequest( app, name );
40 for(var index in params) {
41 request.addParam(params[index]);
45 request.setCompleteCallback(
48 obj.error.sdump('D_SES_RESULT','asynced result #'
49 + obj.link_id + '\n\n'
50 + js2JSON(req.getResultObject()));
51 req = obj.rerequest_on_session_timeout(app,name,params,req);
52 req = obj.rerequest_on_perm_failure(app,name,params,req);
63 request = obj.rerequest_on_session_timeout(app,name,params,request);
64 request = obj.rerequest_on_perm_failure(app,name,params,request);
65 var result = request.getResultObject();
66 this.error.sdump('D_SES_RESULT','synced result #' + obj.link_id + '\n\n' + js2JSON(result));
71 if (instanceOf(E,perm_ex)) {
72 alert('permission exception: ' + js2JSON(E));
78 'rerequest_on_session_timeout' : function(app,name,params,req) {
81 var robj = req.getResultObject();
82 if (robj.ilsevent && robj.ilsevent == 1001) {
83 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite');
87 + '&desc_brief=' + window.escape('Your session has expired')
88 + '&desc_full=' + window.escape('Please re-login. If after you have re-authenticated, you still see session expired dialogs like this one, please note where they are occuring and inform your friendly Evergreen developers of this debug information: ' + name),
90 'chrome,resizable,modal,width=700,height=500'
92 JSAN.use('OpenILS.data');
93 var data = new OpenILS.data(); data.init({'via':'stash'});
94 if (data.temporary_session != '') {
95 data.session = data.temporary_session; data.stash('session');
96 params[0] = data.session;
97 req = obj.bare_request(app,name,params);
101 this.error.sdump('D_ERROR',E);
106 'rerequest_on_perm_failure' : function(app,name,params,req) {
109 var robj = req.getResultObject();
110 if (robj.ilsevent && robj.ilsevent == 5000) {
111 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite');
115 + '&desc_brief=' + window.escape('Permission Denied: ' + robj.ilsperm)
116 + '&desc_full=' + window.escape('Another staff member with the above permission may authorize this specific action. Please notify your library administrator if you need this permission. If you feel you have received this exception in error, inform your friendly Evergreen developers of the above permission and this debug information: ' + name),
118 'chrome,resizable,modal,width=700,height=500'
120 JSAN.use('OpenILS.data');
121 var data = new OpenILS.data(); data.init({'via':'stash'});
122 if (data.temporary_session != '') {
123 params[0] = data.temporary_session;
124 req = obj.bare_request(app,name,params);
128 this.error.sdump('D_ERROR',E);
136 function sample_callback(request) {
137 var result = request.getResultObject();
141 dump('exiting util/network.js\n');