Mercurial > hg > fulltextSearchFrontEnd
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 } |