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 |
|
temp