Projekt

Obecné

Profil

Stáhnout (32.8 KB) Statistiky
| Větev: | Revize:
1
<div id="edit-modal" class="modal fade" role="dialog">
2
    <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
3
        <div class="modal-content">
4
            <div class="modal-header">
5
                <h4 class="modal-title"></h4>
6
                <button type="button" class="close" data-dismiss="modal">&times;</button>
7
            </div>
8
            <div class="modal-body">
9
                <div class="container">
10
                    <div class="row my-1">
11
                        <div class="col-xs-12 col-sm-4">
12
                            <label for="lemma">Lemma:</label>
13
                        </div>
14
                        <div class="col-xs-12 col-sm-8">
15
                            <input class="min-wdth" id="lemma"/>
16
                        </div>
17
                    </div>
18
                    <div class="row my-1">
19
                        <div class="col-xs-12 col-sm-4">
20
                            <label for="word">Slovo:</label>
21
                        </div>
22
                        <div class="col-xs-12 col-sm-8">
23
                            <input class="min-wdth" id="word"/>
24
                        </div>
25
                    </div>
26
                    <div class="row my-1">
27
                        <div class="col-xs-12 col-sm-4">
28
                            <label for="manuscript-m">Rukopisy:</label>
29
                        </div>
30
                        <div class="col-xs-12 col-sm-8">
31
                            <select id="manuscript-m" multiple>
32
                                <option value = "0">rukopis Vídeňský</option>
33
                                <option value = "1">zlomky Hanušovy</option>
34
                                <option value = "2">zlomky Hradecké</option>
35
                                <option value = "3">rukopis Cambridžský</option>
36
                                <option value = "4">rukopis Františkánský</option>
37
                                <option value = "5">zlomek Olomoucký</option>
38
                                <option value = "6">fragment Strahovský</option>
39
                                <option value = "7">zlomky Klementinsko-Křižovnické</option>
40
                                <option value = "8">zlomky Mnichovské</option>
41
                                <option value = "9">rukopis Lobkovický</option>
42
                                <option value = "10">rukopis Pelclův</option>
43
                                <option value = "11">rukopis Cerronský</option>
44
                                <option value = "12">rukopis Fürstenberský</option>
45
                                <option value = "13">rukopis Zebererův</option>
46
                                <option value = "14">vydání Pavla Ješína z Bezdězi, Praha 1620</option>
47
                                <option value = "15">básně připsané při Pulkavově kronice v rukopisu Litoměřickém</option>
48
                            </select>
49
                        </div>
50
                    </div>
51
                    <div class="row my-1">
52
                        <div class="col-xs-12 col-sm-4">
53
                            <label for="position">Pozice:</label>
54
                        </div>
55
                        <div class="col-xs-12 col-sm-8">
56
                            <input class="min-wdth" id="position" title="Jedotlivé oddíly zadávejte oddělené lomítkem (bez mezery)" />
57
                        </div>
58
                    </div>
59
                    <div class="row my-1">
60
                        <div class="col-xs-12 col-sm-4">
61
                            <label for="namedentity">Vlastní jméno:</label>
62
                        </div>
63
                        <div class="col-xs-12 col-sm-8">
64
                            <input type="checkbox" id="namedentity"/>
65
                        </div>
66
                    </div>
67
                    <div class="row my-1">
68
                        <div class="col-xs-12 col-sm-4">
69
                            <label for="context">Kontext:</label>
70
                        </div>
71
                        <div class="col-xs-12 col-sm-8">
72
                            <input class="min-wdth" id="context"/>
73
                        </div>
74
                    </div>
75
                    <div class="row my-1">
76
                        <div class="col-xs-12 col-sm-4">
77
                            <label for="description">Poznámka 1:</label>
78
                        </div>
79
                        <div class="col-xs-12 col-sm-8">
80
                            <input class="min-wdth" id="description"/>
81
                        </div>
82
                    </div>
83
                    <div class="row my-1">
84
                        <div class="col-xs-12 col-sm-4">
85
                            <label for="description2">Poznámka 2:</label>
86
                        </div>
87
                        <div class="col-xs-12 col-sm-8">
