Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 0b2d6e69

Přidáno uživatelem Jan Čarnogurský před asi 4 roky(ů)

  • ID 0b2d6e694df2e0a3d6e0eacd553817666468271f
  • Rodič 14917d37

temp

Zobrazit rozdíly:

src/main/java/vldc/aswi/web/controller/AssemblyController.java
70 70

  
71 71
        return modelAndView;
72 72
    }
73

  
74

  
75
    @GetMapping("/assembly_create")
76
    public ModelAndView assemblyCreateIndex(@Valid @ModelAttribute("assemblyID") String id) {
77
        ModelAndView modelAndView = new ModelAndView("assembly_edit");
78

  
79
        ModelMap modelMap = modelAndView.getModelMap();
80

  
81
        Assembly assembly = new Assembly();
82

  
83
        modelMap.addAttribute("assemblies", assemblyManager.getAssemblies());
84
        modelMap.addAttribute("assembly", assembly);
85

  
86
        return modelAndView;
87
    }
73 88
}
src/main/webapp/WEB-INF/templates/assembly_edit.html
18 18
    <script type="text/javascript" src="js/jquery.js"></script>
19 19
    <script type="text/javascript" src="js/bootstrap.min.js"></script>
20 20
    <script type="text/javascript" src="js/bootstrap-select.min.js"></script>
21

  
22
    <link href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css" rel="stylesheet">
23

  
24
    <script type="text/javascript" src="js/jquery.js"></script>
25
    <script src="//code.jquery.com/jquery-1.11.1.js"></script>
26
    <script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
21 27
</head>
22 28
<body>
23 29
<div id="test"></div>
......
64 70
      <button type="button" class="btn btn-success"><i class="fas fa-plus"></i> Přidat parametr</button>
65 71
    </div>
66 72

  
67
    <div class="panel-group" id="accordion">
73
    <div class="panel-group sort" id="accordion">
68 74
      <div class="panel panel-default">
69 75

  
70 76
        <div class="panel-heading">
......
98 104
                <input type="text" class="form-control" id="name">
99 105
              </div>
100 106
            </div>
101
            <div class="form-group row">
107
            <div class="form-group row type-row">
102 108
              <label for="exampleFormControlSelect1" class="col-sm-2">Typ:</label>
103 109
              <div class="col-sm-10">
104
                <select class="form-control" id="exampleFormControlSelect1">
110
                <select class="form-control type-select">
105 111
                  <option>Text</option>
106 112
                  <option>Datum</option>
107 113
                  <option>Výčet</option>
......
181 187
                <input type="text" class="form-control" id="name">
182 188
              </div>
183 189
            </div>
184
            <div class="form-group row">
190
            <div class="form-group row type-row">
185 191
              <label for="exampleFormControlSelect1" class="col-sm-2">Typ:</label>
186 192
              <div class="col-sm-10">
187
                <select class="form-control" id="exampleFormControlSelect1">
193
                <select class="form-control type-select">
188 194
                  <option>Text</option>
189 195
                  <option>Datum</option>
190 196
                  <option>Výčet</option>
......
263 269
                <input type="text" class="form-control" id="name">
264 270
              </div>
265 271
            </div>
266
            <div class="form-group row">
272
            <div class="form-group row type-row">
267 273
              <label for="exampleFormControlSelect1" class="col-sm-2">Typ:</label>
268 274
              <div class="col-sm-10">
269
                <select class="form-control" id="exampleFormControlSelect1">
270
                  <option>Text</option>
271
                  <option>Datum</option>
272
                  <option>Výčet</option>
275
                <select class="form-control type-select">
276
                  <option value="1">Text</option>
277
                  <option value="2">Datum</option>
278
                  <option value="3">Výčet</option>
273 279
                </select>
274 280
              </div>
275 281
            </div>
......
277 283
            <div class="enum_box">
278 284
              Hodnoty:
279 285
              <div class="enum_values col-md-8">
280
                <div class="input-action-box input-border-bottom">
281
                  <input type="text" readonly class="form-control-plaintext" id="staticEmail" value="Doktorský">
282

  
283
                  <span class="action-padding input-action-margin sort-icon">
284
                    <i class="fas fa-sort"></i>
285
                  </span>
286
                  <span class="action-padding action-button input-action-margin">
