Updates to pz:authentication documentation
[pazpar2-moved-to-github.git] / js / pz2.js
index a799b40..1ee8096 100644 (file)
--- a/js/pz2.js
+++ b/js/pz2.js
@@ -215,7 +215,7 @@ pz2.prototype =
                                 context.keepAlive
                             );
                         if ( context.initCallback )
-                            context.initCallback(this.windowid);
+                            context.initCallback(context.windowid);
                     }
                     else
                         context.throwError('Init failed. Malformed WS resonse.',
@@ -241,7 +241,7 @@ pz2.prototype =
 
         var request = new pzHttpRequest(this.pz2String, this.errorHandler);
         request.safeGet(
-            { "command": "ping", "session": this.sessionID, "windowid" : this.windowid },
+            { "command": "ping", "session": this.sessionID, "windowid" : context.windowid },
             function(data) {
                 if ( data.getElementsByTagName("status")[0]
                         .childNodes[0].nodeValue == "OK" ) {
@@ -319,7 +319,8 @@ pz2.prototype =
                         .childNodes[0].nodeValue == "OK" ) {
                     context.searchStatusOK = true;
                     //piggyback search
-                    context.show(start, num, sort);
+                    if (context.showCallback)
+                        context.show(start, num, sort);
                     if (context.statCallback)
                         context.stat();
                     if (context.termlistCallback)
@@ -344,7 +345,7 @@ pz2.prototype =
         var context = this;
         var request = new pzHttpRequest(this.pz2String, this.errorHandler);
         request.safeGet(
-            { "command": "stat", "session": this.sessionID, "windowid" : this.windowid },
+            { "command": "stat", "session": this.sessionID, "windowid" : context.windowid },
             function(data) {
                 if ( data.getElementsByTagName("stat") ) {
                     var activeClients = 
@@ -366,7 +367,7 @@ pz2.prototype =
                                 },
                                 delay
                             );
-                    context.statCallback(stat, this.windowid);
+                    context.statCallback(stat, context.windowid);
                 }
                 else
                     context.throwError('Stat failed. Malformed WS resonse.',
@@ -472,7 +473,7 @@ pz2.prototype =
                   context.show();
                 }, 
                 delay);
-              context.showCallback(show, this.windowid);
+              context.showCallback(show, context.windowid);
           }
         );
     },
@@ -524,7 +525,7 @@ pz2.prototype =
                     record = new Array();
                     record['xmlDoc'] = data;
                     record['offset'] = context.currRecOffset;
-                    callback(record, args, this.windowid);
+                    callback(record, args, context.windowid);
                 //pz2 record
                 } else if ( recordNode = 
                     data.getElementsByTagName("record")[0] ) {
@@ -554,7 +555,7 @@ pz2.prototype =
                                   },
                                   delay
                                );                                    
-                    callback(record, args, this.windowid);
+                    callback(record, args, context.windowid);
                 }
                 else
                     context.throwError('Record failed. Malformed WS resonse.',
@@ -643,7 +644,7 @@ pz2.prototype =
                                 delay
                             );
                    
-                    context.termlistCallback(termList, this.windowid);
+                    context.termlistCallback(termList, context.windowid);
                 }
                 else
                     context.throwError('Termlist failed. Malformed WS resonse.',
@@ -708,11 +709,6 @@ pz2.prototype =
                         } else if (bytarget[i]["state"]=="Client_Working") {
                           bytarget[i]["hits"] = "...";
                         }
-                        if (bytarget[i].diagnostic == "1") {
-                          bytarget[i].diagnostic = "Permanent system error";
-                        } else if (bytarget[i].diagnostic == "2") {
-                          bytarget[i].diagnostic = "Temporary system error";
-                        } 
                         var targetsSuggestions = targetNodes[i].getElementsByTagName("suggestions");
                         if (targetsSuggestions != undefined && targetsSuggestions.length>0) {
                           var suggestions = targetsSuggestions[0];
@@ -732,7 +728,7 @@ pz2.prototype =
                                 delay
                             );
 
-                    context.bytargetCallback(bytarget, this.windowid);
+                    context.bytargetCallback(bytarget, context.windowid);
                 }
                 else
                     context.throwError('Bytarget failed. Malformed WS resonse.',
@@ -769,7 +765,7 @@ pz2.prototype =
 ** AJAX HELPER CLASS ***********************************************************
 ********************************************************************************
 */
-var pzHttpRequest = function (url, errorHandler, cookieDomain) {
+var pzHttpRequest = function (url, errorHandler, cookieDomain, windowId) {
         this.maxUrlLength = 2048;
         this.request = null;
         this.url = url;
@@ -779,6 +775,7 @@ var pzHttpRequest = function (url, errorHandler, cookieDomain) {
         this.isXDR = false;
         this.domainRegex = /https?:\/\/([^:/]+).*/;
         this.cookieDomain = cookieDomain || null;
+        this.windowId = windowId || window.name;
 
         var xhr = new XMLHttpRequest();
         var domain = this._getDomainFromUrl(url);
@@ -906,9 +903,9 @@ pzHttpRequest.prototype =
         //session cookie, resend it
         var domain = this._getDomainFromUrl(url);
         if (domain && this._isCrossDomain(domain) &&
-            this.getCookie(domain+":SESSID")) {
+            this.getCookie(domain+":"+this.windowId+":SESSID")) {
           //rewrite the URL
-          var sessparam = ';jsessionid=' + this.getCookie(domain+":SESSID");
+          var sessparam = ';jsessionid=' + this.getCookie(domain+":"+this.windowId+":SESSID");
           var q = url.indexOf('?');
           if (q == -1) {
             url += sessparam;            
@@ -1020,7 +1017,7 @@ pzHttpRequest.prototype =
                   var jsessionId = this.request.responseXML
                     .documentElement.getAttribute('jsessionId');
                   if (jsessionId)                  
-                    this.setCookie(domain+":SESSID", jsessionId);
+                    this.setCookie(domain+":"+this.windowId+":SESSID", jsessionId);
                 }
                 this.callback(this.request.responseXML);
             } else {