/*
-** $Id: client.js,v 1.19 2007-04-17 12:53:45 jakub Exp $
+** $Id: client.js,v 1.23 2007-05-16 07:53:32 jakub Exp $
** MasterKey - pazpar2's javascript client .
*/
+// check for pz2.js
+if(typeof window.pz2 == "undefined"){
+ throw new Error("Client requires pz2.js library.");
+}
+
+// check for jQuery
+if(typeof window.jQuery == "undefined"){
+ throw new Error("Client requires requires jQuery library");
+}
+
/* start with creating pz2 object and passing it event handlers*/
-var my_paz = new pz2( { "onshow": my_onshow,
+var my_paz = new pz2({
+ "onshow": my_onshow,
//"showtime": 1000,
//"onstat": my_onstat,
"onterm": my_onterm,
"termlist": "xtargets,subject,author,date",
//"onbytarget": my_onbytarget,
- "onrecord": my_onrecord } );
+ "onrecord": my_onrecord,
+ "errorhandler": my_errorhandler
+ });
/* some state variable */
var currentSort = 'relevance';
curQuery.clearFilter();
fireSearch();
drawBreadcrumb();
- $('div.content').show();
- $("div.leftbar").show();
+ $('div.motd').empty();
return false;
}
** pz2 Event Handlers ***********************************************************
*********************************************************************************
*/
+function my_errorhandler(err)
+{
+ switch (err.message)
+ {
+ case 'QUERY': alert("Your query was not understood. Please rephrase."); break;
+ case 'NOTARGETS': alert("You are not allowed to search any targets."); break;
+ case 'HTTP': alert("There were problems with the connection."); break;
+ default: alert(err.message);
+ }
+}
/*
** data.hits["md-title"], data.hits["md-author"], data.hits.recid, data.hits.count
*/
function my_onshow(data)
{
+ $('div.content').show();
+ $("div.leftbar").show();
+
var recsBody = $('div.records');
recsBody.empty();
var hdtarget;
if( recLocation ) {
- hdtarget = $('<tr><td class="item">Available at:</td></tr>');
+ hdtarget = $('<tr><td class="item" align="right">Available at: </td></tr>');
detailTable.append(hdtarget);
for(var i=0; i < recLocation.length; i++)
hdtarget = $('<tr><td class="item"> </td></tr>').appendTo(detailTable);
var url = recLocation[i]["md-url"];
var description = recLocation[i]["md-description"];
+ var date = recLocation[i]["md-date"];
+ var citation = recLocation[i]["md-citation"];
hdtarget.append('<td><b>'+recLocation[i].name+'</b></td>');
+ if (date)
+ detailTable.append($('<tr><td align="right">Date: </td><td>'+date+'</td></tr>'));
+ if (citation)
+ detailTable.append($('<tr><td align="right" valign="top">Citation: </td><td>'+citation+'</td></tr>'));
if (description)
detailTable.append($('<tr><td> </td><td>'+description+'</td></tr>'));
if (url) {