Mercurial > hg > fulltextSearchFrontEnd
view 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 source
//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>'); } }