287
                    <a href=# class="action-link far fa-trash-alt"></a>
288
                  </span>
286
                  <div id="enum-wrapper">
287
                    <div class="input-action-box input-border-bottom">
288
                      <input type="text" readonly class="form-control-plaintext" value="Doktorský">
289

  
290
                      <span class="action-padding input-action-margin sort-icon">
291
                        <i class="fas fa-sort"></i>
292
                      </span>
293
                      <span class="action-padding action-button input-action-margin">
294
                        <a href=# class="action-link far fa-trash-alt"></a>
295
                      </span>
296
                    </div>
297
                    <div class="input-action-box input-border-bottom">
298
                      <input type="text" readonly class="form-control-plaintext" value="Navazující">
299

  
300
                      <span class="action-padding input-action-margin sort-icon">
301
                        <i class="fas fa-sort"></i>
302
                      </span>
303
                      <span class="action-padding action-button input-action-margin">
304
                        <a href=# class="action-link far fa-trash-alt"></a>
305
                      </span>
306

  
307
                    </div>
308
                    <div class="input-action-box input-border-bottom">
309
                      <input type="text" readonly class="form-control-plaintext" value="Bakalářský">
310

  
311
                      <span class="action-padding input-action-margin sort-icon">
312
                        <i class="fas fa-sort"></i>
313
                      </span>
314
                      <span class="action-padding action-button input-action-margin">
315
                        <a href=# class="action-link far fa-trash-alt"></a>
316
                      </span>
317
                    </div>
289 318
                </div>
290
                <div class="input-action-box input-border-bottom">
291
                  <input type="text" readonly class="form-control-plaintext" id="staticEmail" value="Navazující">
292

  
293
                  <span class="action-padding input-action-margin sort-icon">
294
                    <i class="fas fa-sort"></i>
295
                  </span>
296
                  <span class="action-padding action-button input-action-margin">
297
                    <a href=# class="action-link far fa-trash-alt"></a>
298
                  </span>
299

  
300
                </div>
301
                <div class="input-action-box input-border-bottom">
302
                  <input type="text" readonly class="form-control-plaintext" id="staticEmail" value="Bakalářský">
303

  
304
                  <span class="action-padding input-action-margin sort-icon">
305
                    <i class="fas fa-sort"></i>
306
                  </span>
307
                  <span class="action-padding action-button input-action-margin">
308
                    <a href=# class="action-link far fa-trash-alt"></a>
309
                  </span>
310
                </div>
311

  
312 319
                <div class="form-group row form-add-item">
313 320
                  <div class="col-md-9">
314
                    <input type="text" class="form-control" id="name">
321
                    <input id="enum-input" type="text" class="form-control">
315 322
                  </div>
316
                  <button type="submit" class="btn btn-primary mb-2">Přidat</button>
323
                  <span id="enum-button" class="btn btn-primary mb-2">Přidat</span>
317 324
                </div>
318

  
319

  
320

  
321

  
322 325
              </div>
323 326
            </div>
324 327

  
......
373 376
    <div class="box-header">
374 377
      <h3 class="box-title">Oprávnění</h3>
375 378
    </div>
376
    <div class="input-action-box input-border-bottom">
377
      <input type="text" readonly class="form-control-plaintext" id="staticEmail" value="Rektor">
378

  
379
      <span class="action-padding input-action-margin sort-icon">
380
        <i class="fas fa-sort"></i>
381
      </span>
382
      <span class="action-padding action-button input-action-margin">
383
        <a href=# class="action-link far fa-trash-alt"></a>
384
      </span>
385
    </div>
386
    <div class="input-action-box input-border-bottom">
387
      <input type="text" readonly class="form-control-plaintext" id="staticEmail" value="Referentka">
388

  
389
      <span class="action-padding input-action-margin sort-icon">
390
        <i class="fas fa-sort"></i>
391
      </span>
392
      <span class="action-padding action-button input-action-margin">
393
        <a href=# class="action-link far fa-trash-alt"></a>
394
      </span>
379
    <div id ="permission-wrapper">
380
        <div class="input-action-box input-border-bottom input-row">
381
            <input type="text" readonly class="form-control-plaintext permission-role" id="1" value="Rektor">
382
            <span class="action-padding action-button input-action-margin">
383
                <a href=# class="action-link far fa-trash-alt" onclick="removeRole(this);"></a>
