From 62060311e9f5996a1470d196ffab87ccd9d9a0ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Henke?= Date: Mon, 19 Jan 2026 19:21:00 +0100 Subject: [PATCH] more details --- .../projectmanagement/AppController.java | 2 + .../projectmanagement/AppRepository.java | 40 ++++++- .../modules/projectmanagement/AppService.java | 10 +- .../projectmanagement/app/assign.html | 110 +++++++++--------- .../templates/projectmanagement/app/list.html | 80 ++++++++----- 5 files changed, 156 insertions(+), 86 deletions(-) diff --git a/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppController.java b/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppController.java index 5b49225..f07febc 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppController.java @@ -30,6 +30,8 @@ public class AppController extends CommonController { @RolesAllowed("timetrack_user") @GetMapping("/projectmanagement/workpackage/{pkWorkpackage}/apps") public String getAppsOfWorkpackage(@PathVariable("pkWorkpackage") Integer pkWorkpackage, final Model model) { + model.addAttribute("bean", service.getWorkpackage(pkWorkpackage)); + model.addAttribute("project", service.getProjectOfWorkpackage(pkWorkpackage)); model.addAttribute("apps", service.getAppsOf(pkWorkpackage)); return "/projectmanagement/app/list"; } diff --git a/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppRepository.java b/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppRepository.java index 2a81a80..68dc5f3 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppRepository.java +++ b/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppRepository.java @@ -1,5 +1,6 @@ package de.jottyfan.timetrack.modules.projectmanagement; +import static de.jottyfan.timetrack.db.project.Tables.T_PROJECT; import static de.jottyfan.timetrack.db.project.Tables.T_APP; import static de.jottyfan.timetrack.db.project.Tables.T_BUNDLE; import static de.jottyfan.timetrack.db.project.Tables.T_WORKPACKAGE; @@ -25,6 +26,7 @@ import org.springframework.stereotype.Repository; import de.jottyfan.timetrack.db.project.tables.records.TBundleRecord; import de.jottyfan.timetrack.db.project.tables.records.TWorkpackageAppRecord; import de.jottyfan.timetrack.modules.projectmanagement.model.AppBean; +import de.jottyfan.timetrack.modules.projectmanagement.model.ProjectBean; import de.jottyfan.timetrack.modules.projectmanagement.model.WorkpackageAppBean; import de.jottyfan.timetrack.modules.projectmanagement.model.WorkpackageBean; @@ -34,7 +36,7 @@ import de.jottyfan.timetrack.modules.projectmanagement.model.WorkpackageBean; */ @Repository public class AppRepository { - + @Autowired private DSLContext jooq; @@ -109,7 +111,8 @@ public class AppRepository { * @return the list of workpackage app linkages */ public List getWorkpackageApps(Integer pkApp) { - return jooq.selectFrom(T_WORKPACKAGE_APP).where(T_WORKPACKAGE_APP.FK_APP.eq(pkApp)).fetchInto(WorkpackageAppBean.class); + return jooq.selectFrom(T_WORKPACKAGE_APP).where(T_WORKPACKAGE_APP.FK_APP.eq(pkApp)) + .fetchInto(WorkpackageAppBean.class); } /** @@ -156,4 +159,37 @@ public class AppRepository { jooq.selectFrom(T_BUNDLE).fetchInto(TBundleRecord.class).forEach(b -> map.put(b.getPkBundle(), b)); return map; } + + /** + * get the workpackage + * + * @param pkWorkpackage the ID of the workpackage + * @return the workpackage if found or null + */ + public WorkpackageBean getWorkpackage(Integer pkWorkpackage) { + return jooq + // @formatter:off + .selectFrom(T_WORKPACKAGE) + .where(T_WORKPACKAGE.PK_WORKPACKAGE.eq(pkWorkpackage)) + .fetchOneInto(WorkpackageBean.class); + // @formatter:on + } + + /** + * get the project of the workpackage + * + * @param pkWorkpackage the ID of the workpackage + * @return the project if found or null + */ + public ProjectBean getProjectOfWorkpackage(Integer pkWorkpackage) { + return jooq + // @formatter:off + .select(T_PROJECT.NAME, + T_PROJECT.DESCRIPTION) + .from(T_WORKPACKAGE) + .leftJoin(T_PROJECT).on(T_PROJECT.PK_PROJECT.eq(T_WORKPACKAGE.FK_PROJECT)) + .where(T_WORKPACKAGE.PK_WORKPACKAGE.eq(pkWorkpackage)) + .fetchOneInto(ProjectBean.class); + // @formatter:on + } } diff --git a/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppService.java b/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppService.java index 2d6bd6f..bdd5b9e 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppService.java +++ b/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppService.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; import de.jottyfan.timetrack.db.project.tables.records.TBundleRecord; import de.jottyfan.timetrack.modules.projectmanagement.model.AppBean; +import de.jottyfan.timetrack.modules.projectmanagement.model.ProjectBean; import de.jottyfan.timetrack.modules.projectmanagement.model.WorkpackageAppBean; import de.jottyfan.timetrack.modules.projectmanagement.model.WorkpackageBean; @@ -44,5 +45,12 @@ public class AppService { public Map getBundleMap() { return repository.getBundleMap(); } - + + public WorkpackageBean getWorkpackage(Integer pkWorkpackage) { + return repository.getWorkpackage(pkWorkpackage); + } + + public ProjectBean getProjectOfWorkpackage(Integer pkWorkpackage) { + return repository.getProjectOfWorkpackage(pkWorkpackage); + } } diff --git a/src/main/resources/templates/projectmanagement/app/assign.html b/src/main/resources/templates/projectmanagement/app/assign.html index 37fd3d2..49f27c2 100644 --- a/src/main/resources/templates/projectmanagement/app/assign.html +++ b/src/main/resources/templates/projectmanagement/app/assign.html @@ -4,60 +4,60 @@ Projektmanagement - Projekt - -
-
-
-
Name
-
-
Beschreibung
-
-
Basisfunktion
-
-
URL der Entwicklung
-
-
Ersetzt durch andere App
-
- -
-
Bundle
-
- -
-
-
-
-
-
-
- - - - - - - - - - - - - - -
NameBeschreibungZuordnung
- - - - rausschmeißen - zuweisen - -
-
-
-
-
+ Projekt + +
+
+
+
+
+
+
Beschreibung
+
+
Basisfunktion
+
+
URL der Entwicklung
+
+ +
+
Ersetzt durch andere App
+
+ +
+
Bundle
+
+ +
+
+
+
+
+
+
+ +
+
\ No newline at end of file diff --git a/src/main/resources/templates/projectmanagement/app/list.html b/src/main/resources/templates/projectmanagement/app/list.html index f7e69ac..30f935a 100644 --- a/src/main/resources/templates/projectmanagement/app/list.html +++ b/src/main/resources/templates/projectmanagement/app/list.html @@ -11,35 +11,59 @@
-
- - - - - - - - - - - - - - - - - -
NameBeschreibungURL
gitlabzuordnen
- + +