comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:d075d7f70506
1 //var server = 'http://127.0.0.1:8180/fulltextSearchServer/';
2 var server = 'http://xserve07.mpiwg-berlin.mpg.de:58080/echoFullTextSearch/';
3
4 //var languages = new Array();
5 var langNew = new Array();
6 var documentHits=0;
7 //function formatLanguage(responseText2,textStatus2,XMLHttpRequest2){
8 //};
9
10 function resetSearch(){ // setze alle zwischenergebnisse der suche zurueck
11 $('#ticket').html();
12
13 $('#results').html();
14
15 $('#language_results').html();
16
17 $('#base_url_ticket').html();
18 $('#error').html();
19
20
21 }
22 function showResults(object,url){
23 //$('#openSearches').html('not decided'); // setze offene suchen auf falsch
24 //var lang = $(object).find('lang').text();
25
26
27 ////console.log("langnew:"+langNew);
28
29 ////console.log("this:"+object);
30
31 var langs = $(object).find('div.ticketLang a');
32 var langsLen=langs.length;
33 //langNew = new Array();
34 ////console.log(langs);
35
36 //$('#language_results').html(''); // empty the diff
37 for ( var i=0; i<langsLen; ++i ){ // now fill it with the languages
38
39 if ($('#language_results_'+$(langs[i]).text()).length==0){
40 $('#language_results').append('<div class="language_results_header">'+$(langs[i]).text()+'</div>');
41 $('#language_results').append('<div id="language_results_'+$(langs[i]).text()+'"></div>');
42 langNew.push(true);
43 }
44 }
45
46 for ( var i=0; i<langsLen; ++i ){ // gehe durch alle Sprachen
47 var lang = $(langs[i]).text();
48 ////console.log("show_results_lang:"+lang);
49 if (lang != '') {
50 if (langNew[i]) {
51 ////console.log(server + url + '/' + lang);
52 langNew[i] = false;
53 $('#language_results_'+lang).load(
54 server + url + '/' + lang,
55 function() {
56 ////console.log('after results');
57 var lang = $(this).find('div.resultLang').text();
58 ////console.log('after results:'+lang);
59 $('tr.documentHit').each(
60 function(index) {
61
62 var newId = $(this).attr('id')
63 + '_content';
64 ////console.log(newId);
65 $(this).after(
66 '<tr><td colspan="5" class="resultLinksToPages" id="'
67 + newId
68 + '"></tr>');
69 var ref = $(this).find('td.resultTextId').text();
70
71 ////console.log('xxx:'+url + '/' + lang + '/' + ref);
72
73 var href = $(this).find('td.resultLink a.resultHits').attr('href');
74 if (href!=''){
75 href="showhits.html?url="+href;
76 href+="&textId="+ref;
77
78 var linknode = $(this).find('td.resultLink a.searchHits');
79 if (linknode.length>0){
80 linknode.attr('href',href)
81 } else {
82 $(this).find('td.resultLink a.resultHits').after('<a class="searchHits" href ="'+href+'"> show</a>');
83
84 }
85 }
86
87 $('#' + newId).load(
88 server + url + '/' + lang
89 + '/' + ref,
90 showPages);
91 });
92 });
93 } else {
94 //console.log('second');
95
96 $('#language_results_'+lang+' tr.documentHit').each(
97 function(index) {
98 //var lang = $(this).find('div.resultLang').text();
99 var newId = $(this).attr('id') + '_content';
100 ////console.log(newId);
101 var ref = $(this).find('td.resultTextId').text();
102 var href = $(this).find('td.resultLink a.resultHits').attr('href');
103
104 if (href!=''){
105 href="showhits.html?url="+href;
106 href+="&textId="+ref;
107
108 var linknode = $(this).find('td.resultLink a.searchHits');
109 if (linknode.length>0){
110 linknode.attr('href',href)
111 } else {
112 $(this).find('td.resultLink a.resultHits').after('<a class="searchHits" href ="'+href+'"> show</a>');
113
114 }
115 }
116
117 //console.log('yyy:'+url + '/' + lang + '/' + ref);
118 $('#' + newId).load(
119 server + url + '/' + lang + '/' + ref,
120 showPages);
121 });
122 } // end else langNew
123 } // lang nicht leer
124 } // end for durch die Sprachen
125 }
126
127 function showPages(responseText2, textStatus2, XMLHttpRequest2) {
128 $('#error').html('');
129 //console.log('showpage'+this)
130 switch (XMLHttpRequest2.status) {
131 case 0:
132 case 202:
133 //$('#openSearches').html('true')
134 $(this).html('search pages');
135 break;
136 case 404:
137 $(this).html('file not found!');
138 break;
139
140 case 500:
141 $(this).html('Server error');
142 break;
143 default:
144 //$(this).html('done');
145 var pages=$(this).find('div.foundPageXlink'); // suche alle seiten mit treffern
146 var pagesLen=pages.length;
147
148 for ( var i=0; i<pagesLen; ++i ){
149 $(this).parent().addClass('foundPages');
150 var ref = $(pages[i]).find('a').attr('href');
151 ////console.log('ref:'+ref);
152 $(pages[i]).load(server+ref+'/digilib') // lade die treffer in der Seite
153 $(pages[i]).attr('class','foundPageHref');
154 }
155
156 //var openSearches = $('#openSearches').text();
157 break;
158 }
159 }
160
161 function loadTicket(responseText2, textStatus2, XMLHttpRequest2) {
162
163 $('#error').html('');
164 switch (XMLHttpRequest2.status) {
165 case 0:
166 $('#error').html('Search server is not answering!');
167 case 201: // created gesamt such dokument ist erzeugt, aber suche ueber Zeilen eventuell noch nicht abgeschlossen
168 //$('#results').html(responseText2 + " DONE!");
169
170 var url = $('#base_url_ticket').html();
171 showResults(this,url);
172 ////console.log('xxx:'+$('#openSearches').html());
173
174
175 var foundPages=$('.foundPages').length;
176 documentHits=$('tr.documentHit').length;
177 //console.log(documentHits);
178 //console.log(foundPages);
179
180 if (documentHits>foundPages){ // es gibt noch offene suchen dann weiter
181 //console.log("done, but searching");
182 $('#results').html(responseText2 + " not yet!");
183 setTimeout(function() {
184 $('#results').load(server + url, loadTicket)
185 }, 4000);
186 //showResults(this,url);
187 } else {
188
189 //console.log("done, really!");
190 //console.log($('#openSearches').html());
191 //var url = $('#base_url_ticket').html();
192
193 //setTimeout(function() {
194 // $('#results').load(server + url, loadTicket)
195 //}, 4000);
196
197
198 /* var langs = $(this).find('xml lang');
199
200
201 //console.log(this);
202 //console.log(langs);
203 var langsLen=langs.length;
204 //langNew = new Array();
205 //console.log(langsLen);
206 //$('#language_results').html(''); // empty the diff
207 for ( var i=0; i<langsLen; ++i ){ // now fill it with the languages
208
209 if ($('#language_results_'+$(langs[i]).text()).length==0){
210 $('#language_results').append('<div id="language_results_'+$(langs[i]).text()+'"></div>');
211 langNew.push(true);
212 }
213 }
214
215
216 for ( var i=0; i<langsLen; ++i ){ // gehe durch alle Sprachen
217 var lang = $(langs[i]).text();
218
219 if (lang != '') {
220
221 //console.log(server + url + '/' + lang);
222 //console.log(langNew);
223 if (langNew[i]) {
224 langNew[i] = false;
225 $('#language_results_'+lang).load(
226 server + url + '/' + lang,
227 function() {
228 ////console.log('after results');
229 $('tr.documentHit').each(
230 function(index) {
231 var newId = $(this).attr('id')
232 + '_content';
233 ////console.log(newId);
234 $(this).after(
235 '<td colspan="5" class="resultLinksToPages" id="'
236 + newId
237 + '"></tr>');
238 var ref = $(this).find('td a')
239 .attr('href');
240 $('#' + newId).load(
241 server + url + '/' + lang
242 + '/' + ref,
243 showPages);
244 });
245 });
246 }
247 }
248 } // ende schleife durch sprachen */
249 } // ende else falls noch offene suchen ecistieren
250
251
252 break;
253 case 202: // still working
254 var url = $('#base_url_ticket').html();
255 //console.log("202 -start:"+url);
256
257 setTimeout(function() {
258 $('#results').load(server + url, loadTicket)
259 }, 4000);
260 showResults(this,url);
261 //console.log("202 -end");
262 break;
263 default:
264 $('#results').html(XMLHttpRequest2.status + ': '
265 + XMLHttpRequest2.statusText
266 + '. unknow server error.');
267 break;
268 }
269 };
270
271 function getLanguages(){ // baue language parameter fuer die suche
272 var langs=[]
273
274 if ($(document).getUrlParam("supportedLanguage") != null) {
275 langs = $(document).getUrlParam("supportedLanguage");
276 }
277 //console.log("supl:"+langs)
278
279 var langsLen=langs.length;
280 //console.log("supl:"+langs.length)
281 var found=false;
282 //var ret="";
283 var ret = new Array();
284 if (langs instanceof Array) {
285 for ( var i=0; i<langsLen; ++i ){
286 //ret+=$(langs[i]).text()+"_";
287 ret.push(langs[i]);
288 }
289 } else {
290 ret.push(langs);
291 }
292 return ret;
293
294 }
295
296 $(document).ready(function(){
297
298 resetSearch();
299 var searchString ="";
300 var searchMetaData ="";
301 //langNew = true;
302
303
304
305 var languages = getLanguages();
306 //console.log('languages');
307 //console.log(languages);
308
309
310 if ($(document).getUrlParam("searchString") != null) {
311 searchString = $(document).getUrlParam("searchString");
312 }
313 $('#searchString').html(searchString);
314 //console.log("searchstring:"+searchString)
315
316 if ($(document).getUrlParam("searchMetaData") != null) {
317 searchMetaData = $(document).getUrlParam("searchMetaData");
318 }
319
320 //console.log("metadata:"+searchMetaData)
321 $('#ticket')
322 .load(
323 server+'tickets a',
324 {
325 searchString : searchString,
326 languages: languages.join("_"),
327 searchMetaData: searchMetaData
328 },
329 function() {
330 //console.log("after ticket")
331 //console.log(this);
332
333 var ticketUrl = $(this).find(
334 'a').attr('href');
335 $('#base_url_ticket').html(
336 ticketUrl);
337 $('#results').load(
338 server + ticketUrl,
339 loadTicket);
340 }
341
342 );
343
344 });
345
346 function toggleLang(obj){
347 var val = $(obj).attr("value");
348
349
350 var langs=$('#selectedLanguages').find('div.lang'); // suche alle sprachen
351 var langsLen=langs.length;
352
353 var found=false;
354 for ( var i=0; i<langsLen; ++i ){
355 if ($(langs[i]).text()==val)
356 {
357 $(langs[i]).remove();
358 found=true;
359 }
360 }
361 if (!found){
362 $('#selectedLanguages').append('<div class="lang">'+val+'</div>');
363 }
364
365 }