88
                            <input class="min-wdth" id="description2"/>
89
                        </div>
90
                    </div>
91
                    <div class="row my-1">
92
                        <div class="col-xs-12 col-sm-4">
93
                            <label for="description3">Poznámka 3:</label>
94
                        </div>
95
                        <div class="col-xs-12 col-sm-8">
96
                            <input class="min-wdth" id="description3"/>
97
                        </div>
98
                    </div>
99
                    <div class="row my-1">
100
                        <div class="col-xs-12 col-sm-4">
101
                            <label for="wordclass">Slovní druh:</label>
102
                        </div>
103
                        <div class="col-xs-12 col-sm-8">
104
                            <select class="min-wdth" onchange="changeWordType()"  id="wordclass">
105
                                <option selected="selected" value = "">nevybráno</option>
106
                                <option value = "N">substantivum</option>
107
                                <option value = "A">adjektivum</option>
108
                                <option value = "P">pronomen</option>
109
                                <option value = "C">numeralie</option>
110
                                <option value = "V">verbum</option>
111
                                <option value = "D">adverbium</option>
112
                                <option value = "R">prepozice</option>
113
                                <option value = "J">konjunkce</option>
114
                                <option value = "T">partikule</option>
115
                                <option value = "I">interjekce</option>
116
                            </select>
117
                        </div>
118
                    </div>
119

    
120
                    <!-- conditional render -->
121
                    <div class="row my-1" id="person-wrapper">
122
                        <div class="col-xs-12 col-sm-4">
123
                            <label for="person">Osoba:</label>
124
                        </div>
125
                        <div class="col-xs-12 col-sm-8">
126
                            <select class="min-wdth" id="person">
127
                                <option selected="selected" value = "">nevybráno</option>
128
                                <option value = "1">1.</option>
129
                                <option value = "2">2.</option>
130
                                <option value = "3">3.</option>
131
                            </select>
132
                        </div>
133
                    </div>
134
                    <div class="row my-1" id="case-wrapper">
135
                        <div class="col-xs-12 col-sm-4">
136
                            <label for="case">Pád:</label>
137
                        </div>
138
                        <div class="col-xs-12 col-sm-8">
139
                            <select class="min-wdth" id="case">
140
                                <option selected="selected" value = "">nevybráno</option>
141
                                <option value = "1">nominativ</option>
142
                                <option value = "2">genitiv</option>
143
                                <option value = "3">dativ</option>
144
                                <option value = "4">akuzativ</option>
145
                                <option value = "5">vokativ</option>
146
                                <option value = "6">lokál</option>
147
                                <option value = "7">instrumentál</option>
148
                            </select>
149
                        </div>
150
                    </div>
151
                    <div class="row my-1" id="countability-wrapper">
152
                        <div class="col-xs-12 col-sm-4">
153
                            <label for="countability">Číslo:</label>
154
                        </div>
155
                        <div class="col-xs-12 col-sm-8">
156
                            <select class="min-wdth" id="countability">
157
                                <option selected="selected" value = "">nevybráno</option>
158
                                <option value = "S">singulár</option>
159
                                <option value = "P">plurál</option>
160
                                <option value = "D">duál</option>
161
                            </select>
162
                        </div>
163
                    </div>
164
                    <div class="row my-1" id="mood-wrapper">
165
                        <div class="col-xs-12 col-sm-4">
166
                            <label for="mood">Způsob:</label>
167
                        </div>
168
                        <div class="col-xs-12 col-sm-8">
169
                            <select class="min-wdth" id="mood" onchange="moodChange()">
170
                                <option selected="selected" value = "">nevybráno</option>
171
                                <option value = "d">indikativ</option>
172
                                <option value = "i">imperativ</option>
173
                                <option value = "c">kondicionál</option>
174
                            </select>
175
                        </div>
176
                    </div>
177
                    <div class="row my-1" id="time-wrapper">
178
                        <div class="col-xs-12 col-sm-4">
179
                            <label for="time">Čas:</label>
180
                        </div>
181
                        <div class="col-xs-12 col-sm-8">
182
                            <select class="min-wdth" id="time">
