2 |
2 |
window.onload = function() {
|
3 |
3 |
let sourceSelect = new vanillaSelectBox("#source");
|
4 |
4 |
filtersChange();
|
5 |
|
fetchData();
|
|
5 |
fetchData(false);
|
6 |
6 |
};
|
7 |
7 |
</script>
|
8 |
8 |
|
9 |
9 |
<div class="search-filters container" onload="filtersChange()">
|
10 |
10 |
<div class="row">
|
11 |
|
<div class="mr-3">
|
12 |
|
<label for="lemma" class="mr-2">Lemma</label>
|
13 |
|
<input type="text" id="lemma">
|
14 |
|
</div>
|
15 |
11 |
<div class="mr-3">
|
16 |
12 |
<label for="wordshape" class="mr-2">Slovo</label>
|
17 |
13 |
<input type="text" id="wordshape">
|
18 |
14 |
</div>
|
|
15 |
<div class="mr-3">
|
|
16 |
<label for="lemma" class="mr-2">Lemma</label>
|
|
17 |
<input type="text" id="lemma">
|
|
18 |
</div>
|
19 |
19 |
<div class="mr-3">
|
20 |
20 |
<label for="source" class="mr-2">Rukopisný pramen</label>
|
21 |
21 |
<select id="source" multiple>
|
22 |
|
<option value = "1">C</option>
|
23 |
|
<option value = "2">Cr</option>
|
24 |
|
<option value = "3">F</option>
|
25 |
|
<option value = "4">Fs</option>
|
26 |
|
<option value = "5">H</option>
|
27 |
|
<option value = "6">Hr</option>
|
28 |
|
<option value = "7">Jš</option>
|
29 |
|
<option value = "8">K</option>
|
30 |
|
<option value = "9">L</option>
|
31 |
|
<option value = "10">M</option>
|
32 |
|
<option value = "11">O</option>
|
33 |
|
<option value = "12">P</option>
|
34 |
|
<option value = "13">S</option>
|
35 |
|
<option value = "14">V</option>
|
36 |
|
<option value = "15">Z</option>
|
|
22 |
<option value = "0">rukopis Vídeňský</option>
|
|
23 |
<option value = "1">zlomky Hanušovy</option>
|
|
24 |
<option value = "2">zlomky Hradecké</option>
|
|
25 |
<option value = "3">rukopis Cambridžský</option>
|
|
26 |
<option value = "4">rukopis Františkánský</option>
|
|
27 |
<option value = "5">zlomek Olomoucký</option>
|
|
28 |
<option value = "6">fragment Strahovský</option>
|
|
29 |
<option value = "7">zlomky Klementinsko-Křižovnické</option>
|
|
30 |
<option value = "8">zlomky Mnichovské</option>
|
|
31 |
<option value = "9">rukopis Lobkovický</option>
|
|
32 |
<option value = "10">rukopis Pelclův</option>
|
|
33 |
<option value = "11">rukopis Cerronský</option>
|
|
34 |
<option value = "12">rukopis Fürstenberský</option>
|
|
35 |
<option value = "13">rukopis Zebererův</option>
|
|
36 |
<option value = "14">vydání Pavla Ješína z Bezdězi, Praha 1620</option>
|
|
37 |
<option value = "15">básně připsané při Pulkavově kronice v rukopisu Litoměřickém</option>
|
37 |
38 |
</select>
|
38 |
39 |
</div>
|
39 |
40 |
<div class="mr-3">
|
... | ... | |
46 |
47 |
<label for="wordclass" class="mr-2">Slovní druh</label>
|
47 |
48 |
<select onchange="filtersChange()" id="wordclass">
|
48 |
49 |
<option selected="selected" value = "">Nevybráno</option>
|
49 |
|
<option value = "1">Substantiva</option>
|
50 |
|
<option value = "2">Adjektiva</option>
|
51 |
|
<option value = "3">Pronomina</option>
|
52 |
|
<option value = "4">Numeralia</option>
|
53 |
|
<option value = "5">Verba</option>
|
54 |
|
<option value = "6">Adverbia</option>
|
55 |
|
<option value = "7">Prepozice</option>
|
56 |
|
<option value = "8">Konjunkce</option>
|
57 |
|
<option value = "9">Interjekce</option>
|
58 |
|
<option value = "10">Partikule</option>
|
|
50 |
<option value = "N">Substantiva</option>
|
|
51 |
<option value = "A">Adjektiva</option>
|
|
52 |
<option value = "P">Pronomina</option>
|
|
53 |
<option value = "C">Numeralia</option>
|
|
54 |
<option value = "V">Verba</option>
|
|
55 |
<option value = "D">Adverbia</option>
|
|
56 |
<option value = "R">Prepozice</option>
|
|
57 |
<option value = "J">Konjunkce</option>
|
|
58 |
<option value = "I">Interjekce</option>
|
|
59 |
<option value = "T">Partikule</option>
|
59 |
60 |
</select>
|
60 |
61 |
</div>
|
61 |
62 |
|
... | ... | |
63 |
64 |
function filtersChange() {
|
64 |
65 |
const value = document.getElementById("wordclass").value;
|
65 |
66 |
switch (value) {
|
66 |
|
case "1":
|
|
67 |
case "N":
|
67 |
68 |
setFilerVisibility([
|
68 |
69 |
true,
|
69 |
70 |
true,
|
... | ... | |
79 |
80 |
false
|
80 |
81 |
]);
|
81 |
82 |
break;
|
82 |
|
case "2":
|
|
83 |
case "A":
|
83 |
84 |
setFilerVisibility([
|
84 |
85 |
true,
|
85 |
86 |
true,
|
... | ... | |
95 |
96 |
false
|
96 |
97 |
]);
|
97 |
98 |
break;
|
98 |
|
case "3":
|
|
99 |
case "P":
|
99 |
100 |
setFilerVisibility([
|
100 |
101 |
true,
|
101 |
102 |
true,
|
... | ... | |
111 |
112 |
false
|
112 |
113 |
]);
|
113 |
114 |
break;
|
114 |
|
case "4":
|
|
115 |
case "C":
|
115 |
116 |
setFilerVisibility([
|
116 |
117 |
true,
|
117 |
118 |
true,
|
... | ... | |
127 |
128 |
false
|
128 |
129 |
]);
|
129 |
130 |
break;
|
130 |
|
case "5":
|
|
131 |
case "V":
|
131 |
132 |
setFilerVisibility([
|
132 |
133 |
true,
|
133 |
134 |
true,
|
... | ... | |
143 |
144 |
false
|
144 |
145 |
]);
|
145 |
146 |
break;
|
146 |
|
case "6":
|
|
147 |
case "D":
|
147 |
148 |
setFilerVisibility([
|
148 |
149 |
false,
|
149 |
150 |
false,
|
... | ... | |
159 |
160 |
false
|
160 |
161 |
]);
|
161 |
162 |
break;
|
162 |
|
case "7":
|
|
163 |
case "R":
|
163 |
164 |
setFilerVisibility([
|
164 |
165 |
true,
|
165 |
166 |
false,
|
... | ... | |
175 |
176 |
false
|
176 |
177 |
]);
|
177 |
178 |
break;
|
178 |
|
case "8":
|
|
179 |
case "J":
|
179 |
180 |
setFilerVisibility([
|
180 |
181 |
false,
|
181 |
182 |
false,
|
... | ... | |
191 |
192 |
true
|
192 |
193 |
]);
|
193 |
194 |
break;
|
194 |
|
case "9":
|
|
195 |
case "I":
|
195 |
196 |
setFilerVisibility([
|
196 |
197 |
false,
|
197 |
198 |
false,
|
... | ... | |
207 |
208 |
false
|
208 |
209 |
]);
|
209 |
210 |
break;
|
210 |
|
case "10":
|
|
211 |
case "T":
|
211 |
212 |
setFilerVisibility([
|
212 |
213 |
false,
|
213 |
214 |
false,
|
... | ... | |
392 |
393 |
</div>
|
393 |
394 |
|
394 |
395 |
<!-- send button-->
|
395 |
|
<button class="ml-auto btn" onclick="filterData()">
|
|
396 |
<button class="ml-auto btn" onclick="fetchData(true)">
|
396 |
397 |
Filtrovat
|
397 |
398 |
</button>
|
398 |
399 |
</div>
|
... | ... | |
411 |
412 |
</thead>
|
412 |
413 |
<tbody id="search-table">
|
413 |
414 |
<script>
|
414 |
|
function filterData () {
|
415 |
|
//TODO
|
416 |
|
}
|
417 |
|
|
418 |
415 |
let data;
|
|
416 |
function filterData (formData) {
|
|
417 |
//regular
|
|
418 |
formData.append("lemma", document.getElementById("lemma").value);
|
|
419 |
formData.append("word", document.getElementById("wordshape").value);
|
|
420 |
|
|
421 |
//positions
|
|
422 |
const positionSplit = document.getElementById("location").value.split("/");
|
|
423 |
formData.append("position1", positionSplit[0] !== undefined ? positionSplit[0] : "");
|
|
424 |
formData.append("position2", positionSplit[1] !== undefined ? positionSplit[1] : "");
|
|
425 |
formData.append("positiondetail", positionSplit[2] !== undefined ? positionSplit[2] : "");
|
419 |
426 |
|
420 |
|
function fetchData () {
|
|
427 |
//multiselect
|
|
428 |
formData.append("manuscript", getValues("source"));
|
|
429 |
|
|
430 |
const pos = document.getElementById("wordclass").value;
|
|
431 |
formData.append("tag_pos", pos);
|
|
432 |
//those upcoming are dynamic based on the previous field
|
|
433 |
formData.append("tag_case", document.getElementById("case").value);
|
|
434 |
formData.append("tag_number", document.getElementById("countability").value);
|
|
435 |
formData.append("tag_gender", document.getElementById("gender").value);
|
|
436 |
formData.append("tag_degree", document.getElementById("grade").value);
|
|
437 |
formData.append("tag_shape", document.getElementById("shape").value);
|
|
438 |
formData.append("tag_num", "");//THIS ONE IS WORTHLESS
|
|
439 |
|
|
440 |
if(pos === "P"){
|
|
441 |
formData.append("tag_sentence", document.getElementById("type").value);
|
|
442 |
} else if(pos === "V"){
|
|
443 |
formData.append("tag_sentence", document.getElementById("mood").value);
|
|
444 |
} else if(pos === "J"){
|
|
445 |
formData.append("tag_sentence", document.getElementById("k-type").value);
|
|
446 |
}
|
|
447 |
|
|
448 |
formData.append("tag_verb_person", document.getElementById("person").value);
|
|
449 |
formData.append("tag_verb_time", document.getElementById("time").value);
|
|
450 |
formData.append("tag_verb_degree", document.getElementById("vid").value);
|
|
451 |
formData.append("tag_verb_aspect", document.getElementById("v-type").value);
|
|
452 |
}
|
|
453 |
|
|
454 |
function fetchData (filter = true) {
|
421 |
455 |
// (A1) GET SEARCH TERM
|
422 |
456 |
const formData = new FormData();
|
423 |
457 |
formData.append("page", "0");//TODO PAGING
|
424 |
458 |
formData.append("items_per_page", "50");//TODO PAGING
|
425 |
459 |
formData.append("finished", "true");//TODO ADMIN
|
426 |
460 |
|
|
461 |
if(filter){
|
|
462 |
filterData(formData);
|
|
463 |
}
|
|
464 |
|
427 |
465 |
// (A2) AJAX - USE HTTP:// NOT FILE://
|
428 |
466 |
let xhr = new XMLHttpRequest();
|
429 |
467 |
xhr.open("POST", "./controller/TableController.php");
|
430 |
468 |
xhr.onload = function(){
|
431 |
469 |
let search = this.response;
|
432 |
470 |
let parsedJSON = JSON.parse(search);
|
|
471 |
if(parsedJSON.count === 0){
|
|
472 |
document.getElementById("no-data-label").style.display = "";
|
|
473 |
} else {
|
|
474 |
document.getElementById("no-data-label").style.display = "none";
|
|
475 |
}
|
433 |
476 |
data = parsedJSON.data;
|
434 |
477 |
renderData(parsedJSON.data);
|
435 |
478 |
};
|
... | ... | |
489 |
532 |
</script>
|
490 |
533 |
</tbody>
|
491 |
534 |
</table>
|
|
535 |
|
|
536 |
<h3 id="no-data-label" class="mx-auto text-center font-italic">Žádná data nebyla nalezena</h3>
|
492 |
537 |
</div>
|
493 |
538 |
|
494 |
539 |
|
Feature #8349: Napojení metod serveru