This commit is contained in:
Jottyfan
2023-05-06 17:44:14 +02:00
parent 4d604974e2
commit d1ee923f0a
17 changed files with 990 additions and 141 deletions

View File

@ -433,3 +433,7 @@ div {
box-shadow: 0px 0px 7px 4px #ddd;
border-radius: 40px;
}
.beforetext {
margin-right: 8px;
}

View File

@ -14,17 +14,17 @@
</thead>
<tbody>
<tr th:each="c : ${camps}">
<td><a th:href="@{/admin/camp/edit/{id}(id=${c.pk})}"><span th:text="${c.name}"></span></a></td>
<td><a th:href="@{/admin/camp/edit/{id}(id=${c.pk})}"><i class="fas fa-pen beforetext"></i><span th:text="${c.name}"></span></a></td>
<td><th:block th:each="l : ${locations}">
<span th:if="${l.pk == c.fkLocation}" th:text="${l.name}"></span>
</th:block></td>
<td><span th:text="${#temporals.format(c.arrive, 'dd.MM.')}"></span>&nbsp;-&nbsp;<span th:text="${#temporals.format(c.depart, 'dd.MM.yyyy')}"></span></td>
<td><a th:href="@{/document/{id}(id=${c.fkDocument})}"><i class="fas fa-download"></i></a></td>
<td><a th:href="@{/document/{id}(id=${c.fkDocument})}"><i class="fas fa-download beforetext"></i>anzeigen</a></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="6" style="text-align: center"><a th:href="@{/admin/camp/add}" class="btn btn-outline-primary">neue Freizeit anlegen</a></td>
<td colspan="4" style="text-align: center"><a th:href="@{/admin/camp/add}" class="btn btn-outline-primary">neue Freizeit anlegen</a></td>
</tr>
</tfoot>
</table>

View File

@ -10,12 +10,11 @@
<td>Dokumententyp</td>
<td>Zielgruppe</td>
<th>Inhalt</th>
<th>Dateityp</th>
</tr>
</thead>
<tbody>
<tr th:each="d : ${documents}">
<td><a th:href="@{/admin/document/edit/{id}(id=${d.pk})}"><span th:text="${d.name}"></span></a></td>
<td><a th:href="@{/admin/document/edit/{id}(id=${d.pk})}"><i class="fas fa-pen beforetext"></i><span th:text="${d.name}"></span></a></td>
<td><span th:if="${d.doctype.literal == 'location'}">Wegbeschreibung</span> <span th:if="${d.doctype.literal == 'camp'}">Bestätigung</span><span
th:if="${d.doctype.literal == 'camppass'}">Freizeitpass</span></td>
<td><th:block th:each="r : ${d.roles}">
@ -25,13 +24,12 @@
<span th:if="${r.literal == 'feeder'}" class="roleflag">Küche</span>
<span th:if="${r.literal == 'observer'}" class="roleflag">Mitarbeiterkind</span>
</th:block></td>
<td><a th:href="@{/document/{id}(id=${d.pk})}"><i class="fas fa-download"></i></a></td>
<td><span th:text="${d.filetype.literal}" th:if="${d.filetype}"></span></td>
<td><a th:href="@{/document/{id}(id=${d.pk})}"><i class="fas fa-download beforetext"></i><span th:text="${d.filetype.literal}" th:if="${d.filetype}"></span>&nbsp;anzeigen</a></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="6" style="text-align: center"><a th:href="@{/admin/document/add}" class="btn btn-outline-primary">neues Dokument anlegen</a></td>
<td colspan="4" style="text-align: center"><a th:href="@{/admin/document/add}" class="btn btn-outline-primary">neues Dokument anlegen</a></td>
</tr>
</tfoot>
</table>

View File