183
                                <option selected="selected" value = "">nevybráno</option>
184
                                <option value = "P">prézens</option>
185
                                <option value = "A">aorist</option>
186
                                <option value = "R">préteritum</option>
187
                                <option value = "I">imperfektum</option>
188
                                <option value = "H">plusquamperfektum</option>
189
                                <option value = "F">futurum</option>
190
                            </select>
191
                        </div>
192
                    </div>
193
                    <div class="row my-1" id="v-type-wrapper">
194
                        <div class="col-xs-12 col-sm-4">
195
                            <label for="v-type">Slovesný rod:</label>
196
                        </div>
197
                        <div class="col-xs-12 col-sm-8">
198
                            <select class="min-wdth" id="v-type">
199
                                <option selected="selected" value = "">nevybráno</option>
200
                                <option value = "A">aktivum</option>
201
                                <option value = "P">pasivum</option>
202
                            </select>
203
                        </div>
204
                    </div>
205
                    <div class="row my-1" id="vid-wrapper">
206
                        <div class="col-xs-12 col-sm-4">
207
                            <label for="vid">Slovesný vid:</label>
208
                        </div>
209
                        <div class="col-xs-12 col-sm-8">
210
                            <select class="min-wdth" id="vid">
211
                                <option selected="selected" value = "">nevybráno</option>
212
                                <option value = "P">perfektivum</option>
213
                                <option value = "I">imperfektivum </option>
214
                            </select>
215
                        </div>
216
                    </div>
217
                    <div class="row my-1" id="irregular-wrapper">
218
                        <div class="col-xs-12 col-sm-4">
219
                            <label for="irregular">Neurčitý slovesný tvar:</label>
220
                        </div>
221
                        <div class="col-xs-12 col-sm-8">
222
                            <select class="min-wdth" id="irregular" onchange="irregularChange()">
223
                                <option selected="selected" value = "">nevybráno</option>
224
                                <option value = "f">infinitiv</option>
225
                                <option value = "S">supinum</option>
226
                                <option value = "e">přech. přítomný</option>
227
                                <option value = "m">přech. minulý</option>
228
                                <option value = "A">part. perf. akt.</option>
229
                                <option value = "P">part. perf. pas.</option>
230
                            </select>
231
                        </div>
232
                    </div>
233
                    <div class="row my-1" id="gender-wrapper">
234
                        <div class="col-xs-12 col-sm-4">
235
                            <label for="gender">Rod:</label>
236
                        </div>
237
                        <div class="col-xs-12 col-sm-8">
238
                            <select class="min-wdth" id="gender">
239
                                <option selected="selected" value = "">nevybráno</option>
240
                                <option value = "M">maskulinum</option>
241
                                <option value = "F">femininum</option>
242
                                <option value = "N">neutrum</option>
243
                            </select>
244
                        </div>
245
                    </div>
246
                    <div class="row my-1" id="shape-wrapper">
247
                        <div class="col-xs-12 col-sm-4">
248
                            <label for="shape">Tvar:</label>
249
                        </div>
250
                        <div class="col-xs-12 col-sm-8">
251
                            <select class="min-wdth" id="shape">
252
                                <option selected="selected" value = "">nevybráno</option>
253
                                <option value = "C">složený</option>
254
                                <option value = "N">jmenný</option>
255
                            </select>
256
                        </div>
257
                    </div>
258
                    <div class="row my-1" id="grade-wrapper">
259
                        <div class="col-xs-12 col-sm-4">
260
                            <label for="grade">Stupeň:</label>
261
                        </div>
262
                        <div class="col-xs-12 col-sm-8">
263
                            <select class="min-wdth" id="grade">
264
                                <option selected="selected" value = "">nevybráno</option>
265
                                <option value = "1">pozitiv</option>
266
                                <option value = "2">komparativ</option>
267
                                <option value = "3">superlativ</option>
268
                            </select>
269
                        </div>
270
                    </div>
271
                    <div class="row my-1" id="type-wrapper">
272
                        <div class="col-xs-12 col-sm-4">
273
                            <label for="type">Druh:</label>
274
                        </div>
275
                        <div class="col-xs-12 col-sm-8">
