Merge branch 'protocol-version2' of ssh://git.indexdata.com/home/git/pub/pazpar2...
authorDennis Schafroth <dennis@indexdata.com>
Thu, 12 Apr 2012 16:14:14 +0000 (18:14 +0200)
committerDennis Schafroth <dennis@indexdata.com>
Thu, 12 Apr 2012 16:14:14 +0000 (18:14 +0200)
Conflicts:
src/session.c

Fixed.

js/pz2.js
src/client.c
src/session.c

index 7edf35d..5d0c614 100644 (file)
--- a/js/pz2.js
+++ b/js/pz2.js
@@ -126,6 +126,8 @@ var pz2 = function ( paramArray )
     if (this.useSessions && paramArray.autoInit !== false) {
         this.init(this.sessionId, this.serviceId);
     }
+    // Version parameter
+    this.version = paramArray.version || null;
 };
 
 pz2.prototype = 
@@ -557,7 +559,9 @@ pz2.prototype =
                 "command": "termlist", 
                 "session": this.sessionID, 
                 "name": this.termKeys,
-                "windowid" : window.name
+                "windowid" : window.name, 
+               "version" : this.version
+       
             },
             function(data) {
                 if ( data.getElementsByTagName("termlist") ) {
@@ -587,12 +591,22 @@ pz2.prototype =
                                     .childNodes[0].nodeValue || 'ERROR'
                             };
 
+                           // Only for xtargets: id, records, filtered
                             var termIdNode = 
                                 terms[j].getElementsByTagName("id");
                             if(terms[j].getElementsByTagName("id").length)
                                 term["id"] = 
                                     termIdNode[0].childNodes[0].nodeValue;
                             termList[listName][j] = term;
+
+                           var recordsNode  = terms[j].getElementsByTagName("records");
+                           if (recordsNode && recordsNode.length)
+                               term["records"] = recordsNode[0].childNodes[0].nodeValue;
+                              
+                           var filteredNode  = terms[j].getElementsByTagName("filtered");
+                           if (filteredNode && filteredNode.length)
+                               term["filtered"] = filteredNode[0].childNodes[0].nodeValue;
+                              
                         }
                     }
 
@@ -638,7 +652,8 @@ pz2.prototype =
                "command": "bytarget", 
                "session": this.sessionID, 
                "block": 1,
-               "windowid" : window.name
+               "windowid" : window.name,
+               "version" : this.version
            },
             function(data) {
                 if ( data.getElementsByTagName("status")[0]
index f80e302..5635083 100644 (file)
@@ -758,13 +758,12 @@ void client_start_search(struct client *cl)
     const char *opt_preferred   = session_setting_oneval(sdb, PZ_PREFERRED);
     const char *extra_args      = session_setting_oneval(sdb, PZ_EXTRA_ARGS);
     const char *opt_present_chunk = session_setting_oneval(sdb, PZ_PRESENT_CHUNK);
-    /* Default present chunk */
-    int present_chunk = 20;
+    ZOOM_query q;
+    char maxrecs_str[24], startrecs_str[24], present_chunk_str[24];
+    int present_chunk = 20; // Default chunk size
     if (opt_present_chunk && strcmp(opt_present_chunk,"")) {
         present_chunk = atoi(opt_present_chunk);
     }
-    char maxrecs_str[24], startrecs_str[24], present_chunk_str[24];
-    ZOOM_query q;
 
     assert(link);
 
index 18c9aee..f0f672c 100644 (file)
@@ -1047,7 +1047,7 @@ static int targets_termlist_nb(WRBUF wrbuf, struct session *se, int num,
         if (version >= 2) {
             // Should not print if we know it isn't a approximation.
             wrbuf_printf(wrbuf, "<approximation>" ODR_INT_PRINTF "</approximation>\n", ht[i].approximation);
-            wrbuf_printf(wrbuf, "<records>%d</records>\n", ht[i].records);
+            wrbuf_printf(wrbuf, "<records>%d</records>\n", ht[i].records - ht[i].filtered);
             wrbuf_printf(wrbuf, "<filtered>%d</filtered>\n", ht[i].filtered);
         }