comparison src/main/webapp/pages/fullTextSearch.jsp @ 95:b27a99201cbe

New feature: new full text search with MySQL ngram parser (5.7.6 above)
author Calvin Yeh <cyeh@mpipw-berlin.mpg.com>
date Mon, 03 Jul 2017 23:48:53 +0200
parents dd2fcc5f5deb
children 6a508b605b5f
comparison
equal deleted inserted replaced
94:d0dcbe8254f5 95:b27a99201cbe
1 <%@page import="org.apache.commons.lang.StringUtils"%> 1 <%@page import="org.apache.commons.lang.StringUtils"%>
2 <%@page import="de.mpiwg.gazetteer.db.DBContents"%> 2 <%@page import="de.mpiwg.gazetteer.db.*"%>
3 <%@page import="de.mpiwg.gazetteer.bo.LGFullTextSearchFile"%> 3 <%@page import="de.mpiwg.gazetteer.bo.LGFullTextSearchFile"%>
4 4
5 5
6 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 6 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
7 7
13 13
14 <head> 14 <head>
15 15
16 <jsp:include page="../componentes/headContent.jsp" /> 16 <jsp:include page="../componentes/headContent.jsp" />
17 17
18 <script> 18 <script>
19 19
20 20
21 $(function() { 21 $(function() {
22 $( "#dialogMoreInfo" ).dialog({ 22 $( "#dialogMoreInfo" ).dialog({
23 autoOpen: false, 23 autoOpen: false,
24 modal: true, 24 modal: true,
25 position: { my: "center", at: "top", of: window }, 25 position: { my: "center", at: "top", of: window },
26 26
27 }); 27 });
28 28
29 var dialogSave = $("#dialogSave").dialog( 29 var dialogSave = $("#dialogSave").dialog(
30 { 30 {
31 autoOpen: false, 31 autoOpen: false,
32 position: { my: "left+100px", at: "top", of: $("#saveResult") }, 32 position: { my: "left+100px", at: "top", of: $("#saveResult") },
33 } 33 }
34 ); 34 );
35 $("#saveResult").button().on( "click", function() { 35 $("#saveResult").button().on( "click", function() {
36 // append searchTerm into the form 36 // append searchTerm into the form
37 $('<input>').attr({ 37 $('<input>').attr({
38 type: 'hidden', 38 type: 'hidden',
39 name: 'searchTerm', 39 name: 'searchTerm',
40 value: $("#searchTerm").val() 40 value: $("#searchTerm").val()
41 }).appendTo('form[name="saveTableForm"]'); 41 }).appendTo('form[name="saveTableForm"]');
42 42
43 if ($("#fileName").val() == "") { 43 if ($("#fileName").val() == "") {
44 $("#fileName").val($("#searchTerm").val()); // set the default table name to be the searched term if no fileName 44 $("#fileName").val($("#searchTerm").val()); // set the default table name to be the searched term if no fileName
45 } 45 }
46 46
47 dialogSave.dialog( "open" ); 47 dialogSave.dialog( "open" );
48 }); 48 });
49 49
50 50
51 51
52 $("#prompToSaveResult").click( function () { 52 $("#prompToSaveResult").click( function () {
53 $("#saveResult").click(); 53 $("#saveResult").click();
54 }); 54 });
55 55
56 56
57 var dialogViewSavedResult = $("#dialogViewSavedResult").dialog( 57 var dialogViewSavedResult = $("#dialogViewSavedResult").dialog(
58 { 58 {
59 autoOpen: false, 59 autoOpen: false,
60 //position: { my: "left+100px", at: "top", of: $("#viewSavedResult") }, 60 //position: { my: "left+100px", at: "top", of: $("#viewSavedResult") },
61 position: { my: "center", at: "top+200px", of: $("#viewSavedResult") }, // TODO 61 position: { my: "center", at: "top+200px", of: $("#viewSavedResult") }, // TODO
66 { 66 {
67 autoOpen: false, 67 autoOpen: false,
68 //position: { my: "left+100px", at: "top", of: $("#viewSavedResult") }, 68 //position: { my: "left+100px", at: "top", of: $("#viewSavedResult") },
69 position: { my: "center", at: "top+200px", of: $("#viewSavedResult2") }, 69 position: { my: "center", at: "top+200px", of: $("#viewSavedResult2") },
70 width: 600, height: 1000 70 width: 600, height: 1000
71 71
72 } 72 }
73 ); 73 );
74 74
75 $("#viewSavedResult").button().on( "click", function() { 75 $("#viewSavedResult").button().on( "click", function() {
76 dialogViewSavedResult.dialog( "open" ); 76 dialogViewSavedResult.dialog( "open" );
77 }); 77 });
78 78
79 $("#viewSavedResult2").button().on( "click", function() { 79 $("#viewSavedResult2").button().on( "click", function() {
80 dialogViewSavedResult2.dialog( "open" ); 80 dialogViewSavedResult2.dialog( "open" );
81 }); 81 });
82 82
83 83
84 84
85 $("#bookIdFilter").autocomplete({ 85 $("#bookIdFilter").autocomplete({
86 source : function(request, response) { 86 source : function(request, response) {
87 $.ajax({ 87 $.ajax({
88 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchBookIdAutocomplete.jsp", 88 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchBookIdAutocomplete.jsp",
89 type : "POST", 89 type : "POST",
103 alert('error: ' + error); 103 alert('error: ' + error);
104 } 104 }
105 }); 105 });
106 }, 106 },
107 minLength : 0 107 minLength : 0
108 }); 108 });
109 $("#bookNameFilter").autocomplete({ 109 $("#bookNameFilter").autocomplete({
110 source : function(request, response) { 110 source : function(request, response) {
111 $.ajax({ 111 $.ajax({
112 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchBookNameAutocomplete.jsp", 112 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchBookNameAutocomplete.jsp",
113 type : "POST", 113 type : "POST",
127 alert('error: ' + error); 127 alert('error: ' + error);
128 } 128 }
129 }); 129 });
130 }, 130 },
131 minLength : 0 131 minLength : 0
132 }); 132 });
133 $("#level1Filter").autocomplete({ 133 $("#level1Filter").autocomplete({
134 source : function(request, response) { 134 source : function(request, response) {
135 $.ajax({ 135 $.ajax({
136 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchLevel1Autocomplete.jsp", 136 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchLevel1Autocomplete.jsp",
137 type : "POST", 137 type : "POST",
151 alert('error: ' + error); 151 alert('error: ' + error);
152 } 152 }
153 }); 153 });
154 }, 154 },
155 minLength : 0 155 minLength : 0
156 }); 156 });
157 $("#level2Filter").autocomplete({ 157 $("#level2Filter").autocomplete({
158 source : function(request, response) { 158 source : function(request, response) {
159 $.ajax({ 159 $.ajax({
160 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchLevel2Autocomplete.jsp", 160 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchLevel2Autocomplete.jsp",
161 type : "POST", 161 type : "POST",
175 alert('error: ' + error); 175 alert('error: ' + error);
176 } 176 }
177 }); 177 });
178 }, 178 },
179 minLength : 0 179 minLength : 0
180 }); 180 });
181 $("#dynastyFilter").autocomplete({ 181 $("#dynastyFilter").autocomplete({
182 source : function(request, response) { 182 source : function(request, response) {
183 $.ajax({ 183 $.ajax({
184 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchDynastyAutocomplete.jsp", 184 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchDynastyAutocomplete.jsp",
185 type : "POST", 185 type : "POST",
199 alert('error: ' + error); 199 alert('error: ' + error);
200 } 200 }
201 }); 201 });
202 }, 202 },
203 minLength : 0 203 minLength : 0
204 }); 204 });
205 $("#periodFilter").autocomplete({ 205 $("#periodFilter").autocomplete({
206 source : function(request, response) { 206 source : function(request, response) {
207 $.ajax({ 207 $.ajax({
208 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchPeriodAutocomplete.jsp", 208 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchPeriodAutocomplete.jsp",
209 type : "POST", 209 type : "POST",
223 alert('error: ' + error); 223 alert('error: ' + error);
224 } 224 }
225 }); 225 });
226 }, 226 },
227 minLength : 0 227 minLength : 0
228 }); 228 });
229 $("#adminTypeFilter").autocomplete({ 229 $("#adminTypeFilter").autocomplete({
230 source : function(request, response) { 230 source : function(request, response) {
231 $.ajax({ 231 $.ajax({
232 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchAdminTypeAutocomplete.jsp", 232 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchAdminTypeAutocomplete.jsp",
233 type : "POST", 233 type : "POST",
247 alert('error: ' + error); 247 alert('error: ' + error);
248 } 248 }
249 }); 249 });
250 }, 250 },
251 minLength : 0 251 minLength : 0
252 }); 252 });
253 $("#sectionNameFilter").autocomplete({ 253 $("#sectionNameFilter").autocomplete({
254 source : function(request, response) { 254 source : function(request, response) {
255 $.ajax({ 255 $.ajax({
256 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchSectionNameAutocomplete.jsp", 256 url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/fullTextSearchSectionNameAutocomplete.jsp",
257 type : "POST", 257 type : "POST",
271 alert('error: ' + error); 271 alert('error: ' + error);
272 } 272 }
273 }); 273 });
274 }, 274 },
275 minLength : 0 275 minLength : 0
276 }); 276 });
277 277
278 }); 278 });
279 279
280 // enter pressed event, we don't want to always go to "search". 280 // enter pressed event, we don't want to always go to "search".
281 $(document).keypress( 281 $(document).keypress(
282 function(event){ 282 function(event){
283 if (event.which == '13') { // enter pressed 283 if (event.which == '13') { // enter pressed
284 // if any of the filter fields is filled in, filter first; otherwize, go to search 284 // if any of the filter fields is filled in, filter first; otherwize, go to search
286 //console.log( this.value ); 286 //console.log( this.value );
287 if (this.value != "") { 287 if (this.value != "") {
288 //console.log('filtering' + i); 288 //console.log('filtering' + i);
289 setAction('filter', 'fullTextSearchForm'); 289 setAction('filter', 'fullTextSearchForm');
290 $("#fullTextSearchForm").submit(); 290 $("#fullTextSearchForm").submit();
291 return false; 291 return false;
292 } 292 }
293 293
294 }); 294 });
295 } 295 }
296 }); 296 });
297 297
298 function setMousePos(){ 298 function setMousePos(){
299 var x = event.clientX; 299 var x = event.clientX;
300 var y = event.clientY; 300 var y = event.clientY;
301 $("#mouseX").val(x); 301 $("#mouseX").val(x);
302 $("#mouseY").val(y); 302 $("#mouseY").val(y);
303 } 303 }
304 304
305 $(document).ready(function(){ 305 $(document).ready(function(){
306 highlightKeywords(); 306 highlightKeywords();
307 scrollPage(); 307 scrollPage();
308 }) 308 })
309 309
310 function scrollPage() { 310 function scrollPage() {
311 var id = $("#focusedId").val(); 311 var id = $("#focusedId").val();
312 if (id == undefined || $("#content_"+id).offset() == undefined) return; 312 if (id == undefined || $("#content_"+id).offset() == undefined) return;
313 313
314 //$('html,body').animate({scrollTop: $("#content_"+id).offset().top}, 'fast'); 314 //$('html,body').animate({scrollTop: $("#content_"+id).offset().top}, 'fast');
315 315
316 var x = $("#mouseX").val(); 316 var x = $("#mouseX").val();
317 var y = $("#mouseY").val(); 317 var y = $("#mouseY").val();
318 var offsetInElement = $("#content_"+id).height() / 2; 318 var offsetInElement = $("#content_"+id).height() / 2;
319 319
320 //console.log("y: " + y + ", top: " + $("#content_"+id).offset().top + ", offsetInElement: " + offsetInElement); 320 //console.log("y: " + y + ", top: " + $("#content_"+id).offset().top + ", offsetInElement: " + offsetInElement);
321 if (y == undefined) return; 321 if (y == undefined) return;
322 322
323 //$('html,body').animate({scrollTop: $("#content_"+id).offset().top - y + offsetInElement}, 'fast'); 323 //$('html,body').animate({scrollTop: $("#content_"+id).offset().top - y + offsetInElement}, 'fast');
324 $('html,body').scrollTop($("#content_"+id).offset().top - y + offsetInElement); 324 $('html,body').scrollTop($("#content_"+id).offset().top - y + offsetInElement);
325 325
326 } 326 }
327 327
328 function highlightKeywords() // highlight keywords in content column, with class="content" 328 function highlightKeywords() // highlight keywords in content column, with class="content"
329 { 329 {
330 if ($("#searchTerm")[0] == undefined ){ 330 if ($("#searchTerm")[0] == undefined ){
331 return; 331 return;
332 } 332 }
333 var keywords = $("#searchTerm")[0].value; 333 var keywords = $("#searchTerm")[0].value;
334 var keywordsArray = keywords.split(", "); 334 var keywordsArray = keywords.split(", ");
335 //console.log("keywordsArray: "+keywordsArray); 335 //console.log("keywordsArray: "+keywordsArray);
336 336
337 var content = $(".content"); 337 var content = $(".content");
338 for (var i = 0; i < content.length; i++) { 338 for (var i = 0; i < content.length; i++) {
339 // find keywords in content[i] 339 // find keywords in content[i]
340 var text = content[i].innerHTML; 340 var text = content[i].innerHTML;
341 for (var j = 0; j < keywordsArray.length; j++) { 341 for (var j = 0; j < keywordsArray.length; j++) {
342 var index = text.indexOf(keywordsArray[j]); 342 var index = text.indexOf(keywordsArray[j]);
343 if (index >= 0) { 343 if (index >= 0) {
344 text = text.substring(0,index) + "<span class='highlight'>" + text.substring(index, index+keywordsArray[j].length) + "</span>" + text.substring(index+keywordsArray[j].length); 344 text = text.substring(0,index) + "<span class='highlight'>" + text.substring(index, index+keywordsArray[j].length) + "</span>" + text.substring(index+keywordsArray[j].length);
345 content[i].innerHTML = text; 345 content[i].innerHTML = text;
346 } 346 }
347 }; 347 };
348 348
349 }; 349 };
350 } 350 }
351 351
352 352
353 353
354 354
355 </script> 355 </script>
356 </head> 356 </head>
357 357
358 <body> 358 <body>
359 359
360 <jsp:include page="../componentes/template.jsp" /> 360 <jsp:include page="../componentes/template2.jsp" />
361 361
362 <div id="dialogMoreInfo" title="Full Text Search Details"></div> 362 <div id="dialogMoreInfo" title="Full Text Search Details"></div>
363 363
364 <div id="page"> 364 <div id="page">
365 365
366 <% 366 <%
367 if (sessionBean.getUser() == null) { 367 if (sessionBean.getUser() == null) {
368 %> 368 %>
369 <label class="subTitel">You must login!</label> 369 <label class="subTitel">Please login or create a new account above</label>
370 <% 370 <%
371 } else { 371 } else {
372 372
373 if (sessionBean.getFullTextSearchPage().getFileList() == null) { 373 if (sessionBean.getFullTextSearchPage().getFileList() == null) {
374 sessionBean.getFullTextSearchPage().loadParameters(request, 374 sessionBean.getFullTextSearchPage().loadParameters(request,
405 405
406 </div> 406 </div>
407 407
408 408
409 <div id="dialogViewSavedResult" title="Saved Table(s)"> 409 <div id="dialogViewSavedResult" title="Saved Table(s)">
410 410
411 <div class="label">This week:</div> 411 <div class="label">This week:</div>
412 <table class="savedResultTable"> 412 <table class="savedResultTable">
413 <tr> 413 <tr>
414 <% 414 <%
415 for (LGFullTextSearchFile aFile : sessionBean 415 for (LGFullTextSearchFile aFile : sessionBean
423 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result --> 423 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result -->
424 <a 424 <a
425 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>" 425 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>"
426 target="_blank"> <img title="Show text in html" 426 target="_blank"> <img title="Show text in html"
427 src="<%=sessionBean.getApplicationBean().getShowImage()%>" /> 427 src="<%=sessionBean.getApplicationBean().getShowImage()%>" />
428 </a> <!-- download csv file --> <a 428 </a> <!-- download csv file <a
429 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv" 429 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv"
430 target="_blank"> <img title="Download CSV" 430 target="_blank"> <img title="Download CSV"
431 src="<%=sessionBean.getApplicationBean() 431 src="<%=sessionBean.getApplicationBean()
432 .getDownloadImage()%>" /> 432 .getDownloadImage()%>" />
433 </a> <!-- view on LGMap --> <!-- 433 </a> --> <!-- view on LGMap --> <!--
434 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>" 434 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>"
435 Use file name instead as the name in the link to LGMap. 435 Use file name instead as the name in the link to LGMap.
436 --> <a 436 --> <a
437 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>" 437 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>"
438 target="_blank"> <img title="View on LGMap" 438 target="_blank"> <img title="View on LGMap"
464 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result --> 464 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result -->
465 <a 465 <a
466 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>" 466 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>"
467 target="_blank"> <img title="Show text in html" 467 target="_blank"> <img title="Show text in html"
468 src="<%=sessionBean.getApplicationBean().getShowImage()%>" /> 468 src="<%=sessionBean.getApplicationBean().getShowImage()%>" />
469 </a> <!-- download csv file --> <a 469 </a> <!-- download csv file <a
470 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv" 470 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv"
471 target="_blank"> <img title="Download CSV" 471 target="_blank"> <img title="Download CSV"
472 src="<%=sessionBean.getApplicationBean() 472 src="<%=sessionBean.getApplicationBean()
473 .getDownloadImage()%>" /> 473 .getDownloadImage()%>" />
474 </a> <!-- view on LGMap --> <a 474 </a> --><!-- view on LGMap --> <a
475 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>" 475 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>"
476 target="_blank"> <img title="View on LGMap" 476 target="_blank"> <img title="View on LGMap"
477 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" /> 477 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" />
478 </a> <input type="image" title="Delete it" 478 </a> <input type="image" title="Delete it"
479 onclick="<%=sessionBean.getApplicationBean() 479 onclick="<%=sessionBean.getApplicationBean()
500 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result --> 500 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result -->
501 <a 501 <a
502 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>" 502 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>"
503 target="_blank"> <img title="Show text in html" 503 target="_blank"> <img title="Show text in html"
504 src="<%=sessionBean.getApplicationBean().getShowImage()%>" /> 504 src="<%=sessionBean.getApplicationBean().getShowImage()%>" />
505 </a> <!-- download csv file --> <a 505 </a> <!-- download csv file <a
506 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv" 506 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv"
507 target="_blank"> <img title="Download CSV" 507 target="_blank"> <img title="Download CSV"
508 src="<%=sessionBean.getApplicationBean() 508 src="<%=sessionBean.getApplicationBean()
509 .getDownloadImage()%>" /> 509 .getDownloadImage()%>" />
510 </a> <!-- view on LGMap --> <a 510 </a> --><!-- view on LGMap --> <a
511 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>" 511 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>"
512 target="_blank"> <img title="View on LGMap" 512 target="_blank"> <img title="View on LGMap"
513 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" /> 513 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" />
514 </a> <input type="image" title="Delete it" 514 </a> <input type="image" title="Delete it"
515 onclick="<%=sessionBean.getApplicationBean() 515 onclick="<%=sessionBean.getApplicationBean()
516 .getJSConfirmationDelete()%> setAction0('deleteFile', 'fullTextSearchForm', 'fileId','<%=aFile.getId()%>'); document.getElementById('fullTextSearchForm').submit();" 516 .getJSConfirmationDelete()%> setAction0('deleteFile', 'fullTextSearchForm', 'fileId','<%=aFile.getId()%>'); document.getElementById('fullTextSearchForm').submit();"
517 src="<%=sessionBean.getApplicationBean().getDeleteImage()%>" /> 517 src="<%=sessionBean.getApplicationBean().getDeleteImage()%>" />
518 518
519 </td> 519 </td>
520 <% } %> 520 <% } %>
521 521
522 </tr> 522 </tr>
523 </table> 523 </table>
524 524
525 525
526 </div> 526 </div>
527 527
528 <div id="dialogViewSavedResult2" title="Saved Table(s) *Test a new layout and sort by time:)"> 528 <div id="dialogViewSavedResult2" title="Saved Table(s) *Test a new layout and sort by time:)">
529 529
530 <!-- TODO records in the table sorted by (1) saved time or (2) alphabet --> 530 <!-- TODO records in the table sorted by (1) saved time or (2) alphabet -->
531 531
532 <div class="label">This week:</div> 532 <div class="label">This week:</div>
533 <table class="savedResultTable2"> 533 <table class="savedResultTable2">
534 <% 534 <%
535 for (LGFullTextSearchFile aFile : sessionBean.getFullTextSearchPage().getWeekFileList()) { 535 for (LGFullTextSearchFile aFile : sessionBean.getFullTextSearchPage().getWeekFileList()) {
536 %> 536 %>
537 <tr> 537 <tr>
538 <td> 538 <td>
539 <div><%=aFile.getFileName()%></div> 539 <div><%=aFile.getFileName()%></div>
540 </td> 540 </td>
541 <td> 541 <td>
542 <button type="button" class="lgButton" 542 <button type="button" class="lgButton"
545 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result --> 545 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result -->
546 <a 546 <a
547 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>" 547 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>"
548 target="_blank"> <img title="Show text in html" 548 target="_blank"> <img title="Show text in html"
549 src="<%=sessionBean.getApplicationBean().getShowImage()%>" /> 549 src="<%=sessionBean.getApplicationBean().getShowImage()%>" />
550 </a> 550 </a>
551 <!-- download csv file --> 551 <!-- download csv file
552 <a 552 <a
553 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv" 553 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv"
554 target="_blank"> <img title="Download CSV" 554 target="_blank"> <img title="Download CSV"
555 src="<%=sessionBean.getApplicationBean() 555 src="<%=sessionBean.getApplicationBean()
556 .getDownloadImage()%>" /> 556 .getDownloadImage()%>" />
557 </a> 557 </a>-->
558 558
559 <!-- view on LGMap --> <!-- 559 <!-- view on LGMap --> <!--
560 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>" 560 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>"
561 Use file name instead as the name in the link to LGMap. 561 Use file name instead as the name in the link to LGMap.
562 --> 562 -->
563 <a 563 <a
564 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>" 564 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>"
565 target="_blank"> <img title="View on LGMap" 565 target="_blank"> <img title="View on LGMap"
566 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" /> 566 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" />
567 </a> <input type="image" title="Delete it" 567 </a> <input type="image" title="Delete it"
592 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result --> 592 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result -->
593 <a 593 <a
594 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>" 594 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>"
595 target="_blank"> <img title="Show text in html" 595 target="_blank"> <img title="Show text in html"
596 src="<%=sessionBean.getApplicationBean().getShowImage()%>" /> 596 src="<%=sessionBean.getApplicationBean().getShowImage()%>" />
597 </a> <!-- download csv file --> <a 597 </a> <!-- download csv file <a
598 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv" 598 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv"
599 target="_blank"> <img title="Download CSV" 599 target="_blank"> <img title="Download CSV"
600 src="<%=sessionBean.getApplicationBean() 600 src="<%=sessionBean.getApplicationBean()
601 .getDownloadImage()%>" /> 601 .getDownloadImage()%>" />
602 </a> <!-- view on LGMap --> <a 602 </a> --><!-- view on LGMap --> <a
603 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>" 603 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>"
604 target="_blank"> <img title="View on LGMap" 604 target="_blank"> <img title="View on LGMap"
605 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" /> 605 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" />
606 </a> <input type="image" title="Delete it" 606 </a> <input type="image" title="Delete it"
607 onclick="<%=sessionBean.getApplicationBean() 607 onclick="<%=sessionBean.getApplicationBean()
608 .getJSConfirmationDelete()%> setAction0('deleteFile', 'fullTextSearchForm', 'fileId','<%=aFile.getId()%>'); document.getElementById('fullTextSearchForm').submit();" 608 .getJSConfirmationDelete()%> setAction0('deleteFile', 'fullTextSearchForm', 'fileId','<%=aFile.getId()%>'); document.getElementById('fullTextSearchForm').submit();"
609 src="<%=sessionBean.getApplicationBean().getDeleteImage()%>" /> 609 src="<%=sessionBean.getApplicationBean().getDeleteImage()%>" />
610 610
611 </td> 611 </td>
612 612
613 613
614 </tr> 614 </tr>
615 <% } %> 615 <% } %>
616 </table> 616 </table>
617 617
618 <div class="label">Older...</div> 618 <div class="label">Older...</div>
619 <table class="savedResultTable2"> 619 <table class="savedResultTable2">
620 <% 620 <%
621 for (LGFullTextSearchFile aFile : sessionBean.getFullTextSearchPage().getOlderFileList()) { 621 for (LGFullTextSearchFile aFile : sessionBean.getFullTextSearchPage().getOlderFileList()) {
622 %> 622 %>
623 623
624 <tr> 624 <tr>
625 <td> 625 <td>
626 <div><%=aFile.getFileName()%></div> 626 <div><%=aFile.getFileName()%></div>
627 </td> 627 </td>
628 <td> 628 <td>
632 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result --> 632 <!-- getFullTextSearchFileText?fileId= &userId= --> <!-- click searching result to open it in the same table of full-text-search result -->
633 <a 633 <a
634 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>" 634 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/getFullTextSearchHtmlFile?fileId=<%=aFile.getId()%>"
635 target="_blank"> <img title="Show text in html" 635 target="_blank"> <img title="Show text in html"
636 src="<%=sessionBean.getApplicationBean().getShowImage()%>" /> 636 src="<%=sessionBean.getApplicationBean().getShowImage()%>" />
637 </a> <!-- download csv file --> <a 637 </a> <!-- download csv file <a
638 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv" 638 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv"
639 target="_blank"> <img title="Download CSV" 639 target="_blank"> <img title="Download CSV"
640 src="<%=sessionBean.getApplicationBean() 640 src="<%=sessionBean.getApplicationBean()
641 .getDownloadImage()%>" /> 641 .getDownloadImage()%>" />
642 </a> <!-- view on LGMap --> <a 642 </a> --><!-- view on LGMap --> <a
643 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>" 643 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=aFile.getUserId().toString()%>_<%=aFile.getFileName()%>.csv&name=<%=aFile.getFileName()%>"
644 target="_blank"> <img title="View on LGMap" 644 target="_blank"> <img title="View on LGMap"
645 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" /> 645 src="<%=sessionBean.getApplicationBean().getViewOnMap()%>" />
646 </a> <input type="image" title="Delete it" 646 </a> <input type="image" title="Delete it"
647 onclick="<%=sessionBean.getApplicationBean() 647 onclick="<%=sessionBean.getApplicationBean()
654 <% } %> 654 <% } %>
655 </table> 655 </table>
656 656
657 657
658 </div> 658 </div>
659 659
660 660
661 661
662 662
663 <label class="subTitel">Full Text Search</label> 663 <label class="subTitel">Full Text Search</label>
664 <form name="fullTextSearchForm" id="fullTextSearchForm" 664 <form name="fullTextSearchForm" id="fullTextSearchForm"
665 action="<%=sessionBean.getApplicationBean().getRootServer()%>/proxy.jsp" 665 action="<%=sessionBean.getApplicationBean().getRootServer()%>/proxy.jsp"
666 method="post" class="contentForm"> 666 method="post" class="contentForm">
667 <input name="bean" type="hidden" value="fullTextSearchBean" /> <input 667 <input name="bean" type="hidden" value="fullTextSearchBean" /> <input
735 </tr> 735 </tr>
736 <tr> 736 <tr>
737 <td> 737 <td>
738 <span>*Test:</span> 738 <span>*Test:</span>
739 <button id="viewSavedResult2" type="button" class="lgButton">View/Load Saved Table(s): new layout and sorting by time:)</button> 739 <button id="viewSavedResult2" type="button" class="lgButton">View/Load Saved Table(s): new layout and sorting by time:)</button>
740 740
741 </td> 741 </td>
742 </tr> 742 </tr>
743 <tr> 743 <tr>
744 <td> 744 <td>
745 <!-- for view on LGMap, prompt to save if it's not saved. After saving, it could be shown on LGMap --> 745 <!-- for view on LGMap, prompt to save if it's not saved. After saving, it could be shown on LGMap -->
746 <% 746 <%
747 if (sessionBean.getFullTextSearchPage().getFile() != null) { 747 if (sessionBean.getFullTextSearchPage().getFile() != null) {
748 LGFullTextSearchFile theFile = sessionBean 748 LGFullTextSearchFile theFile = sessionBean
749 .getFullTextSearchPage().getFile(); 749 .getFullTextSearchPage().getFile();
750 %> 750 %>
751 <a 751 <a
752 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=theFile.getUserId().toString()%>_<%=theFile.getFileName()%>.csv&name=<%=theFile.getFileName()%>" 752 href="<%=sessionBean.getApplicationBean().getLGMapUrl()%>&file=<%=theFile.getUserId().toString()%>_<%=theFile.getFileName()%>.csv&name=<%=theFile.getFileName()%>"
753 target="_blank">View on LGMap </a> <!-- download csv file --> <a 753 target="_blank">View on LGMap </a> <!-- download csv file <a
754 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=theFile.getUserId().toString()%>_<%=theFile.getFileName()%>.csv" 754 href="<%=sessionBean.getApplicationBean().getRootServer()%>/rest/text/downloadFullTextSearchCsvFile?file=<%=theFile.getUserId().toString()%>_<%=theFile.getFileName()%>.csv"
755 target="_blank"> <img title="Download CSV" 755 target="_blank"> <img title="Download CSV"
756 src="<%=sessionBean.getApplicationBean() 756 src="<%=sessionBean.getApplicationBean()
757 .getDownloadImage()%>" /> 757 .getDownloadImage()%>" />
758 </a> 758 </a>-->
759 <% 759 <%
760 } else if (sessionBean.getFullTextSearchPage().getCompleteList() != null) { 760 } else if (sessionBean.getFullTextSearchPage().getCompleteList() != null) {
761 %> 761 %>
762 <!-- prompt to save --> <!-- A click icon for Save Table, showing the text as bellow --> 762 <!-- prompt to save --> <!-- A click icon for Save Table, showing the text as bellow -->
763 <button id="prompToSaveResult" type="button" class="lgButton">View 763 <button id="prompToSaveResult" type="button" class="lgButton">View
764 on LGMap?</button> 764 on LGMap?</button>
765 <% } %> 765 <% } %>
766 766
767 </td> 767 </td>
768 </tr> 768 </tr>
769 769
1079 </td> 1079 </td>
1080 </tr> 1080 </tr>
1081 </table> 1081 </table>
1082 </th> 1082 </th>
1083 1083
1084 <!-- 1084 <!--
1085 <th> 1085 <th>
1086 <table class="sortTable"> 1086 <table class="sortTable">
1087 <tr> 1087 <tr>
1088 <td><label class="tableTitle">Section Pages</label></td> 1088 <td><label class="tableTitle">Section Pages</label></td>
1089 <td> 1089 <td>
1090 <table> 1090 <table>
1091 <tr><td> 1091 <tr><td>
1092 <input type="image" 1092 <input type="image"
1093 onclick="setAction('sortBySectionNameUp', 'fullTextSearchForm');" 1093 onclick="setAction('sortBySectionNameUp', 'fullTextSearchForm');"
1094 src="<%=sessionBean.getApplicationBean().getUpImage()%>"/> 1094 src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>
1095 </td></tr> 1095 </td></tr>
1096 <tr><td> 1096 <tr><td>
1097 <input type="image" 1097 <input type="image"
1098 onclick="setAction('sortBySectionNameDown', 'fullTextSearchForm');" 1098 onclick="setAction('sortBySectionNameDown', 'fullTextSearchForm');"
1099 src="<%=sessionBean.getApplicationBean().getDownImage()%>"/> 1099 src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>
1100 </td></tr> 1100 </td></tr>
1101 </table> 1101 </table>
1102 </td> 1102 </td>
1103 </tr> 1103 </tr>
1104 </table> 1104 </table>
1105 </th> 1105 </th>
1106 --> 1106 -->
1107 <th><label class="tableTitle">Load Text</label></th> 1107 <th><label class="tableTitle">Load Text</label></th>
1108 <th> 1108 <th>
1109 <table class="sortTable"> 1109 <table class="sortTable">
1154 <th><label class="tableTitle">Select rows</label></th> 1154 <th><label class="tableTitle">Select rows</label></th>
1155 </tr> 1155 </tr>
1156 1156
1157 1157
1158 <% 1158 <%
1159 for (DBContents content : sessionBean 1159
1160 .getFullTextSearchPage().getDisplayList()) { 1160 long userId = sessionBean.getUser().getId();
1161 %> 1161 long userDefaultTopicId = sessionBean.getTopicListPage().getDefaultTopicId(userId);
1162 1162 String extractionInterfaceUrl = sessionBean.getApplicationBean().getExtractionInterfaceUrl();
1163 <% 1163 DBSection aDBSection = null;
1164 DBBook aDBBook = null;
1165 for (DBContents content : sessionBean.getFullTextSearchPage().getDisplayList()) {
1166
1167 aDBSection = content.getSection();
1168 aDBBook = aDBSection.getBook();
1169
1164 if (content.isRemoved()) { 1170 if (content.isRemoved()) {
1165 %> 1171 %>
1166 <tr class="removedContent"> 1172 <tr class="removedContent">
1167 <% 1173 <%
1168 } else { 1174 } else {
1169 %> 1175 %>
1170 1176
1171 <tr> 1177 <tr>
1172 <% 1178 <%
1173 } 1179 }
1174 %> 1180 %>
1175 1181
1176 <td><%=content.getInx()%></td> 1182 <td><%=content.getInx()%></td>
1177 <td><%=content.getBookId()%></td> 1183 <td><%=content.getBookId()%></td>
1178 <td><%=content.getSection().getBook().getName()%></td> 1184 <td><%=aDBBook.getName()%></td>
1179 <td><%=content.getSection().getBook().getLevel1()%></td> 1185 <td><%=aDBBook.getLevel1()%></td>
1180 <td><%=content.getSection().getBook().getLevel2()%></td> 1186 <td><%=aDBBook.getLevel2()%></td>
1181 <td><%=content.getSection().getBook().getDynasty()%></td> 1187 <td><%=aDBBook.getDynasty()%></td>
1182 <td><%=content.getSection().getBook().getPeriod()%></td> 1188 <td><%=aDBBook.getPeriod()%></td>
1183 <td><%=content.getSection().getBook() 1189 <td><%=aDBBook.getAdmin_type()%></td>
1184 .getAdmin_type()%></td> 1190 <td><%=aDBSection.getName()%></td>
1185 <td><%=content.getSection().getName()%></td>
1186 1191
1187 <!-- View text in Ext-Interface --> 1192 <!-- View text in Ext-Interface -->
1188 <td><a href="#" title="Show Section in Extraction Interface" 1193 <td><a href="#" title="Show Section in Extraction Interface"
1189 onclick="sectionInExtractionInterface('<%=content.getSection().getId()%>', '<%=content.getSection().getName()%>', '<%=content.getSection().getBook().getId()%>', '<%=content.getSection().getBook().getName()%>', '<%=sessionBean.getTopicListPage() 1194 onclick="sectionInExtractionInterface('<%=aDBSection.getId()%>', '<%=aDBSection.getName()%>', '<%=aDBBook.getId()%>', '<%=aDBBook.getName()%>', '<%=userDefaultTopicId%>', '<%=userId%>', '<%=extractionInterfaceUrl%>');">
1190 .getCompleteTopicList().get(0).getId()%>', '<%=sessionBean.getUser().getId()%>', '<%=sessionBean.getApplicationBean()
1191 .getExtractionInterfaceUrl()%>');">
1192 <img title="Show Section in Extraction Interface" 1195 <img title="Show Section in Extraction Interface"
1193 src="<%=sessionBean.getApplicationBean() 1196 src="<%=sessionBean.getApplicationBean().getShowImage()%>">
1194 .getShowImage()%>">
1195 </a></td> 1197 </a></td>
1196 1198
1197 1199
1198 <td><%=content.getPage()%></td> 1200 <td><%=content.getPage()%></td>
1199 <td class="content"><%=content.getContent()%></td> 1201 <td class="content"><%=content.getContent()%></td>
1200 <td id="content_<%=content.getId()%>"> 1202 <td id="content_<%=content.getId()%>">
1201 <% 1203 <%
1202 if (content.isRemoved()) { 1204 if (content.isRemoved()) {
1203 %> <input type="image" 1205 %> <input type="image"
1204 onclick="setMousePos(); setAction0('recoverFocusedContent', 'fullTextSearchForm', 'focusedContentId', '<%=content.getId()%>');" 1206 onclick="setMousePos(); setAction0('recoverFocusedContent', 'fullTextSearchForm', 'focusedContentId', '<%=content.getId()%>');"
1205 src="<%=sessionBean.getApplicationBean() 1207 src="<%=sessionBean.getApplicationBean().getCheckboxUncheckedImage()%>"
1206 .getCheckboxUncheckedImage()%>"
1207 width="20" height="20" /> <% 1208 width="20" height="20" /> <%
1208 } else { 1209 } else {
1209 %> <input type="image" 1210 %> <input type="image"
1210 onclick="setMousePos(); setAction0('removeFocusedContent', 'fullTextSearchForm', 'focusedContentId', '<%=content.getId()%>');" 1211 onclick="setMousePos(); setAction0('removeFocusedContent', 'fullTextSearchForm', 'focusedContentId', '<%=content.getId()%>');"
1211 src="<%=sessionBean.getApplicationBean() 1212 src="<%=sessionBean.getApplicationBean().getCheckboxCheckedImage()%>"
1212 .getCheckboxCheckedImage()%>"
1213 width="20" height="20" /> <% 1213 width="20" height="20" /> <%
1214 } 1214 }
1215 %> 1215 %>
1216 1216
1217 1217