syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mdisabat...@apache.org
Subject syncope git commit: [SYNCOPE-779] Replaced date field with Kendo UI DateTimePicker
Date Mon, 23 Jan 2017 22:03:43 GMT
Repository: syncope
Updated Branches:
  refs/heads/master b5391ee71 -> 2a865bd5b


[SYNCOPE-779] Replaced date field with Kendo UI DateTimePicker


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/2a865bd5
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/2a865bd5
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/2a865bd5

Branch: refs/heads/master
Commit: 2a865bd5b40ab4ea4e38459d9b02398f06e27bd2
Parents: b5391ee
Author: Marco Di Sabatino Di Diodoro <mdisabatino@apache.org>
Authored: Mon Jan 23 22:51:37 2017 +0100
Committer: Marco Di Sabatino Di Diodoro <mdisabatino@apache.org>
Committed: Mon Jan 23 23:03:21 2017 +0100

----------------------------------------------------------------------
 .../client/console/approvals/Approval.java      |   4 +-
 .../client/console/panels/BeanPanel.java        |   4 +-
 .../panels/ParametersCreateWizardAttrStep.java  |   8 +-
 .../console/panels/ParametersDetailsPanel.java  |   8 +-
 .../console/panels/StartAtTogglePanel.java      |   4 +-
 .../markup/html/form/AjaxDateFieldPanel.java    |  51 +++++
 .../html/form/AjaxDateTimeFieldPanel.java       |  54 ++++++
 .../markup/html/form/DateTextFieldPanel.java    | 112 -----------
 .../markup/html/form/DateTimeFieldPanel.java    | 187 -------------------
 .../markup/html/form/DateTimePickerField.java   |  89 ---------
 .../client/console/wizards/any/PlainAttrs.java  |  10 +-
 .../markup/html/form/AjaxDateFieldPanel.html    |  29 +++
 .../html/form/AjaxDateTimeFieldPanel.html       |  36 ++++
 .../markup/html/form/DateTextFieldPanel.html    |  33 ----
 .../markup/html/form/DateTimeFieldPanel.html    |  36 ----
 .../html/form/DateTimeFieldPanel.properties     |  17 --
 .../html/form/DateTimeFieldPanel_it.properties  |  17 --
 .../form/DateTimeFieldPanel_pt_BR.properties    |  17 --
 .../html/form/DateTimeFieldPanel_ru.properties  |  19 --
 .../markup/html/form/DateTimePickerField.html   |  33 ----
 .../apache/syncope/fit/console/UsersITCase.java |  88 +++++++++
 21 files changed, 277 insertions(+), 579 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java b/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
index 7984e3c..bd558f5 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
@@ -31,7 +31,7 @@ import org.apache.syncope.client.console.panels.MultilevelPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.DateTimeFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
 import org.apache.syncope.common.lib.to.WorkflowFormPropertyTO;
 import org.apache.syncope.common.lib.to.WorkflowFormTO;
