diff --git a/build.gradle b/build.gradle index e99e94c..7566362 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ targetCompatibility = 11 repositories { mavenLocal() mavenCentral() - maven { url "https://www.jottyfan.de/mvnrepo" } + maven { url "https://www.jottyfan.de/libs" } maven { url "https://repo.maven.apache.org/maven2" } // maven { url "https://gitlab.com/jottyfan/libs/-/raw/main" } } @@ -50,7 +50,7 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' - implementation 'de.jottyfan:timetrackjooq:0.1.0' + implementation 'de.jottyfan:timetrackjooq:0.1.1' implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:3.0.0' diff --git a/src/main/java/de/jottyfan/timetrack/spring/done/DoneBean.java b/src/main/java/de/jottyfan/timetrack/spring/done/DoneBean.java index feb398c..6c7b564 100644 --- a/src/main/java/de/jottyfan/timetrack/spring/done/DoneBean.java +++ b/src/main/java/de/jottyfan/timetrack/spring/done/DoneBean.java @@ -9,11 +9,11 @@ import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.Map; -import de.jottyfan.timetrack.db.done.tables.records.TBillingRecord; +import de.jottyfan.timetrack.db.done.tables.records.VBillingRecord; import de.jottyfan.timetrack.db.done.tables.records.TDoneRecord; -import de.jottyfan.timetrack.db.done.tables.records.TJobRecord; -import de.jottyfan.timetrack.db.done.tables.records.TModuleRecord; -import de.jottyfan.timetrack.db.done.tables.records.TProjectRecord; +import de.jottyfan.timetrack.db.done.tables.records.VJobRecord; +import de.jottyfan.timetrack.db.done.tables.records.VModuleRecord; +import de.jottyfan.timetrack.db.done.tables.records.VProjectRecord; /** * @@ -29,10 +29,10 @@ public class DoneBean implements Serializable, Comparable { private LocalDate day; private LocalDateTime timeFrom; private LocalDateTime timeUntil; - private TProjectRecord project; - private TModuleRecord module; - private TJobRecord activity; - private TBillingRecord billing; + private VProjectRecord project; + private VModuleRecord module; + private VJobRecord activity; + private VBillingRecord billing; private Integer fkProject; private Integer fkModule; private Integer fkJob; @@ -42,8 +42,8 @@ public class DoneBean implements Serializable, Comparable { this.day = null; } - public DoneBean(TDoneRecord r, Map projectMap, Map moduleMap, - Map jobMap, Map billingMap) { + public DoneBean(TDoneRecord r, Map projectMap, Map moduleMap, + Map jobMap, Map billingMap) { this.pk = r.getPk(); this.day = r.getTimeFrom() != null ? r.getTimeFrom().toLocalDate() : (r.getTimeUntil() == null ? r.getTimeUntil().toLocalDate() : LocalDate.now()); this.timeFrom = r.getTimeFrom(); @@ -260,29 +260,29 @@ public class DoneBean implements Serializable, Comparable { this.timeUntil = timeUntil; } - public TProjectRecord getProject() { + public VProjectRecord getProject() { return project; } - public void setProject(TProjectRecord project) { + public void setProject(VProjectRecord project) { this.project = project; this.fkProject = project != null ? project.getPk() : null; } - public TModuleRecord getModule() { + public VModuleRecord getModule() { return module; } - public void setModule(TModuleRecord module) { + public void setModule(VModuleRecord module) { this.module = module; this.fkModule = module != null ? module.getPk() : null; } - public TJobRecord getActivity() { + public VJobRecord getActivity() { return activity; } - public void setActivity(TJobRecord activity) { + public void setActivity(VJobRecord activity) { this.activity = activity; this.fkJob = activity != null ? activity.getPk() : null; } @@ -290,14 +290,14 @@ public class DoneBean implements Serializable, Comparable { /** * @return the billing */ - public TBillingRecord getBilling() { + public VBillingRecord getBilling() { return billing; } /** * @param billing the billing to set */ - public void setBilling(TBillingRecord billing) { + public void setBilling(VBillingRecord billing) { this.billing = billing; this.fkBilling = billing != null ? billing.getPk() : null; } diff --git a/src/main/java/de/jottyfan/timetrack/spring/done/IDoneService.java b/src/main/java/de/jottyfan/timetrack/spring/done/IDoneService.java index 5c8c809..2b60d3a 100644 --- a/src/main/java/de/jottyfan/timetrack/spring/done/IDoneService.java +++ b/src/main/java/de/jottyfan/timetrack/spring/done/IDoneService.java @@ -5,10 +5,10 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; -import de.jottyfan.timetrack.db.done.tables.records.TBillingRecord; -import de.jottyfan.timetrack.db.done.tables.records.TJobRecord; -import de.jottyfan.timetrack.db.done.tables.records.TModuleRecord; -import de.jottyfan.timetrack.db.done.tables.records.TProjectRecord; +import de.jottyfan.timetrack.db.done.tables.records.VBillingRecord; +import de.jottyfan.timetrack.db.done.tables.records.VJobRecord; +import de.jottyfan.timetrack.db.done.tables.records.VModuleRecord; +import de.jottyfan.timetrack.db.done.tables.records.VProjectRecord; /** * @@ -22,13 +22,13 @@ public interface IDoneService { public String getCurrentUser(HttpServletRequest request); - public List getProjects(boolean includeNull); + public List getProjects(boolean includeNull); - public List getModules(boolean includeNull); + public List getModules(boolean includeNull); - public List getJobs(boolean includeNull); + public List getJobs(boolean includeNull); - public List getBillings(boolean includeNull); + public List getBillings(boolean includeNull); public Integer doUpsert(DoneBean bean, String username); diff --git a/src/main/java/de/jottyfan/timetrack/spring/done/impl/DoneGateway.java b/src/main/java/de/jottyfan/timetrack/spring/done/impl/DoneGateway.java index f3ae136..88e0b9e 100644 --- a/src/main/java/de/jottyfan/timetrack/spring/done/impl/DoneGateway.java +++ b/src/main/java/de/jottyfan/timetrack/spring/done/impl/DoneGateway.java @@ -6,6 +6,10 @@ import static de.jottyfan.timetrack.db.done.Tables.T_JOB; import static de.jottyfan.timetrack.db.done.Tables.T_MODULE; import static de.jottyfan.timetrack.db.done.Tables.T_PROJECT; import static de.jottyfan.timetrack.db.profile.Tables.T_LOGIN; +import static de.jottyfan.timetrack.db.done.Tables.V_BILLING; +import static de.jottyfan.timetrack.db.done.Tables.V_JOB; +import static de.jottyfan.timetrack.db.done.Tables.V_MODULE; +import static de.jottyfan.timetrack.db.done.Tables.V_PROJECT; import java.sql.SQLException; import java.time.LocalDate; @@ -28,11 +32,11 @@ import org.jooq.exception.DataAccessException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; -import de.jottyfan.timetrack.db.done.tables.records.TBillingRecord; +import de.jottyfan.timetrack.db.done.tables.records.VBillingRecord; import de.jottyfan.timetrack.db.done.tables.records.TDoneRecord; -import de.jottyfan.timetrack.db.done.tables.records.TJobRecord; -import de.jottyfan.timetrack.db.done.tables.records.TModuleRecord; -import de.jottyfan.timetrack.db.done.tables.records.TProjectRecord; +import de.jottyfan.timetrack.db.done.tables.records.VJobRecord; +import de.jottyfan.timetrack.db.done.tables.records.VModuleRecord; +import de.jottyfan.timetrack.db.done.tables.records.VProjectRecord; import de.jottyfan.timetrack.db.profile.tables.records.TLoginRecord; import de.jottyfan.timetrack.spring.done.DoneBean; @@ -76,12 +80,13 @@ public class DoneGateway { * @throws ClassNotFoundException * @throws SQLException */ - public List getAllProjects(boolean includeNull) throws DataAccessException, ClassNotFoundException, SQLException { - List list = new ArrayList<>(); + public List getAllProjects(boolean includeNull) + throws DataAccessException, ClassNotFoundException, SQLException { + List list = new ArrayList<>(); if (includeNull) { - list.add(new TProjectRecord(null, null, "---")); + list.add(new VProjectRecord()); } - list.addAll(getJooq().selectFrom(T_PROJECT).orderBy(T_PROJECT.NAME).fetchInto(TProjectRecord.class)); + list.addAll(getJooq().selectFrom(V_PROJECT).orderBy(V_PROJECT.NAME).fetchInto(VProjectRecord.class)); return list; } @@ -96,12 +101,13 @@ public class DoneGateway { * @throws ClassNotFoundException * @throws SQLException */ - public List getAllModules(boolean includeNull) throws DataAccessException, ClassNotFoundException, SQLException { - List list = new ArrayList<>(); + public List getAllModules(boolean includeNull) + throws DataAccessException, ClassNotFoundException, SQLException { + List list = new ArrayList<>(); if (includeNull) { - list.add(new TModuleRecord(null, null, "---")); + list.add(new VModuleRecord()); } - list.addAll(getJooq().selectFrom(T_MODULE).orderBy(T_MODULE.NAME).fetchInto(TModuleRecord.class)); + list.addAll(getJooq().selectFrom(T_MODULE).orderBy(T_MODULE.NAME).fetchInto(VModuleRecord.class)); return list; } @@ -116,12 +122,13 @@ public class DoneGateway { * @throws ClassNotFoundException * @throws SQLException */ - public List getAllJobs(boolean includeNull) throws DataAccessException, ClassNotFoundException, SQLException { - List list = new ArrayList<>(); + public List getAllJobs(boolean includeNull) + throws DataAccessException, ClassNotFoundException, SQLException { + List list = new ArrayList<>(); if (includeNull) { - list.add(new TJobRecord(null, null, "---")); + list.add(new VJobRecord()); } - list.addAll(getJooq().selectFrom(T_JOB).orderBy(T_JOB.NAME).fetchInto(TJobRecord.class)); + list.addAll(getJooq().selectFrom(T_JOB).orderBy(T_JOB.NAME).fetchInto(VJobRecord.class)); return list; } @@ -136,12 +143,13 @@ public class DoneGateway { * @throws ClassNotFoundException * @throws SQLException */ - public List getAllBillings(boolean includeNull) throws DataAccessException, ClassNotFoundException, SQLException { - List list = new ArrayList<>(); + public List getAllBillings(boolean includeNull) + throws DataAccessException, ClassNotFoundException, SQLException { + List list = new ArrayList<>(); if (includeNull) { - list.add(new TBillingRecord(null, null, "---", null, null)); + list.add(new VBillingRecord(null, null, "---", null, null)); } - list.addAll(getJooq().selectFrom(T_BILLING).orderBy(T_BILLING.NAME).fetchInto(TBillingRecord.class)); + list.addAll(getJooq().selectFrom(T_BILLING).orderBy(T_BILLING.NAME).fetchInto(VBillingRecord.class)); return list; } @@ -153,10 +161,10 @@ public class DoneGateway { * @throws ClassNotFoundException * @throws DataAccessException */ - private Map getProjectMap() + private Map getProjectMap() throws DataAccessException, ClassNotFoundException, SQLException { - Map map = new HashMap<>(); - for (TProjectRecord r : getAllProjects(false)) { + Map map = new HashMap<>(); + for (VProjectRecord r : getAllProjects(false)) { map.put(r.getPk(), r); } return map; @@ -170,9 +178,9 @@ public class DoneGateway { * @throws ClassNotFoundException * @throws DataAccessException */ - private Map getModuleMap() throws DataAccessException, ClassNotFoundException, SQLException { - Map map = new HashMap<>(); - for (TModuleRecord r : getAllModules(false)) { + private Map getModuleMap() throws DataAccessException, ClassNotFoundException, SQLException { + Map map = new HashMap<>(); + for (VModuleRecord r : getAllModules(false)) { map.put(r.getPk(), r); } return map; @@ -186,9 +194,9 @@ public class DoneGateway { * @throws ClassNotFoundException * @throws DataAccessException */ - private Map getJobMap() throws DataAccessException, ClassNotFoundException, SQLException { - Map map = new HashMap<>(); - for (TJobRecord r : getAllJobs(false)) { + private Map getJobMap() throws DataAccessException, ClassNotFoundException, SQLException { + Map map = new HashMap<>(); + for (VJobRecord r : getAllJobs(false)) { map.put(r.getPk(), r); } return map; @@ -202,10 +210,10 @@ public class DoneGateway { * @throws ClassNotFoundException * @throws DataAccessException */ - private Map getBillingMap() + private Map getBillingMap() throws DataAccessException, ClassNotFoundException, SQLException { - Map map = new HashMap<>(); - for (TBillingRecord r : getAllBillings(false)) { + Map map = new HashMap<>(); + for (VBillingRecord r : getAllBillings(false)) { map.put(r.getPk(), r); } return map; @@ -241,10 +249,10 @@ public class DoneGateway { // @formatter:on LOGGER.debug("{}", sql.toString()); List list = new ArrayList<>(); - Map projectMap = getProjectMap(); - Map moduleMap = getModuleMap(); - Map jobMap = getJobMap(); - Map billingMap = getBillingMap(); + Map projectMap = getProjectMap(); + Map moduleMap = getModuleMap(); + Map jobMap = getJobMap(); + Map billingMap = getBillingMap(); for (Record7 r : sql.fetch()) { DoneBean bean = new DoneBean(); bean.setPk(r.get(T_DONE.PK)); @@ -303,10 +311,10 @@ public class DoneGateway { .where(T_DONE.PK.eq(pk)); // @formatter:on LOGGER.debug("{}", sql.toString()); - Map projectMap = getProjectMap(); - Map moduleMap = getModuleMap(); - Map jobMap = getJobMap(); - Map billingMap = getBillingMap(); + Map projectMap = getProjectMap(); + Map moduleMap = getModuleMap(); + Map jobMap = getJobMap(); + Map billingMap = getBillingMap(); for (Record7 r : sql.fetch()) { DoneBean bean = new DoneBean(); bean.setPk(r.get(T_DONE.PK)); diff --git a/src/main/java/de/jottyfan/timetrack/spring/done/impl/DoneService.java b/src/main/java/de/jottyfan/timetrack/spring/done/impl/DoneService.java index f0cd3cc..7e43af3 100644 --- a/src/main/java/de/jottyfan/timetrack/spring/done/impl/DoneService.java +++ b/src/main/java/de/jottyfan/timetrack/spring/done/impl/DoneService.java @@ -14,10 +14,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import de.jottyfan.timetrack.db.done.tables.records.TBillingRecord; -import de.jottyfan.timetrack.db.done.tables.records.TJobRecord; -import de.jottyfan.timetrack.db.done.tables.records.TModuleRecord; -import de.jottyfan.timetrack.db.done.tables.records.TProjectRecord; +import de.jottyfan.timetrack.db.done.tables.records.VBillingRecord; +import de.jottyfan.timetrack.db.done.tables.records.VJobRecord; +import de.jottyfan.timetrack.db.done.tables.records.VModuleRecord; +import de.jottyfan.timetrack.db.done.tables.records.VProjectRecord; import de.jottyfan.timetrack.spring.done.DoneBean; import de.jottyfan.timetrack.spring.done.IDoneService; import de.jottyfan.timetrack.spring.note.impl.NoteService; @@ -68,7 +68,7 @@ public class DoneService implements IDoneService { } @Override - public List getProjects(boolean includeNull) { + public List getProjects(boolean includeNull) { try { return new DoneGateway(dsl).getAllProjects(includeNull); } catch (Exception e) { @@ -78,7 +78,7 @@ public class DoneService implements IDoneService { } @Override - public List getModules(boolean includeNull) { + public List getModules(boolean includeNull) { try { return new DoneGateway(dsl).getAllModules(includeNull); } catch (Exception e) { @@ -88,7 +88,7 @@ public class DoneService implements IDoneService { } @Override - public List getJobs(boolean includeNull) { + public List getJobs(boolean includeNull) { try { return new DoneGateway(dsl).getAllJobs(includeNull); } catch (Exception e) { @@ -98,7 +98,7 @@ public class DoneService implements IDoneService { } @Override - public List getBillings(boolean includeNull) { + public List getBillings(boolean includeNull) { try { return new DoneGateway(dsl).getAllBillings(includeNull); } catch (Exception e) { diff --git a/src/main/resources/templates/done/list.html b/src/main/resources/templates/done/list.html index 554021f..e42e5c2 100644 --- a/src/main/resources/templates/done/list.html +++ b/src/main/resources/templates/done/list.html @@ -78,13 +78,13 @@ Name - Benutzt + Benutzt in % - TODO + @@ -94,13 +94,13 @@ Name - Benutzt + Benutzt in % - TODO + @@ -110,13 +110,13 @@ Name - Benutzt + Benutzt in % - TODO + @@ -127,14 +127,14 @@ Name Symbol - Benutzt + Benutzt in % - TODO +