@ -13,14 +13,14 @@
</thead>
<tbody>
<tr th:each="l : ${locations}">
<td><a th:href="@{/admin/location/edit/{id}(id=${l.pk})}"><span th:text="${l.name}"></span></a></td>
<td th:text="${l.url}"></td>
<td><a th:href="@{/document/{id}(id=${l.fkDocument})}"><i class="fas fa-download"></i></a></td>
<td><a th:href="@{/admin/location/edit/{id}(id=${l.pk})}"><i class="fas fa-pen beforetext"></i><span th:text="${l.name}"></span></a></td>
<td><a th:href="${l.url}" target="_blank"><i class="fas fa-external-link-alt beforetext"></i><span th:text="${l.url}"></span></a></td>
<td><a th:href="@{/document/{id}(id=${l.fkDocument})}"><i class="fas fa-download beforetext"></i>anzeigen</a></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="6" style="text-align: center"><a th:href="@{/admin/location/add}" class="btn btn-outline-primary">neues Freizeitheim anlegen</a></td>
<td colspan="3" style="text-align: center"><a th:href="@{/admin/location/add}" class="btn btn-outline-primary">neues Freizeitheim anlegen</a></td>
</tr>
</tfoot>
</table>

View File

@ -0,0 +1,66 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<body>
<th:block layout:fragment="content">
<div sec:authorize="hasRole('admin')">
<form th:action="@{/admin/privileges/insert/{d}(d=${pagedest})}" th:object="${bean}" method="post" enctype="multipart/form-data">
<div class="tablebox">
<div class="container">
<div class="row mb-2">
<div class="col-sm-12">
<div class="alert alter-danger" th:if="${error}" th:text="${error}"></div>
</div>
</div>
<div class="row mb-2">
<label for="inputPerson" class="col-sm-2 col-form-label">Person</label>
<div class="col-sm-10">
<span class="error" th:each="error : ${#fields.errors('fkProfile')}">[[${error}]]<br /></span> <select id="inputPerson" th:field="*{fkProfile}"
th:class="${'form-select ' + (#fields.hasErrors('fkProfile') ? 'inputerror' : '')}">
<option value="">--- bitte wählen ---</option>
<option th:each="l : ${profiles}" th:value="${l.pk}" th:text="${l.fullname}"></option>
</select>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#inputPerson").select2();
});
</script>
</div>
<div class="row mb-2">
<label for="inputCamp" class="col-sm-2 col-form-label">Freizeit</label>
<div class="col-sm-10">
<span class="error" th:each="error : ${#fields.errors('fkCamp')}">[[${error}]]<br /></span> <select id="inputCamp" th:field="*{fkCamp}"
th:class="${'form-select ' + (#fields.hasErrors('fkCamp') ? 'inputerror' : '')}">
<option value="">--- bitte wählen ---</option>
<option th:each="l : ${camps}" th:value="${l.pk}" th:text="${l.name}"></option>
</select>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#inputCamp").select2();
});
</script>
</div>
<div class="row mb-2">
<label for="inputModule" class="col-sm-2 col-form-label">Modul</label>
<div class="col-sm-10">
<span class="error" th:each="error : ${#fields.errors('module')}">[[${error}]]<br /></span> <select id="inputModule" th:field="*{module}"
th:class="${'form-select ' + (#fields.hasErrors('module') ? 'inputerror' : '')}">
<option value="">--- bitte wählen ---</option>
<option th:each="l : ${modules}" th:value="${l}" th:text="${l}"></option>
</select>
</div>
</div>
<div class="row mb-2">
<div class="col-sm-2"></div>
<div class="col-sm-10">
<input type="submit" class="btn btn-success" value="Ok" /> <a th:href="@{/admin/privileges/abortinsert/{d}(d=${pagedest})}" class="btn btn-outline-secondary">Abbrechen</a>
</div>
</div>
</div>
</div>
</form>
</div>
</th:block>
</body>
</html>

View File

