-/* $Id: search.js,v 1.6 2007-01-04 20:00:58 quinn Exp $
+/* $Id: search.js,v 1.14 2007-06-20 19:27:18 adam Exp $
* ---------------------------------------------------
* Javascript container
*/
var session_cells = Array('query', 'startrec', 'action_type');
var old_session = session_read();
var url_surveillence;
-
+var recstoshow = 15;
+var cur_termlist = "subject";
function initialize ()
{
function start_session()
{
xinitSession = GetXmlHttpObject();
- var url="search.pz2?";
+ var url="/pazpar2/search.pz2?";
url += "command=init";
xinitSession.onreadystatechange=session_started;
xinitSession.open("GET", url);
{
if (!session)
return;
- var url = "search.pz2?command=ping&session=" + session;
+ var url = "/pazpar2/search.pz2?command=ping&session=" + session;
SendXmlHttpObject(xpingSession = GetXmlHttpObject(), url, session_pinged);
}
alert("Please enter a target definition file name");
return;
}
- var url="search.pz2?" +
+ var url="/pazpar2/search.pz2?" +
"command=load" +
"&session=" + session +
"&name=" + fn;
if (!hits[0]) // We should never get here with blocking operations
{
body.innerHTML = "No records yet";
- searchtimer = setTimeout(check_search, 250);
+ searchtimer = setTimeout(check_search, 2000);
}
else
{
if (start + num < merged)
body.innerHTML += ' <a href="" ' +
- 'onclick="document.search.startrec.value=' + (start + 20) +
+ 'onclick="document.search.startrec.value=' + (start + recstoshow) +
";update_action('page')" +
';check_search(); update_history(); return false;">Next</a>';
if (start > 0)
body.innerHTML += ' <a href="" ' +
- 'onclick="document.search.startrec.value=' + (start - 20) +
+ 'onclick="document.search.startrec.value=' + (start - recstoshow) +
";update_action('page')" +
';check_search(); update_history();return false;">Previous</a>';
{
body.innerHTML += '<p>';
body.innerHTML += (i + start + 1) + ': ';
- var mk = hits[i].getElementsByTagName("title");
+ var mk = hits[i].getElementsByTagName("md-title");
if (mk[0])
body.innerHTML += mk[0].childNodes[0].nodeValue;
body.innerHTML += '</p>';
}
- shown++;
- if (clients > 0)
- {
+ if (shown >= 0) {
+ shown++;
if (shown < 5)
searchtimer = setTimeout(check_search, 1000);
else
searchtimer = setTimeout(check_search, 2000);
+ if (clients == 0)
+ shown = -1;
}
}
if (!termtimer)
- termtimer = setTimeout(check_termlist, 1000);
+ termtimer = setTimeout(check_termlist, 2000);
}
function check_search()
{
clearTimeout(searchtimer);
- var url = "search.pz2?" +
+ var url = "/pazpar2/search.pz2?" +
"command=show" +
"&start=" + document.search.startrec.value +
- "&num=15" +
+ "&num=" + recstoshow +
"&session=" + session +
- "&block=1";
+ "&sort=relevance";
xshow = GetXmlHttpObject();
xshow.onreadystatechange=show_records;
xshow.open("GET", url);
function refine_query (obj) {
var query_cell = document.getElementById('query');
- var subject = obj.innerHTML;
+ var term = obj.firstChild.nodeValue;
- subject = subject.replace(/[\(\)]/g, '');
- query_cell.value += ' and su=(' + subject + ')';
+ term = term.replace(/[\(\)]/g, '');
+ if (cur_termlist == 'subject')
+ query_cell.value += ' and su=(' + term + ')';
+ else if (cur_termlist == 'author')
+ query_cell.value += ' and au=(' + term + ')';
start_search();
}
+function set_termlist(termlist)
+{
+ cur_termlist = termlist;
+ check_termlist();
+ if (termtimer)
+ {
+ clearTimeout(termtimer);
+ termtimer = 0;
+ }
+}
+
+function show_termlistoptions(body)
+{
+ var opts = Array(
+ Array('subject', 'Subject'),
+ Array('author', 'Author')
+ );
+
+ for (i in opts)
+ {
+ if (opts[i][0] == cur_termlist)
+ body.innerHTML += opts[i][1];
+ else
+ body.innerHTML += '<a href="" onclick="set_termlist(\'' + opts[i][0] +
+ '\'); return false">' + opts[i][1] + '</a>';
+ body.innerHTML += ' ';
+ }
+ body.innerHTML += '<p>';
+}
+
function show_termlist()
{
if (xtermlist.readyState != 4)
Number(xml.getElementsByTagName("activeclients")[0].childNodes[0].nodeValue);
if (!hits[0])
{
- termtimer = setTimeout(check_termlist, 1000);
-
+ termtimer = setTimeout(check_termlist, 2000);
}
else
{
body.innerHTML = "<b>Limit results:</b><br>";
+ show_termlistoptions(body);
for (i = 0; i < hits.length; i++)
{
var namen = hits[i].getElementsByTagName("name");
function check_termlist()
{
- var url = "search.pz2?" +
+ var url = "/pazpar2/search.pz2?" +
"command=termlist" +
"&session=" + session +
- "&name=" + "subject";
+ "&num=20" +
+ "&name=" + cur_termlist;
xtermlist = GetXmlHttpObject();
xtermlist.onreadystatechange=show_termlist;
xtermlist.open("GET", url);
function check_stat()
{
- var url = "search.pz2?" +
+ var url = "/pazpar2/search.pz2?" +
"command=stat" +
"&session=" + session;
xstat = GetXmlHttpObject();
function start_search()
{
+ shown = 0;
clearTimeout(termtimer);
termtimer = 0;
clearTimeout(searchtimer);
return;
}
var query = escape(document.getElementById('query').value);
- var url = "search.pz2?" +
+ var url = "/pazpar2/search.pz2?" +
"command=search" +
"&session=" + session +
"&query=" + query;
document.getElementById("termlist").innerHTML = '';
document.getElementById("body").innerHTML = '';
update_history();
- shown = 0;
document.search.startrec.value = 0;
}