layout cleanup
This commit is contained in:
parent
55ff76c29b
commit
abeba4935c
@ -12,6 +12,13 @@
|
||||
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="bin/test" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="gradle_scope" value="test"/>
|
||||
<attribute name="gradle_used_by_scope" value="test"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17/"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
|
||||
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer">
|
||||
|
@ -1,13 +1,2 @@
|
||||
arguments=
|
||||
auto.sync=false
|
||||
build.scans.enabled=false
|
||||
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
|
||||
connection.project.dir=
|
||||
eclipse.preferences.version=1
|
||||
gradle.user.home=
|
||||
java.home=
|
||||
jvm.arguments=
|
||||
offline.mode=false
|
||||
override.workspace.settings=false
|
||||
show.console.view=false
|
||||
show.executions.view=false
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project-modules id="moduleCoreId" project-version="1.5.0">
|
||||
<wb-module deploy-name="camporganizer2">
|
||||
<property name="context-root" value="camporganizer2"/>
|
||||
<wb-module deploy-name="CampOrganizer2">
|
||||
<property name="context-root" value="CampOrganizer2"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
|
||||
</wb-module>
|
||||
|
@ -64,6 +64,7 @@ dependencies {
|
||||
implementation 'org.springframework.boot:spring-boot-starter-web'
|
||||
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
|
||||
implementation 'de.jottyfan:COJooq:2021.02'
|
||||
implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:3.0.0'
|
||||
runtimeOnly 'org.springframework.boot:spring-boot-starter-tomcat'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.security:spring-security-test'
|
||||
|
@ -12,6 +12,8 @@ import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
||||
import de.jottyfan.camporganizer.module.registration.KeycloakRepository;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
@ -24,6 +26,9 @@ public class IndexController extends CommonController {
|
||||
@Autowired
|
||||
private HttpServletRequest request;
|
||||
|
||||
@Autowired
|
||||
private KeycloakRepository keycloak;
|
||||
|
||||
@Autowired
|
||||
private IndexService service;
|
||||
|
||||
@ -39,6 +44,7 @@ public class IndexController extends CommonController {
|
||||
super.setupSession(model, request);
|
||||
model.addAttribute("mybookings", service.getBookingsOf(super.getCurrentUser(request)));
|
||||
model.addAttribute("bookingBean", new BookingBean());
|
||||
model.addAttribute("keycloakProfileUrl", keycloak.getUserClientUrl());
|
||||
return "/dashboard";
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,17 @@ public class KeycloakRepository {
|
||||
@Value("${keycloak.realm:ow}")
|
||||
private String keycloakRealm;
|
||||
|
||||
/**
|
||||
* get the url of the user client
|
||||
*
|
||||
* @return the url of the user client
|
||||
*/
|
||||
public String getUserClientUrl() {
|
||||
String url = keycloakUrl == null ? null
|
||||
: (keycloakUrl.substring(0, keycloakUrl.length() - (keycloakUrl.endsWith("/") ? 1 : 0)));
|
||||
return String.format("%s/realms/%s/account/", url, keycloakRealm);
|
||||
}
|
||||
|
||||
/**
|
||||
* register the login in keycloak
|
||||
*
|
||||
@ -32,7 +43,8 @@ public class KeycloakRepository {
|
||||
public void register(String login, String password) {
|
||||
// TODO: check for trailing and leading /
|
||||
String registrationUrl = String.format("%s/admin/realms/%s/users", keycloakUrl, keycloakRealm);
|
||||
// see https://www.keycloak.org/docs-api/17.0/rest-api/index.html#_users_resource
|
||||
// see
|
||||
// https://www.keycloak.org/docs-api/17.0/rest-api/index.html#_users_resource
|
||||
// https://canada1.discourse-cdn.com/free1/uploads/keycloak/original/2X/3/379bbfe8857de117771149174a96e4216ebe9c76.png
|
||||
// TODO Auto-generated method stub
|
||||
LOGGER.error("not yet implemented registration of user {} in keycloak", login);
|
||||
|
@ -96,6 +96,22 @@ div {
|
||||
/* 60 px is the current height of the headline; TODO: calculate it */
|
||||
}
|
||||
|
||||
.acc_true {
|
||||
background-image: linear-gradient(to bottom right, #cfc, #afa) !important;
|
||||
}
|
||||
|
||||
.acc_false {
|
||||
background-image: linear-gradient(to bottom right, #fcc, #faa) !important;
|
||||
}
|
||||
|
||||
.acc_null {
|
||||
background-image: linear-gradient(to bottom right, #fdb, #fca) !important;
|
||||
}
|
||||
|
||||
.right-dist {
|
||||
margin-right: 28px;
|
||||
}
|
||||
|
||||
.middlecenter {
|
||||
margin: auto;
|
||||
top: 40vh;
|
||||
|
@ -1,17 +1,22 @@
|
||||
<!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">
|
||||
<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 Business</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs> </libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a>
|
||||
<a th:href="@{/business/}" class="btn btn-secondary btn-icon-silent">Finanzübersicht</a>
|
||||
<a th:href="@{/business/bookings}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('business_booking')">Buchungsübersicht</a>
|
||||
</header>
|
||||
<content>
|
||||
<th:block layout:fragment="header">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/business/}" class="btn btn-secondary btn-icon-silent">Finanzübersicht</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/business/bookings}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('business_booking')">Buchungsübersicht</a></li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="mainpage">
|
||||
<div class="container" style="max-width: 100%">
|
||||
<div class="row">
|
||||
@ -84,6 +89,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
@ -1,16 +1,19 @@
|
||||
<!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">
|
||||
<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 Business</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs> </libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a>
|
||||
<a th:href="@{/business/}" class="btn btn-secondary btn-icon-silent">Finanzübersicht</a>
|
||||
</header>
|
||||
<content>
|
||||
<th:block layout:fragment="header">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/business/}" class="btn btn-secondary btn-icon-silent">Finanzübersicht</a></li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="mainpage">
|
||||
<div class="card" sec:authorize="hasRole('business_booking')">
|
||||
<div class="card-header">Angemeldete Personen</div>
|
||||
@ -60,7 +63,7 @@
|
||||
</table>
|
||||
<script th:inline="javascript">
|
||||
/*<![CDATA[*/
|
||||
var searchValue = /*[[${search}]]*/ '';
|
||||
var searchValue = /*[[${search}]]*/'';
|
||||
|
||||
$(document).ready(function() {
|
||||
$("#bookers").DataTable({
|
||||
@ -79,6 +82,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
@ -1,17 +1,22 @@
|
||||
<!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">
|
||||
<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 Business</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs></libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a>
|
||||
<a th:href="@{/business/bookings}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('business_booking')">Buchungsübersicht</a>
|
||||
<a th:href="@{/business/privileges}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('admin')">Nutzerverwaltung</a>
|
||||
</header>
|
||||
<content>
|
||||
<th:block layout:fragment="header">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/business/bookings}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('business_booking')">Buchungsübersicht</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/business/privileges}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('admin')">Nutzerverwaltung</a></li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="mainpage">
|
||||
<div class="card" style="width: 640px">
|
||||
<div class="card-header">Finanzübersicht über alle Freizeiten</div>
|
||||
@ -37,13 +42,13 @@
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#camps").DataTable({
|
||||
language: locale_de
|
||||
language : locale_de
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
@ -1,16 +1,19 @@
|
||||
<!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">
|
||||
<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 Business</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs> </libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a>
|
||||
<a th:href="@{/business/}" class="btn btn-secondary btn-icon-silent">Finanzübersicht</a>
|
||||
</header>
|
||||
<content>
|
||||
<th:block layout:fragment="header">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/business/}" class="btn btn-secondary btn-icon-silent">Finanzübersicht</a></li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="mainpage">
|
||||
<div class="container" style="max-width: 100%">
|
||||
<div class="row">
|
||||
@ -88,7 +91,7 @@
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#bookers").DataTable({
|
||||
language: locale_de
|
||||
language : locale_de
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@ -99,6 +102,6 @@
|
||||
</div>
|
||||
<div class="alert alert-danger" role="alert" th:if="${camp == null}">Es wurde keine Freizeit gefunden, die über diese ID angesprochen werden kann.</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
@ -1,17 +1,19 @@
|
||||
<!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">
|
||||
<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 Business</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs>
|
||||
</libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a>
|
||||
<a th:href="@{/business/}" class="btn btn-secondary btn-icon-silent">Finanzübersicht</a>
|
||||
</header>
|
||||
<content>
|
||||
<th:block layout:fragment="header">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/business/}" class="btn btn-secondary btn-icon-silent">Finanzübersicht</a></li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="mainpage">
|
||||
<div class="card">
|
||||
<div class="card-header">Nutzerverwaltung für die Abrechnung von Freizeiten</div>
|
||||
@ -66,7 +68,7 @@
|
||||
<script>
|
||||
var id = "[[${e.value.pk}]]";
|
||||
$("#" + id).select2({
|
||||
theme: 'bootstrap-5',
|
||||
theme : 'bootstrap-5',
|
||||
});
|
||||
</script>
|
||||
</form>
|
||||
@ -85,6 +87,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
@ -1,16 +1,16 @@
|
||||
<!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">
|
||||
<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 Confirmation</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs></libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a>
|
||||
</header>
|
||||
<content>
|
||||
<div class="mainpage">
|
||||
<th:block layout:fragment="header">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a></li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="accordion" id="mainacc" sec:authorize="hasRole('registrator')">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="untouchedpanel">
|
||||
@ -161,20 +161,18 @@
|
||||
<div id="searchdiv" class="accordion-collapse collapse dist8" aria-labelled="searchpanel" data-bs-parent="#mainacc">
|
||||
<script th:inline="javascript">
|
||||
/*<![CDATA[*/
|
||||
var searchUrl = /*[[@{/confirmation/search}]]*/ '?';
|
||||
var searchUrl = /*[[@{/confirmation/search}]]*/'?';
|
||||
var myAjax = new MyAjax(searchUrl);
|
||||
/*]]>*/
|
||||
</script>
|
||||
<input type="text" placeholder="bitte Suchtext eingeben" class="form-control" onchange="myAjax.call('searchresult', this.value)" />
|
||||
<div id="searchresult">
|
||||
Die Suche ist eine einfache Textsuche. Bestenfalls sollte nur ein Begriff zum Suchen verwendet werden, also z.B. nur der Vor- ODER der Nachname, nicht beides.<br />
|
||||
Es werden nur wenige Felder in der Datenbank durchsucht: Vorname, Nachname, Freizeitname und Freizeitjahr.<br />
|
||||
Die Suche wird nach dem Verlassen des Suchtext-Eingabefeldes aktiviert.
|
||||
Die Suche ist eine einfache Textsuche. Bestenfalls sollte nur ein Begriff zum Suchen verwendet werden, also z.B. nur der Vor- ODER der Nachname, nicht beides.<br /> Es werden nur wenige
|
||||
Felder in der Datenbank durchsucht: Vorname, Nachname, Freizeitname und Freizeitjahr.<br /> Die Suche wird nach dem Verlassen des Suchtext-Eingabefeldes aktiviert.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
@ -1,16 +1,19 @@
|
||||
<!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">
|
||||
<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 Confirmation</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs></libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a>
|
||||
<a th:href="@{/confirmation}" class="btn btn-secondary btn-icon-silent">Anmeldungen</a>
|
||||
</header>
|
||||
<content>
|
||||
<th:block layout:fragment="header">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/}" class="btn btn-secondary btn-icon-silent">Hauptseite</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/confirmation}" class="btn btn-secondary btn-icon-silent">Anmeldungen</a></li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="mainpage">
|
||||
<div class="container" style="max-width: 100%" sec:authorize="hasRole('registrator')">
|
||||
<form action="#" th:action="@{/confirmation/person/update}" th:object="${person}" method="post" th:if="${person != null}">
|
||||
@ -112,12 +115,10 @@
|
||||
<label for="inputAccept" class="col-sm-2 col-form-label">Status</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<input type="radio" class="btn-check" id="accept1" name="accept1" value="" th:field="*{accept}" />
|
||||
<label class="btn btn-outline-primary" for="accept1"><i class="fas fa-question"></i> offen</label>
|
||||
<input type="radio" class="btn-check" id="accept2" name="accept2" value="true" th:field="*{accept}" />
|
||||
<label class="btn btn-outline-success" for="accept2"><i class="fas fa-check"></i> bestätigt</label>
|
||||
<input type="radio" class="btn-check" id="accept3" name="accept3" value="false" th:field="*{accept}" />
|
||||
<label class="btn btn-outline-danger" for="accept3"><i class="fas fa-ban"></i> abgelehnt</label>
|
||||
<input type="radio" class="btn-check" id="accept1" name="accept1" value="" th:field="*{accept}" /> <label class="btn btn-outline-primary" for="accept1"><i
|
||||
class="fas fa-question"></i> offen</label> <input type="radio" class="btn-check" id="accept2" name="accept2" value="true" th:field="*{accept}" /> <label class="btn btn-outline-success"
|
||||
for="accept2"><i class="fas fa-check"></i> bestätigt</label> <input type="radio" class="btn-check" id="accept3" name="accept3" value="false" th:field="*{accept}" /> <label
|
||||
class="btn btn-outline-danger" for="accept3"><i class="fas fa-ban"></i> abgelehnt</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -132,6 +133,6 @@
|
||||
<div th:if="${person == null}" class="error">In der Datenbank wurde keine Person mit entsprechender ID gefunden.</div>
|
||||
</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
@ -1,18 +1,25 @@
|
||||
<!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">
|
||||
<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 2</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs></libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a href="https://www.onkelwernerfreizeiten.de:8443/realms/ow/account/" class="btn btn-secondary btn-icon-silent" target="_blank">Profil</a>
|
||||
<a th:href="@{/business}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('business')">Abrechnung</i></a>
|
||||
<a th:href="@{/confirmation}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('registrator')">Bestätigung</i></a>
|
||||
<a href="https://www.onkelwernerfreizeiten.de/cloud" class="btn btn-secondary btn-icon-silent" target="_blank">Nextcloud</a>
|
||||
</header>
|
||||
<content>
|
||||
<th:block layout:fragment="header">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{${keycloakProfileUrl}}" class="btn btn-secondary btn-icon-silent" target="_blank">Profil</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/business}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('business')">Abrechnung</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/confirmation}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('registrator')">Bestätigung</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a href="https://www.onkelwernerfreizeiten.de/cloud" class="btn btn-secondary btn-icon-silent" target="_blank">Nextcloud</a></li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="mainpage">
|
||||
<script type="text/javascript">
|
||||
function mark(e) {
|
||||
@ -22,8 +29,8 @@
|
||||
<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}">
|
||||
<button th:class="'accordion-button collapsed acc_' + ${b.accept}" 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
|
||||
@ -67,10 +74,8 @@
|
||||
</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 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">
|
||||
@ -135,6 +140,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
@ -1,16 +1,23 @@
|
||||
<!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">
|
||||
<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 2</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs></libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<th:block layout:fragment="header">
|
||||
<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>
|
||||
</ul>
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-icon-silent menufont" href="http://anmeldung.onkelwernerfreizeiten.de">Unsere Freizeiten</a>
|
||||
</header>
|
||||
<content>
|
||||
</li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="mainpage">
|
||||
<script type="text/javascript">
|
||||
var mytoggle = new MyToggle();
|
||||
@ -56,6 +63,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
@ -1,15 +1,16 @@
|
||||
<!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">
|
||||
<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 2</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<libs></libs>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a th:href="@{/}" class="btn btn-secondary btn-icon-silent" target="_blank">Startseite laden</a>
|
||||
</header>
|
||||
<content>
|
||||
<th:block layout:fragment="header">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a th:href="@{/}" class="btn btn-secondary btn-icon-silent" target="_blank">Startseite laden</a></li>
|
||||
</ul>
|
||||
</th:block>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="mainpage">
|
||||
<h1 class="centered cabin">Anmeldung</h1>
|
||||
<h3 class="centered cabin" th:text="'zur ' + ${camp.name} + ' ' + ${camp.year}"></h3>
|
||||
@ -78,8 +79,8 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-12 rowdist">
|
||||
<div class="form-check" title="Die Anmeldedaten können in den Kontoeinstellungen bearbeitet und für die nächsten Freizeitanmeldungen verwendet werden.">
|
||||
<input id="save" type="checkbox" class="form-check-input" th:field="*{registerInKeycloak}" onchange="$('#createlogin').toggle();" />
|
||||
<label class="form-check-label" for="save">Anmeldedaten speichern</label>
|
||||
<input id="save" type="checkbox" class="form-check-input" th:field="*{registerInKeycloak}" onchange="$('#createlogin').toggle();" /> <label class="form-check-label" for="save">Anmeldedaten
|
||||
speichern</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -101,6 +102,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</content>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html th:fragment="layout (title, libs, header, content)" xmlns:th="http://www.thymeleaf.org">
|
||||
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
||||
<head>
|
||||
<title th:replace="${title}">Camp Organizer Business</title>
|
||||
<title>Camp Organizer 2</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/bootstrap/5.2.0/css/bootstrap.min.css} " />
|
||||
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/font-awesome/5.15.4/css/all.css} " />
|
||||
@ -16,18 +16,30 @@
|
||||
<script th:src="@{/js/dataTables.de.js}"></script>
|
||||
<script th:src="@{/js/mytoggle.js}"></script>
|
||||
<script th:src="@{/js/myAjax.js}"></script>
|
||||
<meta th:replace="${libs}"></meta>
|
||||
<th:block layout:fragment="libs"></th:block>
|
||||
</head>
|
||||
<body>
|
||||
<div class="myheadline">
|
||||
<div class="topright">
|
||||
<span th:if="${not #strings.isEmpty(currentUser)}"><a th:href="@{/logout}" class="btn btn-outline-secondary menufont"><b th:inline="text">[[${currentUser}]]</b> ausloggen</a>
|
||||
</span> <span th:if="${#strings.isEmpty(currentUser)}"> <a th:href="@{/dashboard}" class="btn btn-outline-secondary menufont">einloggen</a>
|
||||
<nav class="navbar navbar-expand-lg bg-light">
|
||||
<div class="container-fluid">
|
||||
<button class="navbar-toggler" 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">
|
||||
<ul layout:fragment="header"></ul>
|
||||
<ul class="nav navbar-nav ms-auto right-dist">
|
||||
<li>
|
||||
<span th:if="${not #strings.isEmpty(currentUser)}">
|
||||
<a th:href="@{/logout}" class="btn btn-outline-secondary menufont"><b th:inline="text">[[${currentUser}]]</b> ausloggen</a>
|
||||
</span>
|
||||
<span th:if="${#strings.isEmpty(currentUser)}">
|
||||
<a th:href="@{/dashboard}" class="btn btn-outline-secondary menufont">einloggen</a>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<span th:replace="${header}">Layout header</span>
|
||||
</div>
|
||||
<div th:replace="${content}">Layout content</div>
|
||||
</nav>
|
||||
<div layout:fragment="content">Layout content</div>
|
||||
<div class="versionclip">
|
||||
<a href="https://gitlab.com/jottyfan/camporganizer2/-/issues" class="versionlink" target="_blank" th:text="${'Version ' + @manifestBean.getVersion()}"></a>
|
||||
</div>
|
||||
|
Loading…
x
Reference in New Issue
Block a user