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/21 18:07:40 UTC
syncope git commit: [SYNCOPE-817] fixes connector creation wizard
Repository: syncope
Updated Branches:
refs/heads/master a7666a3f9 -> 0139df768
[SYNCOPE-817] fixes connector creation wizard
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/0139df76
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/0139df76
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/0139df76
Branch: refs/heads/master
Commit: 0139df76876234e593b8592502bcd476db50b407
Parents: a7666a3
Author: fmartelli <fa...@gmail.com>
Authored: Thu Apr 21 18:06:54 2016 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Thu Apr 21 18:06:54 2016 +0200
----------------------------------------------------------------------
.../console/topology/TopologyTogglePanel.java | 25 ++++++++++++
.../html/list/ConnConfPropertyListView.java | 4 +-
.../client/console/wizards/AjaxWizard.java | 20 ++++++++-
.../console/wizards/AjaxWizardBuilder.java | 5 ++-
.../wizards/resources/ConnectorConfPanel.java | 43 +++++++-------------
.../resources/ProvisionWizardBuilder.java | 5 +++
.../resources/ResourceProvisionPanel.java | 24 ++++++++---
.../resources/ResourceWizardBuilder.java | 1 -
.../console/topology/TopologyTogglePanel.html | 1 +
.../topology/TopologyTogglePanel.properties | 1 +
.../topology/TopologyTogglePanel_it.properties | 3 +-
.../TopologyTogglePanel_pt_BR.properties | 3 +-
.../topology/TopologyTogglePanel_ru.properties | 35 ++++++++--------
.../syncope/fit/console/TopologyITCase.java | 12 +++---
14 files changed, 116 insertions(+), 66 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
index 2f405c7..77ef7b9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
@@ -37,6 +37,7 @@ import org.apache.syncope.client.console.tasks.PullTasks;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.IndicatingOnConfirmAjaxLink;
import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.resources.ResourceProvisionPanel;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.ConnInstanceTO;
import org.apache.syncope.common.lib.to.ResourceTO;
@@ -297,6 +298,30 @@ public class TopologyTogglePanel extends TogglePanel<Serializable> {
MetaDataRoleAuthorizationStrategy.authorize(edit, ENABLE, StandardEntitlement.RESOURCE_UPDATE);
fragment.add(edit);
+ AjaxLink<String> provision = new IndicatingAjaxLink<String>("provision") {
+
+ private static final long serialVersionUID = 3776750333491622263L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target) {
+ ResourceTO modelObject = resourceRestClient.read(node.getKey().toString());
+
+ IModel<ResourceTO> model = new CompoundPropertyModel<>(modelObject);
+ taskModal.setFormModel(model);
+
+ target.add(taskModal.setContent(new ResourceProvisionPanel(taskModal, modelObject, pageRef)));
+
+ taskModal.header(new Model<>(MessageFormat.format(getString("resource.edit"), node.getKey())));
+
+ MetaDataRoleAuthorizationStrategy.
+ authorize(taskModal.getForm(), ENABLE, StandardEntitlement.RESOURCE_UPDATE);
+
+ taskModal.show(true);
+ }
+ };
+ MetaDataRoleAuthorizationStrategy.authorize(edit, ENABLE, StandardEntitlement.RESOURCE_UPDATE);
+ fragment.add(provision);
+
AjaxLink<String> explore = new IndicatingAjaxLink<String>("explore") {
private static final long serialVersionUID = 3776750333491622263L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/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 1334bba..e744f4e 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
@@ -104,9 +104,9 @@ public class ConnConfPropertyListView extends ListView<ConnConfProperty> {
field = new AjaxSpinnerFieldPanel.Builder<>().build("panel", label, numberClass, new Model<Number>());
required = property.getSchema().isRequired();
} else if (ClassUtils.isAssignable(Boolean.class, propertySchemaClass)) {
- field = new AjaxCheckBoxPanel("panel", label, new Model<Boolean>(), false);
+ field = new AjaxCheckBoxPanel("panel", label, new Model<Boolean>());
} else {
- field = new AjaxTextFieldPanel("panel", label, new Model<String>(), false);
+ field = new AjaxTextFieldPanel("panel", label, new Model<String>());
required = property.getSchema().isRequired();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
index 94874b2..86c491c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
@@ -26,6 +26,7 @@ import org.apache.syncope.client.console.panels.ModalPanel;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.event.IEventSink;
import org.apache.wicket.extensions.wizard.IWizardModel;
import org.apache.wicket.extensions.wizard.IWizardStep;
import org.apache.wicket.extensions.wizard.Wizard;
@@ -54,6 +55,8 @@ public abstract class AjaxWizard<T extends Serializable> extends Wizard implemen
private final Mode mode;
+ private IEventSink eventSink = null;
+
/**
* Construct.
*
@@ -76,6 +79,11 @@ public abstract class AjaxWizard<T extends Serializable> extends Wizard implemen
init(model);
}
+ protected AjaxWizard<T> setEventSink(final IEventSink eventSink) {
+ this.eventSink = eventSink;
+ return this;
+ }
+
@Override
protected void init(final IWizardModel wizardModel) {
super.init(wizardModel);
@@ -106,7 +114,11 @@ public abstract class AjaxWizard<T extends Serializable> extends Wizard implemen
final AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
try {
onCancelInternal();
- send(AjaxWizard.this, Broadcast.BUBBLE, new NewItemCancelEvent<>(item, target));
+ if (eventSink == null) {
+ send(AjaxWizard.this, Broadcast.BUBBLE, new NewItemCancelEvent<>(item, target));
+ } else {
+ send(eventSink, Broadcast.EXACT, new NewItemCancelEvent<>(item, target));
+ }
} catch (Exception e) {
LOG.warn("Wizard error on cancel", e);
error(StringUtils.isBlank(e.getMessage()) ? e.getClass().getName() : e.getMessage());
@@ -122,7 +134,11 @@ public abstract class AjaxWizard<T extends Serializable> extends Wizard implemen
final AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
try {
final Serializable res = onApplyInternal(target);
- send(AjaxWizard.this, Broadcast.BUBBLE, new NewItemFinishEvent<>(item, target).setResult(res));
+ if (eventSink == null) {
+ send(AjaxWizard.this, Broadcast.BUBBLE, new NewItemFinishEvent<>(item, target).setResult(res));
+ } else {
+ send(eventSink, Broadcast.EXACT, new NewItemFinishEvent<>(item, target).setResult(res));
+ }
} catch (Exception e) {
LOG.error("Wizard error on finish", e);
error(StringUtils.isBlank(e.getMessage()) ? e.getClass().getName() : e.getMessage());
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/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 050797d..c509856 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
@@ -22,6 +22,7 @@ import java.io.Serializable;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.event.IEventSink;
import org.apache.wicket.extensions.wizard.WizardModel;
public abstract class AjaxWizardBuilder<T extends Serializable> extends AbstractModalPanelBuilder<T> {
@@ -30,6 +31,8 @@ public abstract class AjaxWizardBuilder<T extends Serializable> extends Abstract
protected AjaxWizard.Mode mode = AjaxWizard.Mode.CREATE;
+ protected IEventSink eventSink = null;
+
/**
* Construct.
*
@@ -106,7 +109,7 @@ public abstract class AjaxWizardBuilder<T extends Serializable> extends Abstract
return res;
}
- };
+ }.setEventSink(eventSink);
}
protected abstract WizardModel buildModelSteps(final T modelObject, final WizardModel wizardModel);
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
index 722ddfa..56bfd7f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-import java.util.Set;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
import org.apache.syncope.common.lib.to.ConnBundleTO;
@@ -30,7 +29,6 @@ import org.apache.syncope.common.lib.to.ConnInstanceTO;
import org.apache.syncope.common.lib.types.ConnConfPropSchema;
import org.apache.syncope.common.lib.types.ConnConfProperty;
import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.PropertyModel;
public abstract class ConnectorConfPanel extends AbstractConnConfPanel<ConnInstanceTO> {
@@ -48,34 +46,24 @@ public abstract class ConnectorConfPanel extends AbstractConnConfPanel<ConnInsta
@Override
protected List<ConnConfProperty> load() {
- List<ConnConfProperty> properties = getConnProperties(connInstanceTO);
- connInstanceTO.getConf().clear();
- connInstanceTO.getConf().addAll(properties);
+ List<ConnConfProperty> properties = getConnProperties(ConnectorConfPanel.this.modelObject);
+ ConnectorConfPanel.this.modelObject.getConf().clear();
- return new PropertyModel<List<ConnConfProperty>>(modelObject, "conf") {
-
- private static final long serialVersionUID = -7809699384012595307L;
+ // re-order properties
+ Collections.sort(properties, new Comparator<ConnConfProperty>() {
@Override
- public List<ConnConfProperty> getObject() {
- final List<ConnConfProperty> res = new ArrayList<>((Set<ConnConfProperty>) super.getObject());
-
- // re-order properties
- Collections.sort(res, new Comparator<ConnConfProperty>() {
-
- @Override
- public int compare(final ConnConfProperty left, final ConnConfProperty right) {
- if (left == null) {
- return -1;
- } else {
- return left.compareTo(right);
- }
- }
- });
-
- return res;
+ public int compare(final ConnConfProperty left, final ConnConfProperty right) {
+ if (left == null) {
+ return -1;
+ } else {
+ return left.compareTo(right);
+ }
}
- }.getObject();
+ });
+
+ ConnectorConfPanel.this.modelObject.getConf().addAll(properties);
+ return properties;
}
};
@@ -99,8 +87,7 @@ public abstract class ConnectorConfPanel extends AbstractConnConfPanel<ConnInsta
final ConnConfProperty property = new ConnConfProperty();
property.setSchema(key);
- if (instance.getKey() != null
- && instance.getConfMap().containsKey(key.getName())
+ if (instance.getConfMap().containsKey(key.getName())
&& instance.getConfMap().get(key.getName()).getValues() != null) {
property.getValues().addAll(instance.getConfMap().get(key.getName()).getValues());
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java
index c5a81bc..6aafbfa 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java
@@ -41,6 +41,7 @@ import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.event.IEventSink;
import org.apache.wicket.extensions.wizard.WizardModel;
import org.apache.wicket.extensions.wizard.WizardStep;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -236,6 +237,10 @@ public class ProvisionWizardBuilder extends AjaxWizardBuilder<ProvisionTO> imple
this.resourceTO = resurceTO;
}
+ public void setEventSink(final IEventSink eventSink) {
+ this.eventSink = eventSink;
+ }
+
@Override
protected WizardModel buildModelSteps(final ProvisionTO modelObject, final WizardModel wizardModel) {
wizardModel.add(new ObjectType(modelObject));
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
index a6e4470..5aa7d74 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
@@ -18,29 +18,37 @@
*/
package org.apache.syncope.client.console.wizards.resources;
+import java.io.Serializable;
import java.util.List;
import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.SerializationUtils;
+import org.apache.syncope.client.console.panels.AbstractModalPanel;
import org.apache.syncope.client.console.panels.ListViewPanel;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.common.lib.to.ProvisionTO;
import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.event.Broadcast;
-import org.apache.wicket.extensions.wizard.WizardStep;
-public class ResourceProvisionPanel extends WizardStep {
+public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
private static final long serialVersionUID = -7982691107029848579L;
- public ResourceProvisionPanel(final ResourceTO resourceTO, final PageReference pageRef) {
- super();
+ public ResourceProvisionPanel(
+ final BaseModal<Serializable> modal,
+ final ResourceTO resourceTO,
+ final PageReference pageRef) {
+ super(modal, pageRef);
setOutputMarkupId(true);
+ final ProvisionWizardBuilder wizard = new ProvisionWizardBuilder(resourceTO, pageRef);
+
final ListViewPanel.Builder<ProvisionTO> builder = new ListViewPanel.Builder<ProvisionTO>(
ProvisionTO.class, pageRef) {
@@ -112,7 +120,11 @@ public class ResourceProvisionPanel extends WizardStep {
}
}, ActionLink.ActionType.DELETE, StandardEntitlement.RESOURCE_DELETE);
- builder.addNewItemPanelBuilder(new ProvisionWizardBuilder(resourceTO, pageRef));
- add(builder.build("provision"));
+ builder.addNewItemPanelBuilder(wizard);
+
+ final WizardMgtPanel<ProvisionTO> list = builder.build("provision");
+ wizard.setEventSink(list);
+
+ add(list);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceWizardBuilder.java
index 03c1fec..195dbf8 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceWizardBuilder.java
@@ -65,7 +65,6 @@ public class ResourceWizardBuilder extends AbstractResourceWizardBuilder<Resourc
protected WizardModel buildModelSteps(final Serializable modelObject, final WizardModel wizardModel) {
final ResourceTO resourceTO = ResourceTO.class.cast(modelObject);
wizardModel.add(new ResourceDetailsPanel(resourceTO, createFlag));
- wizardModel.add(new ResourceProvisionPanel(resourceTO, pageRef));
wizardModel.add(new ResourceConnConfPanel(resourceTO, createFlag) {
private static final long serialVersionUID = -1128269449868933504L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html
index 26b96c7..602aec8 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html
@@ -36,6 +36,7 @@ under the License.
<ul class="menu">
<li><i class="fa fa-minus"></i><a href="#" wicket:id="delete"><wicket:message key="resource.menu.remove"/></a></li>
<li><i class="fa fa-pencil"></i><a href="#" wicket:id="edit"><wicket:message key="resource.menu.edit"/></a></li>
+ <li><i class="fa fa-pencil"></i><a href="#" wicket:id="provision"><wicket:message key="resource.menu.provision"/></a></li>
<li><i class="fa fa-search"></i><a href="#" wicket:id="explore"><wicket:message key="resource.menu.explore"/></a></li>
<li><i class="fa fa-arrow-right"></i><a href="#" wicket:id="propagation"><wicket:message key="task.propagation.list"/></a></li>
<li><i class="fa fa-chevron-circle-left"></i><a href="#" wicket:id="pull"><wicket:message key="task.pull.list"/></a></li>
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.properties
index d36837e..cf6482d 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.properties
@@ -25,6 +25,7 @@ resource.edit=Edit resource {0}
resource.menu.add=Add new resource
resource.menu.remove=Remove resource
resource.menu.edit=Edit resource
+resource.menu.provision=Edit provision rules
resource.menu.explore=Explore resource
task.custom.list=Custom tasks
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_it.properties
index f89a848..d83598b 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_it.properties
@@ -25,10 +25,11 @@ resource.edit=Modifica risorsa {0}
resource.menu.add=Aggiungi nuova risorsa
resource.menu.remove=Rimuovi risorsa
resource.menu.edit=Modifica risorsa
+resource.menu.provision=Modifica regole di provisioning
+resource.menu.explore=Esplora risorsa
task.custom.list=Task personalizzati
task.propagation.list=Task di propagazione
task.pull.list=Pull task
task.push.list=Push task
-resource.menu.explore=Esplora risorsa
resource.explore.list=Esplora ${key}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_pt_BR.properties
index f44b440..7608438 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_pt_BR.properties
@@ -25,10 +25,11 @@ resource.edit=Alterar recurso {0}
resource.menu.add=Adicionar novo recurso
resource.menu.remove=Retire recurso
resource.menu.edit=Alterar recurso
+resource.menu.provision=Alterar regras de provision
+resource.menu.explore=Explorar recurso
task.custom.list=Custom tasks
task.propagation.list=Propagation tasks
task.pull.list=Pull tasks
task.push.list=Push tasks
-resource.menu.explore=Explorar recurso
resource.explore.list=Explorar ${key}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_ru.properties
index 97db59c..161d803 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel_ru.properties
@@ -15,39 +15,40 @@
# specific language governing permissions and limitations
# under the License.
#
-# connector.new=Добавить коннектор
+# connector.new=\u00d0\u0094\u00d0\u00be\u00d0\u00b1\u00d0\u00b0\u00d0\u00b2\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d0\u00ba\u00d0\u00be\u00d0\u00bd\u00d0\u00bd\u00d0\u00b5\u00d0\u00ba\u00d1\u0082\u00d0\u00be\u00d1\u0080
connector.new=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440
-# connector.edit=Изменить коннектор {0}
+# connector.edit=\u00d0\u0098\u00d0\u00b7\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d0\u00ba\u00d0\u00be\u00d0\u00bd\u00d0\u00bd\u00d0\u00b5\u00d0\u00ba\u00d1\u0082\u00d0\u00be\u00d1\u0080 {0}
connector.edit=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 {0}
-# connector.menu.add=Добавить коннектор
+# connector.menu.add=\u00d0\u0094\u00d0\u00be\u00d0\u00b1\u00d0\u00b0\u00d0\u00b2\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d0\u00ba\u00d0\u00be\u00d0\u00bd\u00d0\u00bd\u00d0\u00b5\u00d0\u00ba\u00d1\u0082\u00d0\u00be\u00d1\u0080
connector.menu.add=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440
-# connector.menu.remove=Удалить коннектор
+# connector.menu.remove=\u00d0\u00a3\u00d0\u00b4\u00d0\u00b0\u00d0\u00bb\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d0\u00ba\u00d0\u00be\u00d0\u00bd\u00d0\u00bd\u00d0\u00b5\u00d0\u00ba\u00d1\u0082\u00d0\u00be\u00d1\u0080
connector.menu.remove=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440
-# connector.menu.edit=Изменить коннектор
+# connector.menu.edit=\u00d0\u0098\u00d0\u00b7\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d0\u00ba\u00d0\u00be\u00d0\u00bd\u00d0\u00bd\u00d0\u00b5\u00d0\u00ba\u00d1\u0082\u00d0\u00be\u00d1\u0080
connector.menu.edit=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440
-# resource.new=Создать ресурс
+# resource.new=\u00d0\u00a1\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d1\u0080\u00d0\u00b5\u00d1\u0081\u00d1\u0083\u00d1\u0080\u00d1\u0081
resource.new=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441
-# resource.edit=Изменить ресурс {0}
+# resource.edit=\u00d0\u0098\u00d0\u00b7\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0080\u00d0\u00b5\u00d1\u0081\u00d1\u0083\u00d1\u0080\u00d1\u0081 {0}
resource.edit=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441 {0}
-# resource.menu.add=Создать ресурс
+# resource.menu.add=\u00d0\u00a1\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d1\u0080\u00d0\u00b5\u00d1\u0081\u00d1\u0083\u00d1\u0080\u00d1\u0081
resource.menu.add=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441
-# resource.menu.remove=Удалить ресурс
+# resource.menu.remove=\u00d0\u00a3\u00d0\u00b4\u00d0\u00b0\u00d0\u00bb\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0080\u00d0\u00b5\u00d1\u0081\u00d1\u0083\u00d1\u0080\u00d1\u0081
resource.menu.remove=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441
-# resource.menu.edit=Изменить ресурс
+# resource.menu.edit=\u00d0\u0098\u00d0\u00b7\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0080\u00d0\u00b5\u00d1\u0081\u00d1\u0083\u00d1\u0080\u00d1\u0081
resource.menu.edit=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441
-# resource.menu.explore=Просмотр ресурса
+resource.menu.provision=Edit provision rules
+# resource.menu.explore=\u00d0\u009f\u00d1\u0080\u00d0\u00be\u00d1\u0081\u00d0\u00bc\u00d0\u00be\u00d1\u0082\u00d1\u0080 \u00d1\u0080\u00d0\u00b5\u00d1\u0081\u00d1\u0083\u00d1\u0080\u00d1\u0081\u00d0\u00b0
resource.menu.explore=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0440\u0435\u0441\u0443\u0440\u0441\u0430
-# task.generic.list=Общие задачи
+# task.generic.list=\u00d0\u009e\u00d0\u00b1\u00d1\u0089\u00d0\u00b8\u00d0\u00b5 \u00d0\u00b7\u00d0\u00b0\u00d0\u00b4\u00d0\u00b0\u00d1\u0087\u00d0\u00b8
# task.generic.list=\u041e\u0431\u0449\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438
-# task.custom.list=Пользовательские задачи
+# task.custom.list=\u00d0\u009f\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008c\u00d1\u0081\u00d0\u00ba\u00d0\u00b8\u00d0\u00b5 \u00d0\u00b7\u00d0\u00b0\u00d0\u00b4\u00d0\u00b0\u00d1\u0087\u00d0\u00b8
task.custom.list=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438
-# task.propagation.list=Задачи выполнения действий
+# task.propagation.list=\u00d0\u0097\u00d0\u00b0\u00d0\u00b4\u00d0\u00b0\u00d1\u0087\u00d0\u00b8 \u00d0\u00b2\u00d1\u008b\u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d0\u00bd\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u008f \u00d0\u00b4\u00d0\u00b5\u00d0\u00b9\u00d1\u0081\u00d1\u0082\u00d0\u00b2\u00d0\u00b8\u00d0\u00b9
task.propagation.list=\u0417\u0430\u0434\u0430\u0447\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439
-# task.pull.list=Задачи получения данных
+# task.pull.list=\u00d0\u0097\u00d0\u00b0\u00d0\u00b4\u00d0\u00b0\u00d1\u0087\u00d0\u00b8 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u0083\u00d1\u0087\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u008f \u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00bd\u00d1\u008b\u00d1\u0085
task.pull.list=\u0417\u0430\u0434\u0430\u0447\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445
-# task.push.list=Задачи передачи данных
+# task.push.list=\u00d0\u0097\u00d0\u00b0\u00d0\u00b4\u00d0\u00b0\u00d1\u0087\u00d0\u00b8 \u00d0\u00bf\u00d0\u00b5\u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d1\u0087\u00d0\u00b8 \u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00bd\u00d1\u008b\u00d1\u0085
task.push.list=\u0417\u0430\u0434\u0430\u0447\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445
-# resource.explore.list=Просмотр ${key}
+# resource.explore.list=\u00d0\u009f\u00d1\u0080\u00d0\u00be\u00d1\u0081\u00d0\u00bc\u00d0\u00be\u00d1\u0082\u00d1\u0080 ${key}
resource.explore.list=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 ${key}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0139df76/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java
index 89a2e3e..ba28f31 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java
@@ -77,19 +77,17 @@ public class TopologyITCase extends AbstractConsoleITCase {
Component component = findComponentByProp("key", "body:resources", "ws-target-resource-1");
assertNotNull(component);
wicketTester.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
- wicketTester.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:edit");
+ wicketTester.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:provision");
- FormTester formTester = wicketTester.newFormTester("body:toggle:outerObjectsRepeater:0:outer:form");
- formTester.submit("content:form:buttons:next");
-
- wicketTester.clickLink("body:toggle:outerObjectsRepeater:0:outer:form:content:form:view:provision:container:"
+
+ wicketTester.clickLink("body:toggle:outerObjectsRepeater:1:outer:form:content:provision:container:"
+ "content:group:beans:0:actions:panelMapping:mappingLink");
- formTester = wicketTester.newFormTester("body:toggle:outerObjectsRepeater:0:outer:form:content:form:view:"
+ FormTester formTester = wicketTester.newFormTester("body:toggle:outerObjectsRepeater:1:outer:form:content:"
+ "provision:container:content:wizard:form");
formTester.submit("buttons:next");
- wicketTester.assertComponent("body:toggle:outerObjectsRepeater:0:outer:form:content:form:view:provision:"
+ wicketTester.assertComponent("body:toggle:outerObjectsRepeater:1:outer:form:content:provision:"
+ "container:content:wizard:form:view:mapping:mappingContainer:mappings:1", WebMarkupContainer.class);
}