You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2016/04/08 18:30:13 UTC

[2/4] syncope git commit: [SYNCOPE-745] Provides notification and email template management. Still missing tests and tasks per notification.

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/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 8f48f82..16df1e7 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
@@ -22,32 +22,18 @@ import java.io.Serializable;
 import java.util.List;
 import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
-import org.apache.syncope.client.console.wicket.ajax.markup.html.IndicatorAjaxSubmitLink;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.event.Broadcast;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
 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.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.ResourceModel;
 
-public abstract class MultiFieldPanel<E extends Serializable> extends AbstractFieldPanel<List<E>> {
+public abstract class MultiFieldPanel<E extends Serializable> extends AbstractMultiPanel<E> {
 
     private static final long serialVersionUID = -6322397761456513324L;
 
-    private final ListView<E> view;
-
     private final FieldPanel<? extends Serializable> panelTemplate;
 
-    private final boolean eventTemplate;
-
-    private final WebMarkupContainer container;
-
-    private final Form<?> form;
-
     private MultiFieldPanel(
             final String id,
             final String name,
@@ -55,102 +41,10 @@ public abstract class MultiFieldPanel<E extends Serializable> extends AbstractFi
             final FieldPanel<? extends Serializable> panelTemplate,
             final boolean eventTemplate) {
 
-        super(id, name, model);
-
+        super(id, name, model, eventTemplate);
         this.panelTemplate = panelTemplate;
-        this.eventTemplate = eventTemplate;
-
-        // -----------------------
-        // Object container definition
-        // -----------------------
-        container = new WebMarkupContainer("multiValueContainer");
-        container.setOutputMarkupId(true);
-        add(container);
-
-        form = new Form<>("innerForm");
-        container.add(form);
-        // -----------------------
-
-        view = new InnerView("view", name, model);
-
-        final List<E> obj = model.getObject();
-        if (obj == null || obj.isEmpty()) {
-            form.addOrReplace(getNoDataFragment(model, name));
-        } else {
-            form.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);
-        contentFragment.add(view.setOutputMarkupId(true));
-        return contentFragment;
-    }
-
-    private Fragment getPlusFragment(final IModel<List<E>> model, final String label) {
-        final IndicatorAjaxSubmitLink plus = new IndicatorAjaxSubmitLink("add") {
-
-            private static final long serialVersionUID = -7978723352517770644L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                //Add current component
-                model.getObject().add(newModelObject());
-
-                if (model.getObject().size() == 1) {
-                    form.addOrReplace(getDataFragment(model, label));
-                }
-
-                target.add(container);
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final Form<?> form) {
-                error(getString(Constants.OPERATION_ERROR));
-                super.onError(target, form);
-            }
-
-        };
-
-        final Fragment fragment = new Fragment("panelPlus", "fragmentPlus", MultiFieldPanel.this);
-        fragment.addOrReplace(plus);
-        fragment.setRenderBodyOnly(true);
-
-        return fragment;
-    }
-
-    public ListView<E> getView() {
-        return view;
-    }
-
-    @Override
-    public MultiFieldPanel<E> setModelObject(final List<E> object) {
-        view.setModelObject(object);
-        return this;
-    }
-
-    public static class MultiValueSelectorEvent {
-
-        private final AjaxRequestTarget target;
-
-        public MultiValueSelectorEvent(final AjaxRequestTarget target) {
-            this.target = target;
-        }
-
-        public AjaxRequestTarget getTarget() {
-            return target;
-        }
     }
 
-    protected abstract E newModelObject();
-
     public static class Builder<E extends Serializable> implements Serializable {
 
         private static final long serialVersionUID = 1L;
@@ -194,83 +88,34 @@ public abstract class MultiFieldPanel<E extends Serializable> extends AbstractFi
                     return Builder.this.newModelObject();
                 }
 
-            };
-        }
-    }
-
-    private final class InnerView extends ListView<E> {
-
-        private static final long serialVersionUID = -9180479401817023838L;
-
-        private final String label;
-
-        private final IModel<List<E>> model;
-
-        private InnerView(final String id, final String label, final IModel<List<E>> model) {
-            super(id, model);
-            this.label = label;
-            this.model = model;
-        }
-
-        @Override
-        protected void populateItem(final ListItem<E> item) {
-            final FieldPanel<? extends Serializable> fieldPanel = panelTemplate.clone();
-            fieldPanel.setIndex(item.getIndex());
-            fieldPanel.setNewModel(item);
-            fieldPanel.settingsDependingComponents();
-
-            if (eventTemplate) {
-                fieldPanel.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-                    private static final long serialVersionUID = -1107858522700306810L;
-
-                    @Override
-                    protected void onUpdate(final AjaxRequestTarget target) {
-                        send(getPage(), Broadcast.BREADTH, new MultiValueSelectorEvent(target));
-                    }
-                });
-            }
-
-            item.add(fieldPanel.hideLabel().setRenderBodyOnly(true));
-
-            final IndicatorAjaxSubmitLink minus = new IndicatorAjaxSubmitLink("drop") {
-
-                private static final long serialVersionUID = -7978723352517770644L;
-
                 @Override
-                protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                    //Drop current component
-                    model.getObject().remove(item.getModelObject());
-                    fieldPanel.getField().clearInput();
+                protected FieldPanel<? extends Serializable> getItemPanel(final ListItem<E> item) {
+                    final FieldPanel<? extends Serializable> fieldPanel = panelTemplate.clone();
+                    fieldPanel.setIndex(item.getIndex());
+                    fieldPanel.setNewModel(item);
+                    fieldPanel.settingsDependingComponents();
+                    fieldPanel.hideLabel();
 
-                    if (model.getObject().isEmpty()) {
-                        form.addOrReplace(getNoDataFragment(model, label));
-                    }
+                    if (eventTemplate) {
+                        fieldPanel.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
 
-                    target.add(container);
+                            private static final long serialVersionUID = -1107858522700306810L;
 
-                    if (eventTemplate) {
-                        send(getPage(), Broadcast.BREADTH, new MultiValueSelectorEvent(target));
+                            @Override
+                            protected void onUpdate(final AjaxRequestTarget target) {
+                                send(getPage(), Broadcast.BREADTH, new MultiValueSelectorEvent(target));
+                            }
+                        });
                     }
+
+                    return fieldPanel;
                 }
 
                 @Override