276
                            <select class="min-wdth" id="type">
277
                                <option selected="selected" value = "">nevybráno</option>
278
                                <option value = "P">personalia</option>
279
                                <option value = "S">posesiva</option>
280
                                <option value = "D">demonstrativa</option>
281
                                <option value = "Q">interogativa</option>
282
                                <option value = "J">relativa</option>
283
                                <option value = "Z">indefinita</option>
284
                                <option value = "L">limitativa</option>
285
                                <option value = "W">negativa</option>
286
                            </select>
287
                        </div>
288
                    </div>
289
                    <div class="row my-1" id="k-type-wrapper">
290
                        <div class="col-xs-12 col-sm-4">
291
                            <label for="k-type">Typ:</label>
292
                        </div>
293
                        <div class="col-xs-12 col-sm-8">
294
                            <select class="min-wdth" id="k-type">
295
                                <option selected="selected" value = "">nevybráno</option>
296
                                <option value = "V">větná</option>
297
                                <option value = "C">členská</option>
298
                                <option value = "N">navazovací</option>
299
                                <option value = "P">spojení s přechodníkem</option>
300
                            </select>
301
                        </div>
302
                    </div>
303
                </div>
304
            </div>
305
            <div class="modal-footer">
306
                <button type="button" id="submit-but" class="btn btn-default" data-dismiss="modal"></button>
307
                <button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
308
            </div>
309
        </div>
310
    </div>
311
</div>
312

    
313
<script>
314
    $('#edit-modal').on('show.bs.modal', function (event) {
315
        const button = $(event.relatedTarget);
316
        const pseudo_id = button.data('pseudo-id');// Extract info from data-* attributes
317
        const title = button.data('title');// Extract info from data-* attributes
318
        $('#manuscript-m').multiSelect({
319
            'noneText': 'nevybráno',
320
        });
321

    
322
        let modal = $(this);
323
        modal.find('.modal-title').text(title);
324
        modal.find('#mood').change(() => moodMChange(modal));
325
        modal.find('#irregular').change(() => irregularMChange(modal));
326

    
327
        if(title === "Nový záznam"){
328
            prefill(modal);
329
            changeWordType();
330
            modal.find('#submit-but').text("Založit");
331
            modal.find('#submit-but').click(() => createData(modal));
332
        } else {
333
            const data_obj = data[pseudo_id];
334
            modal.find('#submit-but').text("Upravit");
335
            modal.find('#submit-but').click(() => editData(data_obj, modal));
336
            changeWordType();
337
            prefill(modal, data_obj);
338
            moodMChange(modal);
339
            irregularMChange(modal);
340
        }
341
    });
