From 8b51b595d61a88af05b908a93275f1315e3b6769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Henke?= Date: Thu, 2 Nov 2023 18:57:09 +0100 Subject: [PATCH] added favorite usage --- build.gradle | 2 +- .../modules/done/DoneController.java | 7 +++++++ .../timetrack/modules/done/DoneGateway.java | 19 +++++++++++++++++++ .../timetrack/modules/done/DoneService.java | 7 +++++++ src/main/resources/templates/done/list.html | 2 +- 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index bc126e7..30387bd 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ plugins { apply plugin: 'io.spring.dependency-management' group = 'de.jottyfan' -version = '1.4.0' +version = '1.4.1' description = """timetrack""" diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/DoneController.java b/src/main/java/de/jottyfan/timetrack/modules/done/DoneController.java index e8447d1..d62ec16 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/done/DoneController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/done/DoneController.java @@ -174,4 +174,11 @@ public class DoneController extends CommonController { doneService.unfavorize(id); return "redirect:/done/list"; } + + @RolesAllowed("timetrack_user") + @GetMapping(value = "/done/usefav/{id}") + public String usefavorite(@PathVariable Integer id) { + doneService.usefavorite(id); + return "redirect:/done/list"; + } } diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/DoneGateway.java b/src/main/java/de/jottyfan/timetrack/modules/done/DoneGateway.java index 0bdc3db..e98e4ce 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/done/DoneGateway.java +++ b/src/main/java/de/jottyfan/timetrack/modules/done/DoneGateway.java @@ -21,6 +21,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jooq.DSLContext; import org.jooq.DeleteConditionStep; +import org.jooq.InsertOnDuplicateStep; import org.jooq.InsertReturningStep; import org.jooq.InsertValuesStep7; import org.jooq.Record5; @@ -517,4 +518,22 @@ public class DoneGateway { } return list; } + + /** + * add a new entry as the favorite tells + * + * @param fkFavorite the id of the favorite + */ + public void useFav(Integer fkFavorite) { + InsertOnDuplicateStep sql = getJooq() + // @formatter:off + .insertInto(T_DONE, T_DONE.FK_LOGIN, T_DONE.FK_PROJECT, T_DONE.FK_MODULE, T_DONE.FK_JOB, T_DONE.FK_BILLING) + .select(getJooq() + .select(T_FAVORITE.FK_LOGIN, T_FAVORITE.FK_PROJECT, T_FAVORITE.FK_MODULE, T_FAVORITE.FK_JOB, T_FAVORITE.FK_BILLING) + .from(T_FAVORITE) + .where(T_FAVORITE.PK_FAVORITE.eq(fkFavorite))); + // @formatter:on + LOGGER.trace(sql); + sql.execute(); + } } diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/DoneService.java b/src/main/java/de/jottyfan/timetrack/modules/done/DoneService.java index bd78cd7..6306dbb 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/done/DoneService.java +++ b/src/main/java/de/jottyfan/timetrack/modules/done/DoneService.java @@ -219,4 +219,11 @@ public class DoneService { return new ArrayList<>(); } } + + public void usefavorite(Integer fkFavorite) { + try { + new DoneGateway(dsl).useFav(fkFavorite); + } catch (Exception e) { + } + } } diff --git a/src/main/resources/templates/done/list.html b/src/main/resources/templates/done/list.html index bf49642..4fdebe7 100644 --- a/src/main/resources/templates/done/list.html +++ b/src/main/resources/templates/done/list.html @@ -69,7 +69,7 @@