From 0a78ecfd2e40ca3306b371141d9d93af56bdbc19 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 28 Feb 2018 10:46:04 +0100 Subject: [PATCH] OO-3345: add the possibility to set an other date chooser as default value --- .../form/flexible/elements/DateChooser.java | 13 +++++++++++- .../flexible/impl/elements/JSDateChooser.java | 16 +++++++++++--- .../impl/elements/JSDateChooserComponent.java | 9 ++++---- .../impl/elements/JSDateChooserRenderer.java | 21 ++++++++++++------- .../ui/mode/AssessmentModeEditController.java | 5 +++-- 5 files changed, 46 insertions(+), 18 deletions(-) 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 34fcec1c4e0..84fe5a43b50 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 @@ -31,7 +31,7 @@ import java.util.Date; * @author patrickb * */ -public interface DateChooser extends TextElement{ +public interface DateChooser extends TextElement { /** * @return the date or null if the value is not valid (parsed with @@ -62,5 +62,16 @@ public interface DateChooser extends TextElement{ public void setValidDateCheck(String errorKey); public String getExampleDateString(); + + + public DateChooser getDefaultValue(); + + /** + * Set an other date chooser as default value for this + * chooser. + * + * @param dateChooser A date chooser + */ + public void setDefaultValue(DateChooser dateChooser); } \ 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 96137f00447..b45c6b30f2d 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 @@ -42,8 +42,6 @@ import org.olat.core.util.ValidationStatus; import org.olat.core.util.ValidationStatusImpl; /** - * Description:<br> - * TODO: patrickb Class Description for JSDateChooser * <P> * Initial Date: 19.01.2007 <br> * @@ -65,7 +63,9 @@ public class JSDateChooser extends TextElementImpl implements DateChooser { private boolean dateChooserTimeEnabled; private String forValidDateErrorKey; private boolean checkForValidDate; - private int minute, hour; + private int minute; + private int hour; + private DateChooser defaultDateValue; public JSDateChooser(String name, Locale locale) { this(null, name, null, locale); @@ -111,6 +111,16 @@ public class JSDateChooser extends TextElementImpl implements DateChooser { return dateComponent; } + @Override + public DateChooser getDefaultValue() { + return defaultDateValue; + } + + @Override + public void setDefaultValue(DateChooser dateChooser) { + defaultDateValue = dateChooser; + } + /** * @see org.olat.core.gui.components.form.flexible.elements.AbstractTextElement#validate(java.util.List) */ 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 6f71e9076dd..43e4b1ca86d 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 @@ -35,9 +35,6 @@ import org.olat.core.gui.render.ValidationResult; import org.olat.core.gui.translator.Translator; /** - * Description:<br> - * TODO: patrickb Class Description for JSDateChooserComponent - * * <P> * Initial Date: 19.01.2007 <br> * @@ -45,7 +42,7 @@ import org.olat.core.gui.translator.Translator; */ class JSDateChooserComponent extends FormBaseComponentImpl { - private final static ComponentRenderer RENDERER = new JSDateChooserRenderer(); + private static final ComponentRenderer RENDERER = new JSDateChooserRenderer(); private JSDateChooser element; public JSDateChooserComponent(JSDateChooser element) { @@ -104,4 +101,8 @@ class JSDateChooserComponent extends FormBaseComponentImpl { public String getExampleDateString() { return element.getExampleDateString(); } + + public JSDateChooser getFormItem() { + return element; + } } 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 db6b7fe2880..8f6539b8378 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 @@ -40,8 +40,6 @@ import org.olat.core.gui.translator.Translator; import org.olat.core.util.Util; /** - * Description:<br> - * TODO: patrickb Class Description for JSDateChooserRenderer * <P> * Initial Date: 19.01.2007 <br> * @@ -87,7 +85,7 @@ class JSDateChooserRenderer extends DefaultComponentRenderer { .append("></i></span>") .append("</div></div>");//input-group // date chooser javascript - sb.append("<script type=\"text/javascript\">\n /* <![CDATA[ */ \n") + sb.append("<script>\n /* <![CDATA[ */ \n") .append("jQuery(function(){ jQuery('#").append(receiverId).append("').datepicker({\n") .append(" dateFormat:'").append(format).append("',\n") .append(" firstDay:1,\n") @@ -114,11 +112,18 @@ class JSDateChooserRenderer extends DefaultComponentRenderer { .append("'").append(dateTranslator.translate("day.short.fr")).append("',") .append("'").append(dateTranslator.translate("day.short.sa")).append("'") .append("],\n") - .append(" showOtherMonths:true,\n") - .append(" onSelect:function(){\n") - .append(" setFlexiFormDirty('").append(te.getRootForm().getDispatchFieldId()).append("');\n") - .append(" jQuery(this).change();\n") - .append(" }\n") + .append(" showOtherMonths:true,\n"); + if(jsdcc.getFormItem().getDefaultValue() != null) { + String id = ((JSDateChooser)jsdcc.getFormItem().getDefaultValue()).getTextElementComponent().getFormDispatchId(); + sb.append(" beforeShow:function(el, inst) {\n") + .append(" var defDate = jQuery('#").append(id).append("').datepicker('getDate');\n") + .append(" jQuery('#").append(receiverId).append("').datepicker('option', 'defaultDate', defDate);") + .append(" },\n"); + } + sb.append(" onSelect:function(){\n") + .append(" setFlexiFormDirty('").append(te.getRootForm().getDispatchFieldId()).append("');\n") + .append(" jQuery(this).change();\n") + .append(" }\n") .append("})});") .append("\n/* ]]> */ \n</script>"); diff --git a/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java b/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java index c6d3830c0e0..119fbba20d1 100644 --- a/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java +++ b/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java @@ -196,6 +196,7 @@ public class AssessmentModeEditController extends FormBasicController { endEl = uifactory.addDateChooser("mode.end", assessmentMode.getEnd(), formLayout); endEl.setElementCssClass("o_sel_assessment_mode_end"); endEl.setDateChooserTimeEnabled(true); + endEl.setDefaultValue(beginEl); endEl.setMandatory(true); endEl.setEnabled(status != Status.end); @@ -606,7 +607,7 @@ public class AssessmentModeEditController extends FormBasicController { //update groups if(groupKeys.isEmpty()) { - if(assessmentMode.getGroups().size() > 0) { + if(!assessmentMode.getGroups().isEmpty()) { assessmentMode.getGroups().clear(); } } else { @@ -631,7 +632,7 @@ public class AssessmentModeEditController extends FormBasicController { //update areas if(areaKeys.isEmpty()) { - if(assessmentMode.getAreas().size() > 0) { + if(!assessmentMode.getAreas().isEmpty()) { assessmentMode.getAreas().clear(); } } else { -- GitLab