Removed linechange before first location
[pazpar2-moved-to-github.git] / www / masterkey / js / client.js
index 6a8683d..648c738 100644 (file)
@@ -1,5 +1,5 @@
 /*
-** $Id: client.js,v 1.10 2007-04-02 15:50:27 jakub Exp $
+** $Id: client.js,v 1.16 2007-04-14 23:59:20 quinn Exp $
 ** MasterKey - pazpar2's javascript client .
 */
 
@@ -15,12 +15,8 @@ var my_paz = new pz2( { "onshow": my_onshow,
 /* some state variable */
 var currentSort = 'relevance';
 var currentResultsPerPage = 20;
-/*var currentQuery = null;
-var currentQueryArr = new Array();*/
 var currentPage = 0;
 var curQuery = new pzQuery();
-/*var currentFilter = undefined;*/
-/*var currentFilterName = null;*/
 
 var currentDetailedId = null;
 var currentDetailedData = null;
@@ -131,10 +127,10 @@ function my_onstat(data){}
 */
 function my_onterm(data)
 {
-    var termLists = $("#termlists");
-
     if(termStartup)
     {
+        var termLists = $("#termlists");
+        
         for(var key in data){
             if (key == "activeclients")
                 continue;
@@ -165,8 +161,7 @@ function my_onterm(data)
             for(var i = 0; i < data[key].length; i++)
             {
                 if (key == "xtargets"){
-                    var listItem = $('<a class="sub" name="xtarget" value="'+data[key][i].id+'">'+data[key][i].name
-                            /*+'<span> ('+data[key][i].freq+')</span>'*/+'</a>');
+                    var listItem = $('<a class="sub" name="xtarget" value="'+data[key][i].id+'">'+data[key][i].name +'<span> ('+data[key][i].freq+')</span>'+'</a>');
                     listItem.click(function(){ 
                         refine(this.name, this.attributes[0].nodeValue, this.firstChild.nodeValue) });
                     listItem.appendTo(listEntries);
@@ -187,12 +182,11 @@ function my_onterm(data)
             if (key == "activeclients")
                 continue;
             var listEntries = $('#term_'+key).children('.termEntries');
-            listEntries.empty()
+            if( data[key].length ) listEntries.empty();
 
             for(var i = 0; i < data[key].length; i++){
                 if (key == "xtargets"){
-                    var listItem = $('<a class="sub" name="xtarget" value="'+data[key][i].id+'">'+data[key][i].name
-                                /*+'<span> ('+data[key][i].freq+')</span>'*/+'</a>').click(function(){ 
+                    var listItem = $('<a class="sub" name="xtarget" value="'+data[key][i].id+'">'+data[key][i].name+'<span> ('+data[key][i].freq+')</span>'+'</a>').click(function(){ 
                                     refine(this.name, this.attributes[0].nodeValue, this.firstChild.nodeValue) });
                     listItem.appendTo(listEntries);
                 } else {
@@ -230,6 +224,7 @@ function fireSearch()
     $('div.showing').empty().text('No records to show.');
     $('div.pages').empty().html('&nbsp;');
     $('div.records').empty();
+    currentDetailedId = null;
     if( !curQuery.totalLength() )
         return false;
     my_paz.search(curQuery.toCCL(), currentResultsPerPage, currentSort, curQuery.getFilterString() );
@@ -256,22 +251,34 @@ function drawDetailedRec(detailBox)
     if( detailBox == undefined )
         detailBox = $('<div class="detail"></div>').appendTo($('#rec_'+currentDetailedId));
     
-    detailBox.append('Details:<hr/>');
     var detailTable = $('<table></table>');
-    var recDate = currentDetailedData["md-date"];
-    var recSubject = currentDetailedData["md-subject"];
     var recLocation = currentDetailedData["location"];
 
-    if( recDate )
-        detailTable.append('<tr><td class="item">Published:</td><td>'+recDate+'</td></tr>');
-    if( recSubject )
-        detailTable.append('<tr><td class="item">Subject:</td><td>'+recSubject+'</td></tr>');
-    if( recLocation )
-        detailTable.append('<tr><td class="item">Available at:</td><td>&nbsp;</td></tr>');
-
-    for(var i=0; i < recLocation.length; i++)
-    {
-        detailTable.append('<tr><td class="item">&nbsp;</td><td>'+recLocation[i].name+'</td></tr>');
+    var hdtarget;
+    if( recLocation ) {
+        hdtarget = $('<tr><td class="item">Available at:</td></tr>');
+       detailTable.append(hdtarget);
+
+       for(var i=0; i < recLocation.length; i++)
+       {
+           if (!hdtarget)
+               hdtarget = $('<tr><td class="item">&nbsp;</td></tr>').appendTo(detailTable);
+           var url = recLocation[i]["md-url"];
+           var description = recLocation[i]["md-description"];
+           hdtarget.append('<td><b>'+recLocation[i].name+'</b></td>');
+           if (url) {
+               var tline = $('<tr><td>&nbsp;</td></tr>');
+               var td = $('<td></td>').appendTo(tline);
+               var tlink = $('<a>Go to resource</a>');
+               tlink.attr('href', url);;
+               tlink.attr('target', '_blank');
+               tlink.appendTo(td);
+               detailTable.append(tline);
+           }
+           if (description)
+               detailTable.append($('<tr><td>&nbsp</td><td>'+description+'</td></tr>'));
+           hdtarget = undefined;
+       }
     }
 
     detailTable.appendTo(detailBox);
@@ -320,10 +327,10 @@ function loadFormFieldsFromQuery()
     {
         switch( curQuery.getTermFieldByIdx(i) )
         {
-            case "au": document.search.author.value += curQuery.getTermValueByIdx(i) + ';'; break;
-            case "ti": document.search.title.value += curQuery.getTermValueByIdx(i) + ';'; break;
-            case "date": document.search.date.value += curQuery.getTermValueByIdx(i) + ';'; break;
-            case "su": document.search.subject.value += curQuery.getTermValueByIdx(i) + ';'; break;
+            case "au": document.search.author.value += curQuery.getTermValueByIdx(i) + '; '; break;
+            case "ti": document.search.title.value += curQuery.getTermValueByIdx(i) + '; '; break;
+            case "date": document.search.date.value += curQuery.getTermValueByIdx(i) + '; '; break;
+            case "su": document.search.subject.value += curQuery.getTermValueByIdx(i) + '; '; break;
         }
     }
 }