@ -0,0 +1,70 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<title>Camp Organizer Privileges</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<th:block layout:fragment="content">
<div sec:authorize="hasRole('admin')">
<div class="tablebox">
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<span th:text="${selected}" th:if="${selected}"></span> <span th:unless="${selected}">-- bitte wählen --</span>
</button>
<ul class="dropdown-menu">
<li th:each="e : ${list}"><a class="dropdown-item" th:href="@{/admin/privileges/campbased/{r}(r=${e.pk})}"><span th:text="${e.fullname}"></span></a></li>
</ul>
</div>
<div class="card" th:if="${selected}">
<div class="card-header">
<h1 th:text="${selected}"></h1>
</div>
<div class="card-body">
<table id="table" class="table table-striped">
<thead>
<tr>
<th>Person</th>
<th>Modul</th>
</tr>
</thead>
<tbody>
<tr th:each="m : ${container.map}">
<td th:text="${m.key}"></td>
<td>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group beforetext" role="group" th:each="v : ${m.value}" th:if="${m.value}">
<div class="dropdown">
<button class="btn btn-danger dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-trash-alt"></i>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" th:href="@{/admin/privileges/delete/{id}/{d}(id=${v.key}, d=${pagedest})}">endgültig löschen</a></li>
</ul>
</div>
<button type="button" class="btn btn-outline-secondary" th:text="${v.value}" disabled></button>
</div>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" style="text-align: center"><a th:href="@{/admin/privileges/add/{d}(d=${pagedest})}" class="btn btn-outline-primary">neue Berechtigung vergeben</a></td>
</tr>
</tfoot>
</table>
<script>
$(document).ready(function() {
$("#table").DataTable({
language : locale_de
});
});
</script>
</div>
</div>
</div>
</div>
</th:block>
</body>
</html>

View File

@ -0,0 +1,66 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<title>Camp Organizer Privileges</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<th:block layout:fragment="content">
<div sec:authorize="hasRole('admin')">
<div class="tablebox">
<div class="btn-group" role="group">
<a th:class="${e == selected ? 'btn btn-primary' : 'btn btn-outline-secondary'}" th:each="e : ${list}" th:href="@{/admin/privileges/rolebased/{r}(r=${e})}"> <span th:text="${e}"></span>
</a>
</div>
<div class="card" th:if="${selected}">
<div class="card-header">
<h1 th:text="${selected}"></h1>
</div>
<div class="card-body">
<table id="table" class="table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Freizeit</th>
</tr>
</thead>
<tbody>
<tr th:each="m : ${container.map}">
<td th:text="${m.key}"></td>
<td>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group beforetext" role="group" th:each="v : ${m.value}" th:if="${m.value}">
<div class="dropdown">
<button class="btn btn-danger dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-trash-alt"></i>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" th:href="@{/admin/privileges/delete/{id}/{d}(id=${v.key}, d=${pagedest})}">endgültig löschen</a></li>
</ul>
</div>
<button type="button" class="btn btn-outline-secondary" th:text="${v.value}" disabled></button>
</div>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" style="text-align: center"><a th:href="@{/admin/privileges/add/{d}(d=${pagedest})}" class="btn btn-outline-primary">neue Berechtigung vergeben</a></td>
</tr>
</tfoot>
</table>
<script>
$(document).ready(function() {
$("#table").DataTable({
language : locale_de
});
});
</script>
</div>
</div>
</div>
</div>
</th:block>
</body>
</html>

View File

@ -0,0 +1,70 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<title>Camp Organizer Privileges</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<th:block layout:fragment="content">
<div sec:authorize="hasRole('admin')">
<div class="tablebox">
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<span th:text="${selected}" th:if="${selected}"></span> <span th:unless="${selected}">-- bitte wählen --</span>
</button>
<ul class="dropdown-menu">
<li th:each="e : ${list}"><a class="dropdown-item" th:href="@{/admin/privileges/userbased/{r}(r=${e.pk})}"><span th:text="${e.fullname}"></span></a></li>
</ul>
</div>
<div class="card" th:if="${selected}">
<div class="card-header">
<h1 th:text="${selected}"></h1>
</div>
<div class="card-body">
<table id="table" class="table table-striped">
<thead>
<tr>
<th>Modul</th>
<th>Freizeit</th>
</tr>
</thead>
<tbody>
<tr th:each="m : ${container.map}">
<td th:text="${m.key}"></td>
<td>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group beforetext" role="group" th:each="v : ${m.value}" th:if="${m.value}">
<div class="dropdown">
<button class="btn btn-danger dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-trash-alt"></i>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" th:href="@{/admin/privileges/delete/{id}/{d}(id=${v.key}, d=${pagedest})}">endgültig löschen</a></li>
</ul>
</div>
<button type="button" class="btn btn-outline-secondary" th:text="${v.value}" disabled></button>
</div>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" style="text-align: center"><a th:href="@{/admin/privileges/add/{d}(d=${pagedest})}" class="btn btn-outline-primary">neue Berechtigung vergeben</a></td>
</tr>
</tfoot>
</table>
<script>
$(document).ready(function() {
$("#table").DataTable({
language : locale_de
});
});
</script>
</div>
</div>
</div>
</div>
</th:block>
</body>
</html>

