X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=www%2Ftest1%2Findex.html;h=f273f6623f65ec5e222ce065936e321c29edbf64;hb=9b1e55f18c5759cd38587626ef7150ad4f903b7f;hp=9360c468248cb841ecf59c57639459bcf7599fb2;hpb=4af47baa0641ea00556a351127d7b75e9b6a903e;p=pazpar2-moved-to-github.git diff --git a/www/test1/index.html b/www/test1/index.html index 9360c46..f273f66 100644 --- a/www/test1/index.html +++ b/www/test1/index.html @@ -21,6 +21,8 @@ var showtimer; var termtimer; var stattimer; var startrec; +var session_cells = Array('query'); +var old_session = session_read(); function GetXmlHttpObject() { @@ -155,6 +157,7 @@ function check_search() var url = "search.pz2?" + "command=show" + "&start=" + startrec + + "&num=15" + "&session=" + session + "&block=1"; xshow = GetXmlHttpObject(); @@ -305,10 +308,86 @@ function start_search() xsearch.send(null); document.getElementById("termlist").innerHTML = ''; document.getElementById("body").innerHTML = ''; + update_history(); shown = 0; startrec = 0; } + +function session_encode () +{ + var i; + var session = ''; + + for (i = 0; i < session_cells.length; i++) + { + var name = session_cells[i]; + var value = escape(document.getElementById(name).value); + session += '&' + name + '=' + value; + } + + return session; +} + + +function session_restore (session) +{ + var fields = session.split(/&/); + var i; + + for (i = 1; i < fields.length; i++) + { + var pair = fields[i].split(/=/); + var key = pair.shift(); + var value = pair.join('='); + var cell = document.getElementById(key); + + cell.value = value; + } + +} + + +function session_read () +{ + var ses = window.location.hash.replace(/^#/, ''); + return ses; +} + + +function session_store (new_value) +{ + window.location.hash = '#' + new_value; +} + + +function update_history () +{ + var session = session_encode(); + session_store(session); + old_session = session; +} + + +function session_check () +{ + var session = session_read(); + + clearInterval(url_surveillence); + + if ( session != unescape(old_session) ) + { + session_restore(session); + start_search(); + + } + + url_surveillence = setInterval(session_check, 200); +} + + +var url_surveillence = setInterval(session_check, 200); +