Mercurial > hg > fulltextSearchFrontEnd
diff WebContent/index_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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebContent/index_old.html Wed Nov 03 12:25:18 2010 +0100 @@ -0,0 +1,378 @@ +<!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"> + 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=$('#selectedLanguages').find('div.lang'); // suche alle sprachen + var langsLen=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]).text()); + } + 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(){ + $('#supportedLanguages').load(server+'serverInfo/supportedLanguages',function(){ + $('div.supportedLanguage').each(function(i){$(this).html('<input type="checkbox" onclick="toggleLang(this);" name="supportedLanguage" value="'+$(this).html()+'"/>'+$(this).html());}); + }); + }); + + 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> +107 +<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> \ No newline at end of file