syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fmarte...@apache.org
Subject [01/28] syncope git commit: [SYNCOPE-156] fix for ajax component panels
Date Fri, 30 Oct 2015 11:42:08 GMT
Repository: syncope
Updated Branches:
  refs/heads/master 11ce3630a -> c8ebb3479


http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java
index f42b67f..08de6f8 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java
@@ -70,7 +70,7 @@ public class AjaxTextFieldPanel extends FieldPanel<String> implements Cloneable
                 return result.iterator();
             }
         };
-        
+
         add(field.setLabel(new ResourceModel(name, name)).setOutputMarkupId(true));
 
         if (enableOnChange && !isReadOnly()) {
@@ -84,7 +84,7 @@ public class AjaxTextFieldPanel extends FieldPanel<String> implements Cloneable
                 }
             });
         }
-        
+
         add(new Label("label", new ResourceModel(name, name)));
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/CheckBoxMultipleChoiceFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/CheckBoxMultipleChoiceFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/CheckBoxMultipleChoiceFieldPanel.java
index dc7bfec..9d0afea 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/CheckBoxMultipleChoiceFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/CheckBoxMultipleChoiceFieldPanel.java
@@ -35,7 +35,7 @@ public class CheckBoxMultipleChoiceFieldPanel<E> extends AbstractFieldPanel<List
     public CheckBoxMultipleChoiceFieldPanel(
             final String id, final IModel<List<E>> model, final IModel<List<E>> choices) {
 
-        super(id, model);
+        super(id, id, model);
 
         field = new CheckBoxMultipleChoice<E>("checkBoxMultipleChoice", model, choices);
         add(field.

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
index 3a48d38..5bf1cdc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
@@ -31,7 +31,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 
-public abstract class FieldPanel<T> extends AbstractFieldPanel<T> implements Cloneable {
+public abstract class FieldPanel<T extends Serializable> extends AbstractFieldPanel<T> implements Cloneable {
 
     private static final long serialVersionUID = -198988924922541273L;
 
@@ -42,12 +42,14 @@ public abstract class FieldPanel<T> extends AbstractFieldPanel<T> implements Clo
     protected boolean isRequiredLabelAdded = false;
 
     public FieldPanel(final String id, final IModel<T> model) {
-        super(id, model);
+        this(id, id, model);
+    }
+
+    public FieldPanel(final String id, final String name, final IModel<T> model) {
+        super(id, name, model);
 
         final Fragment fragment = new Fragment("required", "notRequiredFragment", this);
         add(fragment);
-
-        setOutputMarkupId(true);
     }
 
     public FormComponent<T> getField() {
@@ -97,9 +99,7 @@ public abstract class FieldPanel<T> extends AbstractFieldPanel<T> implements Clo
         }
 
         final Fragment fragment = new Fragment("required", "requiredFragment", this);
-
         fragment.add(new Label("requiredLabel", "*"));
-
         replace(fragment);
 
         this.isRequiredLabelAdded = true;
@@ -128,11 +128,11 @@ public abstract class FieldPanel<T> extends AbstractFieldPanel<T> implements Clo
     }
 
     public T getModelObject() {
-        return field.getModelObject();
+        return this.field.getModelObject();
     }
 
     public FieldPanel<T> setNewModel(final IModel<T> model) {
-        field.setModel(model);
+        field.setModel(model == null ? new Model<T>() : model);
         return this;
     }
 
@@ -196,6 +196,7 @@ public abstract class FieldPanel<T> extends AbstractFieldPanel<T> implements Clo
     public FieldPanel<T> clone() {
         final FieldPanel<T> panel = SerializationUtils.clone(this);
         panel.setModelObject(null);
+        panel.addLabel();
         return panel;
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java
index f35321f..ccffd20 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.client.console.wicket.markup.html.form;
 
+import java.io.Serializable;
 import java.util.List;
 import org.apache.syncope.client.console.commons.Constants;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -26,27 +27,41 @@ import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.event.Broadcast;
 import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
 import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Fragment;
 import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.ResourceModel;
 
-public class MultiFieldPanel<E> extends AbstractFieldPanel<List<E>> {
+public class MultiFieldPanel<E extends Serializable> extends AbstractFieldPanel<List<E>> {
 
     private static final long serialVersionUID = -6322397761456513324L;
 
     private ListView<E> view;
 
+    private final FieldPanel<E> panelTemplate;
+
+    private final boolean eventTemplate;
+
     private WebMarkupContainer container;
 
-    public MultiFieldPanel(final String id, final IModel<List<E>> model, final FieldPanel<E> panelTemplate) {
-        this(id, model, panelTemplate, false);
+    public MultiFieldPanel(
+            final String id, final String name, final IModel<List<E>> model, final FieldPanel<E> panelTemplate) {
+        this(id, name, model, panelTemplate, false);
     }
 
-    public MultiFieldPanel(final String id, final IModel<List<E>> model, final FieldPanel<E> panelTemplate,
+    public MultiFieldPanel(
+            final String id,
+            final String name,
+            final IModel<List<E>> model,
+            final FieldPanel<E> panelTemplate,
             final boolean eventTemplate) {
 
-        super(id, model);
+        super(id, name, model);
+
+        this.panelTemplate = panelTemplate;
+        this.eventTemplate = eventTemplate;
 
         // -----------------------
         // Object container definition
@@ -56,12 +71,30 @@ public class MultiFieldPanel<E> extends AbstractFieldPanel<List<E>> {
         add(container);
         // -----------------------
 
+        if (model.getObject().isEmpty()) {
+            container.add(getNoDataFragment(model, name));
+        } else {
+            container.addOrReplace(getDataFragment(model, name));
+        }
+    }
+
+    private Fragment getNoDataFragment(final IModel<List<E>> model, final String label) {
+        final Fragment fragment = new Fragment("content", "noDataFragment", MultiFieldPanel.this);
+        fragment.add(new Label("field-label", new ResourceModel(label, label)));
+        fragment.add(getPlusFragment(model, label));
+        return fragment;
+    }
+
+    private Fragment getDataFragment(final IModel<List<E>> model, final String label) {
+        final Fragment contentFragment = new Fragment("content", "dataFragment", MultiFieldPanel.this);
+
         view = new ListView<E>("view", model) {
 
             private static final long serialVersionUID = -9180479401817023838L;
 
             @Override
             protected void populateItem(final ListItem<E> item) {
+
                 final FieldPanel<E> fieldPanel = panelTemplate.clone();
 
                 if (eventTemplate) {
@@ -86,9 +119,9 @@ public class MultiFieldPanel<E> extends AbstractFieldPanel<List<E>> {
                 });
 
                 fieldPanel.setNewModel(item);
-                item.add(fieldPanel);
+                item.add(fieldPanel.hideLabel().setRenderBodyOnly(true));
 
-                AjaxLink<Void> minus = new IndicatingAjaxLink<Void>("drop") {
+                final AjaxLink<Void> minus = new IndicatingAjaxLink<Void>("drop") {
 
                     private static final long serialVersionUID = -7978723352517770644L;
 
@@ -97,6 +130,11 @@ public class MultiFieldPanel<E> extends AbstractFieldPanel<List<E>> {
                         //Drop current component
                         model.getObject().remove(item.getModelObject());
                         fieldPanel.getField().clearInput();
+
+                        if (model.getObject().isEmpty()) {
+                            container.addOrReplace(getNoDataFragment(model, label));
+                        }
+
                         target.add(container);
 
                         if (eventTemplate) {
@@ -107,40 +145,45 @@ public class MultiFieldPanel<E> extends AbstractFieldPanel<List<E>> {
 
                 item.add(minus);
 
-                if (model.getObject().size() <= 1) {
-                    minus.setVisible(false);
-                    minus.setEnabled(false);
+                final Fragment fragment;
+                if (item.getIndex() == model.getObject().size() - 1) {
+                    fragment = getPlusFragment(model, label);
                 } else {
-                    minus.setVisible(true);
-                    minus.setEnabled(true);
+                    fragment = new Fragment("panelPlus", "emptyFragment", MultiFieldPanel.this);
                 }
 
-                final Fragment fragment;
-                if (item.getIndex() == model.getObject().size() - 1) {
-                    final AjaxLink<Void> plus = new IndicatingAjaxLink<Void>("add") {
+                item.add(fragment);
+            }
+        };
 
-                        private static final long serialVersionUID = -7978723352517770644L;
+        contentFragment.add(view.setOutputMarkupId(true));
 
-                        @Override
-                        public void onClick(final AjaxRequestTarget target) {
-                            //Add current component
-                            model.getObject().add(null);
-                            target.add(container);
-                        }
-                    };
+        return contentFragment;
+    }
 
-                    fragment = new Fragment("panelPlus", "fragmentPlus", container);
+    private Fragment getPlusFragment(final IModel<List<E>> model, final String label) {
+        final AjaxLink<Void> plus = new IndicatingAjaxLink<Void>("add") {
 
-                    fragment.add(plus);
-                } else {
-                    fragment = new Fragment("panelPlus", "emptyFragment", container);
+            private static final long serialVersionUID = -7978723352517770644L;
+
+            @Override
+            public void onClick(final AjaxRequestTarget target) {
+                //Add current component
+                model.getObject().add(null);
+
+                if (model.getObject().size() == 1) {
+                    container.addOrReplace(getDataFragment(model, label));
                 }
-                item.add(fragment);
+
+                target.add(container);
             }
         };
 
-        container.add(view.setOutputMarkupId(true));
-        setOutputMarkupId(true);
+        final Fragment fragment = new Fragment("panelPlus", "fragmentPlus", MultiFieldPanel.this);
+        fragment.add(plus);
+        fragment.setRenderBodyOnly(true);
+
+        return fragment;
     }
 
     public ListView<E> getView() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.java
index 4f71f81..4eb7270 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.java
@@ -18,170 +18,72 @@
  */
 package org.apache.syncope.client.console.wicket.markup.html.form;
 
-import java.io.Serializable;
-import java.util.List;
-import java.util.UUID;
-import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.markup.html.list.ListItem;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.spinner.Spinner;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.spinner.SpinnerConfig;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.springframework.util.StringUtils;
 
 public class SpinnerFieldPanel<T extends Number> extends FieldPanel<T> {
 
     private static final long serialVersionUID = 6413819574530703577L;
 
-    private final String name;
+    private String name;
 
-    private final Class<T> reference;
+    private Class<T> reference;
 
-    private final IModel<T> model;
+    private IModel<T> model;
 
-    private final T min;
+    private SpinnerConfig conf;
 
-    private final T max;
-
-    @SuppressWarnings("unchecked")
-    public SpinnerFieldPanel(final String id, final String name, final Class<T> reference, final IModel<T> model,
+    public SpinnerFieldPanel(
+            final String id,
+            final String name,
+            final Class<T> reference,
+            final IModel<T> model,
             final T min, final T max) {
+        super(id, name, model);
 
-        super(id, model);
-        this.name = name;
-        this.reference = reference;
-        this.model = model;
-        this.min = min;
-        this.max = max;
-
-        String uuid = UUID.randomUUID().toString();
-        field = new TextField<T>("spinnerField", model, reference);
-        field.setMarkupId(uuid);
-        add(field.setLabel(new Model<String>(name)));
+        final SpinnerConfig config = new SpinnerConfig();
+        config.withMax(max);
+        config.withMin(min);
 
-        if (!isReadOnly()) {
-            field.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+        init(name, reference, model, config);
+    }
 
-                private static final long serialVersionUID = -1107858522700306810L;
+    public SpinnerFieldPanel(
+            final String id,
+            final String name,
+            final Class<T> reference,
+            final IModel<T> model) {
+        this(id, name, reference, model, new SpinnerConfig());
+    }
 
-                @Override
-                protected void onUpdate(final AjaxRequestTarget target) {
-                    // nothing to do
-                }
-            });
-        }
+    public SpinnerFieldPanel(
+            final String id,
+            final String name,
+            final Class<T> reference,
+            final IModel<T> model,
+            final SpinnerConfig conf) {
 
-        final StringBuilder statements = new StringBuilder();
-        statements.append("jQuery(function() {").
-                append("var spinner = $('#").append(uuid).append("').spinner();").
-                append("$('#").append(uuid).append("').spinner(").
-                append("'option', 'stop', function(event, ui) { $(this).change(); });");
-        if (this.min != null) {
-            statements.
-                    append("$('#").append(uuid).append("').spinner(").
-                    append("'option', 'min', ").append(this.min).append(");");
-        }
-        if (this.max != null) {
-            statements.
-                    append("$('#").append(uuid).append("').spinner(").
-                    append("'option', 'max', ").append(this.max).append(");");
-        }
-        statements.append("});");
-        Label spinnerFieldJS = new Label("spinnerFieldJS", statements.toString());
-        spinnerFieldJS.setEscapeModelStrings(false);
-        add(spinnerFieldJS);
+        super(id, name, model);
+        init(name, reference, model, conf);
     }
 
-    @Override
-    public SpinnerFieldPanel<T> setNewModel(final List<Serializable> list) {
-        setNewModel(new Model<T>() {
-
-            private static final long serialVersionUID = 527651414610325237L;
-
-            @Override
-            public T getObject() {
-                T value = null;
-
-                if (list != null && !list.isEmpty() && StringUtils.hasText(list.get(0).toString())) {
-                    value = reference.equals(Integer.class)
-                            ? reference.cast(NumberUtils.toInt(list.get(0).toString()))
-                            : reference.equals(Long.class)
-                            ? reference.cast(NumberUtils.toLong(list.get(0).toString()))
-                            : reference.equals(Short.class)
-                            ? reference.cast(NumberUtils.toShort(list.get(0).toString()))
-                            : reference.equals(Float.class)
-                            ? reference.cast(NumberUtils.toFloat(list.get(0).toString()))
-                            : reference.equals(byte.class)
-                            ? reference.cast(NumberUtils.toByte(list.get(0).toString()))
-                            : reference.cast(NumberUtils.toDouble(list.get(0).toString()));
-                }
-
-                return value;
-            }
-
-            @Override
-            public void setObject(final T object) {
-                list.clear();
-                if (object != null) {
-                    list.add(object.toString());
-                }
-            }
-        });
-
-        return this;
-    }
+    private void init(final String name, final Class<T> reference, final IModel<T> model, final SpinnerConfig conf) {
+        final Spinner<T> spinner = new Spinner<>("spinner", model, conf);
+        add(spinner);
 
-    @SuppressWarnings("rawtypes")
-    @Override
-    public SpinnerFieldPanel<T> setNewModel(final ListItem item) {
-        field.setModel(new Model<T>() {
-
-            private static final long serialVersionUID = 6799404673615637845L;
-
-            @Override
-            public T getObject() {
-                T number = null;
-
-                final Object obj = item.getModelObject();
-
-                if (obj != null && !obj.toString().isEmpty()) {
-                    if (obj instanceof String) {
-                        number = reference.equals(Integer.class)
-                                ? reference.cast(Integer.valueOf((String) obj))
-                                : reference.equals(Long.class)
-                                ? reference.cast(Long.valueOf((String) obj))
-                                : reference.equals(Short.class)
-                                ? reference.cast(Short.valueOf((String) obj))
-                                : reference.equals(Float.class)
-                                ? reference.cast(Float.valueOf((String) obj))
-                                : reference.equals(byte.class)
-                                ? reference.cast(Byte.valueOf((String) obj))
-                                : reference.cast(Double.valueOf((String) obj));
-                    } else if (obj instanceof Number) {
-                        // Don't parse anything
-                        number = reference.cast(obj);
-                    }
-                }
-
-                return number;
-            }
-
-            @Override
-            @SuppressWarnings("unchecked")
-            public void setObject(final T object) {
-                item.setModelObject(object == null ? null : object.toString());
-            }
-        });
-
-        return this;
+        this.name = name;
+        this.model = model;
+        this.conf = conf;
+        this.reference = reference;
+
+        this.conf.withMouseWheel(true);
+        this.conf.withVerticalbuttons(true);
     }
 
     @Override
     public SpinnerFieldPanel<T> clone() {
-        SpinnerFieldPanel<T> panel = new SpinnerFieldPanel<T>(getId(), name, reference, model, min, max);
+        SpinnerFieldPanel<T> panel = new SpinnerFieldPanel<T>(getId(), name, reference, model, conf);
 
         panel.setRequired(isRequired());
         panel.setReadOnly(isReadOnly());

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
index 3fef056..d7dddec 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
@@ -85,8 +85,8 @@ public class ConnConfPropertyListView extends AltListView<ConnConfProperty> {
         } else {
             Class<?> propertySchemaClass;
             try {
-                propertySchemaClass =
-                        ClassUtils.forName(property.getSchema().getType(), ClassUtils.getDefaultClassLoader());
+                propertySchemaClass = ClassUtils.forName(property.getSchema().getType(), ClassUtils.
+                        getDefaultClassLoader());
                 if (ClassUtils.isPrimitiveOrWrapper(propertySchemaClass)) {
                     propertySchemaClass = org.apache.commons.lang3.ClassUtils.primitiveToWrapper(propertySchemaClass);
                 }
@@ -128,7 +128,7 @@ public class ConnConfPropertyListView extends AltListView<ConnConfProperty> {
                 property.getValues().add(null);
             }
 
-            final MultiFieldPanel multiFieldPanel = new MultiFieldPanel("panel",
+            final MultiFieldPanel multiFieldPanel = new MultiFieldPanel("panel", "connPropAttrSchema",
                     new PropertyModel<List<String>>(property, "values"), field);
             item.add(multiFieldPanel);
         } else {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css b/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
index fcdc8db..039f845 100644
--- a/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
+++ b/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
@@ -191,7 +191,10 @@ div.basepage-content{
 }
 
 .modal-content {
-  overflow: hidden;
+  max-height: 600px;
+  max-width: 1240px;
+  overflow-x: hidden;
+  overflow-y: auto;
 }
 
 .modal-open .modal {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html
index ce13f8f..ed5aae3 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html
@@ -32,7 +32,6 @@ under the License.
     <link href="webjars/ionicons/${ionicons.version}/css/ionicons.min.css" rel="stylesheet" type="text/css" />
     <link href="css/login.css" rel="stylesheet" type="text/css" />
     <link href="css/syncopeConsole.css" rel="stylesheet" type="text/css" />
-    <script type="text/javascript" src="webjars/bootstrap-select/${bootstrap-select.version}/js/bootstrap-select.min.js"></script>
   </head>
   <body class="skin-green">
     <div class="container">
@@ -42,23 +41,21 @@ under the License.
         <div wicket:id="feedback" role="alert"/>
 
         <form class="form-signin" wicket:id="login">
-          <input type="text" wicket:id="username" id="username" class="form-control" 
-                 wicket:message="placeholder:username" required="required" autofocus="autofocus" />
-          <input type="password" wicket:id="password" id="password" class="form-control" 
-                 wicket:message="placeholder:password" required="required" />
-          <select wicket:id="language" id="language" class="selectpicker"/>
-          <select wicket:id="domain" id="domain" class="selectpicker"/>
-          <button wicket:id="submit" type="submit" 
-                  class="btn btn-lg btn-primary btn-block btn-signin"><wicket:message key="submit"/></button>
+          <fieldset class="form-group input-group">
+            <input type="text" wicket:id="username" class="form-control" 
+                   wicket:message="placeholder:username" required="required" autofocus="autofocus" />
+            <input type="password" wicket:id="password" class="form-control" 
+                   wicket:message="placeholder:password" required="required" />
+
+            <select wicket:id="language"/>
+            <div />
+            <select wicket:id="domain"/>
+
+            <button wicket:id="submit" type="submit" 
+                    class="btn btn-lg btn-primary btn-block btn-signin"><wicket:message key="submit"/></button>
+          </fieldset>
         </form>
       </div>
     </div>
-
-    <script type="text/javascript">
-      $('.selectpicker').selectpicker({
-        width: '100%'
-      });
-    </script>
-
   </body>
 </html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/panels/ConnectorModal.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ConnectorModal.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ConnectorModal.html
index a07a8dc..2580a91 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ConnectorModal.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ConnectorModal.html
@@ -18,137 +18,130 @@ under the License.
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
   <wicket:extend>
-    <form wicket:id="form">
-      <div class="tabbable tabs-left">
-        <ul class="nav nav-tabs">
-          <li class="active"><a  data-toggle="tab" href="#tabs-1"><span><wicket:message key="tab1"/></span></a></li>
-          <li><a  data-toggle="tab" href="#tabs-2"><span><wicket:message key="tab2"/></span></a></li>
-          <li><a  data-toggle="tab" href="#tabs-3"><span><wicket:message key="tab3"/></span></a></li>
-        </ul>
-        <div class="tab-content">
-          <div id="tabs-1" class="tab-pane active">
-            <div id="formtable">
-              <div class="tablerow alt">
-                <div class="tablecolumn_label short_dynamicsize">
-                  <label for="displayName"><wicket:message key="displayName"/></label>
-                </div>
-                <div class="tablecolumn_field short_dynamicsize">
-                  <span wicket:id="displayName">[displayName]</span>
-                </div>
+    <div class="tabbable tabs-left">
+      <ul class="nav nav-tabs">
+        <li class="active"><a  data-toggle="tab" href="#tabs-1"><span><wicket:message key="tab1"/></span></a></li>
+        <li><a  data-toggle="tab" href="#tabs-2"><span><wicket:message key="tab2"/></span></a></li>
+        <li><a  data-toggle="tab" href="#tabs-3"><span><wicket:message key="tab3"/></span></a></li>
+      </ul>
+      <div class="tab-content">
+        <div id="tabs-1" class="tab-pane active">
+          <div id="formtable">
+            <div class="tablerow alt">
+              <div class="tablecolumn_label short_dynamicsize">
+                <label for="displayName"><wicket:message key="displayName"/></label>
               </div>
+              <div class="tablecolumn_field short_dynamicsize">
+                <span wicket:id="displayName">[displayName]</span>
+              </div>
+            </div>
 
-              <div class="tablerow">
-                <div class="tablecolumn_label short_dynamicsize">
-                  <label for="location"><wicket:message key="location"/></label>
-                </div>
-                <div class="tablecolumn_field short_dynamicsize">
-                  <span wicket:id="location">[location]</span>
-                </div>
+            <div class="tablerow">
+              <div class="tablecolumn_label short_dynamicsize">
+                <label for="location"><wicket:message key="location"/></label>
+              </div>
+              <div class="tablecolumn_field short_dynamicsize">
+                <span wicket:id="location">[location]</span>
               </div>
+            </div>
 
-              <div class="tablerow alt">
-                <div class="tablecolumn_label short_dynamicsize">
-                  <label for="name"><wicket:message key="name"/></label>
-                </div>
-                <div class="tablecolumn_field medium_dynamicsize">
-                  <span wicket:id="connectorName">[connectorName]</span>
-                </div>
+            <div class="tablerow alt">
+              <div class="tablecolumn_label short_dynamicsize">
+                <label for="name"><wicket:message key="name"/></label>
               </div>
+              <div class="tablecolumn_field medium_dynamicsize">
+                <span wicket:id="connectorName">[connectorName]</span>
+              </div>
+            </div>
 
-              <div class="tablerow">
-                <div class="tablecolumn_label short_dynamicsize">
-                  <label for="version"><wicket:message key="version"/></label>
-                </div>
-                <div class="tablecolumn_field short_dynamicsize">
-                  <span wicket:id="version">[version]</span>
-                </div>
+            <div class="tablerow">
+              <div class="tablecolumn_label short_dynamicsize">
+                <label for="version"><wicket:message key="version"/></label>
+              </div>
+              <div class="tablecolumn_field short_dynamicsize">
+                <span wicket:id="version">[version]</span>
               </div>
             </div>
-            <div style="display: table; border: 1px solid #BBBBBB;">
-              <div class="tablerow2 alt">
-                <div class="tablecolumn2_label short_dynamicsize">
-                  <label for="connRequestTimeout"><wicket:message key="connRequestTimeout"/></label>
-                </div>
-                <div class="tablecolumn2_field short_dynamicsize">
-                  <span wicket:id="connRequestTimeout">[connRequestTimeout]</span>
-                </div>
-                <div class="tablecolumn2_label short_dynamicsize">
-                  <label for="poolMaxObjects"><wicket:message key="poolMaxObjects"/></label>
-                </div>
-                <div class="tablecolumn2_field short_dynamicsize">
-                  <span wicket:id="poolMaxObjects">[poolMaxObjects]</span>
-                </div>
+          </div>
+          <div style="display: table; border: 1px solid #BBBBBB;">
+            <div class="tablerow2 alt">
+              <div class="tablecolumn2_label short_dynamicsize">
+                <label for="connRequestTimeout"><wicket:message key="connRequestTimeout"/></label>
               </div>
-              <div class="tablerow2">
-                <div class="tablecolumn2_label short_dynamicsize">
-                  <label for="poolMinIdle"><wicket:message key="poolMinIdle"/></label>
-                </div>
-                <div class="tablecolumn2_field short_dynamicsize">
-                  <span wicket:id="poolMinIdle">[poolMinIdle]</span>
-                </div>
-                <div class="tablecolumn2_label short_dynamicsize">
-                  <label for="poolMaxIdle"><wicket:message key="poolMaxIdle"/></label>
-                </div>
-                <div class="tablecolumn2_field short_dynamicsize">
-                  <span wicket:id="poolMaxIdle">[poolMaxIdle]</span>
-                </div>
+              <div class="tablecolumn2_field short_dynamicsize">
+                <span wicket:id="connRequestTimeout">[connRequestTimeout]</span>
               </div>
-              <div class="tablerow2 alt">
-                <div class="tablecolumn2_label short_dynamicsize">
-                  <label for="poolMaxWait"><wicket:message key="poolMaxWait"/></label>
-                </div>
-                <div class="tablecolumn2_field short_dynamicsize">
-                  <span wicket:id="poolMaxWait">[poolMaxWait]</span>
-                </div>
-                <div class="tablecolumn2_label short_dynamicsize">
-                  <label for="poolMinEvictableIdleTime"><wicket:message key="poolMinEvictableIdleTime"/></label>
-                </div>
-                <div class="tablecolumn2_field short_dynamicsize">
-                  <span wicket:id="poolMinEvictableIdleTime">[poolMinEvictableIdleTime]</span>
-                </div>
+              <div class="tablecolumn2_label short_dynamicsize">
+                <label for="poolMaxObjects"><wicket:message key="poolMaxObjects"/></label>
+              </div>
+              <div class="tablecolumn2_field short_dynamicsize">
+                <span wicket:id="poolMaxObjects">[poolMaxObjects]</span>
+              </div>
+            </div>
+            <div class="tablerow2">
+              <div class="tablecolumn2_label short_dynamicsize">
+                <label for="poolMinIdle"><wicket:message key="poolMinIdle"/></label>
+              </div>
+              <div class="tablecolumn2_field short_dynamicsize">
+                <span wicket:id="poolMinIdle">[poolMinIdle]</span>
+              </div>
+              <div class="tablecolumn2_label short_dynamicsize">
+                <label for="poolMaxIdle"><wicket:message key="poolMaxIdle"/></label>
+              </div>
+              <div class="tablecolumn2_field short_dynamicsize">
+                <span wicket:id="poolMaxIdle">[poolMaxIdle]</span>
+              </div>
+            </div>
+            <div class="tablerow2 alt">
+              <div class="tablecolumn2_label short_dynamicsize">
+                <label for="poolMaxWait"><wicket:message key="poolMaxWait"/></label>
+              </div>
+              <div class="tablecolumn2_field short_dynamicsize">
+                <span wicket:id="poolMaxWait">[poolMaxWait]</span>
+              </div>
+              <div class="tablecolumn2_label short_dynamicsize">
+                <label for="poolMinEvictableIdleTime"><wicket:message key="poolMinEvictableIdleTime"/></label>
+              </div>
+              <div class="tablecolumn2_field short_dynamicsize">
+                <span wicket:id="poolMinEvictableIdleTime">[poolMinEvictableIdleTime]</span>
               </div>
             </div>
           </div>
-          <div id="tabs-2" class="tab-pane">
-            <div id="formtable">
-              <span wicket:id="container">
-                <div style="border-bottom: 10px">
-                  <div style="width: 40px; text-align: center; font-size: 7px">
-                    <label for="version"><wicket:message key="overridable"/></label>
-                  </div>
+        </div>
+        <div id="tabs-2" class="tab-pane">
+          <div id="formtable">
+            <span wicket:id="container">
+              <div style="border-bottom: 10px">
+                <div style="width: 40px; text-align: center; font-size: 7px">
+                  <label for="version"><wicket:message key="overridable"/></label>
                 </div>
-                <form wicket:id="connectorPropForm">
-                  <div class="tablerow connectorProp" wicket:id="connectorProperties">
-                    <div class="tablecolumn_check" style="width: 27px; text-align: center; margin-right: 10px">
-                      <span wicket:id="connPropAttrOverridable">[connPropAttrOverridable]</span>
-                    </div>
-                    <div class="tablecolumn_connPropAttr">
-                      <span wicket:id="connPropAttrSchema">[connPropAttrSchema]</span>
-                    </div>
-                    <div class="tablecolumn_field veryshort_fixedsize">
-                      <span wicket:id="panel">[panel]</span>
-                    </div>
+              </div>
+              <form wicket:id="connectorPropForm">
+                <div class="tablerow connectorProp" wicket:id="connectorProperties">
+                  <div class="tablecolumn_check" style="width: 27px; text-align: center; margin-right: 10px">
+                    <span wicket:id="connPropAttrOverridable">[connPropAttrOverridable]</span>
                   </div>
-                  <div>
-                    <a style="position: absolute; top: 2px; right:20px;" wicket:id="check">
-                      <img src="img/ping.png"width="30" height="30"
-                           alt="ping" title="title" wicket:message="title:check"/>
-                    </a>
+                  <div class="tablecolumn_connPropAttr">
+                    <span wicket:id="connPropAttrSchema">[connPropAttrSchema]</span>
                   </div>
-                </form>
-              </span>
-            </div>
-          </div>
-          <div id="tabs-3" class="tab-pane">
-            <span wicket:id="capabilitiesPalette"/>
+                  <div class="tablecolumn_field veryshort_fixedsize">
+                    <span wicket:id="panel">[panel]</span>
+                  </div>
+                </div>
+                <div>
+                  <a style="position: absolute; top: 2px; right:20px;" wicket:id="check">
+                    <img src="img/ping.png"width="30" height="30"
+                         alt="ping" title="title" wicket:message="title:check"/>
+                  </a>
+                </div>
+              </form>
+            </span>
           </div>
         </div>
+        <div id="tabs-3" class="tab-pane">
+          <span wicket:id="capabilitiesPalette"/>
+        </div>
       </div>
-
-      <div class="modal-footer">
-        <input type="submit" class="btn btn-primary" wicket:id="apply"/>
-        <input type="button" class="btn btn-default" wicket:id="cancel"/>
-      </div>
-    </form>
+    </div>
   </wicket:extend>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent.html
deleted file mode 100644
index e1fbeff..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent.html
+++ /dev/null
@@ -1,45 +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>
-      <script type="text/javascript">
-        var notificationShownTimes = 0;
-  
-        function showNotification(componentId, messagecount) {
-          notificationShownTimes++;
-          timeout = 1700 + (messagecount * 500) + notificationShownTimes * 200;
-          $('div#' + componentId).fadeTo('normal', 1.0);
-          setTimeout("$('div#" + componentId + "').fadeOut('normal')", timeout);
-        }
-      </script>
-  
-      <style type="text/css">
-        table.palette td.header {
-          background:url("images/ui-bg_glass_75_e6e6e6_1x400.png")
-            repeat-x scroll 50% 50% #E6E6E6 !important;
-        }
-      </style>
-  </wicket:head>
-
-  <wicket:panel>
-    <div wicket:id="feedback"/>
-    <wicket:child />
-  </wicket:panel>
-</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent.properties
deleted file mode 100644
index e696256..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent.properties
+++ /dev/null
@@ -1,20 +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.
-submit=Save
-add=Add
-remove=Delete
-cancel=Cancel

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent_it.properties
deleted file mode 100644
index 58e0aa0..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent_it.properties
+++ /dev/null
@@ -1,20 +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.
-submit=Salva
-add=Aggiungi
-remove=Elimina
-cancel=Annulla

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent_pt_BR.properties
deleted file mode 100644
index 490fe30..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ModalContent_pt_BR.properties
+++ /dev/null
@@ -1,20 +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.
-submit=Salvar
-add=Adicionar
-remove=Remover
-cancel=Cancelar

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html
index 0b7ca7f..660449a 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html
@@ -16,122 +16,32 @@ 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>
-    <div id="formtable">
-      <div class="tablerow alt">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="name"><wicket:message key="name"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="name">[name]</span>
-        </div>
-      </div>
-
-      <div class="tablerow">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="connector"><wicket:message key="connector"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="connector">[connector]</span>
-        </div>
-      </div>
-
-      <div class="tablerow alt">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="enforceMandatoryCondition"><wicket:message key="enforceMandatoryCondition"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="enforceMandatoryCondition">[enforceMandatoryCondition]</span>
-        </div>
-      </div>
-
-      <div class="tablerow">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="propagationPrimary"><wicket:message key="propagationPrimary"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="propagationPrimary">[propagationPrimary]</span>
-        </div>
-      </div>
-
-      <div class="tablerow alt">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="propagationPriority"><wicket:message key="propagationPriority"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="propagationPriority">[propagationPriority]</span>
-        </div>
-      </div>
-
-      <div class="tablerow">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="propagationMode"><wicket:message key="propagationMode"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="propagationMode">[propagationMode]</span>
-        </div>
-      </div>
-
-      <div class="tablerow alt">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="randomPwdIfNotProvided"><wicket:message key="randomPwdIfNotProvided"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="randomPwdIfNotProvided">[randomPwdIfNotProvided]</span>
-        </div>
-      </div>
-
-      <div class="tablerow">
-        <div class="tablecolumn_label short_dynamicsize">
-          <label for="propagationActionsClassNames"><wicket:message key="actionsClasses"/></label>
-        </div>
-        <span wicket:id="propagationActionsClassNames">
-          <span wicket:id="actionsClasses">
-            <select class="text ui-widget-content ui-corner-all" wicket:id="actionsClass"/>
-            <a wicket:id="drop"><i class="fa fa-minus"></i></a>
-            <a wicket:id="add"><i class="fa fa-plus"></i></a>
-            <br/>
-          </span>
-          <a wicket:id="first"><i class="fa fa-plus"></i></a>
-        </span>        
-      </div>
-
-      <div class="tablerow alt">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="createTraceLevel"><wicket:message key="createTraceLevel"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="createTraceLevel">[createTraceLevel]</span>
-        </div>
-      </div>
-
-      <div class="tablerow">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="updateTraceLevel"><wicket:message key="updateTraceLevel"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="updateTraceLevel">[updateTraceLevel]</span>
-        </div>
-      </div>
-
-      <div class="tablerow alt">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="deleteTraceLevel"><wicket:message key="deleteTraceLevel"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="deleteTraceLevel">[deleteTraceLevel]</span>
-        </div>
-      </div>
-
-      <div class="tablerow">
-        <div class="tablecolumn_label medium_fixedsize">
-          <label for="syncTraceLevel"><wicket:message key="syncTraceLevel"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="syncTraceLevel">[syncTraceLevel]</span>
-        </div>
-      </div>
-    </div>
-  </wicket:panel>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://xmlns.jcp.org/jsf/composite">
+  <head>
+    <title>Resource details panel</title>
+  </head>
+  <body>
+    <wicket:panel>
+
+      <div wicket:id="container" class="summarize">
+        <span wicket:id="name">[name]</span>
+        <span wicket:id="connector">[connector]</span>
+        <span wicket:id="enforceMandatoryCondition">[enforceMandatoryCondition]</span>
+        <span wicket:id="propagationPrimary">[propagationPrimary]</span>
+        <span wicket:id="propagationPriority">[propagationPriority]</span>
+        <span wicket:id="propagationMode">[propagationMode]</span>
+        <span wicket:id="randomPwdIfNotProvided">[randomPwdIfNotProvided]</span>
+        <span wicket:id="actionsClasses">[actionsClasses]</span>
+        <span wicket:id="createTraceLevel">[createTraceLevel]</span>
+        <span wicket:id="updateTraceLevel">[updateTraceLevel]</span>
+        <span wicket:id="deleteTraceLevel">[deleteTraceLevel]</span>
+        <span wicket:id="syncTraceLevel">[syncTraceLevel]</span>
+      </div>
+
+      <span wicket:id="systeminformation">[System Information]</span>
+    </wicket:panel>
+  </body>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.html
index 2d4f7b4..bd4cd4b 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.html
@@ -18,37 +18,6 @@ under the License.
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
   <wicket:extend>
-    <form wicket:id="form">
-      <div class="tabbable tabs-left">
-        <ul class="nav nav-tabs">
-          <li class="active"><a  data-toggle="tab" href="#resource"><span><wicket:message key="resource"/></span></a></li>
-          <li><a  data-toggle="tab" href="#provisions"><span><wicket:message key="provisions"/></span></a></li>
-          <li><a  data-toggle="tab" href="#connectorProperties"><span><wicket:message key="connectorProperties"/></span></a></li>
-          <li><a  data-toggle="tab" href="#security"><span><wicket:message key="security"/></span></a></li>
-        </ul>
-        <div class="tab-content">
-          <div id="resource" class="tab-pane active">
-            <span wicket:id="details">[details]</span>
-            <span wicket:id="systeminformation">[System Information]</span>
-          </div>
-          <div id="provisions" class="tab-pane">
-            <span wicket:id="pcontainer">
-              <span wicket:id="provisions">[provisions]</span>
-            </span>
-          </div>
-          <div id="connectorProperties" class="tab-pane">
-            <span wicket:id="connconf">[connconf]</span>
-          </div>
-          <div id="security" class="tab-pane">
-            <span wicket:id="security">[security]</span>
-          </div>
-        </div>
-      </div>
-
-      <div class="modal-footer">
-        <input type="submit" class="btn btn-primary" wicket:id="apply"/>
-        <input type="button" class="btn btn-default" wicket:id="cancel"/>
-      </div>
-    </form>
+    <div wicket:id="tabbedPanel"></div>
   </wicket:extend>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceSecurityPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceSecurityPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceSecurityPanel.html
index ddabe05..10cfb54 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceSecurityPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceSecurityPanel.html
@@ -18,39 +18,16 @@ under the License.
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
   <wicket:panel>
-    <div id="formtable" wicket:id="security">
-      <div class="tablerow alt">
-        <div class="tablecolumn_label short_dynamicsize">
-          <label for="passwordPolicy"><wicket:message key="passwordPolicy"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="passwordPolicy">
-            [panel for dynamic input type markup]
-          </span>
-        </div>
-      </div>
-
-      <div class="tablerow">
-        <div class="tablecolumn_label short_dynamicsize">
-          <label for="accountPolicy"><wicket:message key="accountPolicy"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="accountPolicy">
-            [panel for dynamic input type markup]
-          </span>
-        </div>
-      </div>
-
-      <div class="tablerow alt">
-        <div class="tablecolumn_label short_dynamicsize">
-          <label for="syncPolicy"><wicket:message key="syncPolicy"/></label>
-        </div>
-        <div class="tablecolumn_field medium_dynamicsize">
-          <span wicket:id="syncPolicy">
-            [panel for dynamic input type markup]
-          </span>
-        </div>
-      </div>
+    <div wicket:id="container" class="summarize">
+      <span wicket:id="passwordPolicy">
+        [panel for dynamic input type markup]
+      </span>
+      <span wicket:id="accountPolicy">
+        [panel for dynamic input type markup]
+      </span>
+      <span wicket:id="syncPolicy">
+        [panel for dynamic input type markup]
+      </span>
     </div>
   </wicket:panel>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCheckBoxPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCheckBoxPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCheckBoxPanel.html
index fc7596f..ccb8d5e 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCheckBoxPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCheckBoxPanel.html
@@ -16,6 +16,18 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-<wicket:extend>
-    <input type="checkbox" class="checkbox" wicket:id="checkboxField"/>
-</wicket:extend>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+  <head>
+    <title>Ajax checkbox panel</title>
+  </head>
+  <body>
+    <wicket:extend>
+      <div class="checkbox">
+        <label>
+          <input type="checkbox" wicket:id="checkboxField">
+            <label wicket:id="label">[LABEL]</label>
+        </label>
+      </div>
+    </wicket:extend>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.html
index 12d5bf2..e1ff5da 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.html
@@ -17,8 +17,15 @@ specific language governing permissions and limitations
 under the License.
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+  <head>
+    <title>Drop down choice</title>
+  </head>
   <wicket:extend>
-    <select class="ui-widget-content ui-corner-all medium_dynamicsize"
-            wicket:id="dropDownChoiceField" />
+    <wicket:enclosure child="field-label">
+      <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
+    </wicket:enclosure>
+    <fieldset class="input-group">
+      <select wicket:id="dropDownChoiceField" />
+    </fieldset>
   </wicket:extend>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.html
index 28d897d..f2b0cd3 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.html
@@ -17,10 +17,17 @@ 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>
-    <div class="form-group">
-      <label wicket:id="label">[LABEL]</label><span wicket:id="required"/>
-      <input type="text" class="form-control" wicket:id="textField"/>
-    </div>
-  </wicket:extend>
+  <head>
+    <title>Ajaxt text field panel</title>
+  </head>
+  <body>
+    <wicket:extend>
+      <wicket:enclosure child="field-label">
+        <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
+      </wicket:enclosure>
+      <fieldset class="form-group input-group">
+        <input type="text" class="form-control" wicket:id="textField"/>
+      </fieldset>
+    </wicket:extend>
+  </body>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.html
index e35205c..8dc7fd0 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.html
@@ -17,19 +17,48 @@ 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 wicket:id="multiValueContainer">
-      <span wicket:id="view">
-        <span wicket:id="panel">[form field]</span>
-        <a wicket:id="drop"><img src="img/minus-icon.png" alt="remove icon" class="drop_button" /></a>
-        <span wicket:id="panelPlus">[plus]</span>
-        <br />
+  <head>
+    <title>Multivalue conatiner</title>
+  </head>
+  <body>
+    <wicket:panel>
+      <wicket:enclosure child="field-label">
+        <!--<label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>-->
+        <label wicket:id="field-label">[LABEL]</label>
+      </wicket:enclosure>
+      <span wicket:id="multiValueContainer">
+        <span wicket:id="content">[content]</span>
       </span>
+
+      <wicket:fragment wicket:id="noDataFragment">
+        <div class="input-group form-group">
+          <div class="form-control" style="background-color:#EEE">
+            <label wicket:id="field-label">[LABEL]</label>
+          </div>
+          <span wicket:id="panelPlus">[plus]</span>
+        </div>
+      </wicket:fragment>
+
+      <wicket:fragment wicket:id="dataFragment">
+        <span wicket:id="view">
+          <div class="input-group form-group">
+            <span wicket:id="panel">[form field]</span>
+            <div class="input-group-addon">
+              <a wicket:id="drop"><i class="fa fa-minus"></i></a>
+            </div>
+            <span wicket:id="panelPlus">[plus]</span>
+          </div>
+        </span>
+      </wicket:fragment>
+
       <wicket:fragment wicket:id="fragmentPlus">
-        <a wicket:id="add"><i class="fa fa-plus"></i></a>
+        <div class="input-group-addon">
+          <a wicket:id="add"><i class="fa fa-plus"></i></a>
+        </div>
       </wicket:fragment>
+
       <wicket:fragment wicket:id="emptyFragment">
       </wicket:fragment>
-    </span>
-  </wicket:panel>
+    </wicket:panel>
+  </body>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.html
index a6f0e51..c9ee0e1 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/SpinnerFieldPanel.html
@@ -18,12 +18,9 @@ under the License.
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
   <wicket:extend>
-    <script type="text/javascript" wicket:id="spinnerFieldJS">
-    </script>
-    <div style="display: inline-table;">
-      <div style="display: table-cell;">
-        <input wicket:id="spinnerField"/>
-      </div>
-    </div>
+    <wicket:enclosure child="field-label">
+      <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
+    </wicket:enclosure>
+    <input wicket:id="spinner"/>
   </wicket:extend>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b2e93ca7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 685996f..2d5aa1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -372,7 +372,8 @@ under the License.
     <activiti-modeler.directory>${project.build.directory}/activiti-modeler</activiti-modeler.directory>
     
     <jquery.version>2.1.4</jquery.version>
-    <jquery-ui.version>1.11.4</jquery-ui.version>
+    <!-- upgrade jquery-ui version after wicket bootstrap upgrading -->
+    <jquery-ui.version>1.10.3</jquery-ui.version>
     <jquery-cookie.version>1.4.1-1</jquery-cookie.version>
     <bootstrap.version>3.3.5</bootstrap.version>
 


Mime
View raw message