140 lines
7.4 KiB
HTML
140 lines
7.4 KiB
HTML
<!DOCTYPE html>
|
|
<html th:replace="~{template :: layout(~{::title}, ~{::libs}, ~{::header}, ~{::content})}" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
|
<head>
|
|
<title>Camp Organizer 2</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
<libs></libs>
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<a th:href="@{/dashboard}" class="btn btn-secondary btn-icon-silent" title="aktualisieren"><i class="fas fa-sync"></i></a> <a th:href="@{/business}" class="btn btn-secondary btn-icon-silent"
|
|
title="Abrechnungen" sec:authorize="hasRole('business')"><i class="far fa-money-bill-alt"></i></a> <a th:href="@{/confirmation}" class="btn btn-secondary btn-icon-silent"
|
|
title="Anmeldungen" sec:authorize="hasRole('registrator')"><i class="fas fa-user-check"></i></a> <a href="https://www.onkelwernerfreizeiten.de/cloud"
|
|
class="btn btn-secondary btn-icon-silent" title="Nextcloud" target="_blank"><img th:src="@{images/nextcloud.png}" width="20px" /></a>
|
|
</header>
|
|
<content>
|
|
<div class="mainpage">
|
|
<script type="text/javascript">
|
|
function mark(e) {
|
|
$(e).css("background", "orange");
|
|
}
|
|
</script>
|
|
<div class="accordion" id="acc">
|
|
<div class="accordion-item" th:each="b : ${mybookings}">
|
|
<h2 class="accordion-header" th:id="'acc-head-' + ${b.pk}">
|
|
<button class="accordion-button collapsed" th:style="'background: ' + ${b.accept == null ? '#fdb' : (b.accept ? '#cfc' : '#fcc')}" type="button" data-bs-toggle="collapse"
|
|
th:data-bs-target="'#acc-body-' + ${b.pk}" aria-expanded="true" th:aria-controls="'#acc-body-' + ${b.pk}">
|
|
<i class="fas fa-check framed framed-green" th:if="${b.accept}"></i> <i class="fas fa-ban framed framed-red" th:if="${b.accept} == false"></i> <i
|
|
class="fas fa-question framed framed-orange" th:if="${b.accept} == null"></i> <span
|
|
th:text="${b.forename + ' ' + b.surname + ' in ' + b.campName + ' ' + #numbers.formatInteger(b.year, 4)}" style="font-weight: bolder"></span> in <span
|
|
th:text="${b.locationName}"></span>
|
|
</button>
|
|
</h2>
|
|
<div th:id="'acc-body-' + ${b.pk}" class="accordion-collapse collapse" th:aria-labelledby="'acc-head-' + ${b.pk}">
|
|
<div class="accordion-body">
|
|
<div class="card">
|
|
<div class="card-header">Freizeitdaten</div>
|
|
<div class="card-body">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-sm-2">Ort:</div>
|
|
<div class="col-sm-10">
|
|
<a th:href="${b.url}" target="_blank" th:text="${b.locationName}"></a>
|
|
</div>
|
|
<div class="col-sm-2">Zeit:</div>
|
|
<div class="col-sm-10">
|
|
<span th:text="${#temporals.format(b.arrive, 'dd.MM.') + ' - ' + #temporals.format(b.depart, 'dd.MM.yyyy')}" th:if="${b.arrive != null and b.depart != null}"></span>
|
|
</div>
|
|
<div class="col-sm-2">Preis:</div>
|
|
<div class="col-sm-10" th:text="${b.price}"></div>
|
|
<div class="col-sm-2">Ferien:</div>
|
|
<div class="col-sm-10" th:text="${b.countries}"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div class="card-header">Teilnehmerdaten</div>
|
|
<div class="card-body">
|
|
<form th:action="@{/dashboard/update/}" th:object="${b}" method="post">
|
|
<input type="hidden" th:value="*{pk}" name="pk" />
|
|
<div class="container">
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Rolle:</div>
|
|
<span class="col-sm-10"> <span th:if="${b.isTeacher()}">Mitarbeiter</span> <span th:if="${b.isStudent()}">Teilnehmer</span> <span th:if="${b.isDirector()}">Leiter</span> <span
|
|
th:if="${b.isFeeder()}">Küchenteam</span>
|
|
</span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Geschlecht:</div>
|
|
<span class="col-sm-10">
|
|
<span th:if="${b.isMale()}">männlich</span>
|
|
<span th:if="${b.isFemale()}">weiblich</span>
|
|
<i class="fas fa-info framed framed-white" title="Änderungen am Geschlecht wirken sich auch auf den Anmeldestatus aus. Wenn Du Dein Geschlecht ändern möchtest, lösche bitte diese Anmeldung und leg eine neue an. Dann wird neu entschieden, ob noch ein Platz frei ist."></i>
|
|
</span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Vorname:</div>
|
|
<span class="col-sm-10"><input type="text" class="form-control" th:value="*{forename}" name="forename" onchange="mark(this)" /></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Nachname:</div>
|
|
<span class="col-sm-10"><input type="text" class="form-control" th:value="*{surname}" name="surname" onchange="mark(this)" /></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Straße:</div>
|
|
<span class="col-sm-10"><input type="text" class="form-control" th:value="*{street}" name="street" onchange="mark(this)" /></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">PLZ:</div>
|
|
<span class="col-sm-10"><input type="text" class="form-control" th:value="*{zip}" name="zip" onchange="mark(this)" /></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Ort:</div>
|
|
<span class="col-sm-10"><input type="text" class="form-control" th:value="*{city}" name="city" onchange="mark(this)" /></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Telefon:</div>
|
|
<span class="col-sm-10"><input type="text" class="form-control" th:value="*{phone}" name="phone" onchange="mark(this)" /></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Geburtstag:</div>
|
|
<span class="col-sm-10" th:text="${#temporals.format(b.birthdate, 'dd.MM.yyyy')}"></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">E-Mail:</div>
|
|
<span class="col-sm-10"><input type="text" class="form-control" th:value="*{email}" name="email" onchange="mark(this)" /></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Foto-Einverständnis:</div>
|
|
<span class="col-sm-10" th:text="${b.consentCatalogPhoto ? 'ja' : 'nein'}"></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2">Kommentar:</div>
|
|
<span class="col-sm-10"><textarea class="form-control" th:text="*{comment}" name="comment" onchange="mark(this)"></textarea></span>
|
|
</div>
|
|
<div class="row mb-2">
|
|
<div class="col-sm-2"></div>
|
|
<div class="col-sm-10">
|
|
<input type="submit" class="btn btn-primary" value="Änderungen übernehmen" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="alert alert-primary" th:if="${b.created != null}">
|
|
angemeldet am <span th:text="${#temporals.format(b.created, 'dd.MM.yyyy')}"></span> von <span th:text="${b.subscriber}"></span>
|
|
</div>
|
|
<div th:class="'alert ' + ${b.accept ? 'alert-success' : 'alert-danger'}" th:if="${b.accept != null}">
|
|
<span th:text="${b.accept ? 'bestätigt' : 'abgelehnt'}"></span> von <span th:text="${b.registrator}"></span>
|
|
</div>
|
|
<div class="alert alert-warning" th:if="${b.isOver}">Die Freizeit ist bereits vorbei.</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</content>
|
|
</body>
|
|
</html> |