library upgrade

This commit is contained in:
Jottyfan 2023-05-06 13:41:17 +02:00
parent 1f60d61428
commit 4d604974e2
6 changed files with 24 additions and 35 deletions

View File

@ -18,7 +18,7 @@ apply plugin: 'war'
apply plugin: 'application' apply plugin: 'application'
group = 'de.jottyfan.camporganizer' group = 'de.jottyfan.camporganizer'
version = '0.4.9' version = '0.5.0'
sourceCompatibility = 17 sourceCompatibility = 17
mainClassName = "de.jottyfan.camporganizer.Main" mainClassName = "de.jottyfan.camporganizer.Main"
@ -30,7 +30,7 @@ repositories {
} }
ext { ext {
set('keycloakVersion', '20.0.1') set('keycloakVersion', '21.1.1')
} }
war { war {
@ -41,26 +41,23 @@ war {
} }
dependencies { dependencies {
implementation 'org.apache.logging.log4j:log4j-api:2.17.1' implementation 'org.apache.logging.log4j:log4j-api:2.20.0'
implementation 'org.apache.logging.log4j:log4j-core:2.17.1' implementation 'org.apache.logging.log4j:log4j-core:2.20.0'
implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.17.1' implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.20.0'
implementation 'org.webjars:bootstrap:5.2.0' implementation 'org.webjars:bootstrap:5.2.3'
implementation 'org.webjars:font-awesome:5.15.4' implementation 'org.webjars:font-awesome:5.15.4'
implementation 'org.webjars:jquery:3.6.0' implementation 'org.webjars:jquery:3.6.4'
implementation 'org.webjars:popper.js:2.9.3' implementation 'org.webjars:popper.js:2.9.3'
implementation 'org.webjars:datatables:1.11.4' implementation 'org.webjars:datatables:1.13.2'
implementation 'org.webjars:select2:4.0.13' implementation 'org.webjars:select2:4.0.13'
implementation 'net.sf.biweekly:biweekly:0.6.6' implementation 'net.sf.biweekly:biweekly:0.6.6'
implementation 'org.keycloak:keycloak-spring-boot-starter' implementation 'org.keycloak:keycloak-spring-boot-starter'
// old login algorithm; can be removed when all accounts have moved
implementation 'org.jasypt:jasypt:1.9.3'
// for using the keycloak rest interface // for using the keycloak rest interface
implementation 'org.keycloak:keycloak-admin-client:20.0.1' implementation 'org.keycloak:keycloak-admin-client:21.1.1'
implementation 'org.jboss.resteasy:resteasy-client:5.0.0.Final' implementation 'org.jboss.resteasy:resteasy-client:5.0.0.Final'
// backward compatibility until the complete registration is converted to keycloak // backward compatibility until the complete registration is converted to keycloak

View File

@ -1,7 +1,5 @@
package de.jottyfan.camporganizer.module.registration; package de.jottyfan.camporganizer.module.registration;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -14,7 +12,6 @@ import de.jottyfan.camporganizer.module.camplist.BookingBean;
*/ */
@Service @Service
public class RegistrationService { public class RegistrationService {
private final static Logger LOGGER = LogManager.getLogger(RegistrationService.class);
@Autowired @Autowired
private RegistrationRepository gateway; private RegistrationRepository gateway;

View File

@ -1,15 +1,12 @@
package de.jottyfan.camporganizer.module.registration.validate; package de.jottyfan.camporganizer.module.registration.validate;
import java.text.DateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext; import javax.validation.ConstraintValidatorContext;
import org.springframework.beans.BeanWrapperImpl; import org.springframework.beans.BeanWrapperImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.datetime.DateFormatter;
import de.jottyfan.camporganizer.db.jooq.enums.EnumCamprole; import de.jottyfan.camporganizer.db.jooq.enums.EnumCamprole;
import de.jottyfan.camporganizer.module.registration.RegistrationRepository; import de.jottyfan.camporganizer.module.registration.RegistrationRepository;

View File

@ -22,8 +22,8 @@
<div class="row mb-2"> <div class="row mb-2">
<label for="inputLocation" class="col-sm-2 col-form-label">Ort</label> <label for="inputLocation" class="col-sm-2 col-form-label">Ort</label>
<div class="col-sm-10"> <div class="col-sm-10">
<span class="error" th:each="error : ${#fields.errors('fkLocation')}">[[${error}]]<br /></span> <span class="error" th:each="error : ${#fields.errors('fkLocation')}">[[${error}]]<br /></span> <select id="inputLocation" th:field="*{fkLocation}"
<select id="inputLocation" th:field="*{fkLocation}" th:class="${'form-select ' + (#fields.hasErrors('fkLocation') ? 'inputerror' : '')}"> th:class="${'form-select ' + (#fields.hasErrors('fkLocation') ? 'inputerror' : '')}">
<option value="">--- bitte wählen ---</option> <option value="">--- bitte wählen ---</option>
<option th:each="l : ${locations}" th:value="${l.pk}" th:text="${l.name}"></option> <option th:each="l : ${locations}" th:value="${l.pk}" th:text="${l.name}"></option>
</select> </select>
@ -56,15 +56,15 @@
<div class="row mb-2"> <div class="row mb-2">
<label for="inputPrice" class="col-sm-2 col-form-label">Preis</label> <label for="inputPrice" class="col-sm-2 col-form-label">Preis</label>
<div class="col-sm-10"> <div class="col-sm-10">
<span class="error" th:each="error : ${#fields.errors('price')}">[[${error}]]<br /></span> <textarea id="inputPrice" type="text" th:field="*{price}" <span class="error" th:each="error : ${#fields.errors('price')}">[[${error}]]<br /></span>
th:class="${'form-control ' + (#fields.hasErrors('price') ? 'inputerror' : '')}"></textarea> <textarea id="inputPrice" th:field="*{price}" th:class="${'form-control ' + (#fields.hasErrors('price') ? 'inputerror' : '')}"></textarea>
</div> </div>
</div> </div>
<div class="row mb-2"> <div class="row mb-2">
<label for="inputCountries" class="col-sm-2 col-form-label">Ferien in</label> <label for="inputCountries" class="col-sm-2 col-form-label">Ferien in</label>
<div class="col-sm-10"> <div class="col-sm-10">
<span class="error" th:each="error : ${#fields.errors('countriesList')}">[[${error}]]<br /></span> <span class="error" th:each="error : ${#fields.errors('countriesList')}">[[${error}]]<br /></span> <select id="inputCountries" th:field="*{countriesList}"
<select id="inputCountries" th:field="*{countriesList}" th:class="${'form-select ' + (#fields.hasErrors('countriesList') ? 'inputerror' : '')}" multiple="multiple"> th:class="${'form-select ' + (#fields.hasErrors('countriesList') ? 'inputerror' : '')}" multiple="multiple">
<option value="Baden-Württemberg">Baden-Württemberg</option> <option value="Baden-Württemberg">Baden-Württemberg</option>
<option value="Bayern">Bayern</option> <option value="Bayern">Bayern</option>
<option value="Berlin">Berlin</option> <option value="Berlin">Berlin</option>
@ -122,15 +122,13 @@
<div class="row mb-2"> <div class="row mb-2">
<label for="inputLockSales" class="col-sm-2 col-form-label">Kassenschluss</label> <label for="inputLockSales" class="col-sm-2 col-form-label">Kassenschluss</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input id="lockSales" type="checkbox" name="lockSales" th:checked="*{lockSales}" /> <input id="lockSales" type="checkbox" name="lockSales" th:checked="*{lockSales}" /> <label for="lockSales">Abrechnung abgeschlossen</label>
<label for="lockSales">Abrechnung abgeschlossen</label>
</div> </div>
</div> </div>
<div class="row mb-2"> <div class="row mb-2">
<div class="col-sm-2"></div> <div class="col-sm-2"></div>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="submit" class="btn btn-success" value="Ok" /> <input type="submit" class="btn btn-success" value="Ok" /> <a th:href="@{/admin/camp}" class="btn btn-outline-secondary">Abbrechen</a>
<a th:href="@{/admin/camp}" class="btn btn-outline-secondary">Abbrechen</a>
<div class="dropdown" style="display: inline" th:if="${bean.pk}"> <div class="dropdown" style="display: inline" th:if="${bean.pk}">
<button class="btn btn-outline-danger dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false"> <button class="btn btn-outline-danger dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-trash-alt"></i> <i class="fas fa-trash-alt"></i>

View File

@ -12,7 +12,7 @@
<div class="row mb-2"> <div class="row mb-2">
<label for="outputPk" class="col-sm-2 col-form-label">ID</label> <label for="outputPk" class="col-sm-2 col-form-label">ID</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="text" th:field="*{pk}" class="outputPk form-control locked"></span> <input type="text" th:field="*{pk}" class="outputPk form-control locked" />
</div> </div>
</div> </div>
<div class="row mb-2"> <div class="row mb-2">

View File

@ -4,15 +4,15 @@
<title>Camp Organizer 2</title> <title>Camp Organizer 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<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/bootstrap/5.2.3/css/bootstrap.min.css} " />
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/font-awesome/5.15.4/css/all.css} " /> <link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/font-awesome/5.15.4/css/all.css} " />
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/datatables/1.11.4/css/jquery.dataTables.min.css}" /> <link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/datatables/1.13.2/css/jquery.dataTables.min.css}" />
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/select2/4.0.13/css/select2.min.css}" /> <link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/select2/4.0.13/css/select2.min.css}" />
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/css/style.css}" /> <link th:rel="stylesheet" type="text/css" media="all" th:href="@{/css/style.css}" />
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/css/select2-bootstrap-5-theme.min.css}" /> <link th:rel="stylesheet" type="text/css" media="all" th:href="@{/css/select2-bootstrap-5-theme.min.css}" />
<script th:src="@{/webjars/jquery/3.6.0/jquery.min.js}"></script> <script th:src="@{/webjars/jquery/3.6.4/jquery.min.js}"></script>
<script th:src="@{/webjars/bootstrap/5.2.0/js/bootstrap.bundle.min.js}"></script> <script th:src="@{/webjars/bootstrap/5.2.3/js/bootstrap.bundle.min.js}"></script>
<script th:src="@{/webjars/datatables/1.11.4/js/jquery.dataTables.min.js}"></script> <script th:src="@{/webjars/datatables/1.13.2/js/jquery.dataTables.min.js}"></script>
<script th:src="@{/webjars/select2/4.0.13/js/select2.full.min.js}"></script> <script th:src="@{/webjars/select2/4.0.13/js/select2.full.min.js}"></script>
<script th:src="@{/js/dataTables.de.js}"></script> <script th:src="@{/js/dataTables.de.js}"></script>
<script th:src="@{/js/mytoggle.js}"></script> <script th:src="@{/js/mytoggle.js}"></script>