diff --git a/.classpath b/.classpath
index 56e8fb3..83f7853 100644
--- a/.classpath
+++ b/.classpath
@@ -20,11 +20,16 @@
+
-
+
+
+
+
+
diff --git a/build.gradle b/build.gradle
index 2086520..1d8339b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,7 +22,7 @@ apply plugin: 'eclipse'
apply plugin: 'nu.studer.jooq'
group = 'jottyfan'
-version = '1.0.9'
+version = '1.1.0'
description = """timetrack"""
diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/DoneBean.java b/src/main/java/de/jottyfan/timetrack/modules/done/DoneBean.java
index 8f2ddbc..edd4fdb 100644
--- a/src/main/java/de/jottyfan/timetrack/modules/done/DoneBean.java
+++ b/src/main/java/de/jottyfan/timetrack/modules/done/DoneBean.java
@@ -90,9 +90,18 @@ public class DoneBean implements Bean, Serializable, Comparable {
return String.format("%02d:%02d", diff.toHours(), diff.toMinutes() % 60);
}
- public LocalDateTime getLocalDateTimeFromHHmm(String s) {
+ /**
+ * get local date time from s
+ *
+ * @param s the HH:mm formatted values
+ * @param ldt the date as basic for that datetime, for today one can use LocalDateTime.now(); in fact this is set if ldt is null internally
+ * @return the generated datetime
+ */
+ public LocalDateTime getLocalDateTimeFromHHmm(String s, LocalDateTime ldt) {
if (s == null || s.trim().isEmpty()) {
return null;
+ } else if (ldt == null) {
+ ldt = LocalDateTime.now();
}
String[] hm = s.split(":");
Integer hours = 0;
@@ -103,7 +112,6 @@ public class DoneBean implements Bean, Serializable, Comparable {
if (hm.length > 1) {
minutes = Integer.valueOf(hm[1]);
}
- LocalDateTime ldt = LocalDateTime.now();
ldt = ldt.withHour(hours);
ldt = ldt.withMinute(minutes);
ldt = ldt.withSecond(0);
@@ -128,7 +136,7 @@ public class DoneBean implements Bean, Serializable, Comparable {
}
public void setTimeFromString(String s) {
- LocalDateTime ldt = getLocalDateTimeFromHHmm(s);
+ LocalDateTime ldt = getLocalDateTimeFromHHmm(s, null); // use setDay instead
this.timeFrom = ldt == null ? null : Timestamp.valueOf(ldt);
}
@@ -137,7 +145,7 @@ public class DoneBean implements Bean, Serializable, Comparable {
}
public void setTimeUntilString(String s) {
- LocalDateTime ldt = getLocalDateTimeFromHHmm(s);
+ LocalDateTime ldt = getLocalDateTimeFromHHmm(s, null); // use setDay instead
this.timeUntil = ldt == null ? null : Timestamp.valueOf(ldt);
}
diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/DoneModel.java b/src/main/java/de/jottyfan/timetrack/modules/done/DoneModel.java
index d72103b..20cd3fc 100644
--- a/src/main/java/de/jottyfan/timetrack/modules/done/DoneModel.java
+++ b/src/main/java/de/jottyfan/timetrack/modules/done/DoneModel.java
@@ -167,6 +167,8 @@ public class DoneModel implements Model, Serializable {
public boolean update(JooqFacesContext facesContext) {
try {
+ // day contains the correct date; with that, refresh the current date after possibly changing the day
+ bean.setDay(day);
new DoneGateway(facesContext).update(bean);
return true;
} catch (DataAccessException | ClassNotFoundException | SQLException e) {
@@ -254,6 +256,10 @@ public class DoneModel implements Model, Serializable {
return times;
}
+ public String getGermanFormattedDay() {
+ return day == null ? "null" : new SimpleDateFormat("EEEE, dd.MMMM yyyy").format(day);
+ }
+
public Date getDay() {
return day;
}
diff --git a/src/test/java/de/jottyfan/timetrack/moduls/done/TestDoneBean.java b/src/test/java/de/jottyfan/timetrack/moduls/done/TestDoneBean.java
index c31fdd3..2b36e5d 100644
--- a/src/test/java/de/jottyfan/timetrack/moduls/done/TestDoneBean.java
+++ b/src/test/java/de/jottyfan/timetrack/moduls/done/TestDoneBean.java
@@ -24,19 +24,19 @@ public class TestDoneBean {
public void testGetLocalDateTimeFromHHmm() {
LocalDateTime ldt = LocalDateTime.now();
ldt = ldt.withSecond(0).withNano(0);
- assertEquals(ldt.withHour(0).withMinute(0), new DoneBean().getLocalDateTimeFromHHmm("0:0"));
- assertEquals(ldt.withHour(0).withMinute(5), new DoneBean().getLocalDateTimeFromHHmm("0:5"));
- assertEquals(ldt.withHour(3).withMinute(2), new DoneBean().getLocalDateTimeFromHHmm("3:2"));
- assertEquals(ldt.withHour(3).withMinute(2), new DoneBean().getLocalDateTimeFromHHmm("03:2"));
- assertEquals(ldt.withHour(10).withMinute(2), new DoneBean().getLocalDateTimeFromHHmm("10:2"));
- assertEquals(ldt.withHour(12).withMinute(2), new DoneBean().getLocalDateTimeFromHHmm("12:02"));
- assertEquals(ldt.withHour(12).withMinute(20), new DoneBean().getLocalDateTimeFromHHmm("12:20"));
- assertEquals(null, new DoneBean().getLocalDateTimeFromHHmm(null));
- assertEquals(null, new DoneBean().getLocalDateTimeFromHHmm(""));
- assertEquals(null, new DoneBean().getLocalDateTimeFromHHmm(" "));
- assertEquals(ldt.withHour(0).withMinute(0), new DoneBean().getLocalDateTimeFromHHmm("0"));
- assertEquals(ldt.withHour(1).withMinute(0), new DoneBean().getLocalDateTimeFromHHmm("1"));
- assertEquals(ldt.withHour(5).withMinute(0), new DoneBean().getLocalDateTimeFromHHmm("5"));
+ assertEquals(ldt.withHour(0).withMinute(0), new DoneBean().getLocalDateTimeFromHHmm("0:0", LocalDateTime.now()));
+ assertEquals(ldt.withHour(0).withMinute(5), new DoneBean().getLocalDateTimeFromHHmm("0:5", LocalDateTime.now()));
+ assertEquals(ldt.withHour(3).withMinute(2), new DoneBean().getLocalDateTimeFromHHmm("3:2", LocalDateTime.now()));
+ assertEquals(ldt.withHour(3).withMinute(2), new DoneBean().getLocalDateTimeFromHHmm("03:2", LocalDateTime.now()));
+ assertEquals(ldt.withHour(10).withMinute(2), new DoneBean().getLocalDateTimeFromHHmm("10:2", LocalDateTime.now()));
+ assertEquals(ldt.withHour(12).withMinute(2), new DoneBean().getLocalDateTimeFromHHmm("12:02", LocalDateTime.now()));
+ assertEquals(ldt.withHour(12).withMinute(20), new DoneBean().getLocalDateTimeFromHHmm("12:20", LocalDateTime.now()));
+ assertEquals(null, new DoneBean().getLocalDateTimeFromHHmm(null, LocalDateTime.now()));
+ assertEquals(null, new DoneBean().getLocalDateTimeFromHHmm("", LocalDateTime.now()));
+ assertEquals(null, new DoneBean().getLocalDateTimeFromHHmm(" ", LocalDateTime.now()));
+ assertEquals(ldt.withHour(0).withMinute(0), new DoneBean().getLocalDateTimeFromHHmm("0", LocalDateTime.now()));
+ assertEquals(ldt.withHour(1).withMinute(0), new DoneBean().getLocalDateTimeFromHHmm("1", LocalDateTime.now()));
+ assertEquals(ldt.withHour(5).withMinute(0), new DoneBean().getLocalDateTimeFromHHmm("5", LocalDateTime.now()));
}
@Test