Support to send query state to SP
[pazpar2-moved-to-github.git] / js / pz2.js
index 50ecd01..fde4ce1 100644 (file)
--- a/js/pz2.js
+++ b/js/pz2.js
@@ -79,6 +79,7 @@ var pz2 = function ( paramArray )
 
     // where are we?
     this.currentStart = 0;
+    // currentNum can be overwritten in show 
     this.currentNum = 20;
 
     // last full record retrieved
@@ -360,7 +361,7 @@ pz2.prototype =
             }
         );
     },
-    show: function(start, num, sort)
+    show: function(start, num, sort, query_state)
     {
         if( !this.searchStatusOK && this.useSessions )
             throw new Error(
@@ -379,7 +380,7 @@ pz2.prototype =
 
         var context = this;
         var request = new pzHttpRequest(this.pz2String, this.errorHandler);
-        request.safeGet(
+       var requestParameters = 
           {
             "command": "show", 
             "session": this.sessionID, 
@@ -390,6 +391,10 @@ pz2.prototype =
             "type": this.showResponseType,
             "windowid" : window.name
           },
+        if (query_state)
+          requestParameters["query-state"] = query_state;
+        request.safeGet(
+         requestParameters,
           function(data, type) {
             var show = null;
             var activeClients = 0;
@@ -629,7 +634,12 @@ pz2.prototype =
         var context = this;
         var request = new pzHttpRequest(this.pz2String, this.errorHandler);
         request.safeGet(
-            { "command": "bytarget", "session": this.sessionID, "windowid" : window.name},
+            { 
+               "command": "bytarget", 
+               "session": this.sessionID, 
+               "block": 1,
+               "windowid" : window.name
+           },
             function(data) {
                 if ( data.getElementsByTagName("status")[0]
                         .childNodes[0].nodeValue == "OK" ) {
@@ -660,6 +670,11 @@ pz2.prototype =
                         } 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];
+                          bytarget[i]["suggestions"] = Element_parseChildNodes(suggestions);
+                        }
                     }
                     
                     context.bytargetCounter++;