-                protected void onError(final AjaxRequestTarget target, final Form<?> form) {
-                    error(getString(Constants.OPERATION_ERROR));
-                    super.onError(target, form);
+                protected void clearInput(final Panel panel) {
+                    FieldPanel.class.cast(panel).getField().clearInput();
                 }
             };
-
-            item.add(minus);
-
-            final Fragment fragment;
-            if (item.getIndex() == model.getObject().size() - 1) {
-                fragment = getPlusFragment(model, label);
-            } else {
-                fragment = new Fragment("panelPlus", "emptyFragment", MultiFieldPanel.this);
-            }
-
-            item.add(fragment.setRenderBodyOnly(true));
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiPanel.java
new file mode 100644
index 0000000..e8a2e97
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiPanel.java
@@ -0,0 +1,37 @@
+/*
+ * 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.io.Serializable;
+import java.util.List;
+import org.apache.wicket.model.IModel;
+
+public abstract class MultiPanel<INNER extends Serializable> extends AbstractMultiPanel<INNER> {
+
+    private static final long serialVersionUID = -6322397761456513324L;
+
+    public MultiPanel(
+            final String id,
+            final String name,
+            final IModel<List<INNER>> model,
+            final boolean eventTemplate) {
+
+        super(id, name, model, eventTemplate);
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractModalPanelBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractModalPanelBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractModalPanelBuilder.java
index b4d7a69..7209f26 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractModalPanelBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractModalPanelBuilder.java
@@ -27,8 +27,6 @@ public abstract class AbstractModalPanelBuilder<T extends Serializable> implemen
 
     private static final long serialVersionUID = 5241745929825564456L;
 
-    protected final String id;
-
     protected final PageReference pageRef;
 
     private final T defaultItem;
@@ -38,17 +36,23 @@ public abstract class AbstractModalPanelBuilder<T extends Serializable> implemen
     /**
      * Construct.
      *
-     * @param id The component id
      * @param defaultItem default item.
      * @param pageRef Caller page reference.
      */
