From 1f3ba70196930097d9292e46c66b0d9d390be5a1 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Mon, 19 Nov 2018 12:15:35 +0100
Subject: [PATCH] OO-3741: set end of default time for access rule at the end
 of the day

---
 .../components/form/flexible/elements/DateChooser.java |  7 +++++++
 .../form/flexible/impl/elements/JSDateChooser.java     | 10 ++++++++++
 .../flexible/impl/elements/JSDateChooserComponent.java |  4 ++++
 .../flexible/impl/elements/JSDateChooserRenderer.java  |  7 ++++++-
 .../condition/ConditionConfigEasyController.java       |  1 +
 5 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/DateChooser.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/DateChooser.java
index 84fe5a43b50..602c5266a59 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/DateChooser.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/DateChooser.java
@@ -73,5 +73,12 @@ public interface DateChooser extends TextElement {
 	 * @param dateChooser A date chooser
 	 */
 	public void setDefaultValue(DateChooser dateChooser);
+	
+	/**
+	 * This will set the default time to 23:59 instead of 00:00
+	 * 
+	 * @param endOfDay
+	 */
+	public void setDefaultTimeAtEndOfDay(boolean endOfDay);
 
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooser.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooser.java
index b45c6b30f2d..c1a164c98d2 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooser.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooser.java
@@ -61,6 +61,7 @@ public class JSDateChooser extends TextElementImpl implements DateChooser {
 
 	private Locale locale;
 	private boolean dateChooserTimeEnabled;
+	private boolean defaultTimeAtEndOfDay;
 	private String forValidDateErrorKey;
 	private boolean checkForValidDate;
 	private int minute;
@@ -238,6 +239,15 @@ public class JSDateChooser extends TextElementImpl implements DateChooser {
 		this.dateChooserTimeEnabled = dateChooserTimeEnabled;
 	}
 
+	public boolean isDefaultTimeAtEndOfDay() {
+		return defaultTimeAtEndOfDay;
+	}
+
+	@Override
+	public void setDefaultTimeAtEndOfDay(boolean defaultTimeAtEndOfDay) {
+		this.defaultTimeAtEndOfDay = defaultTimeAtEndOfDay;
+	}
+
 	/* (non-Javadoc)
 	 * @see org.olat.core.gui.components.form.flexible.impl.elements.DateChooser#getDateChooserDateFormat()
 	 */
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserComponent.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserComponent.java
index 43e4b1ca86d..54a0fbe79a1 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserComponent.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserComponent.java
@@ -93,6 +93,10 @@ class JSDateChooserComponent extends FormBaseComponentImpl {
 	public boolean isDateChooserTimeEnabled() {
 		return element.isDateChooserTimeEnabled();
 	}
+	
+	public boolean isDefaultTimeAtEndOfDay() {
+		return element.isDefaultTimeAtEndOfDay();
+	}
 
 	public Translator getElementTranslator() {
 		return element.getTranslator();
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserRenderer.java
index 8f6539b8378..b9e2f8282b9 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserRenderer.java
@@ -132,7 +132,12 @@ class JSDateChooserRenderer extends DefaultComponentRenderer {
 				int hour, minute;
 				Date currentDate = jsdcc.getDate();
 				if(currentDate == null) {
-					hour = minute = 0;
+					if(jsdcc.isDefaultTimeAtEndOfDay()) {
+						hour = 23;
+						minute = 59;
+					} else {
+						hour = minute = 0;
+					}
 				} else {
 					Calendar cal = Calendar.getInstance();
 					cal.setTime(currentDate);
diff --git a/src/main/java/org/olat/course/condition/ConditionConfigEasyController.java b/src/main/java/org/olat/course/condition/ConditionConfigEasyController.java
index 5182125d613..af8fe2f7509 100644
--- a/src/main/java/org/olat/course/condition/ConditionConfigEasyController.java
+++ b/src/main/java/org/olat/course/condition/ConditionConfigEasyController.java
@@ -1180,6 +1180,7 @@ public class ConditionConfigEasyController extends FormBasicController implement
 		toDate.setExampleKey("form.easy.example.edate", null);
 		toDate.setDateChooserTimeEnabled(true);
 		toDate.setDisplaySize(toDate.getExampleDateString().length());
+		toDate.setDefaultTimeAtEndOfDay(true);
 		dateSubContainer.add(toDate);
 
 		dateSwitch = uifactory.addCheckboxesHorizontal("dateSwitch", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.dateSwitch") });
-- 
GitLab