diff --git a/build.gradle b/build.gradle index ef38ad2..41a096a 100644 --- a/build.gradle +++ b/build.gradle @@ -30,7 +30,7 @@ dependencies { implementation 'org.webjars:font-awesome:7.1.0' implementation 'org.webjars:jquery:3.7.1' implementation 'org.webjars:popper.js:2.11.7' - implementation 'org.webjars:datatables:2.3.5' + implementation 'org.webjars:datatables:2.3.6' implementation 'org.webjars:jquery-ui:1.14.1' implementation 'org.webjars.npm:fullcalendar:6.1.19' 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 84505fd..ec1a1fe 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppRepository.java +++ b/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/AppRepository.java @@ -1,12 +1,15 @@ 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_PROJECT; import static de.jottyfan.timetrack.db.project.Tables.T_WORKPACKAGE; import static de.jottyfan.timetrack.db.project.Tables.T_WORKPACKAGE_APP; +import java.time.LocalDate; +import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -19,6 +22,7 @@ import org.jooq.Record7; import org.jooq.Record8; import org.jooq.SelectConditionStep; import org.jooq.SelectHavingStep; +import org.jooq.SelectSeekStep1; import org.jooq.impl.DSL; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @@ -101,7 +105,36 @@ public class AppRepository { * @return the list; an empty list at least */ public List getWorkpackages() { - return jooq.selectFrom(T_WORKPACKAGE).fetchInto(WorkpackageBean.class); + SelectSeekStep1, String> sql = jooq + // @formatter:off + .select(T_WORKPACKAGE.PK_WORKPACKAGE, + T_WORKPACKAGE.NAME, + T_WORKPACKAGE.DESCRIPTION, + T_WORKPACKAGE.FK_PROJECT, + T_WORKPACKAGE.CONTRACT_URL, + T_WORKPACKAGE.MILESTONE_URL, + T_WORKPACKAGE.PLANNED_DUEDATE, + T_PROJECT.NAME) + .from(T_WORKPACKAGE) + .leftJoin(T_PROJECT).on(T_PROJECT.PK_PROJECT.eq(T_WORKPACKAGE.FK_PROJECT)) + .orderBy(T_WORKPACKAGE.NAME); + // @formatter:off + List list = new ArrayList<>(); + Iterator> i = sql.fetch().iterator(); + while (i.hasNext()) { + Record8 r = i.next(); + WorkpackageBean bean = new WorkpackageBean(); + bean.setPkWorkpackage(r.get(T_WORKPACKAGE.PK_WORKPACKAGE)); + bean.setName(r.get(T_WORKPACKAGE.NAME)); + bean.setDescription(r.get(T_WORKPACKAGE.DESCRIPTION)); + bean.setFkProject(r.get(T_WORKPACKAGE.FK_PROJECT)); + bean.setContractUrl(r.get(T_WORKPACKAGE.CONTRACT_URL)); + bean.setMilestoneUrl(r.get(T_WORKPACKAGE.MILESTONE_URL)); + bean.setPlannedDuedate(r.get(T_WORKPACKAGE.PLANNED_DUEDATE)); + bean.setProjectName(r.get(T_PROJECT.NAME)); + list.add(bean); + } + return list; } /** @@ -230,7 +263,7 @@ public class AppRepository { .execute(); // @formatter:on } - + /** * insert the bean * diff --git a/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/model/WorkpackageBean.java b/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/model/WorkpackageBean.java index 815c323..2258674 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/model/WorkpackageBean.java +++ b/src/main/java/de/jottyfan/timetrack/modules/projectmanagement/model/WorkpackageBean.java @@ -22,6 +22,8 @@ public class WorkpackageBean implements Serializable { private String milestoneUrl; private String contractUrl; private LocalDate plannedDuedate; + + private String projectName; public static final WorkpackageBean of(TWorkpackageRecord r) { WorkpackageBean bean = new WorkpackageBean(); @@ -142,4 +144,18 @@ public class WorkpackageBean implements Serializable { public void setPlannedDuedate(LocalDate plannedDuedate) { this.plannedDuedate = plannedDuedate; } + + /** + * @return the projectName + */ + public String getProjectName() { + return projectName; + } + + /** + * @param projectName the projectName to set + */ + public void setProjectName(String projectName) { + this.projectName = projectName; + } } diff --git a/src/main/resources/templates/layout/main.html b/src/main/resources/templates/layout/main.html index 10f3938..9732d50 100644 --- a/src/main/resources/templates/layout/main.html +++ b/src/main/resources/templates/layout/main.html @@ -6,7 +6,8 @@ Timetrack - + + @@ -15,7 +16,9 @@ - + + + diff --git a/src/main/resources/templates/projectmanagement/app/assign.html b/src/main/resources/templates/projectmanagement/app/assign.html index 49f27c2..7670126 100644 --- a/src/main/resources/templates/projectmanagement/app/assign.html +++ b/src/main/resources/templates/projectmanagement/app/assign.html @@ -7,7 +7,7 @@ Projekt
@@ -39,7 +39,7 @@
diff --git a/src/main/resources/templates/projectmanagement/dashboard.html b/src/main/resources/templates/projectmanagement/dashboard.html index 84fc2fe..ed8342c 100644 --- a/src/main/resources/templates/projectmanagement/dashboard.html +++ b/src/main/resources/templates/projectmanagement/dashboard.html @@ -7,8 +7,8 @@ Projekte
@@ -32,10 +32,11 @@
-
Alles
-
diff --git a/src/main/resources/templates/projectmanagement/project/item.html b/src/main/resources/templates/projectmanagement/project/item.html index 17b00dc..7e88bce 100644 --- a/src/main/resources/templates/projectmanagement/project/item.html +++ b/src/main/resources/templates/projectmanagement/project/item.html @@ -7,7 +7,7 @@ Projekt
@@ -30,7 +30,7 @@
Geldgeber
-