202 lines
10 KiB
Plaintext
202 lines
10 KiB
Plaintext
{block content}
|
|
|
|
<div class="platno detail">
|
|
<header class="lista">
|
|
<div class="detail-identita">
|
|
<span class="detail-cislo">{$obvod->CISLO}</span>
|
|
<div>
|
|
<h1 class="lista-nadpis">{$obvod->NAZEV}</h1>
|
|
<p class="lista-popis">Skupina {$obvod->SKUPINA}</p>
|
|
</div>
|
|
</div>
|
|
<div class="akce">
|
|
<a n:href=":Mapa: obvod:$obvod->CISLO" class="tlacitko">Mapa</a>
|
|
<button n:if="count($otevrene) === 0" type="button" class="tlacitko is-aktivni" data-bs-toggle="modal" data-bs-target="#modalPridelit">Přidělit</button>
|
|
<button n:if="count($otevrene) > 0" type="button" class="tlacitko" data-bs-toggle="modal" data-bs-target="#modalVratit">Vrátit</button>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="detail-telo">
|
|
<section class="panel detail-mapa">
|
|
<h2>Náhled</h2>
|
|
<div id="obvod-nahled"
|
|
data-obvod="{$obvod->CISLO}"
|
|
data-geojson="{$basePath}/data/geo-obvody.geojson"></div>
|
|
</section>
|
|
|
|
<section class="panel detail-zaznamy">
|
|
<h2>Záznamy</h2>
|
|
<p class="prazdno" n:if="count($zaznamy) === 0">Tento obvod zatím nemá žádný záznam.</p>
|
|
<div class="tabulka-obal" n:if="count($zaznamy) > 0">
|
|
<table class="tabulka">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">Zvěstovatel</th>
|
|
<th scope="col">Přiděleno</th>
|
|
<th scope="col">Vráceno</th>
|
|
<th scope="col">Akce</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{foreach $zaznamy as $zaznam}
|
|
<tr>
|
|
<td data-popisek="Zvěstovatel">{$zaznam->JMENO}</td>
|
|
<td data-popisek="Přiděleno">{date_format($zaznam->VYDANO, 'd.m.Y')}</td>
|
|
<td data-popisek="Vráceno">{if $zaznam->VRACENO}{date_format($zaznam->VRACENO, 'd.m.Y')}{else}—{/if}</td>
|
|
<td class="bunka-akce" data-popisek="Akce">
|
|
<div class="akce-radek">
|
|
<button type="button" class="tlacitko" data-bs-toggle="modal" data-bs-target="#modalUpravit" data-id="{$zaznam->ID}" data-jmeno="{$zaznam->JMENO}" data-vydano="{date_format($zaznam->VYDANO, 'Y-m-d')}" data-vraceno="{if $zaznam->VRACENO}{date_format($zaznam->VRACENO, 'Y-m-d')}{/if}">Upravit</button>
|
|
{form "smazat-$zaznam->ID"}
|
|
<button n:name="send" class="tlacitko tlacitko-nebezpeci" onclick="return confirm('Smazat záznam?')">Smazat</button>
|
|
{/form}
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{/foreach}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
|
|
<div n:if="count($otevrene) === 0" class="modal fade" id="modalPridelit" tabindex="-1" aria-labelledby="modalPridelitLabel" aria-hidden="true" data-show-errors="{if $presenter['pridelitForm']->hasErrors()}1{else}0{/if}">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form n:name="pridelitForm">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="modalPridelitLabel">Přidělit obvod</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Zavřít"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="alert alert-danger" n:if="$form->hasErrors()" n:foreach="$form->getErrors() as $error">{$error}</div>
|
|
<div class="mb-2">
|
|
<label n:name="zvestovatel" class="form-label">Zvěstovatel</label>
|
|
<div class="naseptavac" data-naseptavac>
|
|
<input n:name="zvestovatel" class="form-control" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-controls="naseptavac-nabidka">
|
|
<div id="naseptavac-nabidka" class="naseptavac-nabidka" role="listbox" hidden></div>
|
|
</div>
|
|
<div class="form-text">Začněte psát jméno. Když v seznamu není, uloží se jako nový zvěstovatel.</div>
|
|
</div>
|
|
<div>
|
|
<label n:name="datum" class="form-label">Datum přidělení</label>
|
|
<input n:name="datum" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button n:name="send" class="tlacitko is-aktivni">Přidělit</button>
|
|
<button type="button" class="tlacitko tlacitko-zrusit" data-bs-dismiss="modal">Zrušit</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div n:if="count($otevrene) > 0" class="modal fade" id="modalVratit" tabindex="-1" aria-labelledby="modalVratitLabel" aria-hidden="true" data-show-errors="{if $presenter['vratitForm']->hasErrors()}1{else}0{/if}">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="modalVratitLabel">Vrátit obvod</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Zavřít"></button>
|
|
</div>
|
|
<form n:name="vratitForm">
|
|
<div class="modal-body">
|
|
<div class="alert alert-danger" n:if="$form->hasErrors()" n:foreach="$form->getErrors() as $error">{$error}</div>
|
|
<div class="mb-2">
|
|
<label n:name="zaznam" class="form-label">Záznam</label>
|
|
<select n:name="zaznam" class="form-select">
|
|
<option n:foreach="$otevrene as $otevreny" n:name="zaznam:$otevreny->ID">
|
|
{$otevreny->JMENO} (přiděleno {date_format($otevreny->VYDANO, 'd.m.Y')})
|
|
</option>
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<label n:name="datum" class="form-label">Datum vrácení</label>
|
|
<input n:name="datum" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button n:name="send" class="tlacitko is-aktivni">Vrátit</button>
|
|
<button type="button" class="tlacitko tlacitko-zrusit" data-bs-dismiss="modal">Zrušit</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" id="modalUpravit" tabindex="-1" aria-labelledby="modalUpravitLabel" aria-hidden="true" data-show-errors="{if $presenter['upravitForm']->hasErrors()}1{else}0{/if}">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form n:name="upravitForm">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="modalUpravitLabel">Upravit záznam</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Zavřít"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="alert alert-danger" n:if="$form->hasErrors()" n:foreach="$form->getErrors() as $error">{$error}</div>
|
|
<input n:name="id">
|
|
<div class="mb-2">
|
|
<label n:name="zvestovatel" class="form-label">Zvěstovatel</label>
|
|
<div class="naseptavac" data-naseptavac>
|
|
<input n:name="zvestovatel" class="form-control" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-controls="naseptavac-nabidka-upravit">
|
|
<div id="naseptavac-nabidka-upravit" class="naseptavac-nabidka" role="listbox" hidden></div>
|
|
</div>
|
|
</div>
|
|
<div class="mb-2">
|
|
<label n:name="vydano" class="form-label">Datum přidělení</label>
|
|
<input n:name="vydano" class="form-control">
|
|
</div>
|
|
<div>
|
|
<label n:name="vraceno" class="form-label">Datum vrácení</label>
|
|
<input n:name="vraceno" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button n:name="send" class="tlacitko is-aktivni">Uložit</button>
|
|
<button type="button" class="tlacitko tlacitko-zrusit" data-bs-dismiss="modal">Zrušit</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="application/json" id="zvestovatele-data">{$zvestovateleJson|noescape}</script>
|
|
<script src="{$basePath}/js/obvod-nahled.js?v=2"></script>
|
|
<script src="{$basePath}/js/naseptavac.js?v=3"></script>
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
document.querySelectorAll('.modal[data-show-errors="1"]').forEach(function (el) {
|
|
bootstrap.Modal.getOrCreateInstance(el).show();
|
|
});
|
|
|
|
var vratitMin = {
|
|
{foreach $otevrene as $otevreny}{$otevreny->ID}: {date_format($otevreny->VYDANO, 'Y-m-d')},{/foreach}
|
|
};
|
|
var zaznam = document.getElementById('frm-vratitForm-zaznam');
|
|
var datum = document.getElementById('frm-vratitForm-datum');
|
|
if (!zaznam || !datum) {
|
|
return;
|
|
}
|
|
var nastavMin = function () {
|
|
datum.min = vratitMin[zaznam.value] || '';
|
|
};
|
|
zaznam.addEventListener('change', nastavMin);
|
|
nastavMin();
|
|
});
|
|
|
|
var modalUpravit = document.getElementById('modalUpravit');
|
|
if (modalUpravit) {
|
|
modalUpravit.addEventListener('show.bs.modal', function (event) {
|
|
var btn = event.relatedTarget;
|
|
var form = modalUpravit.querySelector('form');
|
|
if (!btn || !btn.dataset.id || !form) {
|
|
return;
|
|
}
|
|
form.querySelector('[name="id"]').value = btn.dataset.id;
|
|
form.querySelector('[name="zvestovatel"]').value = btn.dataset.jmeno || '';
|
|
form.querySelector('[name="vydano"]').value = btn.dataset.vydano || '';
|
|
form.querySelector('[name="vraceno"]').value = btn.dataset.vraceno || '';
|
|
});
|
|
}
|
|
</script>
|