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