342

    
343
    function changeWordType() {
344
        let modal = $('#edit-modal');
345
        const value = modal.find("#wordclass")[0].value;
346
        let movedNode;
347
        let beforeNode;
348
        switch (value) {
349
            case "N":
350
                setElementVisibility([
351
                    true,
352
                    true,
353
                    true,
354
                    false,
355
                    false,
356
                    false,
357
                    false,
358
                    false,
359
                    false,
360
                    false,
361
                    false,
362
                    false,
363
                    false
364
                ], modal);
365
                movedNode = modal.find("#case-wrapper");
366
                beforeNode = modal.find("#countability-wrapper");
367
                beforeNode.before(movedNode);
368
                break;
369
            case "A":
370
                setElementVisibility([
371
                    true,
372
                    true,
373
                    true,
374
                    true,
375
                    true,
376
                    false,
377
                    false,
378
                    false,
379
                    false,
380
                    false,
381
                    false,
382
                    false,
383
                    false
384
                ], modal);
385
                movedNode = modal.find("#case-wrapper");
386
                beforeNode = modal.find("#countability-wrapper");
387
                beforeNode.before(movedNode);
388
                break;
389
            case "P":
390
                setElementVisibility([
391
                    true,
392
                    true,
393
                    true,
394
                    false,
395
                    false,
396
                    true,
397
                    false,
398
                    false,
399
                    false,
400
                    false,
401
                    false,
402
                    false,
403
                    false
404
                ], modal);
405
                movedNode = modal.find("#case-wrapper");
406
                beforeNode = modal.find("#countability-wrapper");
407
                beforeNode.before(movedNode);
408
                break;
409
            case "C":
410
                setElementVisibility([
411
                    true,
412
                    true,
413
                    true,
414
                    false,
415
                    false,
416
                    false,
417
                    false,
418
                    false,
419
                    false,
420
                    false,
421
                    false,
422
                    false,
423
                    false
424
                ], modal);
425
                movedNode = modal.find("#case-wrapper");
426
                beforeNode = modal.find("#countability-wrapper");
427
                beforeNode.before(movedNode);
428
                break;
429
            case "V":
430
                setElementVisibility([
431
                    true,
432
                    true,
433
                    true,
434
                    false,
435
                    false,
436
                    false,
437
                    true,
438
                    true,
439
                    true,
440
                    true,
441
                    true,
442
                    true,
443
                    false
444
                ], modal);
445
                movedNode = modal.find("#case-wrapper");
446
                beforeNode = modal.find("#vid-wrapper");
447
                beforeNode.after(movedNode);
448
                break;
449
            case "D":
450
                setElementVisibility([
451
                    false,
452
                    false,
453
                    false,
454
                    false,
455
                    true,
456
                    false,
457
                    false,
458
                    false,
459
                    false,
460
                    false,
461
                    false,
462
                    false,
463
                    false
464
                ], modal);
465
                break;
466
            case "R":
467
                setElementVisibility([
468
                    true,
469
                    false,
470
                    false,
471
                    false,
472
                    false,
473
                    false,
474
                    false,
475
                    false,
476
                    false,
477
                    false,
478
                    false,
479
                    false,
480
                    false
481
                ], modal);
482
                break;
483
            case "J":
484
                setElementVisibility([
485
                    false,
486
                    false,
487
                    false,
488
                    false,
489
                    false,
490
                    false,
491
                    false,
492
                    false,
493
                    false,
494
                    false,
495
                    false,
496
                    false,
497
                    true
498
                ], modal);
499
                break;
500
            case "I":
501
                setElementVisibility([
502
                    false,
503
                    false,
504
                    false,
505
                    false,
506
                    false,
507
                    false,
508
                    false,
509
                    false,
510
                    false,
511
                    false,
512
                    false,
513
                    false,
514
                    false
515
                ], modal);
516
                break;
517
            case "T":
518
                setElementVisibility([
519
                    false,
520
                    false,
521
                    false,
522
                    false,
523
                    false,
524
                    false,
525
                    false,
526
                    false,
527
                    false,
528
                    false,
529
                    false,
530
                    false,
531
                    false
532
                ], modal);
533
                break;
534
            default:
535
                setElementVisibility([
536
                    false,
537
                    false,
538
                    false,
539
                    false,
540
                    false,
541
                    false,
542
                    false,
543
                    false,
544
                    false,
545
                    false,
546
                    false,
547
                    false,
548
                    false
549
                ], modal);
550
                break;
551
        }
552
    }
553

    
554
    const dynamicFields = [
555
        "#case-wrapper",
556
        "#countability-wrapper",
557
        "#gender-wrapper",
558
        "#shape-wrapper",
559
        "#grade-wrapper",
560
        "#type-wrapper",
561
        "#mood-wrapper",
562
        "#irregular-wrapper",
563
        "#person-wrapper",
564
        "#time-wrapper",
565
        "#vid-wrapper",
566
        "#v-type-wrapper",
567
        "#k-type-wrapper"
568
    ];
569

    
570
    const staticFields = [
571
        "#word",
572
        "#lemma",
573
        "#manuscript-m",
574
        "#position",
575
        "#namedentity",
576
        "#context",
577
        "#description",
578
        "#description2",
579
        "#description3",
580
        "#wordclass"
581
    ];
582

    
583
    function setElementVisibility(visibility, modal) {
584
        for(let i = 0; i < dynamicFields.length &&  i < visibility.length; i++){
585
            if(visibility[i] === true){
586
                modal.find(dynamicFields[i]).show();
587
            } else {
588
                modal.find(dynamicFields[i]).hide();
589
            }
590
            modal.find(dynamicFields[i].replace("-wrapper", "")).val("");
591
        }
592
    }
