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

andreapatricelli pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/2_1_X by this push:
     new c1a8c04  [SYNCOPE-1476] fixes enum schema creation, final solution 
improving AbstractMultiPanel
c1a8c04 is described below

commit c1a8c047595dd3a852574dcc848a14cf7426f9e7
Author: Andrea Patricelli <[email protected]>
AuthorDate: Tue Jun 4 16:56:43 2019 +0200

    [SYNCOPE-1476] fixes enum schema creation, final solution improving 
AbstractMultiPanel
---
 .../org/apache/syncope/client/console/panels/SchemaTypePanel.java  | 3 ---
 .../console/wicket/markup/html/bootstrap/dialog/BaseModal.java     | 3 +--
 .../client/console/wicket/markup/html/form/AbstractMultiPanel.java | 7 ++++++-
 .../org/apache/syncope/client/console/wizards/WizardMgtPanel.java  | 6 ------
 .../org/apache/syncope/client/console/wizards/any/PlainAttrs.java  | 6 ++++--
 .../java/org/apache/syncope/fit/console/AbstractTypesITCase.java   | 6 ++++++
 6 files changed, 17 insertions(+), 14 deletions(-)

diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
index 3e3c508..620d255 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
@@ -86,9 +86,6 @@ public class SchemaTypePanel extends 
TypesDirectoryPanel<SchemaTO, SchemaProvide
         super(id, true, pageRef);
         this.schemaType = schemaType;
 
-        // SYNCOPE-1476
-        setFormAsMultipart(true);
-
         disableCheckBoxes();
 
         try {
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
index 079eb2b..d8be8d1 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
@@ -127,8 +127,7 @@ public class BaseModal<T extends Serializable> extends 
Modal<T> {
         return this;
     }
 
-    // SYNCOPE-1476
-    public BaseModal<T> setFormMultipart(final boolean multipart) {
+    public BaseModal<T> setFormAsMultipart(final boolean multipart) {
         form.setMultiPart(multipart);
         return this;
     }
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AbstractMultiPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AbstractMultiPanel.java
index 0c06daa..44dcfbd 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AbstractMultiPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AbstractMultiPanel.java
@@ -60,7 +60,6 @@ public abstract class AbstractMultiPanel<INNER> extends 
AbstractFieldPanel<List<
 
         form = new Form<>("innerForm");
         form.setDefaultButton(null);
-        form.setMultiPart(true);
         container.add(form);
         // -----------------------
 
@@ -74,6 +73,12 @@ public abstract class AbstractMultiPanel<INNER> extends 
AbstractFieldPanel<List<
         }
     }
 
+    // SYNCOPE-1476
+    public AbstractMultiPanel<INNER> setFormAsMultipart(final boolean 
multipart) {
+        form.setMultiPart(multipart);
+        return this;
+    }
+
     private Fragment getNoDataFragment(final IModel<List<INNER>> model, final 
String label) {
         final Fragment fragment = new Fragment("content", "noDataFragment", 
AbstractMultiPanel.this);
         fragment.add(new Label("field-label", new ResourceModel(label, 
label)));
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
index 230d3cc..57b8226 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
@@ -353,12 +353,6 @@ public abstract class WizardMgtPanel<T extends 
Serializable> extends Panel imple
         return this;
     }
 
-    // SYNCOPE-1476
-    public WizardMgtPanel<T> setFormAsMultipart(final boolean multipart) {
-        this.modal.setFormMultipart(multipart);
-        return this;
-    }
-
     /**
      * Set window close callback for the given modal.
      *
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 804d5d9..1a7d61c 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
@@ -439,6 +439,7 @@ public class PlainAttrs extends 
AbstractAttrs<PlainSchemaTO> {
                             }
                         });
                     } else {
+                        // SYNCOPE-1476 set form as multipart to properly 
manage membership attributes
                         panel = new MultiFieldPanel.Builder<>(new 
ListModel<String>() {
 
                             private static final long serialVersionUID = 
-1765231556272935141L;
@@ -449,7 +450,7 @@ public class PlainAttrs extends 
AbstractAttrs<PlainSchemaTO> {
                             }
                         }).build("panel",
                                 attrTO.getSchema(),
-                                FieldPanel.class.cast(panel));
+                                
FieldPanel.class.cast(panel)).setFormAsMultipart(true);
                         // SYNCOPE-1215 the entire multifield panel must be 
readonly, not only its field
                         ((MultiFieldPanel) 
panel).setReadOnly(schemas.get(attrTO.getSchema()).isReadonly());
                     }
@@ -487,11 +488,12 @@ public class PlainAttrs extends 
AbstractAttrs<PlainSchemaTO> {
 
                         
FieldPanel.class.cast(panel).setNewModel(attrTO.getValues());
                     } else {
+                        // SYNCOPE-1476 set form as multipart to properly 
manage membership attributes
                         panel = new MultiFieldPanel.Builder<>(
                                 new PropertyModel<>(attrTO, "values")).build(
                                 "panel",
                                 attrTO.getSchema(),
-                                FieldPanel.class.cast(panel));
+                                
FieldPanel.class.cast(panel)).setFormAsMultipart(true);
                         // SYNCOPE-1215 the entire multifield panel must be 
readonly, not only its field
                         ((MultiFieldPanel) 
panel).setReadOnly(schemas.get(attrTO.getSchema()).isReadonly());
                     }
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractTypesITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractTypesITCase.java
index d3f74c7..bebb09a 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractTypesITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractTypesITCase.java
@@ -23,6 +23,7 @@ import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.pages.Types;
 import 
org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.AjaxFallbackDataTable;
 import org.apache.wicket.util.tester.FormTester;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 
 public abstract class AbstractTypesITCase extends AbstractConsoleITCase {
@@ -99,9 +100,14 @@ public abstract class AbstractTypesITCase extends 
AbstractConsoleITCase {
                 + 
"accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:details:key:textField", key);
         
formTester.setValue("content:form:view:details:type:dropDownChoiceField", "3");
+//        Assertions.assertTrue(formTester.getForm().isMultiPart());
+        
         
TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
                 + 
"body:content:outerObjectsRepeater:0:outer:form:content:form:buttons:next", 
Constants.ON_CLICK);
 
+        LOG.info(">>>>>>>>>>>>>>>> {} - {} - {}", 
TESTER.getLastResponseAsString(), TESTER.getLastResponse().
+                getDocument(), TESTER.getLastRenderedPage());
+
         formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
                 + 
"accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");

Reply via email to