Mercurial > hg > fulltextSearchFrontEnd
diff WebContent/found.js_orig @ 0:d075d7f70506
CLOSED - # 16: Zeige nur eine konfigurierbare Anzahl von Treffern an.
https://it-dev.mpiwg-berlin.mpg.de/tracs/pythonOcropusTools/ticket/16
author | dwinter |
---|---|
date | Wed, 03 Nov 2010 12:25:18 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebContent/found.js_orig Wed Nov 03 12:25:18 2010 +0100 @@ -0,0 +1,365 @@ +//var server = 'http://127.0.0.1:8180/fulltextSearchServer/'; +var server = 'http://xserve07.mpiwg-berlin.mpg.de:58080/echoFullTextSearch/'; + +//var languages = new Array(); +var langNew = new Array(); +var documentHits=0; +//function formatLanguage(responseText2,textStatus2,XMLHttpRequest2){ +//}; + +function resetSearch(){ // setze alle zwischenergebnisse der suche zurueck + $('#ticket').html(); + + $('#results').html(); + + $('#language_results').html(); + + $('#base_url_ticket').html(); + $('#error').html(); + + +} +function showResults(object,url){ + //$('#openSearches').html('not decided'); // setze offene suchen auf falsch + //var lang = $(object).find('lang').text(); + + + ////console.log("langnew:"+langNew); + + ////console.log("this:"+object); + + var langs = $(object).find('div.ticketLang a'); + var langsLen=langs.length; + //langNew = new Array(); + ////console.log(langs); + + //$('#language_results').html(''); // empty the diff + for ( var i=0; i<langsLen; ++i ){ // now fill it with the languages + + if ($('#language_results_'+$(langs[i]).text()).length==0){ + $('#language_results').append('<div class="language_results_header">'+$(langs[i]).text()+'</div>'); + $('#language_results').append('<div id="language_results_'+$(langs[i]).text()+'"></div>'); + langNew.push(true); + } + } + + for ( var i=0; i<langsLen; ++i ){ // gehe durch alle Sprachen + var lang = $(langs[i]).text(); + ////console.log("show_results_lang:"+lang); + if (lang != '') { + if (langNew[i]) { + ////console.log(server + url + '/' + lang); + langNew[i] = false; + $('#language_results_'+lang).load( + server + url + '/' + lang, + function() { + ////console.log('after results'); + var lang = $(this).find('div.resultLang').text(); + ////console.log('after results:'+lang); + $('tr.documentHit').each( + function(index) { + + var newId = $(this).attr('id') + + '_content'; + ////console.log(newId); + $(this).after( + '<tr><td colspan="5" class="resultLinksToPages" id="' + + newId + + '"></tr>'); + var ref = $(this).find('td.resultTextId').text(); + + ////console.log('xxx:'+url + '/' + lang + '/' + ref); + + var href = $(this).find('td.resultLink a.resultHits').attr('href'); + if (href!=''){ + href="showhits.html?url="+href; + href+="&textId="+ref; + + var linknode = $(this).find('td.resultLink a.searchHits'); + if (linknode.length>0){ + linknode.attr('href',href) + } else { + $(this).find('td.resultLink a.resultHits').after('<a class="searchHits" href ="'+href+'"> show</a>'); + + } + } + + $('#' + newId).load( + server + url + '/' + lang + + '/' + ref, + showPages); + }); + }); + } else { + //console.log('second'); + + $('#language_results_'+lang+' tr.documentHit').each( + function(index) { + //var lang = $(this).find('div.resultLang').text(); + var newId = $(this).attr('id') + '_content'; + ////console.log(newId); + var ref = $(this).find('td.resultTextId').text(); + var href = $(this).find('td.resultLink a.resultHits').attr('href'); + + if (href!=''){ + href="showhits.html?url="+href; + href+="&textId="+ref; + + var linknode = $(this).find('td.resultLink a.searchHits'); + if (linknode.length>0){ + linknode.attr('href',href) + } else { + $(this).find('td.resultLink a.resultHits').after('<a class="searchHits" href ="'+href+'"> show</a>'); + + } + } + + //console.log('yyy:'+url + '/' + lang + '/' + ref); + $('#' + newId).load( + server + url + '/' + lang + '/' + ref, + showPages); + }); + } // end else langNew + } // lang nicht leer + } // end for durch die Sprachen +} + +function showPages(responseText2, textStatus2, XMLHttpRequest2) { + $('#error').html(''); + //console.log('showpage'+this) + switch (XMLHttpRequest2.status) { + case 0: + case 202: + //$('#openSearches').html('true') + $(this).html('search pages'); + break; + case 404: + $(this).html('file not found!'); + break; + + case 500: + $(this).html('Server error'); + break; + default: + //$(this).html('done'); + var pages=$(this).find('div.foundPageXlink'); // suche alle seiten mit treffern + var pagesLen=pages.length; + + for ( var i=0; i<pagesLen; ++i ){ + $(this).parent().addClass('foundPages'); + var ref = $(pages[i]).find('a').attr('href'); + ////console.log('ref:'+ref); + $(pages[i]).load(server+ref+'/digilib') // lade die treffer in der Seite + $(pages[i]).attr('class','foundPageHref'); + } + + //var openSearches = $('#openSearches').text(); + break; + } +} + +function loadTicket(responseText2, textStatus2, XMLHttpRequest2) { + + $('#error').html(''); + switch (XMLHttpRequest2.status) { + case 0: + $('#error').html('Search server is not answering!'); + case 201: // created gesamt such dokument ist erzeugt, aber suche ueber Zeilen eventuell noch nicht abgeschlossen + //$('#results').html(responseText2 + " DONE!"); + + var url = $('#base_url_ticket').html(); + showResults(this,url); + ////console.log('xxx:'+$('#openSearches').html()); + + + var foundPages=$('.foundPages').length; + documentHits=$('tr.documentHit').length; + //console.log(documentHits); + //console.log(foundPages); + + if (documentHits>foundPages){ // es gibt noch offene suchen dann weiter + //console.log("done, but searching"); + $('#results').html(responseText2 + " not yet!"); + setTimeout(function() { + $('#results').load(server + url, loadTicket) + }, 4000); + //showResults(this,url); + } else { + + //console.log("done, really!"); + //console.log($('#openSearches').html()); + //var url = $('#base_url_ticket').html(); + + //setTimeout(function() { + // $('#results').load(server + url, loadTicket) + //}, 4000); + + + /* var langs = $(this).find('xml lang'); + + + //console.log(this); + //console.log(langs); + var langsLen=langs.length; + //langNew = new Array(); + //console.log(langsLen); + //$('#language_results').html(''); // empty the diff + for ( var i=0; i<langsLen; ++i ){ // now fill it with the languages + + if ($('#language_results_'+$(langs[i]).text()).length==0){ + $('#language_results').append('<div id="language_results_'+$(langs[i]).text()+'"></div>'); + langNew.push(true); + } + } + + + for ( var i=0; i<langsLen; ++i ){ // gehe durch alle Sprachen + var lang = $(langs[i]).text(); + + if (lang != '') { + + //console.log(server + url + '/' + lang); + //console.log(langNew); + if (langNew[i]) { + langNew[i] = false; + $('#language_results_'+lang).load( + server + url + '/' + lang, + function() { + ////console.log('after results'); + $('tr.documentHit').each( + function(index) { + var newId = $(this).attr('id') + + '_content'; + ////console.log(newId); + $(this).after( + '<td colspan="5" class="resultLinksToPages" id="' + + newId + + '"></tr>'); + var ref = $(this).find('td a') + .attr('href'); + $('#' + newId).load( + server + url + '/' + lang + + '/' + ref, + showPages); + }); + }); + } + } + } // ende schleife durch sprachen */ + } // ende else falls noch offene suchen ecistieren + + + break; + case 202: // still working + var url = $('#base_url_ticket').html(); + //console.log("202 -start:"+url); + + setTimeout(function() { + $('#results').load(server + url, loadTicket) + }, 4000); + showResults(this,url); + //console.log("202 -end"); + break; + default: + $('#results').html(XMLHttpRequest2.status + ': ' + + XMLHttpRequest2.statusText + + '. unknow server error.'); + break; + } +}; + +function getLanguages(){ // baue language parameter fuer die suche + var langs=[] + + if ($(document).getUrlParam("supportedLanguage") != null) { + langs = $(document).getUrlParam("supportedLanguage"); + } + //console.log("supl:"+langs) + + var langsLen=langs.length; + //console.log("supl:"+langs.length) + var found=false; + //var ret=""; + var ret = new Array(); + if (langs instanceof Array) { + for ( var i=0; i<langsLen; ++i ){ + //ret+=$(langs[i]).text()+"_"; + ret.push(langs[i]); + } + } else { + ret.push(langs); + } + return ret; + +} + + $(document).ready(function(){ + + resetSearch(); + var searchString =""; + var searchMetaData =""; + //langNew = true; + + + + var languages = getLanguages(); + //console.log('languages'); + //console.log(languages); + + + if ($(document).getUrlParam("searchString") != null) { + searchString = $(document).getUrlParam("searchString"); + } + $('#searchString').html(searchString); + //console.log("searchstring:"+searchString) + + if ($(document).getUrlParam("searchMetaData") != null) { + searchMetaData = $(document).getUrlParam("searchMetaData"); + } + + //console.log("metadata:"+searchMetaData) + $('#ticket') + .load( + server+'tickets a', + { + searchString : searchString, + languages: languages.join("_"), + searchMetaData: searchMetaData + }, + function() { + //console.log("after ticket") + //console.log(this); + + var ticketUrl = $(this).find( + 'a').attr('href'); + $('#base_url_ticket').html( + ticketUrl); + $('#results').load( + server + ticketUrl, + loadTicket); + } + + ); + + }); + +function toggleLang(obj){ + var val = $(obj).attr("value"); + + + var langs=$('#selectedLanguages').find('div.lang'); // suche alle sprachen + var langsLen=langs.length; + + var found=false; + for ( var i=0; i<langsLen; ++i ){ + if ($(langs[i]).text()==val) + { + $(langs[i]).remove(); + found=true; + } + } + if (!found){ + $('#selectedLanguages').append('<div class="lang">'+val+'</div>'); + } + +} \ No newline at end of file