593

    
594
    function prefill(modal, data = null){
595
        staticFields.forEach((item) => {
596
            modal.find(item).val("");
597
        });
598

    
599
        modal.find("#namedentity").prop('checked', false);
600

    
601
        dynamicFields.forEach((item) => {
602
            modal.find(item.replace("-wrapper", "")).val("");
603
        });
604

    
605
        if(data !== null){
606
            modal.find("#context").val(data.context);
607
            modal.find("#description").val(data.description);
608
            modal.find("#description2").val(data.description2);
609
            modal.find("#description3").val(data.description3);
610
            modal.find("#namedentity").prop('checked', data.namedentity === 1);
611

    
612
            let position = data.position1;
613
            position += ((data.position2 !== null && data.position2.length > 0) ? ("/" + data.position2) : "");
614
            position += ((data.positiondetail !== null && data.positiondetail.length > 0) ? ("/" + data.positiondetail) : "");
615
            modal.find("#position").val(position);
616

    
617
            modal.find("#word").val(data.word);
618
            modal.find("#lemma").val(data.lemma.lemma);
619
            modal.find("#manuscript-m").val(data.manuscript);
620

    
621
            //dynamic setting
622
            const morphem = data.tag.tag;
623
            const wordclass = morphem.charAt(0);
624
            modal.find("#wordclass").val(wordclass);
625
            modal.find("#case").val((morphem.charAt(1) !== '-') ? morphem.charAt(1) : "");
626
            modal.find("#countability").val((morphem.charAt(2) !== '-') ? morphem.charAt(2) : "");
627
            modal.find("#gender").val((morphem.charAt(3) !== '-') ? morphem.charAt(3) : "");
628
            modal.find("#grade").val((morphem.charAt(4) !== '-') ? morphem.charAt(4) : "");
629
            modal.find("#shape").val((morphem.charAt(5) !== '-') ? morphem.charAt(5) : "");
630

    
631
            if(morphem.charAt(7) !== '-'){
632
                if(wordclass === 'J'){
633
                    modal.find("#k-type").val(morphem.charAt(7));
634
                } else if(wordclass === 'P'){
635
                    modal.find("#type").val(morphem.charAt(7));
636
                } else if(wordclass === 'V'){
637
                    if(codeToMood[morphem.charAt(7)] !== undefined) {
638
                        modal.find("#mood").val(morphem.charAt(7));
639
                    } else {
640
                        modal.find("#irregular").val(morphem.charAt(7));
641
                    }
642
                }
643
            }
644

    
645
            modal.find("#person").val((morphem.charAt(8) !== '-') ? morphem.charAt(8) : "");
646
            modal.find("#time").val((morphem.charAt(9) !== '-') ? morphem.charAt(9) : "");
647
            modal.find("#v-type").val((morphem.charAt(10) !== '-') ? morphem.charAt(10) : "");
648
            modal.find("#vid").val((morphem.charAt(11) !== '-') ? morphem.charAt(11) : "");
649
        }
650
    }
651

    
652
    function editData(data, modal){
653
        const formData = prepareFormData(modal);
654
        formData.append("id", data.id);
655

    
656
        //TODO the next three WILL be added in prepareFormData in future
657
        formData.append("description", data.description);
658
        formData.append("description2", data.description2);
659
        formData.append("description3", data.description3);
660

    
661
        formData.append("ending", data.ending);
662
        formData.append("finished", data.finished);
663
        formData.append("prefix", data.prefix);
664
        formData.append("suffix", data.suffix);
665

    
666
        var xhr = new XMLHttpRequest();
667
        xhr.open("POST", "./controller/UpdateController.php");
668
        xhr.send(formData);
669
    }
