Added swich to use a pazpar2 php proxy (requires masterkey-core)
[pazpar2-moved-to-github.git] / www / jsdemo / example_client.js
index 9d3984b..c82df40 100644 (file)
@@ -1,25 +1,33 @@
 /* A very simple client that shows a basic usage of the pz2.js
-** $Id: example_client.js,v 1.3 2007-07-16 09:39:56 adam Exp $
+** $Id: example_client.js,v 1.6 2008-01-15 13:59:18 jakub Exp $
 */
 
 // create a parameters array and pass it to the pz2's constructor
 // then register the form submit event with the pz2.search function
 // autoInit is set to true on default
 
+if (document.location.hash == '#nosessions') {
+    var usesessions = false;
+    var pazpar2path = '/masterkey-core/php/p3.php';
+} else {
+    var usesessions = true;
+    var pazpar2path = '/pazpar2/search.pz2';
+}
+
 my_paz = new pz2( { "onshow": my_onshow,
                     "showtime": 500,            //each timer (show, stat, term, bytarget) can be specified this way
-                    "pazpar2path": "/pazpar2/search.pz2",
+                    "pazpar2path": pazpar2path,
                     "onstat": my_onstat,
                     "onterm": my_onterm,
                     "termlist": "subject,author",
                     "onbytarget": my_onbytarget,
-                   "usesessions" : true,
+                   "usesessions" : usesessions,
                     "onrecord": my_onrecord } );
 // some state vars
 var curPage = 1;
 var recPerPage = 20;
 var totalRec = 0;
-var curDetRecId = -1;
+var curDetRecId = '';
 var curDetRecData = null;
 
 // wait until the DOM is ready
@@ -34,7 +42,7 @@ function domReady ()
 function onFormSubmitEventHandler() 
 {
     curPage = 1;
-    curDetRecId = -1;
+    curDetRecId = '';
     totalRec = 0;
     my_paz.search(document.search.query.value, recPerPage, 'relevance');
     return false;
@@ -94,16 +102,16 @@ function my_onterm(data) {
     termlist.innerHTML = "<hr/><b>TERMLISTS:</b><hr/>";
     termlist.innerHTML += '<div class="termtitle">.::Subjects</div>';
     for (var i = 0; i < data.subject.length; i++ ) {
-        termlist.innerHTML += '<span>' 
+        termlist.innerHTML += '<span class="jslink" onclick="limitQuery(\'su\', this.firstChild.nodeValue)">' 
                             + data.subject[i].name 
-                            + ' </span><span> (' 
+                            + '</span><span>  (' 
                             + data.subject[i].freq 
                             + ')</span><br/>';
     }
     termlist.innerHTML += "<hr/>";
     termlist.innerHTML += '<div class="termtitle">.::Authors</div>';
     for (var i = 0; i < data.author.length; i++ ) {
-        termlist.innerHTML += '<span>' 
+        termlist.innerHTML += '<span class="jslink" onclick="limitQuery(\'au\', this.firstChild.nodeValue)">' 
                             + data.author[i].name 
                             + ' </span><span> (' 
                             + data.author[i].freq 
@@ -142,7 +150,7 @@ function my_onbytarget(data) {
 
 // detailed record drawing
 function showDetails ( prefixRecId ) {
-    var recId = Number(prefixRecId.replace('rec_', ''));
+    var recId = prefixRecId.replace('rec_', '');
     
     // remove current detailed view if any
     var detRecordDiv = document.getElementById('det_'+curDetRecId);
@@ -152,7 +160,7 @@ function showDetails ( prefixRecId ) {
 
     // if the same clicked do not redraw
     if ( recId == curDetRecId ) {
-        curDetRecId = -1;
+        curDetRecId = '';
         return;
     }
 
@@ -170,12 +178,18 @@ function drawCurDetails ()
                             '"><table><tr><td><b>Ttle</b></td><td><b>:</b> '+data["md-title"] +
                             "</td></tr><tr><td><b>Date</b></td><td><b>:</b> " + data["md-date"] +
                             "</td></tr><tr><td><b>Author</b></td><td><b>:</b> " + data["md-author"] +
-                            '</td></tr><tr><td><b>URL</b></td><td><b>:</b> <a href="' + data["md-url"] + '">' + data["md-url"] + '</a>' +
+                            '</td></tr><tr><td><b>URL</b></td><td><b>:</b> <a href="' + data["md-electronic-url"] + '">' + data["md-electronic-url"] + '</a>' +
                             "</td></tr><tr><td><b>Subject</b></td><td><b>:</b> " + data["md-subject"] + 
                             "</td></tr><tr><td><b>Location</b></td><td><b>:</b> " + data["location"][0].name + 
                             "</td></tr></table></div>";
 }
 
+// limit the query after clicking the facet
+function limitQuery (field, value)
+{
+    document.search.query.value += ' and ' + field + '="' + value + '"';
+    onFormSubmitEventHandler();
+}
 
 // simple paging functions