view WebContent/found_old.html @ 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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="./main.css" />
<title>Insert title here</title>

<script type="text/javascript" src="./jquery-1.4.2.js"></script>
<script type="text/javascript" src="./jquery.getUrlParam.js"></script>
<script type="text/javascript">
	//var server = 'http://127.0.0.1:8180/fulltextSearchServer/';
	var server = 'http://xserve07.mpiwg-berlin.mpg.de:58080/fulltextSearchServer/';
	
	//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.foundPage'); // 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
			}
			
			//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();
		for ( var i=0;  i<langsLen; ++i ){
			//ret+=$(langs[i]).text()+"_";
			ret.push(langs[i]);
		}
		return ret;
		
	}
<!--	$(function() {-->
<!--		$('#searchButton')-->
<!--				.click(-->
<!--						function() {-->
<!--							resetSearch();-->
<!--							var searchString = $('#searchString').val();-->
<!--							var searchMetaData = $('#searchMetaData').val();-->
<!--							//langNew = true;-->
<!--							-->
<!--							var languages = getLanguages();-->
<!--							console.log('languages');-->
<!--							console.log(languages);-->
<!--							-->
<!--							$('#ticket')-->
<!--									.load(-->
<!--											server+'tickets a',-->
<!--											{-->
<!--												searchString : searchString,-->
<!--												languages: languages.join("_"),-->
<!--												searchMetaData: searchMetaData-->
<!--											},-->
<!--											function(responseText, textStatus,-->
<!--													XMLHttpRequest) {-->
<!--												var ticketUrl = $(this).find(-->
<!--														'a').attr('href');-->
<!--												$('#base_url_ticket').html(-->
<!--														ticketUrl);-->
<!--												$('#results').load(-->
<!--														server + ticketUrl,-->
<!--														loadTicket);-->
<!--											}-->
<!---->
<!--									);-->
<!--						});-->
<!--	});-->
<!--		-->
	$(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");
	    }
	    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>');
		}
		
	}
</script>

</head>
<body>
A122
<div>
<!--<div>Search word: <input type="text" id="searchString" /></div>
<input type="button" value="search" id="searchButton"/>
<div>Search in Metadata: <input type="text" id="searchMetaData" /></div>
<div id="supportedLanguages"></div>
-->
<div id="ticket"></div>

<div id="results"></div>

<div id="language_results"></div>

<div id="base_url_ticket"></div>
<div id="error"></div>
<div id="openSearches"></div>
<div id="selectedLanguages"></div>
</div>
</body>
</html>