/* A very simple client that shows a basic usage of the pz2.js
-** $Id: example_client.js,v 1.2 2007-06-22 10:54:46 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
function onFormSubmitEventHandler()
{
curPage = 1;
- curDetRecId = -1;
+ curDetRecId = '';
totalRec = 0;
my_paz.search(document.search.query.value, recPerPage, 'relevance');
return false;
for (var i = 0; i < data.hits.length; i++) {
var hit = data.hits[i];
- body.innerHTML += '<div class="record" id="rec_' + hit.recid + '" onclick="showDetails(this.id)">'
- +'<span>' + (i + 1 + recPerPage * ( curPage - 1)) + '. </span>'
- +'<span class="jslink"><b>' + hit["md-title"] +
- ' </b></span> by <span><i>' + hit["md-author"] + '</i></span></div>';
-
+ var html = '<div class="record" id="rec_' + hit.recid + '" onclick="showDetails(this.id)">'
+ +'<span>' + (i + 1 + recPerPage * ( curPage - 1)) + '. </span>'
+ +'<span class="jslink"><b>' + hit["md-title"] +
+ ' </b></span>';
+ if (hit["md-title-remainder"] !== undefined) {
+ html += '<span>' + hit["md-title-remainder"] + '</span>';
+ }
+ if (hit["md-title-responsibility"] !== undefined) {
+ html += '<span><i>' + hit["md-title-responsibility"] + '</i></span>';
+ }
+ html += '</div>';
+ body.innerHTML += html;
if ( hit.recid == curDetRecId ) {
drawCurDetails();
}
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
// 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);
// if the same clicked do not redraw
if ( recId == curDetRecId ) {
- curDetRecId = -1;
+ curDetRecId = '';
return;
}
'"><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-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