384
            </span>
385
        </div>
386
        <div class="input-action-box input-border-bottom input-row">
387
            <input type="text" readonly class="form-control-plaintext permission-role" id="2" value="Referentka">
388
            <span class="action-padding action-button input-action-margin">
389
                <a href=# class="action-link far fa-trash-alt" onclick="removeRole(this);"></a>
390
            </span>
391
        </div>
395 392
    </div>
396 393

  
397 394
    <div class="form-group row form-add-item">
398 395
      <div class="col-md-9">
399
        <select class="form-control " id="exampleFormControlSelect1">
400
          <option>Rektor</option>
401
          <option>Studijní oddělení</option>
402
          <option>Strudenti</option>
396
        <select class="form-control " id="permission-select" name="permission-select">
397
          <option value="1">Rektor</option>
398
          <option value="2">Studijní oddělení</option>
399
          <option value="3">Strudenti</option>
403 400
        </select>
404 401
      </div>
405
      <button type="submit" class="btn btn-primary mb-2">Přidat</button>
402
      <span class="btn btn-primary mb-2" id="permission-button">Přidat</span>
406 403
    </div>
407 404
  </div>
408 405
</div>
......
425 422
</body>
426 423
</html>
427 424
<script type="text/javascript">
428
$("select").selectpicker();
425

  
426
    $(document).ready(function() {
427
        $(".sort").sortable().disableSelection();
428
        $("#enum-wrapper").sortable().disableSelection();
429

  
430
        $('.type-select').on('change', function () {
431
            if (this.value == 3)
432
            {
433
        console.log('a');
434
                addEnum(this);
435
            }
436
            else
437
            {
438
                removeEnum(this);
439
            }
440
        });
441

  
442

  
443
        $('.fa-trash-alt').click(function(event){
444
            event.preventDefault();
445
        });
446

  
447
    });
448

  
449
    $('#permission-button').on('click', function () {
450
        var selectedRoleId = $('select[name=permission-select] option').filter(':selected').val();
451
        var selectedRoleValue = $('select[name=permission-select] option').filter(':selected').text();
452

  
453
        var addedRoles = $('.permission-role');
454

  
455
        var roles = [];
456

  
457
        // get assigned roles
458
        addedRoles.each(function () {
459
            roles.push($(this).attr('id'))
460
        });
461

  
462
        if (roles.includes(selectedRoleId))
463
        {
464
            return;
465
        }
466

  
467
        addPermissionRow(selectedRoleId, selectedRoleValue);
468

  
469
    });
470

  
471

  
472
    function addPermissionRow(id, value){
473

  
474
        let row = document.createElement('div');
475
        row.classList.add('input-action-box', 'input-border-bottom', 'permission-row');
476

  
477
        let input = document.createElement('input');
478
        input.type = 'text';
479
        input.classList.add('form-control-plaintext', 'permission-role');
480
        input.id = id;
481
        input.value = value;
482
        input.setAttribute('readonly', "true");
483

  
484
        row.appendChild(input);
485

  
486
        let actionButton = document.createElement('span');
487
        actionButton.classList.add('action-padding', 'action-button', 'input-action-margin');
488

  
489
        let deleteButton = document.createElement('a');
490
        deleteButton.classList.add('action-link', 'far', 'fa-trash-alt');
491
        deleteButton.setAttribute('onclick', 'removeRole(this);');
492
        deleteButton.setAttribute('role', 'button');
493

  
494
        actionButton.appendChild(deleteButton);
495
        row.appendChild(actionButton);
496

  
497
        document.getElementById('permission-wrapper').appendChild(row);
498

  
499
    };
500

  
501
    $('#enum-button').on('click', function () {
502
        var value = $('#enum-input').val();
503
        console.log('a');
504
        addEnumRow(value);
505

  
506

  
507

  
508
    });
509

  
510
    function addEnumRow(value)