@@ -104,7 +104,7 @@ public abstract class Approval extends Panel {
 
                     case Date:
                         final FastDateFormat formatter = FastDateFormat.getInstance(prop.getDatePattern());
-                        field = new DateTimeFieldPanel("value", label, new PropertyModel<Date>(prop, "value") {
+                        field = new AjaxDateTimeFieldPanel("value", label, new PropertyModel<Date>(prop, "value") {
 
                             private static final long serialVersionUID = -3743432456095828573L;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
index 6da40f0..ee4303f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
@@ -41,7 +41,7 @@ import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownCho
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.DateTimeFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
 import org.apache.syncope.client.lib.SyncopeClient;
@@ -258,7 +258,7 @@ public class BeanPanel<T extends Serializable> extends Panel {
             result = new AjaxSpinnerFieldPanel.Builder<>().build(
                     id, fieldName, (Class<Number>) ClassUtils.resolvePrimitiveIfNecessary(type), model);
         } else if (Date.class.equals(type)) {
-            result = new DateTimeFieldPanel(id, fieldName, model, SyncopeConstants.DEFAULT_DATE_PATTERN);
+            result = new AjaxDateTimeFieldPanel(id, fieldName, model, SyncopeConstants.DEFAULT_DATE_PATTERN);
         } else if (type.isEnum()) {
             result = new AjaxDropDownChoicePanel(id, fieldName, model).setChoices(
                     Arrays.asList(type.getEnumConstants()));

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java
index 3f38b5f..dcdaffc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java
@@ -25,8 +25,8 @@ import org.apache.syncope.client.console.commons.SchemaUtils;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.DateTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.DateTimeFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
 import org.apache.syncope.common.lib.SyncopeConstants;
@@ -98,10 +98,10 @@ public class ParametersCreateWizardAttrStep extends WizardStep {
                         : plainSchemaTO.getConversionPattern();
 
                 if (dataPattern.contains("H")) {
-                    panel = new DateTimeFieldPanel(
+                    panel = new AjaxDateTimeFieldPanel(
                             id, valueHeaderName, new Model<Date>(), dataPattern);
                 } else {
-                    panel = new DateTextFieldPanel(
+                    panel = new AjaxDateFieldPanel(
                             "panel", valueHeaderName, new Model<Date>(), dataPattern);
                 }
                 break;

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java
index 8c955cc..60747e9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java
@@ -26,8 +26,8 @@ import org.apache.syncope.client.console.commons.SchemaUtils;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.DateTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.DateTimeFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
 import org.apache.syncope.common.lib.SyncopeConstants;
@@ -87,9 +87,9 @@ public class ParametersDetailsPanel extends Panel {
                         : schemaTO.getConversionPattern();
 
                 if (dataPattern.contains("H")) {
-                    panel = new DateTimeFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
+                    panel = new AjaxDateTimeFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
                 } else {
-                    panel = new DateTextFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
+                    panel = new AjaxDateFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
                 }
                 break;
             case Boolean:

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/panels/StartAtTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/StartAtTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/StartAtTogglePanel.java
index 7fe0594..c0efd5a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/StartAtTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/StartAtTogglePanel.java
@@ -27,7 +27,7 @@ import org.apache.syncope.client.console.pages.BasePage;
 import org.apache.syncope.client.console.rest.ExecutionRestClient;
 import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.DateTimeFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.wicket.PageReference;
@@ -53,7 +53,7 @@ public abstract class StartAtTogglePanel extends TogglePanel<Serializable> {
         form = new Form<>("startAtForm");
         addInnerObject(form);
 
-        final DateTimeFieldPanel startAtDate = new DateTimeFieldPanel(
+        final AjaxDateTimeFieldPanel startAtDate = new AjaxDateTimeFieldPanel(
                 "startAtDate", "startAtDate", startAtDateModel, SyncopeConstants.DATE_PATTERNS[3]);
 
         startAtDate.setReadOnly(true).hideLabel();

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.java
new file mode 100644
index 0000000..191b2a8
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.wicket.markup.html.form;
+
+import com.googlecode.wicket.kendo.ui.form.datetime.AjaxDatePicker;
+import java.util.Date;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+public class AjaxDateFieldPanel extends DateFieldPanel {
+
+    private static final long serialVersionUID = 1919852712185883648L;
+
+    public AjaxDateFieldPanel(final String id, final String name, final IModel<Date> model, final String datePattern) {
+        super(id, name, model, datePattern);
+
+        field = new AjaxDatePicker("field", model, SyncopeConsoleSession.get().getDateFormat().getLocale());
+        add(field.setLabel(new Model<>(name)).setOutputMarkupId(true));
+    }
+
+    @Override
+    public FieldPanel<Date> clone() {
+        final FieldPanel<Date> panel = new AjaxDateFieldPanel(getId(), name, new Model<Date>(), fmt.getPattern());
+        panel.setRequired(isRequired());
+        panel.setReadOnly(isReadOnly());
+        panel.setTitle(title);
+
+        if (isRequiredLabelAdded) {
+            panel.addRequiredLabel();
+        }
+
+        return panel;
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
new file mode 100644
index 0000000..04c100af
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.wicket.markup.html.form;
+
+import com.googlecode.wicket.kendo.ui.form.datetime.AjaxDateTimePicker;
+import java.util.Date;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+public class AjaxDateTimeFieldPanel extends DateFieldPanel {
+
+    private static final long serialVersionUID = -428975732068281726L;
+
+    public AjaxDateTimeFieldPanel(
+            final String id, final String name, final IModel<Date> model, final String datePattern) {
+        super(id, name, model, datePattern);
+
+        field = new AjaxDateTimePicker("field", model, SyncopeConsoleSession.get().getDateFormat().getLocale());
+        add(field.setLabel(new Model<>(name)).setOutputMarkupId(true));
+    }
+
+    @Override
+    public FieldPanel<Date> clone() {
+        final FieldPanel<Date> panel =
+                new AjaxDateTimeFieldPanel(getId(), name, new Model<Date>(null), fmt.getPattern());
+
+        panel.setRequired(isRequired());
+        panel.setReadOnly(isReadOnly());
+        panel.setTitle(title);
+
+        if (isRequiredLabelAdded) {
+            panel.addRequiredLabel();
+        }
+
+        return panel;
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTextFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTextFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTextFieldPanel.java
deleted file mode 100644
index a9576e2..0000000
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTextFieldPanel.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.wicket.markup.html.form;
-
-import java.util.Date;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.datetime.markup.html.form.DateTextField;
-import org.apache.wicket.extensions.yui.calendar.DatePicker;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.request.Response;
-
-public class DateTextFieldPanel extends DateFieldPanel {
-
-    private static final long serialVersionUID = 1919852712185883648L;
-
-    public DateTextFieldPanel(final String id, final String name, final IModel<Date> model, final String datePattern) {
-        super(id, name, model, datePattern);
-
-        field = DateTextField.forDatePattern("field", model, datePattern);
-
-        if (!isReadOnly()) {
-            field.add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-                private static final long serialVersionUID = -1107858522700306810L;
-
-                @Override
-                protected void onUpdate(final AjaxRequestTarget target) {
-                    // nothing to do
-                }
-            });
-        }
-
-        field.add(getDatePicker());
-
-        add(field.setLabel(new Model<>(name)).setOutputMarkupId(true));
-    }
-
-    /**
-     * Setup a DatePicker component.
-     */
-    private DatePicker getDatePicker() {
-        final DatePicker picker = new DatePicker() {
-
-            private static final long serialVersionUID = 4166072895162221956L;
-
-            @Override
-            protected boolean enableMonthYearSelection() {
-                return true;
-            }
-
-            @Override
-            public void afterRender(final Component component) {
-                Response response = component.getResponse();
-                response.write("\n<span class=\"yui-skin-sam\"><span style=\"");
-
-                if (renderOnLoad()) {
-                    response.write("display:block;");
-                } else {
-                    response.write("display:none;");
-                    response.write("position:absolute;");
-                }
-
-                response.write("z-index: 99999;\" id=\"");
-                response.write(getEscapedComponentMarkupId());
-                response.write("Dp\"></span>");
-
-                if (renderOnLoad()) {
-                    response.write("<br style=\"clear:left;\"/>");
-                }
-                response.write("</span>");
-            }
-        };
-
-        picker.setShowOnFieldClick(true);
-
-        return picker;
-    }
-
-    @Override
-    public FieldPanel<Date> clone() {
-        final FieldPanel<Date> panel = new DateTextFieldPanel(getId(), name, new Model<Date>(), fmt.getPattern());
-        panel.setRequired(isRequired());
-        panel.setReadOnly(isReadOnly());
-        panel.setTitle(title);
-
-        if (isRequiredLabelAdded) {
-            panel.addRequiredLabel();
-        }
-
-        return panel;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.java
deleted file mode 100644
index b4ff842..0000000
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.wicket.markup.html.form;
-
-import java.util.Calendar;
-import java.util.Date;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.extensions.yui.calendar.DateTimeField;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.FormComponent;
-import org.apache.wicket.markup.html.form.validation.AbstractFormValidator;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.validation.IValidationError;
-import org.apache.wicket.validation.ValidationError;
-
-public class DateTimeFieldPanel extends DateFieldPanel {
-
-    private static final long serialVersionUID = -428975732068281726L;
-
-    private Form<?> form = null;
-
-    public DateTimeFieldPanel(final String id, final String name, final IModel<Date> model, final String datePattern) {
-        super(id, name, model, datePattern);
-
-        field = new DateTimePickerField("field", model);
-
-        final Calendar cal = Calendar.getInstance();
-
-        field.get("hours").add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @SuppressWarnings("deprecation")
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                final Integer hours = ((DateTimeField) field).getHours();
-                if (hours != null) {
-                    cal.set(hours > 12 ? Calendar.HOUR_OF_DAY : Calendar.HOUR, hours);
-                    field.setModelObject(cal.getTime());
-                }
-            }
-        });
-
-        field.get("minutes").add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @SuppressWarnings("deprecation")
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                final Integer minutes = ((DateTimeField) field).getMinutes();
-                if (minutes != null) {
-                    cal.set(Calendar.MINUTE, minutes);
-                    field.setModelObject(cal.getTime());
-                }
-            }
-        });
-
-        field.get("date").add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @SuppressWarnings("deprecation")
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                final Date date = ((DateTimeField) field).getDate();
-                if (date == null) {
-                    field.setModelObject(null);
-                } else {
-                    cal.setTime(date);
-                    cal.set(Calendar.AM_PM, "PM".equals("" + ((DateTimeField) field).getAmOrPm())
-                            ? Calendar.PM
-                            : Calendar.AM);
-                    field.setModelObject(cal.getTime());
-                }
-            }
-        });
-
-        field.get("amOrPmChoice").add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @SuppressWarnings("deprecation")
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                cal.set(Calendar.AM_PM, "PM".equals("" + ((DateTimeField) field).getAmOrPm()) ? Calendar.PM
-                        : Calendar.AM);
-                field.setModelObject(cal.getTime());
-            }
-        });
-
-        add(field.setLabel(new Model<String>(name)).setOutputMarkupId(true));
-    }
-
-    /**
-     * Custom form validator for registering and handling DateTimeField components that are in it.
-     */
-    private static class DateTimeFormValidator extends AbstractFormValidator {
-
-        private static final long serialVersionUID = 6842264694946633582L;
-
-        private FormComponent<?>[] dateTimeComponents;
-
-        DateTimeFormValidator(final DateTimeField dateTimeComponent) {
-            if (dateTimeComponent == null) {
-                throw new IllegalArgumentException("argument dateTimeComponent cannot be null");
-            }
-
-            dateTimeComponents = new FormComponent<?>[] { dateTimeComponent };
-        }
-
-        @Override
-        public FormComponent<?>[] getDependentFormComponents() {
-            return dateTimeComponents;
-        }
-
-        /**
-         * Validation rule : all 3 fields (date,hours,minutes) must be not-null.
-         *
-         * @param form
-         */
-        @SuppressWarnings("deprecation")
-        @Override
-        public void validate(final Form<?> form) {
-            final DateTimeField dateTimeField = (DateTimeField) dateTimeComponents[0];
-
-            if (!(dateTimeField.getDate() != null && dateTimeField.getHours() != null
-                    && dateTimeField.getMinutes() != null)) {
-
-                ValidationError ve = new ValidationError();
-                ve.setVariables(DateTimeFormValidator.this.variablesMap());
-                ve.addKey(resourceKey());
-                dateTimeComponents[0].error((IValidationError) ve);
-            }
-        }
-    }
-
-    @SuppressWarnings("rawtypes")
-    public FieldPanel<Date> setFormValidator(final Form<?> form) {
-        if (field == null) {
-            LOG.error("Error setting form validator");
-        } else {
-            form.add(new DateTimeFormValidator(((DateTimeField) field)));
-            this.form = form;
-        }
-
-        return this;
-    }
-
-    @Override
-    public FieldPanel<Date> clone() {
-        final FieldPanel<Date> panel = new DateTimeFieldPanel(getId(), name, new Model<Date>(null), fmt.getPattern());
-
-        panel.setRequired(isRequired());
-        panel.setReadOnly(isReadOnly());
-        panel.setTitle(title);
-
-        if (isRequiredLabelAdded) {
-            panel.addRequiredLabel();
-        }
-
-        if (form != null && isRequired()) {
-            ((DateTimeFieldPanel) panel).setFormValidator(form);
-        }
-
-        return panel;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTimePickerField.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTimePickerField.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTimePickerField.java
deleted file mode 100644
index ea482e4..0000000
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateTimePickerField.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.wicket.markup.html.form;
-
-import java.util.Date;
-import java.util.Map;
-import org.apache.wicket.Component;
-import org.apache.wicket.extensions.yui.calendar.DatePicker;
-import org.apache.wicket.extensions.yui.calendar.DateTimeField;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.request.Response;
-import org.apache.wicket.util.string.Strings;
-
-public class DateTimePickerField extends DateTimeField {
-
-    private static final long serialVersionUID = 3733881705516982654L;
-
-    public DateTimePickerField(final String id) {
-        this(id, null);
-    }
-
-    public DateTimePickerField(final String id, final IModel<Date> model) {
-        super(id, model);
-    }
-
-    @Override
-    protected DatePicker newDatePicker() {
-        return new DatePicker() {
-
-            private static final long serialVersionUID = 1L;
-
-            @Override
-            protected void configure(final Map<String, Object> widgetProperties,
-                    final IHeaderResponse response, final Map<String, Object> initVariables) {
-                super.configure(widgetProperties, response, initVariables);
-            }
-
-            @Override
-            public void afterRender(final Component component) {
-                Response response = component.getResponse();
-                response.write("\n<span class=\"yui-skin-sam\"><span style=\"");
-
-                if (renderOnLoad()) {
-                    response.write("display:block;");
-                } else {
-                    response.write("display:none;");
-                    response.write("position:absolute;");
-                }
-
-                response.write("z-index: 99999;\" id=\"");
-                response.write(getEscapedComponentMarkupId());
-                response.write("Dp\"></span><i class=\"glyphicon glyphicon-calendar\" style=\"margin-left: 5px;\"");
-                response.write(" id=\"");
-                response.write(getIconId());
-                response.write("\" ");
-                response.write(" alt=\"");
-                CharSequence alt = getIconAltText();
-                response.write(Strings.escapeMarkup((alt != null) ? alt.toString() : ""));
-                response.write("\" title=\"");
-                CharSequence title = getIconTitle();
-                response.write(Strings.escapeMarkup((title != null) ? title.toString() : ""));
-                response.write("\"/>");
-
-                if (renderOnLoad()) {
-                    response.write("<br style=\"clear:left;\"/>");
-                }
-                response.write("</span>");
-            }
-
-        };
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
index b0429ef..192654e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
@@ -31,8 +31,8 @@ import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownCho
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.BinaryFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.DateTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.DateTimeFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.EncryptedFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
@@ -221,9 +221,9 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
                         : schemaTO.getConversionPattern();
 
                 if (dataPattern.contains("H")) {
-                    panel = new DateTimeFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
+                    panel = new AjaxDateTimeFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
                 } else {
-                    panel = new DateTextFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
+                    panel = new AjaxDateFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
                 }
 
                 if (required) {
@@ -339,8 +339,8 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
                     FieldPanel panel = getFieldPanel(availableSchemas.get(attrTO.getSchema()));
                     if (mode == AjaxWizard.Mode.TEMPLATE
                             || !availableSchemas.get(attrTO.getSchema()).isMultivalue()) {
-                        item.add(panel);
                         panel.setNewModel(attrTO.getValues());
+                        item.add(panel);
                     } else {
                         item.add(new MultiFieldPanel.Builder<>(
                                 new PropertyModel<List<String>>(attrTO, "values")).build(

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.html
new file mode 100644
index 0000000..084c8a9
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.html
@@ -0,0 +1,29 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+  <wicket:extend>
+    <wicket:enclosure child="field-label">
+      <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
+      <span wicket:id="externalAction"/>
+    </wicket:enclosure>
+    <div class="input-group">
+      <input wicket:id="field" type="text"></input>
+    </div>
+  </wicket:extend>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.html
new file mode 100644
index 0000000..1b11685
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.html
@@ -0,0 +1,36 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+  <wicket:head>
+    <style type="text/css">
+      div.input-group-addon:last-child {
+        border: 1px solid #ccc !important;
+      }
+    </style>
+  </wicket:head>
+  <wicket:extend>
+    <wicket:enclosure child="field-label">
+      <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
+      <span wicket:id="externalAction"/>
+    </wicket:enclosure>
+    <div class="input-group">
+      <span wicket:id="field"/>
+    </div>
+  </wicket:extend>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTextFieldPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTextFieldPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTextFieldPanel.html
deleted file mode 100644
index 5cde8f1..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTextFieldPanel.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
-  <wicket:extend>
-    <wicket:enclosure child="field-label">
-      <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
-      <span wicket:id="externalAction"/>
-    </wicket:enclosure>
-    <span class="clause">
-      <span style="white-space: nowrap;">
-        <span>
-          <input class="form-control datepicker" type="text" wicket:id="field" size="12" style="float: left"/>
-        </span>
-      </span>
-    </span>
-  </wicket:extend>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.html
deleted file mode 100644
index 1b11685..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
-  <wicket:head>
-    <style type="text/css">
-      div.input-group-addon:last-child {
-        border: 1px solid #ccc !important;
-      }
-    </style>
-  </wicket:head>
-  <wicket:extend>
-    <wicket:enclosure child="field-label">
-      <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
-      <span wicket:id="externalAction"/>
-    </wicket:enclosure>
-    <div class="input-group">
-      <span wicket:id="field"/>
-    </div>
-  </wicket:extend>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.properties
deleted file mode 100644
index 9a39f4c..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-field.DateTimeFieldPanel$DateTimeFormValidator=Field '${label0}' must be fully valued

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_it.properties
deleted file mode 100644
index c524834..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_it.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-field.DateTimeFieldPanel$DateTimeFormValidator=Il campo '${label0}' dev'essere completamente valorizzato

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_pt_BR.properties
deleted file mode 100644
index 95be437..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_pt_BR.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-field.DateTimeFieldPanel$DateTimeFormValidator=Campo'${label0}' precisa ser preenchido 

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_ru.properties
deleted file mode 100644
index 70d9e75..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimeFieldPanel_ru.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# field.DateTimeFieldPanel$DateTimeFormValidator=Поле '${label0}' должно быть заполнено полностью
-field.DateTimeFieldPanel$DateTimeFormValidator=\u041f\u043e\u043b\u0435 '${label0}' \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimePickerField.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimePickerField.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimePickerField.html
deleted file mode 100644
index 4fe2d16..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/DateTimePickerField.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
-  <wicket:panel>
-    <span class="clause">
-      <span style="white-space: nowrap;">
-        <span class="pull-left" style="padding-right: 5px">
-          <input class="form-control input-auto-width" type="text" wicket:id="date" size="12"/>
-        </span>
-        <input class="form-control input-auto-width" type="text" wicket:id="hours" size="2" maxlength="2"/>
-        <span wicket:id="hoursSeparator" class="pull-left">:</span>
-        <input class="form-control input-auto-width" type="text" wicket:id="minutes" size="2" maxlength="2"/>
-        <select class="form-control input-auto-width" wicket:id="amOrPmChoice"></select>
-      </span>
-    </span>
-  </wicket:panel>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/2a865bd5/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
index f44121f..9d0f8e5 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
@@ -18,9 +18,11 @@
  */
 package org.apache.syncope.fit.console;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
+import java.util.Calendar;
 import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.TextField;
@@ -251,4 +253,90 @@ public class UsersITCase extends AbstractConsoleITCase {
         TESTER.assertComponent(component.getPageRelativePath() + ":cells:6:cell:panelDelete:deleteLink",
                 IndicatingOnConfirmAjaxLink.class);
     }
+
+    @Test
+    public void editDateTimeField() {
+        TESTER.clickLink("body:realmsLI:realms");
+        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+
+        Component component = findComponentByProp("username", CONTAINER
+                + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
+        assertNotNull(component);
+
+        TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelEdit:editLink");
+
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
+                TextField.class);
+
+        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        assertNotNull(formTester);
+        formTester.submit("buttons:next");
+
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        assertNotNull(formTester);
+        formTester.submit("buttons:next");
+
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        assertNotNull(formTester);
+        formTester.submit("buttons:next");
+
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        assertNotNull(formTester);
+        formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:1:panel:field:datepicker", "1/19/17");
+        formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:1:panel:field:timepicker", "12:00 AM");
+
+        formTester.setValue("view:plainSchemas:tabs:0:body:"
+                + "content:schemas:8:panel:multiValueContainer:innerForm:content:view:0:panel:field", "1/19/17");
+
+        formTester.submit("buttons:finish");
+
+        TESTER.assertInfoMessages("Operation executed successfully");
+        TESTER.cleanupFeedbackMessages();
+
+        TESTER.assertComponent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
+                + "container:content:group:beans:0:fields:1:field", Label.class);
+
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink");
+
+        component = findComponentByProp("username", CONTAINER
+                + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
+        assertNotNull(component);
+
+        TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelEdit:editLink");
+
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
+                TextField.class);
+
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        assertNotNull(formTester);
+        formTester.submit("buttons:next");
+
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        assertNotNull(formTester);
+        formTester.submit("buttons:next");
+
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        assertNotNull(formTester);
+        formTester.submit("buttons:next");
+
+        Calendar cal = Calendar.getInstance();
+        cal.set(2017, Calendar.JANUARY, 19, 0, 0, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+
+        TESTER.assertModelValue("body:content:body:container:content:"
+                + "tabbedPanel:panel:searchResult:outerObjectsRepeater:"
+                + "0:outer:form:content:form:view:plainSchemas:tabs:0:"
+                + "body:content:schemas:1:panel:field:datepicker", cal.getTime());
+
+        assertEquals(TESTER.getComponentFromLastRenderedPage("body:content:body:"
+                + "container:content:tabbedPanel:panel:searchResult:"
+                + "outerObjectsRepeater:0:outer:form:content:form:view:plainSchemas:"
+                + "tabs:0:body:content:schemas:1:panel:field:timepicker").getDefaultModelObjectAsString(), "12:00 AM");
+
+        TESTER.assertModelValue("body:content:body:container:content:"
+                + "tabbedPanel:panel:searchResult:outerObjectsRepeater:0:outer:form:content:"
+                + "form:view:plainSchemas:tabs:0:body:content:schemas:8:panel:"
+                + "multiValueContainer:innerForm:content:view:0:panel:field", cal.getTime());
+    }
 }


Mime
View raw message