You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/04/06 16:28:25 UTC
syncope git commit: [SYNCOPE-824] Fix provided,
more refinements for task create / edit
Repository: syncope
Updated Branches:
refs/heads/master 0e89478de -> 97af20e14
[SYNCOPE-824] Fix provided, more refinements for task create / edit
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/97af20e1
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/97af20e1
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/97af20e1
Branch: refs/heads/master
Commit: 97af20e1422e50d4d04008e1f7eb34e49d471f59
Parents: 0e89478
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed Apr 6 16:28:12 2016 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed Apr 6 16:28:12 2016 +0200
----------------------------------------------------------------------
.../console/pages/MustChangePassword.java | 7 +-
.../syncope/client/console/pages/Workflow.java | 8 +-
.../console/panels/ResourceDetailsPanel.java | 29 +++-
.../client/console/panels/ResourceModal.java | 3 +-
.../client/console/rest/PolicyRestClient.java | 14 --
.../client/console/rest/ResourceRestClient.java | 6 -
.../client/console/rest/SchemaRestClient.java | 12 --
.../client/console/rest/TaskRestClient.java | 13 --
.../client/console/rest/UserSelfRestClient.java | 98 ------------
.../client/console/rest/WorkflowRestClient.java | 4 -
.../console/tasks/SchedTaskWizardBuilder.java | 159 ++++++++++++-------
.../console/topology/TopologyTogglePanel.java | 2 +-
.../console/panels/ResourceDetailsPanel.html | 4 +-
.../console/panels/ResourceModal.properties | 2 +-
.../console/panels/ResourceModal_it.properties | 2 +-
.../panels/ResourceModal_pt_BR.properties | 2 +-
.../tasks/SchedTaskDirectoryPanel.properties | 7 +-
.../tasks/SchedTaskDirectoryPanel_it.properties | 5 +-
.../SchedTaskDirectoryPanel_pt_BR.properties | 7 +-
.../tasks/SchedTaskWizardBuilder$Profile.html | 12 +-
.../console/topology/TopologyTogglePanel.html | 2 +-
.../topology/TopologyTogglePanel.properties | 2 +-
.../topology/TopologyTogglePanel_it.properties | 2 +-
.../TopologyTogglePanel_pt_BR.properties | 2 +-
.../markup/html/form/AjaxPalettePanel.html | 2 +-
25 files changed, 166 insertions(+), 240 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java
index 455326a..f9f5c70 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java
@@ -22,8 +22,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.panels.NotificationPanel;
-import org.apache.syncope.client.console.rest.UserSelfRestClient;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPasswordFieldPanel;
+import org.apache.syncope.common.rest.api.service.UserSelfService;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.WebPage;
@@ -43,8 +43,6 @@ public class MustChangePassword extends WebPage {
private static final Logger LOG = LoggerFactory.getLogger(MustChangePassword.class);
- private final UserSelfRestClient userSelfRestClient = new UserSelfRestClient();
-
private final StatelessForm<Void> form;
private final TextField<String> usernameField;
@@ -90,7 +88,8 @@ public class MustChangePassword extends WebPage {
@Override
protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
try {
- userSelfRestClient.changePassword(passwordField.getModelObject());
+ SyncopeConsoleSession.get().getService(UserSelfService.class).
+ changePassword(passwordField.getModelObject());
SyncopeConsoleSession.get().invalidate();
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java
index 8c2239c..3746c0d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.pages;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.panels.WorkflowTogglePanel;
import org.apache.syncope.client.console.rest.WorkflowRestClient;
import org.apache.syncope.common.lib.types.StandardEntitlement;
@@ -57,7 +58,7 @@ public class Workflow extends BasePage {
@Override
protected byte[] getImageData(final IResource.Attributes attributes) {
- return wfRestClient.isActivitiEnabledForUsers()
+ return isActivitiEnabledForUsers()
? wfRestClient.getDiagram()
: new byte[0];
}
@@ -72,7 +73,7 @@ public class Workflow extends BasePage {
togglePanel.setOutputMarkupId(true);
workflowDef.add(togglePanel);
- if (wfRestClient.isActivitiEnabledForUsers()) {
+ if (isActivitiEnabledForUsers()) {
noActivitiEnabledForUsers.setVisible(false);
} else {
workflowDef.setVisible(false);
@@ -82,4 +83,7 @@ public class Workflow extends BasePage {
body.add(workflowDef);
}
+ private boolean isActivitiEnabledForUsers() {
+ return SyncopeConsoleSession.get().getPlatformInfo().getUserWorkflowAdapter().contains("Activiti");
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceDetailsPanel.java
index 1c4a266..117888d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceDetailsPanel.java
@@ -18,31 +18,44 @@
*/
package org.apache.syncope.client.console.panels;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
import org.apache.syncope.client.console.wizards.any.AnnotatedBeanPanel;
import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.TraceLevel;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.model.util.ListModel;
public class ResourceDetailsPanel extends Panel {
private static final long serialVersionUID = -7982691107029848579L;
+ private final IModel<List<String>> propagationActionsClasses = new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<String> load() {
+ return new ArrayList<>(SyncopeConsoleSession.get().getPlatformInfo().getPropagationActions());
+ }
+ };
+
public ResourceDetailsPanel(
final String id,
final IModel<ResourceTO> model,
- final List<String> actionClassNames,
final boolean createFlag) {
super(id);
@@ -77,12 +90,12 @@ public class ResourceDetailsPanel extends Panel {
new PropertyModel<Boolean>(model, "randomPwdIfNotProvided"),
false));
- container.add(new MultiFieldPanel.Builder<>(
- new PropertyModel<List<String>>(model, "propagationActionsClassNames")).build(
- "actionsClasses",
- "actionsClasses",
- new AjaxDropDownChoicePanel<>("panel", "panel", new Model<String>())
- .setChoices(actionClassNames).setNullValid(true).setRequired(true)));
+ container.add(new AjaxPalettePanel.Builder<String>().
+ setAllowMoveAll(true).setAllowOrder(true).
+ build("propagationActionsClassNames",
+ new PropertyModel<List<String>>(model, "propagationActionsClassNames"),
+ new ListModel<>(propagationActionsClasses.getObject())).
+ setOutputMarkupId(true));
container.add(new AjaxDropDownChoicePanel<>(
"createTraceLevel",
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
index ba29fb9..12a19d0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
@@ -84,8 +84,7 @@ public class ResourceModal<T extends Serializable> extends AbstractResourceModal
@Override
public Panel getPanel(final String panelId) {
- return new ResourceDetailsPanel(panelId, model,
- resourceRestClient.getPropagationActionsClasses(), createFlag);
+ return new ResourceDetailsPanel(panelId, model, createFlag);
}
});
//--------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/rest/PolicyRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/PolicyRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/PolicyRestClient.java
index 0d80b45..6d21769 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/PolicyRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/PolicyRestClient.java
@@ -20,8 +20,6 @@ package org.apache.syncope.client.console.rest;
import java.util.ArrayList;
import java.util.List;
-import java.util.Set;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.common.lib.policy.AbstractPolicyTO;
import org.apache.syncope.common.lib.types.PolicyType;
import org.apache.syncope.common.rest.api.service.PolicyService;
@@ -67,16 +65,4 @@ public class PolicyRestClient extends BaseRestClient {
public void delete(final Long id, final Class<? extends AbstractPolicyTO> policyClass) {
getService(PolicyService.class).delete(id);
}
-
- public Set<String> getCorrelationRuleClasses() {
- Set<String> rules = null;
-
- try {
- rules = SyncopeConsoleSession.get().getPlatformInfo().getPullCorrelationRules();
- } catch (Exception e) {
- LOG.error("While getting all correlation rule classes", e);
- }
-
- return rules;
- }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
index b4b880f..b0a70d7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
@@ -18,10 +18,8 @@
*/
package org.apache.syncope.client.console.rest;
-import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.Response;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.patch.ResourceDeassociationPatch;
import org.apache.syncope.common.lib.to.BulkAction;
@@ -37,10 +35,6 @@ public class ResourceRestClient extends BaseRestClient {
private static final long serialVersionUID = -6898907679835668987L;
- public List<String> getPropagationActionsClasses() {
- return new ArrayList<>(SyncopeConsoleSession.get().getPlatformInfo().getPropagationActions());
- }
-
public List<ResourceTO> getAll() {
List<ResourceTO> resources = null;
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
index 7ca9cc7..725a088 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
@@ -23,7 +23,6 @@ import java.util.Collection;
import java.util.List;
import java.util.ListIterator;
import org.apache.commons.collections4.CollectionUtils;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.AbstractSchemaTO;
@@ -161,15 +160,4 @@ public class SchemaRestClient extends BaseRestClient {
getService(SchemaService.class).delete(SchemaType.VIRTUAL, name);
return schemaTO;
}
-
- public List<String> getAllValidatorClasses() {
- List<String> response = null;
-
- try {
- response = new ArrayList<>(SyncopeConsoleSession.get().getPlatformInfo().getValidators());
- } catch (SyncopeClientException e) {
- LOG.error("While getting all validators", e);
- }
- return response;
- }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java
index 54bc352..95c5456 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java
@@ -20,7 +20,6 @@ package org.apache.syncope.client.console.rest;
import java.util.Date;
import java.util.List;
-import java.util.Set;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.common.lib.to.AbstractTaskTO;
import org.apache.syncope.common.lib.to.BulkAction;
@@ -45,18 +44,6 @@ public class TaskRestClient extends BaseRestClient implements ExecutionRestClien
private static final long serialVersionUID = 6284485820911028843L;
- public Set<String> getJobClasses() {
- return SyncopeConsoleSession.get().getPlatformInfo().getTaskJobs();
- }
-
- public Set<String> getPullActionsClasses() {
- return SyncopeConsoleSession.get().getPlatformInfo().getPullActions();
- }
-
- public Set<String> getPushActionsClasses() {
- return SyncopeConsoleSession.get().getPlatformInfo().getPushActions();
- }
-
/**
* Return the number of tasks.
*
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/rest/UserSelfRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserSelfRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserSelfRestClient.java
deleted file mode 100644
index 24cfafe..0000000
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserSelfRestClient.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.rest;
-
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.patch.UserPatch;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.common.rest.api.service.UserSelfService;
-
-public class UserSelfRestClient extends BaseRestClient {
-
- private static final long serialVersionUID = 2994691796924731295L;
-
- public boolean isSelfRegistrationAllowed() {
- Boolean result = null;
- try {
- result = SyncopeConsoleSession.get().getPlatformInfo().isSelfRegAllowed();
- } catch (SyncopeClientException e) {
- LOG.error("While seeking if self registration is allowed", e);
- }
-
- return result == null
- ? false
- : result;
- }
-
- public UserTO read() {
- return SyncopeConsoleSession.get().getSelfTO();
- }
-
- public void create(final UserTO userTO, final boolean storePassword) {
- getService(UserSelfService.class).create(userTO, storePassword);
- }
-
- public void update(final UserPatch userPatch) {
- getService(UserSelfService.class).update(userPatch);
- }
-
- public void delete() {
- getService(UserSelfService.class).delete();
- }
-
- public boolean isPasswordResetAllowed() {
- Boolean result = null;
- try {
- result = SyncopeConsoleSession.get().getPlatformInfo().isPwdResetAllowed();
- } catch (SyncopeClientException e) {
- LOG.error("While seeking if password reset is allowed", e);
- }
-
- return result == null
- ? false
- : result;
- }
-
- public boolean isPwdResetRequiringSecurityQuestions() {
- Boolean result = null;
- try {
- result = SyncopeConsoleSession.get().getPlatformInfo().isPwdResetRequiringSecurityQuestions();
- } catch (SyncopeClientException e) {
- LOG.error("While seeking if password reset requires security question", e);
- }
-
- return result == null
- ? false
- : result;
- }
-
- public void changePassword(final String password) {
- getService(UserSelfService.class).changePassword(password);
- }
-
- public void requestPasswordReset(final String username, final String securityAnswer) {
- getService(UserSelfService.class).requestPasswordReset(username, securityAnswer);
- }
-
- public void confirmPasswordReset(final String token, final String password) {
- getService(UserSelfService.class).confirmPasswordReset(token, password);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java
index d7f9df5..8d9c424 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java
@@ -57,10 +57,6 @@ public class WorkflowRestClient extends BaseRestClient {
return diagram;
}
- public boolean isActivitiEnabledForUsers() {
- return SyncopeConsoleSession.get().getPlatformInfo().getUserWorkflowAdapter().contains("Activiti");
- }
-
public void updateDefinition(final MediaType mediaType, final String definition) {
getService(mediaType).importDefinition(AnyTypeKind.USER, definition);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
index e6cee5f..e8d902c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
@@ -25,18 +25,20 @@ import java.util.Collections;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.commons.DateFormatROModel;
import org.apache.syncope.client.console.rest.RealmRestClient;
import org.apache.syncope.client.console.rest.TaskRestClient;
import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.client.console.wizards.AjaxWizardBuilder;
import org.apache.syncope.common.lib.to.AbstractProvisioningTaskTO;
import org.apache.syncope.common.lib.to.SchedTaskTO;
import org.apache.syncope.common.lib.to.PullTaskTO;
+import org.apache.syncope.common.lib.to.PushTaskTO;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.lib.types.MatchingRule;
import org.apache.syncope.common.lib.types.PullMode;
@@ -49,6 +51,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.model.util.ListModel;
public class SchedTaskWizardBuilder<T extends SchedTaskTO> extends AjaxWizardBuilder<T> {
@@ -102,54 +105,102 @@ public class SchedTaskWizardBuilder<T extends SchedTaskTO> extends AjaxWizardBui
private static final long serialVersionUID = -3043839139187792810L;
- private final IModel<List<String>> classNames = new LoadableDetachableModel<List<String>>() {
+ private final IModel<List<String>> taskJobClasses = new LoadableDetachableModel<List<String>>() {
private static final long serialVersionUID = 5275935387613157437L;
@Override
protected List<String> load() {
- return new ArrayList<>(new TaskRestClient().getJobClasses());
+ return new ArrayList<>(SyncopeConsoleSession.get().getPlatformInfo().getTaskJobs());
+ }
+ };
+
+ private final IModel<List<String>> reconciliationFilterBuilderClasses =
+ new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<String> load() {
+ return new ArrayList<>(SyncopeConsoleSession.get().getPlatformInfo().getReconciliationFilterBuilders());
+ }
+ };
+
+ private final IModel<List<String>> pullActionsClasses = new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<String> load() {
+ return new ArrayList<>(SyncopeConsoleSession.get().getPlatformInfo().getPullActions());
+ }
+ };
+
+ private final IModel<List<String>> pushActionsClasses = new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<String> load() {
+ return new ArrayList<>(SyncopeConsoleSession.get().getPlatformInfo().getPushActions());
}
};
public Profile(final SchedTaskTO taskTO) {
- final AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", "name", new PropertyModel<String>(taskTO,
- "name"), false);
+ AjaxTextFieldPanel name =
+ new AjaxTextFieldPanel("name", "name", new PropertyModel<String>(taskTO, "name"), false);
+ name.addRequiredLabel();
name.setEnabled(true);
add(name);
- final AjaxTextFieldPanel description = new AjaxTextFieldPanel("description", "description",
- new PropertyModel<String>(taskTO, "description"), false);
+ AjaxTextFieldPanel description = new AjaxTextFieldPanel(
+ "description", "description", new PropertyModel<String>(taskTO, "description"), false);
description.setEnabled(true);
add(description);
- final AjaxCheckBoxPanel active = new AjaxCheckBoxPanel("active", "active",
- new PropertyModel<Boolean>(taskTO, "active"), false);
+ AjaxCheckBoxPanel active =
+ new AjaxCheckBoxPanel("active", "active", new PropertyModel<Boolean>(taskTO, "active"), false);
add(active);
- final WebMarkupContainer pullTaskSpecifics = new WebMarkupContainer("pullTaskSpecifics");
+ AjaxDropDownChoicePanel<String> jobDelegateClassName = new AjaxDropDownChoicePanel<>(
+ "jobDelegateClassName", "jobDelegateClassName",
+ new PropertyModel<String>(taskTO, "jobDelegateClassName"), false);
+ jobDelegateClassName.setChoices(taskJobClasses.getObject());
+ jobDelegateClassName.addRequiredLabel();
+ jobDelegateClassName.setEnabled(taskTO.getKey() == null || taskTO.getKey() == 0L);
+ jobDelegateClassName.setStyleSheet("ui-widget-content ui-corner-all long_dynamicsize");
+ add(jobDelegateClassName);
+
+ // ------------------------------
+ // Only for pull tasks
+ // ------------------------------
+ WebMarkupContainer pullTaskSpecifics = new WebMarkupContainer("pullTaskSpecifics");
add(pullTaskSpecifics.setRenderBodyOnly(true));
boolean isFiltered = false;
-
if (taskTO instanceof PullTaskTO) {
isFiltered = PullTaskTO.class.cast(taskTO).getPullMode() == PullMode.FILTERED_RECONCILIATION;
} else {
pullTaskSpecifics.setEnabled(false).setVisible(false);
}
- final AjaxDropDownChoicePanel<PullMode> pullMode = new AjaxDropDownChoicePanel<>("pullMode", "pullMode",
- new PropertyModel<PullMode>(taskTO, "pullMode"), false);
+ final AjaxDropDownChoicePanel<PullMode> pullMode = new AjaxDropDownChoicePanel<>(
+ "pullMode", "pullMode", new PropertyModel<PullMode>(taskTO, "pullMode"), false);
pullMode.setChoices(Arrays.asList(PullMode.values()));
- pullMode.setRequired(taskTO instanceof PullTaskTO);
+ if (taskTO instanceof PullTaskTO) {
+ pullMode.addRequiredLabel();
+ }
pullMode.setNullValid(!(taskTO instanceof PullTaskTO));
pullTaskSpecifics.add(pullMode);
- final AjaxTextFieldPanel filter = new AjaxTextFieldPanel(
+ final AjaxDropDownChoicePanel<String> reconciliationFilterBuilderClassName = new AjaxDropDownChoicePanel<>(
"reconciliationFilterBuilderClassName", "reconciliationFilterBuilderClassName",
new PropertyModel<String>(taskTO, "reconciliationFilterBuilderClassName"), false);
- pullTaskSpecifics.add(filter);
- filter.setEnabled(isFiltered);
+ reconciliationFilterBuilderClassName.setChoices(reconciliationFilterBuilderClasses.getObject());
+ reconciliationFilterBuilderClassName.setStyleSheet("ui-widget-content ui-corner-all long_dynamicsize");
+ reconciliationFilterBuilderClassName.setEnabled(isFiltered);
+ reconciliationFilterBuilderClassName.setRequired(isFiltered);
+ pullTaskSpecifics.add(reconciliationFilterBuilderClassName);
pullMode.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
@@ -157,75 +208,71 @@ public class SchedTaskWizardBuilder<T extends SchedTaskTO> extends AjaxWizardBui
@Override
protected void onUpdate(final AjaxRequestTarget target) {
- filter.setEnabled(pullMode.getModelObject() == PullMode.FILTERED_RECONCILIATION);
- target.add(filter);
+ reconciliationFilterBuilderClassName.setEnabled(
+ pullMode.getModelObject() == PullMode.FILTERED_RECONCILIATION);
+ reconciliationFilterBuilderClassName.setRequired(
+ pullMode.getModelObject() == PullMode.FILTERED_RECONCILIATION);
+ target.add(reconciliationFilterBuilderClassName);
}
});
- final AjaxDropDownChoicePanel<String> destinationRealm = new AjaxDropDownChoicePanel<>(
+ AjaxDropDownChoicePanel<String> destinationRealm = new AjaxDropDownChoicePanel<>(
"destinationRealm", "destinationRealm",
new PropertyModel<String>(taskTO, "destinationRealm"), false).
setChoices(realms);
- destinationRealm.setRequired(taskTO instanceof PullTaskTO);
+ if (taskTO instanceof PullTaskTO) {
+ destinationRealm.addRequiredLabel();
+ }
destinationRealm.setNullValid(!(taskTO instanceof PullTaskTO));
pullTaskSpecifics.add(destinationRealm);
- final AjaxDropDownChoicePanel<String> className = new AjaxDropDownChoicePanel<>(
- "jobDelegateClassName",
- getString("jobDelegateClassName"),
- new PropertyModel<String>(taskTO, "jobDelegateClassName"), false);
+ // ------------------------------
+ // For push and pull tasks
+ // ------------------------------
+ WebMarkupContainer provisioningTaskSpecifics = new WebMarkupContainer("provisioningTaskSpecifics");
+ add(provisioningTaskSpecifics.setRenderBodyOnly(true));
- className.setChoices(classNames.getObject());
- className.addRequiredLabel();
- className.setEnabled(taskTO.getKey() == null || taskTO.getKey() == 0L);
- className.setStyleSheet("ui-widget-content ui-corner-all long_dynamicsize");
- add(className);
+ if (taskTO instanceof AbstractProvisioningTaskTO) {
+ jobDelegateClassName.setEnabled(false).setVisible(false);
+ } else {
+ provisioningTaskSpecifics.setEnabled(false).setVisible(false);
+ }
- final WebMarkupContainer provisioningTaskSpecifics = new WebMarkupContainer("provisioningTaskSpecifics");
- add(provisioningTaskSpecifics.setRenderBodyOnly(true));
+ AjaxPalettePanel<String> actionsClassNames = new AjaxPalettePanel.Builder<String>().
+ setAllowMoveAll(true).setAllowOrder(true).
+ build("actionsClassNames",
+ new PropertyModel<List<String>>(taskTO, "actionsClassNames"),
+ new ListModel<>(taskTO instanceof PushTaskTO
+ ? pushActionsClasses.getObject() : pullActionsClasses.getObject()));
+ actionsClassNames.setOutputMarkupId(true);
+ provisioningTaskSpecifics.add(actionsClassNames);
- final AjaxDropDownChoicePanel<MatchingRule> matchingRule = new AjaxDropDownChoicePanel<>(
+ AjaxDropDownChoicePanel<MatchingRule> matchingRule = new AjaxDropDownChoicePanel<>(
"matchingRule", "matchingRule", new PropertyModel<MatchingRule>(taskTO, "matchingRule"), false);
- provisioningTaskSpecifics.add(matchingRule);
matchingRule.setChoices(Arrays.asList(MatchingRule.values()));
+ provisioningTaskSpecifics.add(matchingRule);
- final AjaxDropDownChoicePanel<UnmatchingRule> unmatchingRule = new AjaxDropDownChoicePanel<>(
+ AjaxDropDownChoicePanel<UnmatchingRule> unmatchingRule = new AjaxDropDownChoicePanel<>(
"unmatchingRule", "unmatchingRule", new PropertyModel<UnmatchingRule>(taskTO, "unmatchingRule"),
false);
- provisioningTaskSpecifics.add(unmatchingRule);
unmatchingRule.setChoices(Arrays.asList(UnmatchingRule.values()));
+ provisioningTaskSpecifics.add(unmatchingRule);
- final AjaxCheckBoxPanel performCreate = new AjaxCheckBoxPanel(
+ AjaxCheckBoxPanel performCreate = new AjaxCheckBoxPanel(
"performCreate", "performCreate", new PropertyModel<Boolean>(taskTO, "performCreate"), false);
provisioningTaskSpecifics.add(performCreate);
- final AjaxCheckBoxPanel performUpdate = new AjaxCheckBoxPanel(
+ AjaxCheckBoxPanel performUpdate = new AjaxCheckBoxPanel(
"performUpdate", "performUpdate", new PropertyModel<Boolean>(taskTO, "performUpdate"), false);
provisioningTaskSpecifics.add(performUpdate);
- final AjaxCheckBoxPanel performDelete = new AjaxCheckBoxPanel(
+ AjaxCheckBoxPanel performDelete = new AjaxCheckBoxPanel(
"performDelete", "performDelete", new PropertyModel<Boolean>(taskTO, "performDelete"), false);
provisioningTaskSpecifics.add(performDelete);
- final AjaxCheckBoxPanel pullStatus = new AjaxCheckBoxPanel(
+ AjaxCheckBoxPanel pullStatus = new AjaxCheckBoxPanel(
"pullStatus", "pullStatus", new PropertyModel<Boolean>(taskTO, "pullStatus"), false);
provisioningTaskSpecifics.add(pullStatus);
-
- if (taskTO instanceof AbstractProvisioningTaskTO) {
- className.setEnabled(false).setVisible(false);
- } else {
- provisioningTaskSpecifics.setEnabled(false).setVisible(false);
- }
-
- final AjaxTextFieldPanel lastExec = new AjaxTextFieldPanel("lastExec", "lastExec",
- new DateFormatROModel(new PropertyModel<String>(taskTO, "lastExec")));
- lastExec.setEnabled(false);
- add(lastExec);
-
- final AjaxTextFieldPanel nextExec = new AjaxTextFieldPanel("nextExec", "nextExec",
- new DateFormatROModel(new PropertyModel<String>(taskTO, "nextExec")));
- nextExec.setEnabled(false);
- add(nextExec);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/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 fd495c5..30df39b 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
@@ -129,7 +129,7 @@ public class TopologyTogglePanel extends TogglePanel<Serializable> {
@Override
public void onClick(final AjaxRequestTarget target) {
target.add(taskModal.setContent(new SchedTasks(taskModal, pageRef)));
- taskModal.header(new ResourceModel("task.generic.list", "Scheduled tasks"));
+ taskModal.header(new ResourceModel("task.custom.list"));
taskModal.show(true);
}
};
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html
index 3d7486b..67df51d 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceDetailsPanel.html
@@ -40,8 +40,8 @@ under the License.
<span wicket:id="randomPwdIfNotProvided">[randomPwdIfNotProvided]</span>
</div>
- <div class="form-group">
- <span wicket:id="actionsClasses">[actionsClasses]</span>
+ <div class="form-group" style="display: inline-block;width: 120%;">
+ <span wicket:id="propagationActionsClassNames">[propagationActionsClassNames]</span>
</div>
<div class="form-group">
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.properties
index 5b21e1f..9a91557 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal.properties
@@ -55,7 +55,7 @@ propagationPriority=Propagation priority
success_connection=Successful connection
error_connection=Connection failure
check=Check connection
-actionsClasses=Actions classes
+propagationActionsClassNames=Propagation Actions
gmapping=Group mapping
new=New resource
randomPwdIfNotProvided=Generate random passwords when missing
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_it.properties
index 1f7d76a..515975c 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_it.properties
@@ -54,7 +54,7 @@ propagationPriority=Priorit\u00e0 in propagazione
success_connection=Connessione avvenuta con successo
error_connection=Connessione non riuscita
check=Verifica connessione
-actionsClasses=Classi azioni
+propagationActionsClassNames=Azioni di Propagazione
gmapping=Mapping gruppi
new=Nuova risorsa
randomPwdIfNotProvided=Genera password casuali se mancanti
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_pt_BR.properties
index db984d9..a73218f 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ResourceModal_pt_BR.properties
@@ -54,7 +54,7 @@ propagationPriority=Prioridade de propaga\u00e7\u00e3o
success_connection=Conex\u00e3o com sucesso
error_connection=Conex\u00e3o sem sucesso
check=Verificar a conex\u00e3o
-actionsClasses=Classes de a\u00e7\u00f5es
+propagationActionsClassNames=A\u00e7\u00f5es de Propaga\u00e7\u00e3o
gmapping=Mapeamento de grupos
new=Novo recurso
randomPwdIfNotProvided=Gerar senhas aleat\u00f3rias quando n\u00e3o houver
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.properties
index e68cee7..6234fe1 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.properties
@@ -16,8 +16,8 @@
# under the License.
name=Name
description=Description
-destinationRealm=Destination realm
-jobDelegateClassName=Job
+destinationRealm=Destination Realm
+jobDelegateClassName=Job Delegate
lastExec=Last execution
nextExec=Next execution
active=Active
@@ -26,3 +26,6 @@ any.edit=Edit ${name}
any.new=New task
any.finish=Submit ${name}
any.cancel=Cancel ${name}
+pullMode=Pull Mode
+reconciliationFilterBuilderClassName=Reconciliation Filter Builder
+actionsClassNames=Actions
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_it.properties
index f88f658..1a3156f 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_it.properties
@@ -17,7 +17,7 @@
name=Nome
description=Descrizione
destinationRealm=Realm di destinazione
-jobDelegateClassName=Job
+jobDelegateClassName=JobJob Delegate
lastExec=Ultima esecuszione
nextExec=Prossima esecuzione
active=Attivo
@@ -26,3 +26,6 @@ any.edit=Modifica ${name}
any.new=Nuovo Task
any.finish=Invia ${name}
any.cancel=Annulla ${name}
+pullMode=Pull Mode
+reconciliationFilterBuilderClassName=Reconciliation Filter Builder
+actionsClassNames=Actions
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_pt_BR.properties
index e68cee7..6234fe1 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel_pt_BR.properties
@@ -16,8 +16,8 @@
# under the License.
name=Name
description=Description
-destinationRealm=Destination realm
-jobDelegateClassName=Job
+destinationRealm=Destination Realm
+jobDelegateClassName=Job Delegate
lastExec=Last execution
nextExec=Next execution
active=Active
@@ -26,3 +26,6 @@ any.edit=Edit ${name}
any.new=New task
any.finish=Submit ${name}
any.cancel=Cancel ${name}
+pullMode=Pull Mode
+reconciliationFilterBuilderClassName=Reconciliation Filter Builder
+actionsClassNames=Actions
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder$Profile.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder$Profile.html b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder$Profile.html
index a50f801..db617a5 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder$Profile.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder$Profile.html
@@ -23,14 +23,19 @@ under the License.
<div class="form-group"><span wicket:id="name">[id]</span></div>
<div class="form-group"><span wicket:id="description">[anyKey]</span></div>
<div class="form-group"><span wicket:id="active">[active]</span></div>
+
+ <div class="form-group"><span wicket:id="jobDelegateClassName">[jobDelegateClassName]</span></div>
+
<span wicket:id="pullTaskSpecifics">
<div class="form-group"><span wicket:id="destinationRealm">[destinationRealm]</span></div>
<div class="form-group"><span wicket:id="pullMode">[pullMode]</span></div>
<div class="form-group"><span wicket:id="reconciliationFilterBuilderClassName">[filter]</span></div>
- </span>
- <div class="form-group"><span wicket:id="jobDelegateClassName">[jobDelegateClassName]</span></div>
+ </span>
<span wicket:id="provisioningTaskSpecifics">
+ <div class="form-group" style="display: inline-block;width: 120%;">
+ <span wicket:id="actionsClassNames">[actionsClassNames]</span>
+ </div>
<div class="form-group"><span wicket:id="matchingRule">[matchingRule]</span></div>
<div class="form-group"><span wicket:id="unmatchingRule">[unmatchingRule]</span></div>
<div class="form-group"><span wicket:id="performCreate">[performCreate]</span></div>
@@ -38,9 +43,6 @@ under the License.
<div class="form-group"><span wicket:id="performDelete">[performDelete]</span></div>
<div class="form-group"><span wicket:id="pullStatus">[pullStatus]</span></div>
</span>
-
- <div class="form-group"><span wicket:id="lastExec">[lastExec]</span></div>
- <div class="form-group"><span wicket:id="nextExec">[lastExec]</span></div>
</wicket:panel>
</body>
</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/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 20f7260..bba937b 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
@@ -50,7 +50,7 @@ under the License.
<wicket:fragment wicket:id="syncopeActions">
<ul class="menu">
- <li><i class="fa fa-tasks"></i><a href="#" wicket:id="tasks"><wicket:message key="task.generic.list"/></a></li>
+ <li><i class="fa fa-tasks"></i><a href="#" wicket:id="tasks"><wicket:message key="task.custom.list"/></a></li>
</ul>
</wicket:fragment>
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/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 2db9d85..a76ec45 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
@@ -26,7 +26,7 @@ resource.menu.add=Add new resource
resource.menu.remove=Remove resource
resource.menu.edit=Edit resource
-task.generic.list=Generic tasks
+task.custom.list=Custom tasks
task.propagation.list=Propagation tasks
task.pull.list=Pull tasks
task.push.list=Push tasks
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/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 82f95e8..279e80d 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
@@ -26,7 +26,7 @@ resource.menu.add=Aggiungi nuova risorsa
resource.menu.remove=Rimuovi risorsa
resource.menu.edit=Modifica risorsa
-task.generic.list=Task generici
+task.custom.list=Task personalizzati
task.propagation.list=Task di propagazione
task.pull.list=Pull task
task.push.list=Push task
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/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 2c987e5..5a1aa78 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
@@ -26,7 +26,7 @@ resource.menu.add=Adicionar novo recurso
resource.menu.remove=Retire recurso
resource.menu.edit=Alterar recurso
-task.generic.list=Generic tasks
+task.custom.list=Custom tasks
task.propagation.list=Propagation tasks
task.pull.list=Pull tasks
task.push.list=Push tasks
http://git-wip-us.apache.org/repos/asf/syncope/blob/97af20e1/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.html
index aaf1ffd..3776906 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.html
@@ -28,7 +28,7 @@ under the License.
</div>
</form>
<wicket:enclosure child="field-label">
- <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
+ <div><label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/></div>
<span wicket:id="externalAction"/>
</wicket:enclosure>
<span wicket:id="paletteField">[Palette]</span>