511
    {
512
      let row = document.createElement('div');
513
      row.classList.add('input-action-box', 'input-border-bottom');
514

  
515

  
516
      let input = document.createElement('input');
517
      input.type = 'text';
518
      input.classList.add('form-control-plaintext');
519
      input.value = value;
520
      input.setAttribute('readonly', "true");
521

  
522
      row.appendChild(input);
523

  
524
      let sortSpan = document.createElement('span');
525
      sortSpan.classList.add('action-padding', 'input-action-margin', 'sort-icon');
526
      sortSpan.innerHTML = "<i class=\"fas fa-sort\"></i>";
527

  
528
      row.appendChild(sortSpan);
529

  
530
      let deleteSpan = document.createElement('span');
531
      deleteSpan.classList.add('action-padding', 'input-action-margin', 'action-button');
532

  
533
      let deleteButton = document.createElement('a');
534
      deleteButton.classList.add('action-link', 'far', 'fa-trash-alt');
535
      deleteButton.setAttribute('onclick', 'removeEnum(this);');
536

  
537
      deleteSpan.appendChild(deleteButton);
538

  
539
      row.appendChild(deleteSpan);
540

  
541
      document.getElementById('enum-wrapper').appendChild(row);
542

  
543
    }
544

  
545

  
546
    function removeRole (selectedField) {
547
        selectedField.closest('.input-row').remove();
548
    }
549

  
550

  
551
    function addEnum(select)
552
    {
553
      console.log(select.parent());
554
      let row = document.createElement('div');
555
      row.classList.add('enum_box');
556
      row.innerHTML = "Hodnoty:";
557

  
558
      let values = document.createElement('div');
559
      values.classList.add('enum_values', 'col-md-8');
560

  
561
      let valuesWrapper = document.createElement('div');
562
      valuesWrapper.id = "enum-wrapper";
563

  
564
      values.appendChild(valuesWrapper);
565

  
566
      let addButtonDiv = document.createElement('div');
567
      addButtonDiv.classList.add('form-group', 'row', 'form-add-item');
568

  
569
      let addInnerButton = document.createElement('div');
570
      addInnerButton.classList.add('col-md-9');
571

  
572
      let input = document.createElement('input');
573
      input.type = 'text';
574
      input.id = "enum-input";
575
      input.classList.add('form-control');
576

  
577

  
578
      let addButton = document.createElement('span');
579
      addButton.classList.add('btn', 'btn-primary', 'mb-2');
580
      addButton.innerHTML = 'Přidat';
581
      addButton.id = "enum-button";
582

  
583
      addInnerButton.appendChild(input);
584
      addButtonDiv.appendChild(addInnerButton);
585
      addButtonDiv.appendChild(addButton);
586

  
587
      values.appendChild(addButtonDiv);
588
      row.appendChild(values);
589

  
590
      select.appendChild(row);
591

  
592
      $(row).insertAfter($('.type-row'));
593

  
594
      $('#enum-button').on('click', function () {
595
        var value = $('#enum-input').val();
596
        console.log('a');
597
        addEnumRow(value);
598
      });
599
    }
600

  
601
  
602
    function removeEnum(select) {
603
      $('.enum_box').remove();
604

  
605
    }
606

  
429 607
</script>
608

  
src/main/webapp/WEB-INF/templates/index.html
13 13
	<link href="css/fontawesome.min.css" rel="stylesheet">
14 14
	<link href="css/style.css" rel="stylesheet">
15 15

  
16

  
17 16
</head>
18 17
	<body>
19 18
	<div id="test"></div>
......
42 41
					<tr>
43 42
						<td><a href=#>Vlastní šablona 2, Vlastní šablona 2, Vlastní šablona 2, Vlastní šablona 2</a></td>
44 43
						<td class="center-cell">
45
				  <span class="action-button">
46
					<a href=# class="action-link far fa-trash-alt"></a>
47
				  </span>
44
						  <span class="action-button">
45
							<a href=# class="action-link far fa-trash-alt"></a>
46
						  </span>
48 47
						</td>
49 48
					</tr>
50 49
					</tbody>
......
57 56
				<h3 class="box-title">Seznam sestav</h3>
58 57
			</div>
59 58
			<div class="button-container">
60
				<button type="button" class="btn btn-success"><i class="fas fa-plus"></i> Přidat novou sestavu</button>
59
				<a th:href="@{/assembly_create}"><button type="button" class="btn btn-success"><i class="fas fa-plus"></i> Přidat novou sestavu</button></a>
61 60
				<button type="button" class="btn btn-success align-right"><i class="fas fa-sort"></i> Upravit řazení</button>
62 61
			</div>
63 62

  

Také k dispozici: Unified diff