-    public AbstractModalPanelBuilder(final String id, final T defaultItem, final PageReference pageRef) {
-        this.id = id;
+    public AbstractModalPanelBuilder(final T defaultItem, final PageReference pageRef) {
         this.defaultItem = defaultItem;
         this.pageRef = pageRef;
     }
 
-    public abstract ModalPanel<T> build(final int index, final AjaxWizard.Mode mode);
+    /**
+     * Build the wizard.
+     *
+     * @param id component id.
+     * @param index step index.
+     * @param mode mode.
+     * @return wizard.
+     */
+    public abstract ModalPanel<T> build(final String id, final int index, final AjaxWizard.Mode mode);
 
     protected void onCancelInternal(final T modelObject) {
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
index 3e79047..3240a6b 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
@@ -29,24 +29,43 @@ public abstract class AjaxWizardBuilder<T extends Serializable> extends Abstract
     /**
      * Construct.
      *
-     * @param id The component id
      * @param defaultItem default item.
      * @param pageRef Caller page reference.
      */
-    public AjaxWizardBuilder(final String id, final T defaultItem, final PageReference pageRef) {
-        super(id, defaultItem, pageRef);
+    public AjaxWizardBuilder(final T defaultItem, final PageReference pageRef) {
+        super(defaultItem, pageRef);
     }
 
+    /**
+     * {@inheritDoc }
+     */
     @Override
-    public AjaxWizard<T> build(final int index, final AjaxWizard.Mode mode) {
-        final AjaxWizard<T> wizard = build(mode);
+    public AjaxWizard<T> build(final String id, final int index, final AjaxWizard.Mode mode) {
+        final AjaxWizard<T> wizard = build(id, mode);
         for (int i = 1; i < index; i++) {
             wizard.getWizardModel().next();
         }
         return wizard;
     }
 
+    /**
+     * Build the wizard with a default wizard id.
+     *
+     * @param mode wizard mode.
+     * @return wizard.
+     */
     public AjaxWizard<T> build(final AjaxWizard.Mode mode) {
+        return build(WizardMgtPanel.WIZARD_ID, mode);
+    }
+
+    /**
+     * Build the wizard.
+     *
+     * @param id component id.
+     * @param mode wizard mode.
+     * @return wizard.
+     */
+    public AjaxWizard<T> build(final String id, final AjaxWizard.Mode mode) {
         // ge the specified item if available
         final T modelObject = newModelObject();
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
----------------------------------------------------------------------
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 e8bc981..49a1180 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
@@ -46,6 +46,10 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
 
     private static final long serialVersionUID = -4152438633429194882L;
 
+    protected static final String WIZARD_ID = "wizard";
+
+    private final String actualId;
+
     private final WebMarkupContainer container;
 
     private final Fragment initialFragment;
@@ -90,6 +94,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
         super(id);
         setOutputMarkupId(true);
 
+        this.actualId = wizardInModal ? BaseModal.CONTENT_ID : WIZARD_ID;
         this.wizardInModal = wizardInModal;
 
         super.add(modal);
@@ -131,6 +136,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
                 newItemPanelBuilder.setItem(item);
 
                 final ModalPanel<T> modalPanel = newItemPanelBuilder.build(
+                        actualId,
                         ((AjaxWizard.NewItemActionEvent<T>) newItemEvent).getIndex(),
                         item != null ? AjaxWizard.Mode.EDIT : AjaxWizard.Mode.CREATE);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
index ebe2d14..8404b2f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
@@ -35,17 +35,15 @@ public class AnyObjectWizardBuilder extends AnyWizardBuilder<AnyObjectTO> implem
     /**
      * Construct.
      *
-     * @param id The component id
      * @param anyObjectTO any object TO.
      * @param anyTypeClasses any type classes
      * @param pageRef Caller page reference.
      */
     public AnyObjectWizardBuilder(
-            final String id,
             final AnyObjectTO anyObjectTO,
             final List<String> anyTypeClasses,
             final PageReference pageRef) {
-        super(id, anyObjectTO, anyTypeClasses, pageRef);
+        super(anyObjectTO, anyTypeClasses, pageRef);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
index 47f255d..6fae131 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
@@ -46,31 +46,27 @@ public abstract class AnyWizardBuilder<T extends AnyTO> extends AjaxWizardBuilde
     /**
      * Construct.
      *
-     * @param id The component id
      * @param anyTO any
      * @param anyTypeClasses any type classes
      * @param pageRef Caller page reference.
      */
-    public AnyWizardBuilder(
-            final String id, final T anyTO, final List<String> anyTypeClasses, final PageReference pageRef) {
-        super(id, new AnyHandler<>(anyTO), pageRef);
+    public AnyWizardBuilder(final T anyTO, final List<String> anyTypeClasses, final PageReference pageRef) {
+        super(new AnyHandler<>(anyTO), pageRef);
         this.anyTypeClasses = anyTypeClasses;
     }
 
     /**
      * Construct.
      *
-     * @param id The component id
      * @param handler any handler
      * @param anyTypeClasses any type classes
      * @param pageRef Caller page reference.
      */
     public AnyWizardBuilder(
-            final String id,
             final AnyHandler<T> handler,
             final List<String> anyTypeClasses,
             final PageReference pageRef) {
-        super(id, handler, pageRef);
+        super(handler, pageRef);
         this.anyTypeClasses = anyTypeClasses;
     }
 
@@ -106,7 +102,7 @@ public abstract class AnyWizardBuilder<T extends AnyTO> extends AjaxWizardBuilde
         wizardModel.add(new Resources(modelObject.getInnerObject()));
         return wizardModel;
     }
-    
+
     protected AnyWizardBuilder<T> addOptionalDetailsPanel(
             final AnyHandler<T> modelObject, final WizardModel wizardModel) {
         if (modelObject.getInnerObject().getKey() != null && modelObject.getInnerObject().getKey() > 0) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupHandler.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupHandler.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupHandler.java
index 59fc58d..5966efc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupHandler.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupHandler.java
@@ -38,9 +38,11 @@ public class GroupHandler extends AnyHandler<GroupTO> {
 
     public GroupHandler(final GroupTO groupTO) {
         super(groupTO);
+        getUDynClauses();
+        getADynClauses();
     }
 
-    public List<SearchClause> getUDynClauses() {
+    public final List<SearchClause> getUDynClauses() {
         if (this.uDynClauses == null) {
             this.uDynClauses = SearchUtils.getSearchClauses(this.anyTO.getUDynMembershipCond());
         }
@@ -51,7 +53,7 @@ public class GroupHandler extends AnyHandler<GroupTO> {
         this.uDynClauses = uDynClauses;
     }
 
-    public Map<String, List<SearchClause>> getADynClauses() {
+    public final Map<String, List<SearchClause>> getADynClauses() {
         if (this.aDynClauses == null) {
             this.aDynClauses = SearchUtils.getSearchClauses(this.anyTO.getADynMembershipConds());
         }
@@ -64,27 +66,24 @@ public class GroupHandler extends AnyHandler<GroupTO> {
 
     public String getUDynMembershipCond() {
         if (CollectionUtils.isEmpty(this.uDynClauses)) {
-            return this.anyTO.getUDynMembershipCond();
+            return null;
         } else {
             return getFIQLString(this.uDynClauses, SyncopeClient.getUserSearchConditionBuilder());
         }
     }
 
     public Map<String, String> getADynMembershipConds() {
-        if (this.aDynClauses == null || this.aDynClauses.isEmpty()) {
-            return this.anyTO.getADynMembershipConds();
-        } else {
-            final Map<String, String> res = new HashMap<>();
-
+        final Map<String, String> res = new HashMap<>();
+        if (this.aDynClauses != null && !this.aDynClauses.isEmpty()) {
             for (Map.Entry<String, List<SearchClause>> entry : this.aDynClauses.entrySet()) {
                 if (CollectionUtils.isNotEmpty(entry.getValue())) {
                     res.put(entry.getKey(), getFIQLString(entry.getValue(),
                             SyncopeClient.getAnyObjectSearchConditionBuilder(entry.getKey())));
                 }
             }
-
-            return res;
         }
+
+        return res;
     }
 
     private String getFIQLString(final List<SearchClause> clauses, final AbstractFiqlSearchConditionBuilder bld) {
@@ -93,6 +92,7 @@ public class GroupHandler extends AnyHandler<GroupTO> {
 
     public GroupTO fillDynamicConditions() {
         this.anyTO.setUDynMembershipCond(this.getUDynMembershipCond());
+        this.anyTO.getADynMembershipConds().clear();
         this.anyTO.getADynMembershipConds().putAll(this.getADynMembershipConds());
         return this.anyTO;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
index 7314fa2..c77d190 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
@@ -41,14 +41,12 @@ public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> {
     /**
      * Construct.
      *
-     * @param id The component id
      * @param groupTO any
      * @param anyTypeClasses any type classes
      * @param pageRef Caller page reference.
      */
-    public GroupWizardBuilder(
-            final String id, final GroupTO groupTO, final List<String> anyTypeClasses, final PageReference pageRef) {
-        super(id, new GroupHandler(groupTO), anyTypeClasses, pageRef);
+    public GroupWizardBuilder(final GroupTO groupTO, final List<String> anyTypeClasses, final PageReference pageRef) {
+        super(new GroupHandler(groupTO), anyTypeClasses, pageRef);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
index 6c9b1a3..c791942 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
@@ -45,17 +45,15 @@ public class UserWizardBuilder extends AnyWizardBuilder<UserTO> {
     /**
      * Construct.
      *
-     * @param id The component id
      * @param userTO any
      * @param anyTypeClasses any type classes
      * @param pageRef Caller page reference.
      */
     public UserWizardBuilder(
-            final String id,
             final UserTO userTO,
             final List<String> anyTypeClasses,
             final PageReference pageRef) {
-        super(id, userTO, anyTypeClasses, pageRef);
+        super(userTO, anyTypeClasses, pageRef);
         statusModel = new ListModel<>(new ArrayList<StatusBean>());
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/provision/ProvisionWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/provision/ProvisionWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/provision/ProvisionWizardBuilder.java
index 73d6bfb..c2f7653 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/provision/ProvisionWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/provision/ProvisionWizardBuilder.java
@@ -229,12 +229,11 @@ public class ProvisionWizardBuilder extends AjaxWizardBuilder<ProvisionTO> imple
     /**
      * Construct.
      *
-     * @param id The component id
      * @param resurceTO external resource to be updated.
      * @param pageRef Caller page reference.
      */
-    public ProvisionWizardBuilder(final String id, final ResourceTO resurceTO, final PageReference pageRef) {
-        super(id, new ProvisionTO(), pageRef);
+    public ProvisionWizardBuilder(final ResourceTO resurceTO, final PageReference pageRef) {
+        super(new ProvisionTO(), pageRef);
         this.resourceTO = resurceTO;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleHandler.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleHandler.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleHandler.java
index 19ce196..f7034b6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleHandler.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleHandler.java
@@ -37,9 +37,10 @@ public class RoleHandler implements Serializable {
 
     public RoleHandler(final RoleTO roleTO) {
         this.roleTO = roleTO;
+        getDynClauses();
     }
 
-    public List<SearchClause> getDynClauses() {
+    public final List<SearchClause> getDynClauses() {
         if (this.dynClauses == null) {
             this.dynClauses = SearchUtils.getSearchClauses(this.roleTO.getDynMembershipCond());
         }
@@ -52,7 +53,7 @@ public class RoleHandler implements Serializable {
 
     public String getDynMembershipCond() {
         if (CollectionUtils.isEmpty(this.dynClauses)) {
-            return this.roleTO.getDynMembershipCond();
+            return null;
         } else {
             return getFIQLString(this.dynClauses, SyncopeClient.getUserSearchConditionBuilder());
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
index dc6cfc1..9c2bea1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
@@ -55,12 +55,11 @@ public class RoleWizardBuilder extends AjaxWizardBuilder<RoleHandler> {
     /**
      * Construct.
      *
-     * @param id The component id
      * @param roleTO role
      * @param pageRef Caller page reference.
      */
-    public RoleWizardBuilder(final String id, final RoleTO roleTO, final PageReference pageRef) {
-        super(id, new RoleHandler(roleTO), pageRef);
+    public RoleWizardBuilder(final RoleTO roleTO, final PageReference pageRef) {
+        super(new RoleHandler(roleTO), pageRef);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/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 cc1a8ea..05183af 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
@@ -297,7 +297,7 @@ span.overridable div.checkbox label div div.toggle-group label {
   padding-left: 7px;
 }
 
-div#outer.modal-lg, div#utilityModal.modal-lg {
+div#outer.modal-lg, div#utilityModal.modal-lg, section#notifications .modal-lg {
   width: 1200px;
 }
 
@@ -503,6 +503,22 @@ div.listview-actions a {
 .btn-circle i, .circular-actions a i {
   margin: 0px;
 }
+
+.multipanel-btn-minus {
+  padding: 0px 0px 0px 6px;
+  border: 0 none !important;
+}
+
+.multipanel-btn-plus {
+  padding: 15px 0px 8px 6px;
+  border: 0 none !important;
+}
+
+.multipanel-box {
+  padding: 5px;
+  display: inline-table;
+  margin: 0px;
+}
 /**
 END - Actions
 */
@@ -669,4 +685,24 @@ li.todoitem a {
 .form-palette {
   display: inline-block;
   width: 119%;
+}
+
+.form-group-inline {
+  display: inline-table;
+  width: 100%;
+}
+
+div#userFilter #title{
+  margin: 10px 0 0 8px;
+  font-weight: bold;
+}
+
+div#userFilter  #warning{
+  margin: 1px 0 5px 8px;
+  color: #e00000;
+  font-size: 9px;
+}
+
+div#userFilter  #check {
+  margin: 1px 0 5px 8px;
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/EventSelectionPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/EventSelectionPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/EventSelectionPanel.html
new file mode 100644
index 0000000..ae36ca1
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/EventSelectionPanel.html
@@ -0,0 +1,125 @@
+<!--
+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>
+      .container {
+        display: block;
+        width: 100%;
+      }
+
+      .labrut {
+        font-size: 12px;
+        vertical-align: middle;
+        font-family: Verdana,Tahoma,sans-serif;
+        display: table-cell;
+        width: 300px;
+        height: 20px;
+      }
+
+      .divtableheaderlabrut {
+        font-weight: bold;
+        float: left;
+        margin-left: 5px;
+        display: table-cell;
+        width: 70px;
+      }
+
+      .divtableheadercell {
+        display: inline-table;
+        vertical-align: top;
+        text-align: right;
+        width: 105px;
+        height: 20px;
+      }
+
+      .divtablecheckcolumn {
+        display: table-cell;
+        vertical-align: top;
+        text-align: right;
+        width: 105px;
+      }
+
+      .divtablecheck {
+        width: 105px;
+        height: 20px;
+      }
+
+    </style>
+  </wicket:head>
+  <wicket:panel>
+    <div class="eventSelectionWidzard">
+      <div class="container">
+        <div style="display:inline-table;">
+          <div class="labrut">
+            &nbsp;
+          </div>
+          <div style="display: table-cell">
+            <div class="divtableheadercell">
+              <div class="divtableheaderlabrut">
+                <labrut wicket:id="successLabel"/>
+              </div>
+              <div style="display: table-cell">
+                <input type="checkbox" wicket:id="successSelector" style="margin-top: 0px;margin-bottom: 0px;"/>
+              </div>
+            </div>
+          </div>
+          <div style="display: table-cell">
+            <div class="divtableheadercell">
+              <div class="divtableheaderlabrut">
+                <labrut wicket:id="failureLabel"/>
+              </div>
+              <div style="display: table-cell">
+                <input type="checkbox" wicket:id="failureSelector" style="margin-top: 0px;margin-bottom: 0px;"/>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="container">
+        <div class="labrut">
+          <div id="divtablerow-labrut" wicket:id="categoryView">
+            <div class="labrut">
+              <span wicket:id="subcategory">[subcategory]</span>
+            </div>
+          </div>
+        </div>
+
+        <div id="divtablerow-success" class="divtablecheckcolumn">
+          <span wicket:id="successGroup">
+            <div wicket:id="successView" class="divtablecheck">
+              <div class="divtableheaderlabrut">&nbsp;</div>
+              <input type="checkbox" wicket:id="successCheck"/>
+            </div>
+          </span>
+        </div>
+
+        <div id="divtablerow-failure" class="divtablecheckcolumn">
+          <span wicket:id="failureGroup">
+            <div wicket:id="failureView" class="divtablecheck">
+              <div class="divtableheaderlabrut">&nbsp;</div>
+              <input type="checkbox" wicket:id="failureCheck"/>
+            </div>
+          </span>
+        </div>
+      </div>
+    </div>
+  </wicket:panel>
+</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/LoggerCategoryPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/LoggerCategoryPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/LoggerCategoryPanel.html
new file mode 100644
index 0000000..3fb3baf
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/LoggerCategoryPanel.html
@@ -0,0 +1,91 @@
+<!--
+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>
+
+      .events{
+        display: table-row;
+        width: 990px;
+      }
+
+      .selectedEvents{
+        display: inline-block;
+        height: 100px;
+        margin: 10px 10px 0 10px;
+        overflow-y: auto;
+      }
+
+      .eventSelection{
+        display: inline-table;
+        float: right;
+        width: 380px;
+        min-width: 380px;
+      }
+
+      .eventSelection div#eventElement{
+        display: table-row;
+        width:100%;
+      }
+      .eventSelection div#eventElement div#labrut{
+        display: table-cell;
+      }
+
+      .eventSelection div#eventElement div#value{
+        display: table-cell;
+        padding: 0 0 0 10px;
+      }
+    </style>
+  </wicket:head>
+  <wicket:panel>
+
+    <div class="events">
+      <div class="selectedEvents">
+        <span wicket:id="selectedEventsPanel">[selected events panel]</span>
+      </div>
+
+      <div class="eventSelection">
+        <div wicket:id="categoryContainer">
+          <div>
+            <span wicket:id="type">[type]</span>
+          </div>
+          <div>
+            <span wicket:id="category">[category]</span>
+          </div>
+          <div>
+            <span wicket:id="subcategory">[sub-category]</span>
+          </div>
+          <div>
+            <div id="labrut">
+              <labrut wicket:id="customLabel"/>
+            </div>
+            <div id="value">
+              <span wicket:id="custom">[custom]</span>
+              <span wicket:id="customActions">[actions]</span>
+            </div>
+          </div>
+        </div>
+        <div wicket:id="eventsContainer">
+          <span wicket:id="eventsPanel">[events panel]</span>
+        </div>
+      </div>
+    </div>
+
+  </wicket:panel>
+</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateContentModal.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateContentModal.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateContentModal.html
new file mode 100644
index 0000000..feed01e
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateContentModal.html
@@ -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.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+  <head><title></title></head>
+  <body>
+    <wicket:head>
+      <link rel="stylesheet" type="text/css" href="webjars/codemirror/${codemirror.version}/lib/codemirror.css"/>
+
+      <script type="text/javascript" src="webjars/codemirror/${codemirror.version}/lib/codemirror.js"></script>
+      <script type="text/javascript" src="webjars/codemirror/${codemirror.version}/addon/display/autorefresh.js"></script>
+      <script type="text/javascript" src="webjars/codemirror/${codemirror.version}/addon/search/search.js"></script>
+      <script type="text/javascript" src="webjars/codemirror/${codemirror.version}/addon/search/searchcursor.js"></script>
+      <script type="text/javascript">
+        function updateTextArea(editor) {
+          document.getElementById("templateDefForm").children["template"].value = editor.getValue();
+        }
+      </script>
+      <style>
+        .w_content_3 {
+          padding: 0;
+          color: #333333;
+          font-family: Verdana,Tahoma,sans-serif;
+          font-size: 100%;
+          border: 1px solid #BBBBBB;
+          padding: 1%;
+        }
+      </style>
+    </wicket:head>
+    <wicket:panel>
+      <div style="padding: 1%;">
+        <div class="w_content_3" id="templateDefForm">
+          <textarea wicket:id="template" id="template" name="template" style="width: 100%; height: 350px;">
+          </textarea>
+        </div>
+      </div>
+    </wicket:panel>
+  </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.properties
new file mode 100644
index 0000000..70c7a20
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.properties
@@ -0,0 +1,20 @@
+# 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.
+any.edit=Edit ${key}
+any.new=New e-mail template
+any.finish=Submit
+any.cancel=Cancel

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel_it.properties
new file mode 100644
index 0000000..d0d15f8
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel_it.properties
@@ -0,0 +1,20 @@
+# 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.
+any.edit=Modifica ${key}
+any.new=Nuovo e-mail template
+any.finish=Invia
+any.cancel=Annulla

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel_pt_BR.properties
new file mode 100644
index 0000000..de37c65
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel_pt_BR.properties
@@ -0,0 +1,20 @@
+# 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.
+any.edit=Editar ${key}
+any.new=Novo e-mail template
+any.finish=Enviar
+any.cancel=Cancelar

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateModal.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateModal.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateModal.html
new file mode 100644
index 0000000..3a0676c
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/MailTemplateModal.html
@@ -0,0 +1,28 @@
+<!--
+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">
+  <head><title></title></head>
+  <body>
+    <wicket:panel>
+      <div class="form-group">
+        <span wicket:id="key"/>
+      </div>
+    </wicket:panel>
+  </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.properties
new file mode 100644
index 0000000..70c7a20
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.properties
@@ -0,0 +1,20 @@
+# 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.
+any.edit=Edit ${key}
+any.new=New e-mail template
+any.finish=Submit
+any.cancel=Cancel

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel_it.properties
new file mode 100644
index 0000000..d0d15f8
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel_it.properties
@@ -0,0 +1,20 @@
+# 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.
+any.edit=Modifica ${key}
+any.new=Nuovo e-mail template
+any.finish=Invia
+any.cancel=Annulla

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel_pt_BR.properties
new file mode 100644
index 0000000..de37c65
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel_pt_BR.properties
@@ -0,0 +1,20 @@
+# 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.
+any.edit=Editar ${key}
+any.new=Novo e-mail template
+any.finish=Enviar
+any.cancel=Cancelar

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationTasks.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationTasks.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationTasks.html
new file mode 100644
index 0000000..ac755e8
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationTasks.html
@@ -0,0 +1,24 @@
+<!--
+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">
+  <head><title></title></head>
+  <wicket:panel>
+    <span wicket:id="tasks">[TASKS]</span>
+  </wicket:panel>
+</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$About.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$About.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$About.html
new file mode 100644
index 0000000..006425d
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$About.html
@@ -0,0 +1,31 @@
+<!--
+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">
+  <head><title></title></head>
+  <body>
+    <wicket:panel>
+      <div class="form-group">
+        <span wicket:id="about"></span>
+      </div>
+      <div wicket:id="search">
+        <span wicket:id="clauses"></span>
+      </div>
+    </wicket:panel>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts.html
new file mode 100644
index 0000000..c1cbc27
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts.html
@@ -0,0 +1,28 @@
+<!--
+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">
+  <head><title></title></head>
+  <body>
+    <wicket:panel>
+      <div wicket:id="about" class="form-group">
+        <span wicket:id="abouts">[abouts]</span>
+      </div>
+    </wicket:panel>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts.properties
new file mode 100644
index 0000000..8a8946a
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts.properties
@@ -0,0 +1,24 @@
+# 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.
+checkAbout=All
+userFilter=User filter
+userFilterWarning=Do not use this filter unless events are not targeted at users
+roleFilter=Role filter
+roleFilterWarning=Do not use this filter unless events are not targeted at roles
+checkUserAbout=Users
+checkRoleAbout=Roles
+abouts=What is the notification referring to?

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts_it.properties
new file mode 100644
index 0000000..43c055b
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts_it.properties
@@ -0,0 +1,24 @@
+# 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.
+checkAbout=Tutto
+userFilter=Filtro utenti
+userFilterWarning=Non usare questo filtro se gli eventi catturati non riguardano espressamente utenti
+roleFilter=Filtro ruoli
+roleFilterWarning=Non usare questo filtro se gli eventi catturati non riguardano espressamente ruoli
+checkUserAbout=Utenti
+checkRoleAbout=Ruoli
+abouts=A cosa si riferisce la notifica?

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts_pt_BR.properties
new file mode 100644
index 0000000..f31449f
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Abouts_pt_BR.properties
@@ -0,0 +1,24 @@
+# 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.
+checkAbout=Todos
+userFilter=Filtro usu\u00e1rio
+userFilterWarning=N\u00e3o use este filtro n\u00e3o ser que os eventos n\u00e3o s\u00e3o direcionados a usu\u00e1rios
+roleFilter=Filtro fun\u00e7\u00e3o
+roleFilterWarning=N\u00e3o use este filtro n\u00e3o ser que os eventos n\u00e3o s\u00e3o direcionados a fun\u00e7\u00f5es
+checkUserAbout=Usu\u00e1rio
+checkRoleAbout=Fun\u00e7\u00e3o
+abouts=O que diz respeito \u00e0 notifica\u00e7\u00e3o?

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.html
new file mode 100644
index 0000000..1ceee21
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.html
@@ -0,0 +1,46 @@
+<!--
+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">
+  <head><title></title></head>
+  <body>
+    <wicket:panel>
+      <div class="form-group">
+        <span wicket:id="sender">[sender]</span>
+      </div>
+      <div class="form-group">
+        <span wicket:id="subject">[subject]</span>
+      </div>
+      <div class="form-group">
+        <span wicket:id="recipientAttrType">[recipientAttrType]</span>
+      </div>
+      <div class="form-group">
+        <span wicket:id="recipientAttrName">[recipientAttrName]</span>
+      </div>
+      <div class="form-group">
+        <span wicket:id="template">[template]</span>
+      </div>
+      <div class="form-group">
+        <span wicket:id="traceLevel">[traceLevel]</span>
+      </div>
+      <div class="form-group">
+        <span wicket:id="isActive">[isActive]</span>
+      </div>
+    </wicket:panel>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.properties
new file mode 100644
index 0000000..4021981
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.properties
@@ -0,0 +1,23 @@
+# 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.
+subject=Subject
+sender=Sender
+template=Template
+traceLevel=Trace level
+recipientAttrType=Recipients e-mail attribute type
+recipientAttrName=Recipients e-mail attribute schema
+isActive=Enabled

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_it.properties
new file mode 100644
index 0000000..6b7a1ca
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_it.properties
@@ -0,0 +1,23 @@
+# 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.
+subject=Oggetto
+sender=Mittente
+template=Modello
+traceLevel=Livello di tracciamento
+recipientAttrType=Tipo attributo e-mail destinatari
+recipientAttrName=Schema attributo e-mail destinatari
+isActive=Abilitata

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_pt_BR.properties
new file mode 100644
index 0000000..d2ffaf6
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_pt_BR.properties
@@ -0,0 +1,23 @@
+# 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.
+subject=Assunto
+sender=Remetente
+template=Template
+traceLevel=N\u00edvel de Trace
+recipientAttrType=Tipo de atributo de destinat\u00e1rio de email.
+recipientAttrName=Destinat\u00e1rios de e-mail para atributos de esquema
+isActive=Ativada

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.html
new file mode 100644
index 0000000..c697099
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.html
@@ -0,0 +1,27 @@
+<!--
+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">
+  <head><title></title></head>
+  <body>
+    <wicket:panel>
+      <span wicket:id="eventSelection"/>
+    </wicket:panel>
+  </body>
+</html>
+

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.properties
new file mode 100644
index 0000000..690ae7e
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.properties
@@ -0,0 +1,42 @@
+# 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.
+title=Edit notification
+submit=Save
+subject=Subject
+sender=Sender
+template=Template
+traceLevel=Trace level
+notification=Notification
+about=About
+events=Events
+recipients=Recipients
+selfAsRecipient=Include users matching About
+recipientAttrType=Recipients e-mail attribute type
+recipientAttrName=Recipients e-mail attribute schema
+checkRecipients=Search recipients
+checkAbout=All
+userFilter=User filter
+userFilterWarning=Do not use this filter unless events are not targeted at users
+userNotifications=User notifications
+userNotificationsWarning=Do not select this checkbox unless events are not targeted at users
+roleFilter=Role filter
+roleFilterWarning=Do not use this filter unless events are not targeted at roles
+roleNotifications=Role notifications
+roleNotificationsWarning=Do not select this checkbox unless events are not targeted at roles
+isActive=Enabled
+checkUserAbout=Users
+checkRoleAbout=Roles

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_it.properties
new file mode 100644
index 0000000..db3bb59
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_it.properties
@@ -0,0 +1,42 @@
+# 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.
+title=Gestisci notifiche
+submit=Salva
+subject=Oggetto
+sender=Mittente
+template=Modello
+traceLevel=Livello di tracciamento
+notification=Notifica
+about=Soggetti
+events=Eventi
+recipients=Destinatari
+selfAsRecipient=Includi i soggetti
+recipientAttrType=Tipo attributo e-mail destinatari
+recipientAttrName=Schema attributo e-mail destinatari
+checkRecipients=Cerca i destinatari
+checkAbout=Tutto
+userFilter=Filtro utenti
+userFilterWarning=Non usare questo filtro se gli eventi catturati non riguardano espressamente utenti
+userNotifications=Notifiche utente
+userNotificationsWarning=Non selezionare questa checkbox se gli eventi catturati non riguardano espressamente utenti
+roleFilter=Filtro ruoli
+roleFilterWarning=Non usare questo filtro se gli eventi catturati non riguardano espressamente ruoli
+roleNotifications=Notifiche ruoli
+roleNotificationsWarning=Non selezionare questa checkbox se gli eventi catturati non riguardano espressamente ruoli
+isActive=Abilitata
+checkUserAbout=Utenti
+checkRoleAbout=Ruoli

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_pt_BR.properties
new file mode 100644
index 0000000..9b13d12
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_pt_BR.properties
@@ -0,0 +1,42 @@
+# 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.
+title=Alterar Notifica\u00e7\u00e3o
+submit=Salvar
+subject=Assunto
+sender=Remetente
+template=Template
+traceLevel=N\u00edvel de Trace
+notification=Notifica\u00e7\u00e3o
+about=Sobre
+events=Eventos
+recipients=Destinat\u00e1rios
+selfAsRecipient=Incluir usu\u00e1rios relacionados Sobre
+recipientAttrType=Tipo de atributo de destinat\u00e1rio de email.
+recipientAttrName=Destinat\u00e1rios de e-mail para atributos de esquema
+checkRecipients=Buscar Destinat\u00e1rios
+checkAbout=Todos
+userFilter=Filtro usu\u00e1rio
+userFilterWarning=N\u00e3o use este filtro n\u00e3o ser que os eventos n\u00e3o s\u00e3o direcionados a usu\u00e1rios
+roleFilter=Filtro fun\u00e7\u00e3o
+roleFilterWarning=N\u00e3o use este filtro n\u00e3o ser que os eventos n\u00e3o s\u00e3o direcionados a fun\u00e7\u00f5es
+userNotifications=Notifica\u00e7\u00f5es do usu\u00e1rio
+userNotificationsWarning=N\u00e3o selecione esta op\u00e7\u00e3o a menos que os eventos n\u00e3o s\u00e3o direcionados a usu\u00e1rios
+roleNotifications=Notifica\u00e7\u00f5es do fun\u00e7\u00f5es
+roleNotificationsWarning=N\u00e3o selecione esta op\u00e7\u00e3o a menos que os eventos n\u00e3o s\u00e3o direcionados a fun\u00e7\u00f5es
+isActive=Ativada
+checkUserAbout=Usu\u00e1rio
+checkRoleAbout=Fun\u00e7\u00e3o

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.html
new file mode 100644
index 0000000..b8387d6
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.html
@@ -0,0 +1,43 @@
+<!--
+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">
+  <head><title></title></head>
+  <body>
+    <wicket:panel>
+      <div class="form-group">
+        <span wicket:id="staticRecipients">[staticRecipients]</span>
+      </div>
+      <div class="form-group form-group-inline">
+        <span wicket:id="recipients">[recipients]</span>
+      </div>
+      <div id="userFilter" class="form-group box">
+        <div id="title">
+          <span for="userNotifications"><wicket:message key="userNotifications"/></span>
+        </div>
+        <div id="warning">
+          <span for="userNotificationsWarning"><wicket:message key="userNotificationsWarning"/></span>
+        </div>
+        <div id="check">
+          <span wicket:id="selfAsRecipient">[selfAsRecipient]</span>
+        </div>
+      </div>
+    </wicket:panel>
+  </body>
+</html>
+

http://git-wip-us.apache.org/repos/asf/syncope/blob/8455cb96/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.properties
new file mode 100644
index 0000000..dec4920
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.properties
@@ -0,0 +1,22 @@
+# 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.
+recipients=Recipients
+staticRecipients=Recipients
+selfAsRecipient=Include users matching About
+userNotifications=User notifications
+userNotificationsWarning=Do not select this checkbox unless events are not targeted at users
+search=Search for recipients