added camp description database value, see #27
This commit is contained in:
1 parent
1cf2e160eb
commit
ccd6c78397
11 files changed
+79
-28
No files matched your search
+5
-2
@@ -12,11 +12,14 @@
|
||||
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
|
||||
<classpathentry kind="src" output="bin/test" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
<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-25/"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
|
||||
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer">
|
||||
<attributes>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
|
||||
org.eclipse.jdt.core.compiler.compliance=21
|
||||
org.eclipse.jdt.core.compiler.source=21
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=25
|
||||
org.eclipse.jdt.core.compiler.compliance=25
|
||||
org.eclipse.jdt.core.compiler.source=25
|
||||
@@ -1,15 +1,8 @@
|
||||
<?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-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/>
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
|
||||
</wb-module>
|
||||
|
||||
<?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-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>
|
||||
</project-modules>
|
||||
@@ -3,5 +3,5 @@
|
||||
<fixed facet="jst.java"/>
|
||||
<fixed facet="jst.web"/>
|
||||
<installed facet="jst.web" version="2.4"/>
|
||||
<installed facet="jst.java" version="21"/>
|
||||
<installed facet="jst.java" version="25"/>
|
||||
</faceted-project>
|
||||
+3
-3
@@ -8,7 +8,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = 'de.jottyfan.camporganizer'
|
||||
version = '1.0.5'
|
||||
version = '1.0.6'
|
||||
|
||||
description = """CampOrganizer2"""
|
||||
|
||||
@@ -32,7 +32,7 @@ application {
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
languageVersion = JavaLanguageVersion.of(25)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ war {
|
||||
|
||||
dependencies {
|
||||
implementation 'org.jooq:jooq:3.20.8'
|
||||
implementation 'de.jottyfan:COJooq:2024.10.24'
|
||||
implementation 'de.jottyfan:COJooq:2026.10.12'
|
||||
|
||||
implementation 'org.apache.logging.log4j:log4j-api:2.25.2'
|
||||
implementation 'org.apache.logging.log4j:log4j-core:2.25.2'
|
||||
|
||||
@@ -151,6 +151,7 @@ public class AdminController extends CommonController {
|
||||
model.addAttribute("documents", service.getCampDocuments());
|
||||
model.addAttribute("locations", service.getLocations());
|
||||
model.addAttribute("profiles", service.getProfiles());
|
||||
model.addAttribute("campdescriptions", service.getCampdescriptions());
|
||||
return "/admin/camp_edit";
|
||||
}
|
||||
|
||||
@@ -160,6 +161,7 @@ public class AdminController extends CommonController {
|
||||
model.addAttribute("documents", service.getCampDocuments());
|
||||
model.addAttribute("locations", service.getLocations());
|
||||
model.addAttribute("profiles", service.getProfiles());
|
||||
model.addAttribute("campdescriptions", service.getCampdescriptions());
|
||||
String error = (String) request.getAttribute("error");
|
||||
if (error != null) {
|
||||
model.addAttribute("error", error);
|
||||
@@ -177,6 +179,7 @@ public class AdminController extends CommonController {
|
||||
model.addAttribute("documents", service.getCampDocuments());
|
||||
model.addAttribute("locations", service.getLocations());
|
||||
model.addAttribute("profiles", service.getProfiles());
|
||||
model.addAttribute("campdescriptions", service.getCampdescriptions());
|
||||
return "/admin/camp_edit";
|
||||
}
|
||||
String error = service.upsertCamp(bean);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package de.jottyfan.camporganizer.module.admin;
|
||||
|
||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_CAMP;
|
||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_CAMPDESCRIPTION;
|
||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_CAMPDOCUMENT;
|
||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_CAMPPROFILE;
|
||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_DOCUMENT;
|
||||
@@ -26,7 +27,7 @@ import org.jooq.DeleteConditionStep;
|
||||
import org.jooq.Field;
|
||||
import org.jooq.InsertResultStep;
|
||||
import org.jooq.InsertReturningStep;
|
||||
import org.jooq.InsertValuesStep16;
|
||||
import org.jooq.InsertValuesStep17;
|
||||
import org.jooq.InsertValuesStep3;
|
||||
import org.jooq.Record4;
|
||||
import org.jooq.Record5;
|
||||
@@ -48,6 +49,7 @@ import de.jottyfan.camporganizer.db.jooq.enums.EnumDocument;
|
||||
import de.jottyfan.camporganizer.db.jooq.enums.EnumFiletype;
|
||||
import de.jottyfan.camporganizer.db.jooq.enums.EnumModule;
|
||||
import de.jottyfan.camporganizer.db.jooq.tables.records.TCampRecord;
|
||||
import de.jottyfan.camporganizer.db.jooq.tables.records.TCampdescriptionRecord;
|
||||
import de.jottyfan.camporganizer.db.jooq.tables.records.TCampdocumentRecord;
|
||||
import de.jottyfan.camporganizer.db.jooq.tables.records.TCampprofileRecord;
|
||||
import de.jottyfan.camporganizer.db.jooq.tables.records.TDocumentRecord;
|
||||
@@ -448,7 +450,7 @@ public class AdminRepository {
|
||||
LocalDateTime arrive = arriveDate == null ? null : arriveDate.atStartOfDay();
|
||||
LocalDateTime depart = departDate == null ? null : departDate.atStartOfDay();
|
||||
if (bean.getPk() == null) {
|
||||
InsertValuesStep16<TCampRecord, LocalDateTime, String, LocalDateTime, Integer, Integer, Integer, Boolean, Integer, Integer, String, String, Integer, Integer, Integer, Integer, LocalDateTime> sql = DSL
|
||||
InsertValuesStep17<TCampRecord, LocalDateTime, String, LocalDateTime, Integer, Integer, Integer, Boolean, Integer, Integer, String, String, Integer, Integer, Integer, Integer, LocalDateTime, Integer> sql = DSL
|
||||
.using(t)
|
||||
// @formatter:off
|
||||
.insertInto(T_CAMP,
|
||||
@@ -467,10 +469,11 @@ public class AdminRepository {
|
||||
T_CAMP.BEDS_MALE,
|
||||
T_CAMP.BLOCKED_BEDS_FEMALE,
|
||||
T_CAMP.BLOCKED_BEDS_MALE,
|
||||
T_CAMP.START_BOOKING)
|
||||
T_CAMP.START_BOOKING,
|
||||
T_CAMP.FK_CAMPDESCRIPTION)
|
||||
.values(arrive, bean.getCountries(), depart, bean.getFkDocument(), bean.getFkLocation(), bean.getFkProfile(),
|
||||
bean.getLockSales() != null ? bean.getLockSales() : false, bean.getMaxAge(), bean.getMinAge(), bean.getName(), bean.getPrice(),
|
||||
bean.getBedsFemale(), bean.getBedsMale(), bean.getBlockedBedsFemale(), bean.getBlockedBedsMale(), bean.getStartBooking());
|
||||
bean.getBedsFemale(), bean.getBedsMale(), bean.getBlockedBedsFemale(), bean.getBlockedBedsMale(), bean.getStartBooking(), bean.getFkCampdescription());
|
||||
// @formatter:on
|
||||
LOGGER.trace(sql);
|
||||
sql.execute();
|
||||
@@ -494,6 +497,7 @@ public class AdminRepository {
|
||||
.set(T_CAMP.BLOCKED_BEDS_FEMALE, bean.getBlockedBedsFemale())
|
||||
.set(T_CAMP.BLOCKED_BEDS_MALE, bean.getBlockedBedsMale())
|
||||
.set(T_CAMP.START_BOOKING, bean.getStartBooking())
|
||||
.set(T_CAMP.FK_CAMPDESCRIPTION, bean.getFkCampdescription())
|
||||
.where(T_CAMP.PK.eq(bean.getPk()));
|
||||
// @formatter:on
|
||||
LOGGER.trace(sql);
|
||||
@@ -739,4 +743,15 @@ public class AdminRepository {
|
||||
LOGGER.trace(sql);
|
||||
sql.execute();
|
||||
}
|
||||
|
||||
/**
|
||||
* get all camp descriptions
|
||||
*
|
||||
* @return the list of all camp descriptions
|
||||
*/
|
||||
public List<TCampdescriptionRecord> getCampdescriptions() {
|
||||
SelectWhereStep<TCampdescriptionRecord> sql = jooq.selectFrom(T_CAMPDESCRIPTION);
|
||||
LOGGER.trace(sql);
|
||||
return sql.fetchInto(TCampdescriptionRecord.class);
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import de.jottyfan.camporganizer.db.jooq.enums.EnumDocument;
|
||||
import de.jottyfan.camporganizer.db.jooq.tables.records.TCampdescriptionRecord;
|
||||
import de.jottyfan.camporganizer.module.admin.model.CampBean;
|
||||
import de.jottyfan.camporganizer.module.admin.model.CampDocumentBean;
|
||||
import de.jottyfan.camporganizer.module.admin.model.DocumentBean;
|
||||
@@ -247,4 +248,15 @@ public class AdminService {
|
||||
public void deleteCampDocument(Integer id) {
|
||||
adminRepository.deleteCampDocument(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* get all camp descriptions; replace line breaks by /
|
||||
*
|
||||
* @return all camp descriptions
|
||||
*/
|
||||
public List<TCampdescriptionRecord> getCampdescriptions() {
|
||||
List<TCampdescriptionRecord> list = adminRepository.getCampdescriptions();
|
||||
list.forEach(r -> r.setValue(r.getValue().replace("<br />", " / ")));
|
||||
return list;
|
||||
}
|
||||
}
|
||||
@@ -60,6 +60,7 @@ public class CampBean implements Serializable {
|
||||
@NotNull
|
||||
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
|
||||
private LocalDateTime startBooking;
|
||||
private Integer fkCampdescription;
|
||||
|
||||
/**
|
||||
* generate a camp bean out of r
|
||||
@@ -91,6 +92,7 @@ public class CampBean implements Serializable {
|
||||
bean.setBlockedBedsFemale(r.getBlockedBedsFemale());
|
||||
bean.setBlockedBedsMale(r.getBlockedBedsMale());
|
||||
bean.setStartBooking(r.getStartBooking());
|
||||
bean.setFkCampdescription(r.getFkCampdescription());
|
||||
return bean;
|
||||
}
|
||||
|
||||
@@ -367,4 +369,18 @@ public class CampBean implements Serializable {
|
||||
public void setStartBooking(LocalDateTime startBooking) {
|
||||
this.startBooking = startBooking;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the fkCampdescription
|
||||
*/
|
||||
public Integer getFkCampdescription() {
|
||||
return fkCampdescription;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param fkCampdescription the fkCampdescription to set
|
||||
*/
|
||||
public void setFkCampdescription(Integer fkCampdescription) {
|
||||
this.fkCampdescription = fkCampdescription;
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,15 @@
|
||||
th:class="${'form-control ' + (#fields.hasErrors('name') ? 'inputerror' : '')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-2">
|
||||
<label for="fkCampdescription" class="col-sm-2 col-form-label">Beschreibung</label>
|
||||
<div class="col-sm-10">
|
||||
<select id="fkCampdescription" th:field="*{fkCampdescription}" class="form-select">
|
||||
<option value="">--- bitte wählen ---</option>
|
||||
<option th:each="cd : ${campdescriptions}" th:value="${cd.pkCampdescription}" th:utext="${cd.value}" th:title="${cd.value}"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-2">
|
||||
<label for="inputLocation" class="col-sm-2 col-form-label">Ort</label>
|
||||
<div class="col-sm-10">
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<div class="col-2 d-flex align-items-center">
|
||||
<img th:src="@{/images/Icon_Stern.svg}" width="36px" height="36px" />
|
||||
</div>
|
||||
<div class="col-4 d-flex align-items-center">
|
||||
<div class="col-4 d-flex align-items-center" th:utext="${c.campdescription}">
|
||||
Biblische Geschichten<br /> Nachtwanderung<br /> Gruppenspiele<br /> Ausflüge<br /> Überraschungen
|
||||
</div>
|
||||
<div class="col-6">
|
||||
|
||||
Reference in new issue
Block a user