Simplifying.
[pazpar2-moved-to-github.git] / www / demo / search.js
index 633b10b..054558c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: search.js,v 1.4 2007-01-05 13:45:35 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()
@@ -145,6 +144,41 @@ function update_action (new_action) {
 }
 
 
+function make_pager (hits, offset, max) {
+    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;
+}
+
+
 function show_records()
 {
     if (xshow.readyState != 4)
@@ -166,10 +200,15 @@ function show_records()
        var start = Number(xml.getElementsByTagName('start')[0].childNodes[0].nodeValue);
        var num = Number(xml.getElementsByTagName('num')[0].childNodes[0].nodeValue);
        var clients = Number(xml.getElementsByTagName("activeclients")[0].childNodes[0].nodeValue);
-       body.innerHTML = '<b>Records : ';
-       body.innerHTML += (start + 1) + ' to ' + (start + num) +
-               ' of ' + merged + ' (total hits: ' + total + ')</b>';
-
+       body.innerHTML = '<div class="pages">' +
+                         make_pager(merged, start, recstoshow) +
+                         '</div>';
+                         
+       body.innerHTML += '<div class="results">Records : ' + (start + 1) +
+                          ' to ' + (start + num) + ' of ' + merged +
+                          ' (total hits: ' + total + ')</div><br/><br/>';
+
+/*
        if (start + num < merged)
            body.innerHTML += ' <a href="" ' +
                'onclick="document.search.startrec.value=' + (start + recstoshow) +
@@ -183,15 +222,24 @@ function show_records()
                ';check_search(); update_history();return false;">Previous</a>';
 
        body.innerHTML += '<br/>';
+*/
+        body.innerHTML += '<div class="records">';
+
        for (i = 0; i < hits.length; i++)
        {
-           body.innerHTML += '<p>';
-           body.innerHTML += (i + start + 1) + ': ';
-           var mk = hits[i].getElementsByTagName("title");
-           if (mk[0])
-               body.innerHTML += mk[0].childNodes[0].nodeValue;
-           body.innerHTML += '</p>';
+           var mk = hits[i].getElementsByTagName("md-title");
+            var html = '<a href="#" class="record">';
+            var field = '';
+
+           if (mk[0]) {
+                field = mk[0].childNodes[0].nodeValue;
+            }
+
+           html += field + '</a>';
+            body.innerHTML += html;
        }
+
+        body.innerHTML += '</div>';
        shown++;
        if (clients > 0)
        {
@@ -488,7 +536,7 @@ function toggle_facet (obj) {
 
     if (obj.className == 'selected') {
         obj.className = 'unselected';
-        container.style.display = 'block';
+        container.style.display = 'inline';
     } else {
         obj.className = 'selected';
         container.style.display = 'none';