Simplifying.
[pazpar2-moved-to-github.git] / www / demo / search.js
index b5b462a..054558c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: search.js,v 1.6 2007-01-05 14:56:05 sondberg Exp $
+/* $Id: search.js,v 1.10 2007-01-10 09:19:05 sondberg Exp $
  * ---------------------------------------------------
  * Javascript container
  */
@@ -21,6 +21,7 @@ var session_cells = Array('query', 'startrec', 'action_type');
 var old_session = session_read();
 var url_surveillence;
 var recstoshow = 15;
+var page_window = 5;  // Number of pages prior to and after the current page
 var facet_list;
 var cur_facet = 0;
 
@@ -72,8 +73,6 @@ function start_session()
     xinitSession.onreadystatechange=session_started;
     xinitSession.open("GET", url);
     xinitSession.send(null);
-    
-    //url_surveillence = setInterval(session_check, 200);
 }
 
 function ping_session()
@@ -146,7 +145,37 @@ function update_action (new_action) {
 
 
 function make_pager (hits, offset, max) {
-    return '<a href="#" class="select">1</a> <a href="#">Next</a>';
+    var html = '';
+    var off;
+
+    for (off = offset - page_window * max;
+         off < hits && off < (offset + page_window * max); 
+         off += max) {
+
+        var class = '';
+        
+        if (off < 0)
+            off = 0; 
+            
+        var p = off / max + 1;
+
+        if ((offset >= off) && (offset < (off + max)))
+            class = ' class="select"';
+
+        html += '<a href="#" ' + class +
+                'onclick="update_offset(' + off + ')">' + p + '</a>\n';
+    }
+
+    return html;
+}
+
+
+function update_offset (offset) {
+    document.search.startrec.value = offset;
+    update_action('page');
+    check_search();
+    update_history();
+    return false;
 }
 
 
@@ -172,7 +201,7 @@ function show_records()
        var num = Number(xml.getElementsByTagName('num')[0].childNodes[0].nodeValue);
        var clients = Number(xml.getElementsByTagName("activeclients")[0].childNodes[0].nodeValue);
        body.innerHTML = '<div class="pages">' +
-                         make_pager(merged, start, 20) +
+                         make_pager(merged, start, recstoshow) +
                          '</div>';
                          
        body.innerHTML += '<div class="results">Records : ' + (start + 1) +
@@ -198,14 +227,16 @@ function show_records()
 
        for (i = 0; i < hits.length; i++)
        {
-           var mk = hits[i].getElementsByTagName("title");
-
-           body.innerHTML += '<a href="#" class="record">';
+           var mk = hits[i].getElementsByTagName("md-title");
+            var html = '<a href="#" class="record">';
+            var field = '';
 
            if (mk[0]) {
-                var field = mk[0].childNodes[0].nodeValue;
+                field = mk[0].childNodes[0].nodeValue;
             }
-           body.innerHTML += field + '</a>';
+
+           html += field + '</a>';
+            body.innerHTML += html;
        }
 
         body.innerHTML += '</div>';