Mathijs den Burger
2016-05-09 08:56:54 UTC
Mathijs den Burger pushed to branch bugfix/CMS-10070 at cms-community / hippo-cms
Commits:
77671fe5 by Mathijs den Burger at 2016-05-09T10:53:33+02:00
CMS-10070 fallback to default time zone if needed
- - - - -
8da771a1 by Mathijs den Burger at 2016-05-09T10:56:43+02:00
CMS-10070 translate " (DST)" suffix
- - - - -
7 changed files:
- api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
- api/src/main/java/org/hippoecm/frontend/session/UserSession.java
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter.properties
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_de.properties
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_fr.properties
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_nl.properties
- test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
Changes:
=====================================
api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
=====================================
--- a/api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
+++ b/api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
@@ -27,6 +27,7 @@ import java.util.TimeZone;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.util.io.IClusterable;
+import org.hippoecm.frontend.plugins.standards.ClassResourceModel;
import org.hippoecm.frontend.session.UserSession;
/**
@@ -67,7 +68,9 @@ public interface DateTimePrinter extends IClusterable {
String print(final FormatStyle dateStyle, final FormatStyle timeStyle);
/**
- * Append the string (DST) to the printed date if it is in Daylight Saving Time.
+ * Append an explanatory string to the printed date if it is in Daylight Saving Time.
+ * Java shifts the time zone +1 if a date is in DST (e.g. CET becomes CEST), so to avoid confusion we add
+ * a description after the time zone (e.g. " (DST)" in English).
* @return the DateTimePrinter instance
*/
DateTimePrinter appendDST();
@@ -142,7 +145,8 @@ public interface DateTimePrinter extends IClusterable {
private String print(DateTimeFormatter formatter) {
final ZonedDateTime dateTime = ZonedDateTime.ofInstant(instant, zoneId);
formatter = formatter.withLocale(locale);
- final String suffix = appendDST && isDST() ? " (DST)" : StringUtils.EMPTY;
+ final String dst = new ClassResourceModel("dst", JavaDateTimePrinter.class).getObject();
+ final String suffix = appendDST && isDST() ? " (" + dst + ")" : StringUtils.EMPTY;
return dateTime.format(formatter) + suffix;
}
=====================================
api/src/main/java/org/hippoecm/frontend/session/UserSession.java
=====================================
--- a/api/src/main/java/org/hippoecm/frontend/session/UserSession.java
+++ b/api/src/main/java/org/hippoecm/frontend/session/UserSession.java
@@ -78,6 +78,10 @@ public abstract class UserSession extends WebSession {
public TimeZone getTimeZone() {
final ClientProperties properties = getClientInfo().getProperties();
- return properties.getTimeZone();
+ TimeZone timeZone = properties.getTimeZone();
+ if (timeZone == null) {
+ timeZone = TimeZone.getDefault();
+ }
+ return timeZone;
}
}
=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter.properties
@@ -0,0 +1 @@
+dst=DST
=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_de.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_de.properties
@@ -0,0 +1 @@
+dst=Sommerzeit
=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_fr.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_fr.properties
@@ -0,0 +1 @@
+dst=l'heure d'\u00E9t\u00E9
=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_nl.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_nl.properties
@@ -0,0 +1 @@
+dst=zomertijd
=====================================
test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
=====================================
--- a/test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
+++ b/test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
@@ -27,6 +27,7 @@ import org.hippoecm.frontend.model.UserCredentials;
import org.junit.Test;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -116,5 +117,9 @@ public class UserSessionTest extends PluginTest {
assertFalse(deserJcrSession == jcrSession);
}
+ @Test
+ public void returnsTimeZone() {
+ assertNotNull(UserSession.get().getTimeZone());
+ }
}
View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/compare/6f7783ef54e8ff91febca75fe26a3e9b1763c66a...8da771a15bce0a46ce6871361b03bdc5c6acd2fa
Commits:
77671fe5 by Mathijs den Burger at 2016-05-09T10:53:33+02:00
CMS-10070 fallback to default time zone if needed
- - - - -
8da771a1 by Mathijs den Burger at 2016-05-09T10:56:43+02:00
CMS-10070 translate " (DST)" suffix
- - - - -
7 changed files:
- api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
- api/src/main/java/org/hippoecm/frontend/session/UserSession.java
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter.properties
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_de.properties
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_fr.properties
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_nl.properties
- test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
Changes:
=====================================
api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
=====================================
--- a/api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
+++ b/api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
@@ -27,6 +27,7 @@ import java.util.TimeZone;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.util.io.IClusterable;
+import org.hippoecm.frontend.plugins.standards.ClassResourceModel;
import org.hippoecm.frontend.session.UserSession;
/**
@@ -67,7 +68,9 @@ public interface DateTimePrinter extends IClusterable {
String print(final FormatStyle dateStyle, final FormatStyle timeStyle);
/**
- * Append the string (DST) to the printed date if it is in Daylight Saving Time.
+ * Append an explanatory string to the printed date if it is in Daylight Saving Time.
+ * Java shifts the time zone +1 if a date is in DST (e.g. CET becomes CEST), so to avoid confusion we add
+ * a description after the time zone (e.g. " (DST)" in English).
* @return the DateTimePrinter instance
*/
DateTimePrinter appendDST();
@@ -142,7 +145,8 @@ public interface DateTimePrinter extends IClusterable {
private String print(DateTimeFormatter formatter) {
final ZonedDateTime dateTime = ZonedDateTime.ofInstant(instant, zoneId);
formatter = formatter.withLocale(locale);
- final String suffix = appendDST && isDST() ? " (DST)" : StringUtils.EMPTY;
+ final String dst = new ClassResourceModel("dst", JavaDateTimePrinter.class).getObject();
+ final String suffix = appendDST && isDST() ? " (" + dst + ")" : StringUtils.EMPTY;
return dateTime.format(formatter) + suffix;
}
=====================================
api/src/main/java/org/hippoecm/frontend/session/UserSession.java
=====================================
--- a/api/src/main/java/org/hippoecm/frontend/session/UserSession.java
+++ b/api/src/main/java/org/hippoecm/frontend/session/UserSession.java
@@ -78,6 +78,10 @@ public abstract class UserSession extends WebSession {
public TimeZone getTimeZone() {
final ClientProperties properties = getClientInfo().getProperties();
- return properties.getTimeZone();
+ TimeZone timeZone = properties.getTimeZone();
+ if (timeZone == null) {
+ timeZone = TimeZone.getDefault();
+ }
+ return timeZone;
}
}
=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter.properties
@@ -0,0 +1 @@
+dst=DST
=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_de.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_de.properties
@@ -0,0 +1 @@
+dst=Sommerzeit
=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_fr.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_fr.properties
@@ -0,0 +1 @@
+dst=l'heure d'\u00E9t\u00E9
=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_nl.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_nl.properties
@@ -0,0 +1 @@
+dst=zomertijd
=====================================
test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
=====================================
--- a/test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
+++ b/test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
@@ -27,6 +27,7 @@ import org.hippoecm.frontend.model.UserCredentials;
import org.junit.Test;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -116,5 +117,9 @@ public class UserSessionTest extends PluginTest {
assertFalse(deserJcrSession == jcrSession);
}
+ @Test
+ public void returnsTimeZone() {
+ assertNotNull(UserSession.get().getTimeZone());
+ }
}
View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/compare/6f7783ef54e8ff91febca75fe26a3e9b1763c66a...8da771a15bce0a46ce6871361b03bdc5c6acd2fa