This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 2850bd9  [OPENMEETINGS-2196] date-times are parsed case insensitive
2850bd9 is described below

commit 2850bd918e89abc85fc43e8c139d1f00b33502f6
Author: Maxim Solodovnik <solomax...@gmail.com>
AuthorDate: Thu Mar 26 08:39:23 2020 +0700

    [OPENMEETINGS-2196] date-times are parsed case insensitive
---
 .../openmeetings/web/common/InvitationForm.java    |  4 ++-
 .../openmeetings/web/common/OmDateTimePicker.java  | 36 ++++++++++++++++++++--
 2 files changed, 37 insertions(+), 3 deletions(-)

diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
index cafcead..c729c70 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
@@ -132,7 +132,9 @@ public abstract class InvitationForm extends 
Form<Invitation> {
                add(passwd);
                Invitation i = getModelObject();
                passwd.setLabel(new 
ResourceModel("110")).setOutputMarkupId(true).setEnabled(i.isPasswordProtected());
-               add(from.setOutputMarkupId(true), to.setOutputMarkupId(true), 
timeZoneId.setOutputMarkupId(true));
+               add(from.setLabel(new 
ResourceModel("530")).setOutputMarkupId(true)
+                               , to.setLabel(new 
ResourceModel("531")).setOutputMarkupId(true)
+                               , timeZoneId.setOutputMarkupId(true));
                timeZoneId.add(new AjaxFormComponentUpdatingBehavior("change") {
                        private static final long serialVersionUID = 1L;
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmDateTimePicker.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmDateTimePicker.java
index 09e2c4e..062cd4d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmDateTimePicker.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmDateTimePicker.java
@@ -19,20 +19,52 @@
 package org.apache.openmeetings.web.common;
 
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeFormatterBuilder;
+import java.util.Locale;
 
 import 
org.apache.wicket.extensions.markup.html.form.datetime.LocalDateTimeTextField;
 import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.convert.IConverter;
+import org.apache.wicket.util.convert.converter.LocalDateTimeConverter;
 
 public class OmDateTimePicker extends AbstractOmDateTimePicker<LocalDateTime> {
        private static final long serialVersionUID = 1L;
+       private final LocalDateTimeConverter converter;
 
        public OmDateTimePicker(String id, IModel<LocalDateTime> model) {
-               super(id, model, getDateTimeFormat());
+               this(id, model, getDateTimeFormat());
+       }
+
+       private OmDateTimePicker(String id, IModel<LocalDateTime> model, final 
String pattern) {
+               super(id, model, pattern);
+               this.converter = new LocalDateTimeConverter() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public DateTimeFormatter getDateTimeFormatter(Locale 
locale)
+                       {
+                               return new DateTimeFormatterBuilder()
+                                               .parseCaseInsensitive()
+                                               .appendPattern(pattern)
+                                               .toFormatter(locale);
+                       }
+               };
        }
 
        @Override
        protected FormComponent<LocalDateTime> newInput(String wicketId, String 
dateFormat) {
-               return new LocalDateTimeTextField(wicketId, getModel(), 
dateFormat);
+               return new LocalDateTimeTextField(wicketId, getModel(), 
dateFormat) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected IConverter<?> createConverter(Class<?> clazz) 
{
+                               if 
(LocalDateTime.class.isAssignableFrom(clazz)) {
+                                       return converter;
+                               }
+                               return null;
+                       }
+               };
        }
 }

Reply via email to