670

    
671
    function prepareFormData(modal) {
672
        const formData = new FormData();
673

    
674
        formData.append("namedentity", (modal.find("#namedentity")[0].checked) ? "1" : "0");
675

    
676
        const position = modal.find("#position")[0].value.split("/");
677
        formData.append("position1", position[0]);
678
        formData.append("position2", (position[1] !== undefined) ? position[1] : "");
679
        formData.append("positiondetail", (position[2] !== undefined) ? position[2] : "");
680

    
681
        formData.append("word", modal.find("#word")[0].value);
682
        formData.append("lemma", modal.find("#lemma")[0].value);
683
        formData.append("manuscript", modal.find("#manuscript-m")[0].value);
684
        formData.append("context", modal.find("#context")[0].value);
685
        formData.append("description", modal.find("#description")[0].value);
686
        formData.append("description2", modal.find("#description2")[0].value);
687
        formData.append("description3", modal.find("#description3")[0].value);
688

    
689
        //morphem creation
690
        let morphem = "";
691
        const wordClass = modal.find("#wordclass")[0].value;
692
        morphem += ((wordClass.length > 0) ? wordClass.value : "-");
693
        morphem += ((modal.find("#case")[0].value.length > 0) ? modal.find("#case")[0].value : "-");
694
        morphem += ((modal.find("#countability")[0].value.length > 0) ? modal.find("#countability")[0].value : "-");
695
        morphem += ((modal.find("#gender")[0].value.length > 0) ? modal.find("#gender")[0].value : "-");
696
        morphem += ((modal.find("#grade")[0].value.length > 0) ? modal.find("#grade")[0].value : "-");
697
        morphem += ((modal.find("#shape")[0].value.length > 0) ? modal.find("#shape")[0].value : "-");
698
        morphem += "-";
699

    
700
        if(wordClass === "J"){
701
            morphem += ((modal.find("#k-type")[0].value.length > 0) ? modal.find("#k-type")[0].value : "-");
702
        } else if(wordClass === "P") {
703
            morphem += ((modal.find("#type")[0].value.length > 0) ? modal.find("#type")[0].value : "-");
704
        } else if(wordClass === "V"){
705
            const value1 = modal.find("#mood")[0].value;
706
            const value2 = modal.find("#irregular")[0].value;
707
            if(value1.length > 0){
708
                morphem += value1;
709
            } else if(value2.length > 0){
710
                morphem += value2;
711
            } else {
712
                morphem += "-";
713
            }
714
        } else {
715
            morphem += "-";
716
        }
717

    
718
        morphem += ((modal.find("#person")[0].value.length > 0) ? modal.find("#person")[0].value : "-");
719
        morphem += ((modal.find("#time")[0].value.length > 0) ? modal.find("#time")[0].value : "-");
720
        morphem += ((modal.find("#v-type")[0].value.length > 0) ? modal.find("#v-type")[0].value : "-");
721
        morphem += ((modal.find("#vid")[0].value.length > 0) ? modal.find("#vid")[0].value : "-");
722
        formData.append("tag", morphem);
723
        formData.append("pos", wordclassToNum[wordClass]);
724

    
725
        return formData;
726
    }
727

    
728
    function moodMChange(modal) {
729
        if(modal.find("#mood")[0].value !== ""){
730
            modal.find("#irregular").prop('disabled', true);
731
            modal.find("#irregular").prop('title', "Neurčitý slovesný tvar smí být nastaven pouze není-li nastaven způsob");
732
        } else {
733
            modal.find("#irregular").prop('disabled', false);
734
            modal.find("#irregular").prop('title', "");
735
        }
736
    }
737

    
738
    function irregularMChange(modal) {
739
        if(modal.find("#irregular")[0].value !== ""){
740
            modal.find("#mood").prop('disabled', true);
741
            modal.find("#mood").prop('title', "Způsob smí být nastaven pouze není-li nastaven neurčitý slovesný tvar");
742
        } else {
743
            modal.find("#mood").prop('disabled', false);
744
            modal.find("#mood").prop('title', "");
745
        }
746
    }
747

    
748
    function createData(modal){
749
        const formData = prepareFormData(modal);
750

    
751
        formData.append("finished", false);
752

    
753
        /* TODO create with merge
754
        var xhr = new XMLHttpRequest();
755
        xhr.open("POST", "../controller/InsertController.php");
756
        xhr.send(formData);
757
        */
758
    }
759
</script>
(2-2/4)