View File

@ -25,123 +25,120 @@
<!-- remove? -->
<!-- <div class="container-fluid">
<!-- -->
<button class="navbar-toggler" style="margin-right: 40px" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent" style="margin-right: 20px">
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a th:href="@{/ical}" class="btn btn-secondary btn-icon-silent" target="_blank" title="Freizeitdaten als ical herunterladen"><i class="far fa-calendar-alt"></i></a></li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/}">Startseite</a></li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/allgemeines}">Allgemeines</a></li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/camplist}">Freizeiten</a></li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/verein}">Verein</a></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Tagebuch
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item menufont" th:href="@{/reports/olfenostern2023}">Osterfreizeit 2023 in Olfen</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/olfen2020}">Herbstfreizeit 2020 in Olfen</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/heimfreizeit2020}">Heimfreizeit 2020</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/rehe2019}">Rehe 2019</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/growup2019}">GrowUp 2019</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/schweiz2019}">Schweiz 2019</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/hohenhaslach2019}">Hohenhaslach 2019</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/olfen2018}">Osterfreizeit 2018 in Olfen</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/growup2018}">GrowUp 2018</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/schweiz2018}">Schweiz-Freizeit 2018 in Kiental</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/growup2017}">GrowUp 2017</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/schweiz2017}">Schweiz 2017</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/heimfreizeit2017}">Heimfreizeit 2017</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/hohenhaslach2017}">Hohenhaslach 2017</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/olfen2015}">Olfen 2015</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/wrist2014}">Wrist 2014</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/vorolfen2014}">Vorbereitungstreffen Olfen 2014</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/vorschweiz2014}">Vorbereitungstreffen Schweiz 2014</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/olfen2014}">Olfen 2014</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/schweiz2014}">Schweiz 2014</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/history}">Über 30 Jahre Onkel Werner Freizeiten Ein Rückblick ...</a></li>
</ul>
</li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/kontakt}">Kontakt</a></li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0" sec:authorize="hasRole('business')">
<li class="nav-item">
<div class="dropdown">
<a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Abrechnung
</a>
<ul class="dropdown-menu">
<li><a th:href="@{/business}" class="dropdown-item menufont">Freizeitübersicht</a></li>
<li><a th:href="@{/business/bookings}" class="dropdown-item menufont" sec:authorize="hasRole('business_booking')">Buchungsübersicht</a></li>
<li><a th:href="@{/business/privileges}" class="dropdown-item menufont" sec:authorize="hasRole('admin')">Nutzerverwaltung</a></li>
</ul>
</div>
</li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0" sec:authorize="hasRole('registrator')">
<li class="nav-item">
<div class="dropdown">
<a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Bestätigung
</a>
<ul class="dropdown-menu">
<li><a th:href="@{/rss/registrator}" class="dropdown-item menufont"><i class="fas fa-rss"></i>&nbsp;RSS-Link</a></li>
<li><a th:href="@{/confirmation}" class="dropdown-item menufont">Anmeldungsübersicht</a></li>
</ul>
</div>
</li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0" sec:authorize="hasRole('admin')">
<li class="nav-item">
<div class="dropdown">
<a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Admin
</a>
<ul class="dropdown-menu">
<li><a th:href="@{/rss/admin}" class="dropdown-item menufont"><i class="fas fa-rss"></i>&nbsp;RSS-Link</a></li>
<li><a th:href="@{/admin/mail}" class="dropdown-item menufont">Testmail</a></li>
<li><a th:href="@{/admin/document}" class="dropdown-item menufont">Dokumente</a></li>
<li><a th:href="@{/admin/location}" class="dropdown-item menufont">Freizeitheime</a></li>
<!-- TODO: implementation not yet finished -->
<li><a th:href="@{/admin/camp}" class="dropdown-item menufont">Freizeiten</a>
<!-- -->
</ul>
</div>
</li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0" th:if="${not #strings.isEmpty(currentUser)}">
<li class="nav-item"><a href="https://www.onkelwernerfreizeiten.de/cloud" class="btn btn-secondary btn-icon-silent menufont" target="_blank">Nextcloud</a></li>
</ul>
<ul layout:fragment="header"></ul>
<ul class="nav navbar-nav ms-auto right-dist">
<li class="nav-item">
<div class="dropdown">
<button class="btn btn-hoverborder navbar-collapse" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<img th:src="@{/images/Icon_Profil.svg}" width="24px" height="24px" />
</button>
<ul class="dropdown-menu dropdown-menu-end" th:if="${#strings.isEmpty(currentUser)}">
<li><a class="dropdown-item" th:href="@{/dashboard}">einloggen</a></li>
<li><hr /></li>
<li><a class="dropdown-item" th:href="@{/migration/login}">Login umziehen</a></li>
</ul>
<ul class="dropdown-menu dropdown-menu-end" th:unless="${#strings.isEmpty(currentUser)}">
<li><a class="dropdown-item" th:href="@{${keycloakProfileUrl}}" target="_blank">Benutzername ändern</a></li>
<li><a class="dropdown-item" th:href="@{${keycloakProfileUrl} + '/password'}" target="_blank">Password ändern</a></li>
<li><hr /></li>
<li><a class="dropdown-item" th:href="@{/logout}"><b th:inline="text">[[${currentUser}]]</b> ausloggen</a></li>
</ul>
</div>
</li>
</ul>
</div>
<button class="navbar-toggler" style="margin-right: 40px" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent" style="margin-right: 20px">
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a th:href="@{/ical}" class="btn btn-secondary btn-icon-silent" target="_blank" title="Freizeitdaten als ical herunterladen"><i class="far fa-calendar-alt"></i></a></li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/}">Startseite</a></li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/allgemeines}">Allgemeines</a></li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/camplist}">Freizeiten</a></li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/verein}">Verein</a></li>
<li class="nav-item dropdown"><a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Tagebuch </a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item menufont" th:href="@{/reports/olfenostern2023}">Osterfreizeit 2023 in Olfen</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/olfen2020}">Herbstfreizeit 2020 in Olfen</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/heimfreizeit2020}">Heimfreizeit 2020</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/rehe2019}">Rehe 2019</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/growup2019}">GrowUp 2019</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/schweiz2019}">Schweiz 2019</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/hohenhaslach2019}">Hohenhaslach 2019</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/olfen2018}">Osterfreizeit 2018 in Olfen</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/growup2018}">GrowUp 2018</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/schweiz2018}">Schweiz-Freizeit 2018 in Kiental</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/growup2017}">GrowUp 2017</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/schweiz2017}">Schweiz 2017</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/heimfreizeit2017}">Heimfreizeit 2017</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/hohenhaslach2017}">Hohenhaslach 2017</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/olfen2015}">Olfen 2015</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/wrist2014}">Wrist 2014</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/vorolfen2014}">Vorbereitungstreffen Olfen 2014</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/vorschweiz2014}">Vorbereitungstreffen Schweiz 2014</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/olfen2014}">Olfen 2014</a></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/schweiz2014}">Schweiz 2014</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item menufont" th:href="@{/reports/history}">Über 30 Jahre Onkel Werner Freizeiten Ein Rückblick ...</a></li>
</ul></li>
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/kontakt}">Kontakt</a></li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0" sec:authorize="hasRole('business')">
<li class="nav-item">
<div class="dropdown">
<a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">Abrechnung</a>
<ul class="dropdown-menu">
<li><a th:href="@{/business}" class="dropdown-item menufont">Freizeitübersicht</a></li>
<li><a th:href="@{/business/bookings}" class="dropdown-item menufont" sec:authorize="hasRole('business_booking')">Buchungsübersicht</a></li>
<li><a th:href="@{/business/privileges}" class="dropdown-item menufont" sec:authorize="hasRole('admin')">Nutzerverwaltung</a></li>
</ul>
</div>
</li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0" sec:authorize="hasRole('registrator')">
<li class="nav-item">
<div class="dropdown">
<a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">Bestätigung</a>
<ul class="dropdown-menu">
<li><a th:href="@{/rss/registrator}" class="dropdown-item menufont"><i class="fas fa-rss"></i>&nbsp;RSS-Link</a></li>
<li><a th:href="@{/confirmation}" class="dropdown-item menufont">Anmeldungsübersicht</a></li>
</ul>
</div>
</li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0" sec:authorize="hasRole('admin')">
<li class="nav-item">
<div class="dropdown">
<a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close='outside' aria-expanded="false">Admin</a>
<ul class="dropdown-menu">
<li><a th:href="@{/rss/admin}" class="dropdown-item menufont"><i class="fas fa-rss"></i>&nbsp;RSS-Link</a></li>
<li><a th:href="@{/admin/mail}" class="dropdown-item menufont">Testmail</a></li>
<li><a th:href="@{/admin/document}" class="dropdown-item menufont">Dokumente</a></li>
<li><a th:href="@{/admin/location}" class="dropdown-item menufont">Freizeitheime</a></li>
<li><a th:href="@{/admin/camp}" class="dropdown-item menufont">Freizeiten</a>
<li class="dropdown dropend">
<a class="dropdown-item dropdown-toggle menufont" href="#" role="button" data-bs-auto-close='outside' data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Rechteverwaltung</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item menufont" th:href="@{/admin/privileges/userbased}">nutzerzentriert</a></li>
<li><a class="dropdown-item menufont" th:href="@{/admin/privileges/rolebased}">rollenzentriert</a></li>
<li><a class="dropdown-item menufont" th:href="@{/admin/privileges/campbased}">freizeitzentriert</a></li>
</ul></li>
</ul>
</div>
</li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0" th:if="${not #strings.isEmpty(currentUser)}">
<li class="nav-item"><a href="https://www.onkelwernerfreizeiten.de/cloud" class="btn btn-secondary btn-icon-silent menufont" target="_blank">Nextcloud</a></li>
</ul>
<ul layout:fragment="header"></ul>
<ul class="nav navbar-nav ms-auto right-dist">
<li class="nav-item">
<div class="dropdown">
<button class="btn btn-hoverborder navbar-collapse" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<img th:src="@{/images/Icon_Profil.svg}" width="24px" height="24px" />
</button>
<ul class="dropdown-menu dropdown-menu-end" th:if="${#strings.isEmpty(currentUser)}">
<li><a class="dropdown-item" th:href="@{/dashboard}">einloggen</a></li>
<li><hr /></li>
<li><a class="dropdown-item" th:href="@{/migration/login}">Login umziehen</a></li>
</ul>
<ul class="dropdown-menu dropdown-menu-end" th:unless="${#strings.isEmpty(currentUser)}">
<li><a class="dropdown-item" th:href="@{${keycloakProfileUrl}}" target="_blank">Benutzername ändern</a></li>
<li><a class="dropdown-item" th:href="@{${keycloakProfileUrl} + '/password'}" target="_blank">Password ändern</a></li>
<li><hr /></li>
<li><a class="dropdown-item" th:href="@{/logout}"><b th:inline="text">[[${currentUser}]]</b> ausloggen</a></li>
</ul>
</div>
</li>
</ul>
</div>
<!-- </div> -->
</nav>
<div layout:fragment="content">content</div>
@ -149,17 +146,16 @@
<a href="https://gitlab.com/jottyfan/camporganizer2/-/issues" class="versionlink" target="_blank" th:text="${'Version ' + @manifestBean.getVersion()}"></a>
</div>
<br />
<div class="container" style="margin-bottom: 24px">
<div class="row">
<div class="col-md-10">
<span> Copyright © 2022 <a class="text-light" href="https://www.onkelwernerfreizeiten.de/">Onkel Werner Freizeiten</a> All rights reserved.
</span>
</div>
<div class="col-md-2">
<a th:href="@{/impressum}">Impressum</a>&nbsp;&nbsp;
<a th:href="@{/datenschutz}">Datenschutz</a>
</div>
</div>
</div>
<div class="container" style="margin-bottom: 24px">
<div class="row">
<div class="col-md-10">
<span> Copyright © 2022 <a class="text-light" href="https://www.onkelwernerfreizeiten.de/">Onkel Werner Freizeiten</a> All rights reserved.
</span>
</div>
<div class="col-md-2">
<a th:href="@{/impressum}">Impressum</a>&nbsp;&nbsp; <a th:href="@{/datenschutz}">Datenschutz</a>
</div>
</div>
</div>
</body>
</html>