You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by md...@apache.org on 2014/10/17 12:27:22 UTC
[1/2] git commit: [SYNCOPE-558]
Repository: syncope
Updated Branches:
refs/heads/master 14b8988ed -> b40948e0c
[SYNCOPE-558]
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/08e7032f
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/08e7032f
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/08e7032f
Branch: refs/heads/master
Commit: 08e7032f35cb041c0eca26524ea7390e551c3f73
Parents: f99657a
Author: Marco Di Sabatino Di Diodoro <md...@apache.org>
Authored: Fri Oct 17 12:23:57 2014 +0200
Committer: Marco Di Sabatino Di Diodoro <md...@apache.org>
Committed: Fri Oct 17 12:23:57 2014 +0200
----------------------------------------------------------------------
.../syncope/console/commons/LayoutType.java | 43 +++++
.../apache/syncope/console/commons/Mode.java | 27 +++
.../syncope/console/pages/Configuration.java | 31 +++-
.../pages/ConfirmPasswordResetModalPage.java | 4 +-
.../console/pages/EditUserModalPage.java | 4 +-
.../console/pages/MembershipModalPage.java | 9 +-
.../pages/RequestPasswordResetModalPage.java | 3 +-
.../console/pages/ResultStatusModalPage.java | 13 +-
.../syncope/console/pages/RoleModalPage.java | 8 +-
.../console/pages/RoleTemplateModalPage.java | 5 +-
.../org/apache/syncope/console/pages/Roles.java | 2 +-
.../syncope/console/pages/UserModalPage.java | 15 +-
.../console/pages/UserSelfModalPage.java | 1 +
.../console/pages/UserTemplateModalPage.java | 3 +-
.../pages/panels/AttrTemplatesPanel.java | 42 ++---
.../console/pages/panels/AttributesPanel.java | 72 ++++++--
.../pages/panels/EventSelectionPanel.java | 22 +--
.../console/pages/panels/LayoutsPanel.java | 175 +++++++++++++++++++
.../console/pages/panels/MembershipsPanel.java | 9 +-
.../pages/panels/ResourceSecurityPanel.java | 6 +-
.../syncope/console/pages/panels/RolePanel.java | 14 +-
.../console/pages/panels/RoleTabPanel.java | 5 +-
.../console/rest/ConfigurationRestClient.java | 8 +-
.../syncope/console/pages/Configuration.html | 36 +++-
.../console/pages/Configuration.properties | 7 +
.../console/pages/Configuration_it.properties | 7 +
.../pages/Configuration_pt_BR.properties | 7 +
.../console/pages/panels/LayoutsPanel.html | 41 +++++
.../pages/panels/LayoutsPanel.properties | 18 ++
.../pages/panels/LayoutsPanel_it.properties | 18 ++
.../pages/panels/LayoutsPanel_pt_BR.properties | 18 ++
31 files changed, 565 insertions(+), 108 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/commons/LayoutType.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/commons/LayoutType.java b/console/src/main/java/org/apache/syncope/console/commons/LayoutType.java
new file mode 100644
index 0000000..057a1c6
--- /dev/null
+++ b/console/src/main/java/org/apache/syncope/console/commons/LayoutType.java
@@ -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.
+ */
+package org.apache.syncope.console.commons;
+
+public enum LayoutType {
+
+ ADMIN_USER("admin.user.layout"),
+ SELF_USER("self.user.layout"),
+ ADMIN_ROLE("admin.role.layout"),
+ SELF_ROLE("self.role.layout"),
+ ADMIN_MEMBERSHIP("admin.membership.layout"),
+ SELF_MEMBERSHIP("self.membership.layout");
+
+ private final String parameter;
+
+ LayoutType(final String parameter) {
+ this.parameter = parameter;
+ }
+
+ public String getParameter() {
+ return parameter;
+ }
+
+ public static LayoutType fromString(final String value) {
+ return LayoutType.valueOf(value.toUpperCase());
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/commons/Mode.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/commons/Mode.java b/console/src/main/java/org/apache/syncope/console/commons/Mode.java
new file mode 100644
index 0000000..8bb6f4f
--- /dev/null
+++ b/console/src/main/java/org/apache/syncope/console/commons/Mode.java
@@ -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.
+ */
+package org.apache.syncope.console.commons;
+
+public enum Mode {
+
+ ADMIN,
+ SELF,
+ TEMPLATE;
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/Configuration.java b/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
index 8ec9fab..00c087b 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
@@ -29,20 +29,23 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.LoggerConfig;
-import org.apache.syncope.common.SyncopeConstants;
-import org.apache.syncope.common.to.LoggerTO;
-import org.apache.syncope.common.to.NotificationTO;
-import org.apache.syncope.common.types.PolicyType;
-import org.apache.syncope.common.types.LoggerLevel;
import org.apache.syncope.common.SyncopeClientException;
+import org.apache.syncope.common.SyncopeConstants;
import org.apache.syncope.common.to.AttributeTO;
import org.apache.syncope.common.to.ConfTO;
+import org.apache.syncope.common.to.LoggerTO;
+import org.apache.syncope.common.to.NotificationTO;
import org.apache.syncope.common.to.SecurityQuestionTO;
+import org.apache.syncope.console.commons.LayoutType;
+import org.apache.syncope.common.types.LoggerLevel;
+import org.apache.syncope.common.types.PolicyType;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.commons.HttpResourceStream;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.commons.PreferenceManager;
import org.apache.syncope.console.commons.SortableDataProviderComparator;
import org.apache.syncope.console.pages.panels.AttributesPanel;
+import org.apache.syncope.console.pages.panels.LayoutsPanel;
import org.apache.syncope.console.pages.panels.PoliciesPanel;
import org.apache.syncope.console.rest.ConfigurationRestClient;
import org.apache.syncope.console.rest.LoggerRestClient;
@@ -241,6 +244,13 @@ public class Configuration extends BasePage {
MetaDataRoleAuthorizationStrategy.authorize(consoleLoggerContainer, ENABLE, xmlRolesReader.getAllAllowedRoles(
"Configuration", "logList"));
add(consoleLoggerContainer);
+
+ add(new LayoutsPanel("adminUserLayoutPanel", LayoutType.ADMIN_USER, feedbackPanel));
+ add(new LayoutsPanel("selfUserLayoutPanel", LayoutType.SELF_USER, feedbackPanel));
+ add(new LayoutsPanel("adminRoleLayoutPanel", LayoutType.ADMIN_ROLE, feedbackPanel));
+ add(new LayoutsPanel("selfRoleLayoutPanel", LayoutType.SELF_ROLE, feedbackPanel));
+ add(new LayoutsPanel("adminMembershipLayoutPanel", LayoutType.ADMIN_MEMBERSHIP, feedbackPanel));
+ add(new LayoutsPanel("selfMembershipLayoutPanel", LayoutType.SELF_MEMBERSHIP, feedbackPanel));
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -252,11 +262,20 @@ public class Configuration extends BasePage {
final ConfTO conf = confRestClient.list();
+ for (Iterator<AttributeTO> it = conf.getAttrs().iterator(); it.hasNext();) {
+ AttributeTO attr = it.next();
+ for (LayoutType type : LayoutType.values()) {
+ if (type.getParameter().equals(attr.getSchema())) {
+ it.remove();
+ }
+ }
+ }
+
final Form<?> form = new Form<Void>("confForm");
form.setModel(new CompoundPropertyModel(conf));
parameters.add(form);
- form.add(new AttributesPanel("parameters", conf, form, false));
+ form.add(new AttributesPanel("parameters", conf, form, Mode.ADMIN));
IndicatingAjaxLink<Void> save = new IndicatingAjaxLink<Void>("saveParameters") {
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/ConfirmPasswordResetModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/ConfirmPasswordResetModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/ConfirmPasswordResetModalPage.java
index 5f1d6fa..3aa65f8 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/ConfirmPasswordResetModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/ConfirmPasswordResetModalPage.java
@@ -20,6 +20,7 @@ package org.apache.syncope.console.pages;
import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.console.commons.Constants;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.wicket.markup.html.form.AjaxPasswordFieldPanel;
import org.apache.syncope.console.wicket.markup.html.form.FieldPanel;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -65,8 +66,7 @@ public class ConfirmPasswordResetModalPage extends BaseModalPage {
try {
userSelfRestClient.confirmPasswordReset(token, password.getModelObject());
- setResponsePage(new ResultStatusModalPage.Builder(window, new UserTO()).
- mode(UserModalPage.Mode.SELF).build());
+ setResponsePage(new ResultStatusModalPage.Builder(window, new UserTO()).mode(Mode.SELF).build());
} catch (Exception e) {
LOG.error("While confirming password reset for {}", token, e);
error(getString(Constants.ERROR) + ": " + e.getMessage());
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java
index 9427478..e31fdcc 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java
@@ -23,6 +23,7 @@ import org.apache.commons.lang3.SerializationUtils;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.util.AttributableOperations;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.commons.status.StatusBean;
import org.apache.syncope.console.pages.panels.AccountInformationPanel;
import org.apache.syncope.console.pages.panels.MembershipsPanel;
@@ -33,7 +34,6 @@ import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-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.model.ResourceModel;
@@ -73,7 +73,7 @@ public class EditUserModalPage extends UserModalPage {
form.addOrReplace(new ResourcesPanel.Builder("resources").attributableTO(userTO).
statusPanel(statusPanel).build());
- form.addOrReplace(new MembershipsPanel("memberships", userTO, false, statusPanel, getPageReference()));
+ form.addOrReplace(new MembershipsPanel("memberships", userTO, mode, statusPanel, getPageReference()));
}
// Security question / answer
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java
index 74b0d6b..44310fb 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java
@@ -20,6 +20,7 @@ package org.apache.syncope.console.pages;
import org.apache.syncope.common.to.MembershipTO;
import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.pages.panels.AttributesPanel;
import org.apache.syncope.console.pages.panels.DerivedAttributesPanel;
import org.apache.syncope.console.pages.panels.SysInfoPanel;
@@ -37,10 +38,10 @@ public class MembershipModalPage extends BaseModalPage {
private static final long serialVersionUID = -4360802478081432549L;
- private AjaxButton submit;
+ private final AjaxButton submit;
public MembershipModalPage(final PageReference pageRef, final ModalWindow window, final MembershipTO membershipTO,
- final boolean templateMode) {
+ final Mode mode) {
final Form<MembershipTO> form = new Form<MembershipTO>("MembershipForm");
@@ -92,7 +93,7 @@ public class MembershipModalPage extends BaseModalPage {
//--------------------------------
// Attributes panel
//--------------------------------
- form.add(new AttributesPanel("attrs", membershipTO, form, templateMode));
+ form.add(new AttributesPanel("attrs", membershipTO, form, mode));
form.add(new SysInfoPanel("systeminformation", membershipTO));
//--------------------------------
@@ -105,7 +106,7 @@ public class MembershipModalPage extends BaseModalPage {
//--------------------------------
// Virtual attributes container
//--------------------------------
- form.add(new VirtualAttributesPanel("virAttrs", membershipTO, templateMode));
+ form.add(new VirtualAttributesPanel("virAttrs", membershipTO, mode == Mode.TEMPLATE));
//--------------------------------
add(form);
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/RequestPasswordResetModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/RequestPasswordResetModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/RequestPasswordResetModalPage.java
index 84d82ec..9cd0b5d 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/RequestPasswordResetModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/RequestPasswordResetModalPage.java
@@ -21,6 +21,7 @@ package org.apache.syncope.console.pages;
import org.apache.syncope.common.to.SecurityQuestionTO;
import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.console.commons.Constants;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.rest.SecurityQuestionRestClient;
import org.apache.syncope.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -114,7 +115,7 @@ public class RequestPasswordResetModalPage extends BaseModalPage {
userSelfRestClient.requestPasswordReset(username.getModelObject(), securityAnswer.getModelObject());
setResponsePage(new ResultStatusModalPage.Builder(window, new UserTO()).
- mode(UserModalPage.Mode.SELF).build());
+ mode(Mode.SELF).build());
} catch (Exception e) {
LOG.error("While requesting password reset for {}", username.getModelObject(), e);
error(getString(Constants.ERROR) + ": " + e.getMessage());
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
index bbc280b..f58a659 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
@@ -35,6 +35,7 @@ import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.types.PropagationTaskExecStatus;
import org.apache.syncope.console.commons.ConnIdSpecialAttributeName;
import org.apache.syncope.console.commons.Constants;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.commons.status.Status;
import org.apache.syncope.console.commons.status.StatusUtils;
import org.apache.wicket.Component;
@@ -68,7 +69,7 @@ public class ResultStatusModalPage extends BaseModalPage {
private final AbstractSubjectTO subject;
- private final UserModalPage.Mode mode;
+ private final Mode mode;
/**
* Status management utilities.
@@ -81,7 +82,7 @@ public class ResultStatusModalPage extends BaseModalPage {
private ModalWindow window;
- private UserModalPage.Mode mode;
+ private Mode mode;
private AbstractSubjectTO subject;
@@ -90,7 +91,7 @@ public class ResultStatusModalPage extends BaseModalPage {
this.subject = attributable;
}
- public ResultStatusModalPage.Builder mode(final UserModalPage.Mode mode) {
+ public ResultStatusModalPage.Builder mode(final Mode mode) {
this.mode = mode;
return this;
}
@@ -105,7 +106,7 @@ public class ResultStatusModalPage extends BaseModalPage {
this.subject = builder.subject;
statusUtils = new StatusUtils(this.userRestClient);
if (builder.mode == null) {
- this.mode = UserModalPage.Mode.ADMIN;
+ this.mode = Mode.ADMIN;
} else {
this.mode = builder.mode;
}
@@ -116,13 +117,13 @@ public class ResultStatusModalPage extends BaseModalPage {
container.setOutputMarkupId(true);
add(container);
- final Fragment fragment = new Fragment("resultFrag", mode == UserModalPage.Mode.SELF
+ final Fragment fragment = new Fragment("resultFrag", mode == Mode.SELF
? "userSelfResultFrag"
: "propagationResultFrag", this);
fragment.setOutputMarkupId(true);
container.add(fragment);
- if (mode == UserModalPage.Mode.ADMIN) {
+ if (mode == Mode.ADMIN) {
// add Syncope propagation status
PropagationStatus syncope = new PropagationStatus();
syncope.setResource("Syncope");
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java
index 6a452e9..ffd7ff4 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java
@@ -25,6 +25,7 @@ import org.apache.syncope.common.mod.RoleMod;
import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.util.AttributableOperations;
import org.apache.syncope.console.commons.Constants;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.pages.panels.RolePanel;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -44,13 +45,6 @@ public class RoleModalPage extends BaseModalPage {
private static final long serialVersionUID = -1732493223434085205L;
- public enum Mode {
-
- ADMIN,
- TEMPLATE;
-
- }
-
protected final PageReference pageRef;
protected final ModalWindow window;
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/RoleTemplateModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/RoleTemplateModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/RoleTemplateModalPage.java
index 3f9c6b0..465d563 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/RoleTemplateModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/RoleTemplateModalPage.java
@@ -20,6 +20,7 @@ package org.apache.syncope.console.pages;
import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.to.SyncTaskTO;
+import org.apache.syncope.console.commons.Mode;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
@@ -29,7 +30,7 @@ public class RoleTemplateModalPage extends RoleModalPage {
private static final long serialVersionUID = -3849135555203409845L;
- private SyncTaskTO syncTaskTO;
+ private final SyncTaskTO syncTaskTO;
public RoleTemplateModalPage(final PageReference callerPageRef, final ModalWindow window,
final SyncTaskTO syncTaskTO) {
@@ -42,7 +43,7 @@ public class RoleTemplateModalPage extends RoleModalPage {
}
@Override
- protected void submitAction(AjaxRequestTarget target, Form form) {
+ protected void submitAction(final AjaxRequestTarget target, final Form form) {
syncTaskTO.setRoleTemplate((RoleTO) form.getModelObject());
taskRestClient.updateSyncTask(syncTaskTO);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/Roles.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/Roles.java b/console/src/main/java/org/apache/syncope/console/pages/Roles.java
index dd4c309..fa94ee4 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/Roles.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/Roles.java
@@ -102,7 +102,7 @@ public class Roles extends BasePage {
});
final AbstractSearchResultPanel searchResult =
- new RoleSearchResultPanel("searchResult", true, null, getPageReference(), restClient);
+ new RoleSearchResultPanel("searchResult", true, null, getPageReference(), restClient);
add(searchResult);
final Form searchForm = new Form("searchForm");
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java
index 65d809e..e605360 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java
@@ -20,6 +20,7 @@ package org.apache.syncope.console.pages;
import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.console.commons.Constants;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.pages.panels.AttributesPanel;
import org.apache.syncope.console.pages.panels.DerivedAttributesPanel;
import org.apache.syncope.console.pages.panels.MembershipsPanel;
@@ -45,14 +46,6 @@ import org.apache.wicket.model.ResourceModel;
*/
public abstract class UserModalPage extends BaseModalPage {
- public enum Mode {
-
- ADMIN,
- SELF,
- TEMPLATE;
-
- }
-
private static final long serialVersionUID = 5002005009737457667L;
protected final PageReference pageRef;
@@ -117,7 +110,7 @@ public abstract class UserModalPage extends BaseModalPage {
form.add(new Label("statuspanel", ""));
form.add(new Label("pwdChangeInfo", ""));
-
+
form.add(new Label("securityQuestion", ""));
form.add(new Label("accountinformation", ""));
@@ -138,7 +131,7 @@ public abstract class UserModalPage extends BaseModalPage {
//--------------------------------
// Attributes panel
//--------------------------------
- form.add(new AttributesPanel("attrs", userTO, form, mode == Mode.TEMPLATE));
+ form.add(new AttributesPanel("attrs", userTO, form, mode));
//--------------------------------
//--------------------------------
@@ -162,7 +155,7 @@ public abstract class UserModalPage extends BaseModalPage {
//--------------------------------
// Roles panel
//--------------------------------
- form.add(new MembershipsPanel("memberships", userTO, mode == Mode.TEMPLATE, null, getPageReference()));
+ form.add(new MembershipsPanel("memberships", userTO, mode, null, getPageReference()));
//--------------------------------
final AjaxButton submit = getOnSubmit();
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/UserSelfModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/UserSelfModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/UserSelfModalPage.java
index c7b007f..9123f07 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/UserSelfModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/UserSelfModalPage.java
@@ -22,6 +22,7 @@ import org.apache.commons.lang3.SerializationUtils;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.util.AttributableOperations;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.rest.UserSelfRestClient;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/UserTemplateModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/UserTemplateModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/UserTemplateModalPage.java
index 03040e0..09ea426 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/UserTemplateModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/UserTemplateModalPage.java
@@ -20,6 +20,7 @@ package org.apache.syncope.console.pages;
import org.apache.syncope.common.to.SyncTaskTO;
import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.console.commons.Mode;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
@@ -32,7 +33,7 @@ public class UserTemplateModalPage extends UserModalPage {
private static final long serialVersionUID = 511003221213581368L;
- private SyncTaskTO syncTaskTO;
+ private final SyncTaskTO syncTaskTO;
public UserTemplateModalPage(final PageReference callerPageRef, final ModalWindow window,
final SyncTaskTO syncTaskTO) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/panels/AttrTemplatesPanel.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/panels/AttrTemplatesPanel.java b/console/src/main/java/org/apache/syncope/console/pages/panels/AttrTemplatesPanel.java
index 024f286..2d84719 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/panels/AttrTemplatesPanel.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/panels/AttrTemplatesPanel.java
@@ -98,33 +98,33 @@ public class AttrTemplatesPanel extends Panel {
return new NonI18nPalette<String>(type.name(), new PropertyModel<List<String>>(roleTO, type.name()),
availableSchemas, new SelectChoiceRenderer<String>(), 8, false) {
- private static final long serialVersionUID = 2295567122085510330L;
+ private static final long serialVersionUID = 2295567122085510330L;
- @Override
- protected Recorder<String> newRecorderComponent() {
- final Recorder<String> recorder = super.newRecorderComponent();
+ @Override
+ protected Recorder<String> newRecorderComponent() {
+ final Recorder<String> recorder = super.newRecorderComponent();
- switch (type) {
- case rAttrTemplates:
- case rDerAttrTemplates:
- case rVirAttrTemplates:
- recorder.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+ switch (type) {
+ case rAttrTemplates:
+ case rDerAttrTemplates:
+ case rVirAttrTemplates:
+ recorder.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
- private static final long serialVersionUID = -1107858522700306810L;
+ private static final long serialVersionUID = -1107858522700306810L;
- @Override
- protected void onUpdate(final AjaxRequestTarget target) {
- send(getPage(), Broadcast.BREADTH, new RoleAttrTemplatesChange(type, target));
- }
- });
- break;
+ @Override
+ protected void onUpdate(final AjaxRequestTarget target) {
+ send(getPage(), Broadcast.BREADTH, new RoleAttrTemplatesChange(type, target));
+ }
+ });
+ break;
- default:
- }
+ default:
+ }
- return recorder;
- }
- };
+ return recorder;
+ }
+ };
}
public Collection<String> getSelected(final Type type) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java b/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
index 61c28af..2ed7042 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
@@ -19,9 +19,12 @@
package org.apache.syncope.console.pages.panels;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
@@ -31,6 +34,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.SyncopeConstants;
import org.apache.syncope.common.to.AbstractAttributableTO;
import org.apache.syncope.common.to.AttributeTO;
+import org.apache.syncope.common.to.ConfTO;
import org.apache.syncope.common.to.MembershipTO;
import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.to.SchemaTO;
@@ -38,8 +42,11 @@ import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.types.AttributableType;
import org.apache.syncope.common.types.AttributeSchemaType;
import org.apache.syncope.console.commons.JexlHelpUtil;
+import org.apache.syncope.console.commons.LayoutType;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.markup.html.list.AltListView;
import org.apache.syncope.console.pages.panels.AttrTemplatesPanel.RoleAttrTemplatesChange;
+import org.apache.syncope.console.rest.ConfigurationRestClient;
import org.apache.syncope.console.rest.RoleRestClient;
import org.apache.syncope.console.rest.SchemaRestClient;
import org.apache.syncope.console.wicket.markup.html.form.AjaxCheckBoxPanel;
@@ -72,28 +79,33 @@ public class AttributesPanel extends Panel {
private SchemaRestClient schemaRestClient;
@SpringBean
+ private ConfigurationRestClient confRestClient;
+
+ @SpringBean
private RoleRestClient roleRestClient;
private final AbstractAttributableTO entityTO;
- private final boolean templateMode;
+ private final Mode mode;
private final AttrTemplatesPanel attrTemplates;
- private final Map<String, SchemaTO> schemas = new TreeMap<String, SchemaTO>();
+ private AttributeTO confAttributeTO;
+
+ private Map<String, SchemaTO> schemas = new LinkedHashMap<String, SchemaTO>();
public <T extends AbstractAttributableTO> AttributesPanel(final String id, final T entityTO, final Form form,
- final boolean templateMode) {
+ final Mode mode) {
- this(id, entityTO, form, templateMode, null);
+ this(id, entityTO, form, mode, null);
}
public <T extends AbstractAttributableTO> AttributesPanel(final String id, final T entityTO, final Form form,
- final boolean templateMode, final AttrTemplatesPanel attrTemplates) {
+ final Mode mode, final AttrTemplatesPanel attrTemplates) {
super(id);
this.entityTO = entityTO;
- this.templateMode = templateMode;
+ this.mode = mode;
this.attrTemplates = attrTemplates;
this.setOutputMarkupId(true);
@@ -117,7 +129,7 @@ public class AttributesPanel extends Panel {
item.add(questionMarkJexlHelp);
questionMarkJexlHelp.add(jexlHelp);
- if (!templateMode) {
+ if (mode != Mode.TEMPLATE) {
questionMarkJexlHelp.setVisible(false);
}
@@ -125,7 +137,7 @@ public class AttributesPanel extends Panel {
final FieldPanel panel = getFieldPanel(schemas.get(attributeTO.getSchema()), form, attributeTO);
- if (templateMode || !schemas.get(attributeTO.getSchema()).isMultivalue()) {
+ if (mode == Mode.TEMPLATE || !schemas.get(attributeTO.getSchema()).isMultivalue()) {
item.add(panel);
} else {
item.add(new MultiFieldPanel<String>(
@@ -137,7 +149,7 @@ public class AttributesPanel extends Panel {
add(attributeView);
}
- private void filter(final List<SchemaTO> schemaTOs, final Set<String> allowed) {
+ private void filter(final List<SchemaTO> schemaTOs, final Collection<String> allowed) {
for (ListIterator<SchemaTO> itor = schemaTOs.listIterator(); itor.hasNext();) {
SchemaTO schema = itor.next();
if (!allowed.contains(schema.getName())) {
@@ -152,6 +164,7 @@ public class AttributesPanel extends Panel {
if (entityTO instanceof RoleTO) {
final RoleTO roleTO = (RoleTO) entityTO;
+ setLayoutConfiguration(mode, AttributableType.ROLE);
schemaTOs = schemaRestClient.getSchemas(AttributableType.ROLE);
Set<String> allowed;
if (attrTemplates == null) {
@@ -165,29 +178,61 @@ public class AttributesPanel extends Panel {
filter(schemaTOs, allowed);
} else if (entityTO instanceof UserTO) {
schemaTOs = schemaRestClient.getSchemas(AttributableType.USER);
+ setLayoutConfiguration(mode, AttributableType.USER);
} else if (entityTO instanceof MembershipTO) {
schemaTOs = schemaRestClient.getSchemas(AttributableType.MEMBERSHIP);
+ setLayoutConfiguration(mode, AttributableType.MEMBERSHIP);
Set<String> allowed = new HashSet<String>(
roleRestClient.read(((MembershipTO) entityTO).getRoleId()).getMAttrTemplates());
filter(schemaTOs, allowed);
} else {
+ schemas = new TreeMap<String, SchemaTO>();
schemaTOs = schemaRestClient.getSchemas(AttributableType.CONFIGURATION);
+ for (Iterator<SchemaTO> it = schemaTOs.iterator(); it.hasNext();) {
+ SchemaTO schemaTO = it.next();
+ for (LayoutType type : LayoutType.values()) {
+ if (type.getParameter().equals(schemaTO.getName())) {
+ it.remove();
+ }
+ }
+ }
}
schemas.clear();
+ if (confAttributeTO != null && mode != Mode.TEMPLATE && !(entityTO instanceof ConfTO)) {
+ filter(schemaTOs, confAttributeTO.getValues());
+ }
for (SchemaTO schemaTO : schemaTOs) {
schemas.put(schemaTO.getName(), schemaTO);
}
}
+ private void setLayoutConfiguration(final Mode mode, final AttributableType type) {
+ switch (type) {
+ case USER:
+ default:
+ confAttributeTO = confRestClient.read(mode == Mode.ADMIN
+ ? LayoutType.ADMIN_USER.getParameter() : LayoutType.ADMIN_USER.getParameter());
+ break;
+ case ROLE:
+ confAttributeTO = confRestClient.read(mode == Mode.ADMIN
+ ? LayoutType.ADMIN_ROLE.getParameter() : LayoutType.SELF_ROLE.getParameter());
+ break;
+ case MEMBERSHIP:
+ confAttributeTO = confRestClient.read(mode == Mode.ADMIN
+ ? LayoutType.ADMIN_MEMBERSHIP.getParameter() : LayoutType.SELF_MEMBERSHIP.getParameter());
+ break;
+ }
+ }
+
private void setAttrs() {
final List<AttributeTO> entityData = new ArrayList<AttributeTO>();
final Map<String, AttributeTO> attrMap = entityTO.getAttrMap();
for (SchemaTO schema : schemas.values()) {
- AttributeTO attributeTO = new AttributeTO();
+ final AttributeTO attributeTO = new AttributeTO();
attributeTO.setSchema(schema.getName());
if (attrMap.get(schema.getName()) == null || attrMap.get(schema.getName()).getValues().isEmpty()) {
@@ -207,11 +252,12 @@ public class AttributesPanel extends Panel {
@SuppressWarnings({ "rawtypes", "unchecked" })
private FieldPanel getFieldPanel(final SchemaTO schemaTO, final Form form, final AttributeTO attributeTO) {
- final boolean required = templateMode ? false : schemaTO.getMandatoryCondition().equalsIgnoreCase("true");
+ final boolean required = mode == Mode.TEMPLATE ? false : schemaTO.getMandatoryCondition().equalsIgnoreCase(
+ "true");
- final boolean readOnly = templateMode ? false : schemaTO.isReadonly();
+ final boolean readOnly = mode == Mode.TEMPLATE ? false : schemaTO.isReadonly();
- final AttributeSchemaType type = templateMode ? AttributeSchemaType.String : schemaTO.getType();
+ final AttributeSchemaType type = mode == Mode.TEMPLATE ? AttributeSchemaType.String : schemaTO.getType();
final FieldPanel panel;
switch (type) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/panels/EventSelectionPanel.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/panels/EventSelectionPanel.java b/console/src/main/java/org/apache/syncope/console/pages/panels/EventSelectionPanel.java
index abf3f69..e2245a6 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/panels/EventSelectionPanel.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/panels/EventSelectionPanel.java
@@ -53,7 +53,7 @@ public abstract class EventSelectionPanel extends Panel {
private static final long serialVersionUID = 752233163798301002L;
- private Set<String> selected = new HashSet<String>();
+ private final Set<String> selected = new HashSet<String>();
public EventSelectionPanel(
final String id, final EventCategoryTO eventCategoryTO, final IModel<List<String>> model) {
@@ -131,11 +131,11 @@ public abstract class EventSelectionPanel extends Panel {
final Check<String> successCheck = new Check<String>("successCheck",
new Model<String>(LoggerEventUtils.buildEvent(
- eventCategoryTO.getType(),
- eventCategoryTO.getCategory(),
- eventCategoryTO.getSubcategory(),
- event,
- AuditElements.Result.SUCCESS)),
+ eventCategoryTO.getType(),
+ eventCategoryTO.getCategory(),
+ eventCategoryTO.getSubcategory(),
+ event,
+ AuditElements.Result.SUCCESS)),
successGroup);
item.add(successCheck);
}
@@ -195,11 +195,11 @@ public abstract class EventSelectionPanel extends Panel {
final Check<String> failureCheck = new Check<String>("failureCheck",
new Model<String>(LoggerEventUtils.buildEvent(
- eventCategoryTO.getType(),
- eventCategoryTO.getCategory(),
- eventCategoryTO.getSubcategory(),
- event,
- AuditElements.Result.FAILURE)),
+ eventCategoryTO.getType(),
+ eventCategoryTO.getCategory(),
+ eventCategoryTO.getSubcategory(),
+ event,
+ AuditElements.Result.FAILURE)),
failureGroup);
item.add(failureCheck);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/panels/LayoutsPanel.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/panels/LayoutsPanel.java b/console/src/main/java/org/apache/syncope/console/pages/panels/LayoutsPanel.java
new file mode 100644
index 0000000..48f7163
--- /dev/null
+++ b/console/src/main/java/org/apache/syncope/console/pages/panels/LayoutsPanel.java
@@ -0,0 +1,175 @@
+/*
+ * 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.console.pages.panels;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.syncope.common.to.AttributeTO;
+import org.apache.syncope.common.to.SchemaTO;
+import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.AttributeSchemaType;
+import org.apache.syncope.console.commons.LayoutType;
+import org.apache.syncope.console.commons.Constants;
+import org.apache.syncope.console.commons.XMLRolesReader;
+import org.apache.syncope.console.rest.ConfigurationRestClient;
+import org.apache.syncope.console.rest.SchemaRestClient;
+import org.apache.syncope.console.wicket.markup.html.form.AjaxPalettePanel;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.model.util.ListModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class LayoutsPanel extends Panel {
+
+ /**
+ * Logger.
+ */
+ private static final Logger LOG = LoggerFactory.getLogger(LayoutsPanel.class);
+
+ private static final long serialVersionUID = -6804066913177804275L;
+
+ private static final String CANCEL = "cancel";
+
+ private static final String APPLY = "apply";
+
+ @SpringBean
+ protected XMLRolesReader xmlRolesReader;
+
+ @SpringBean
+ private SchemaRestClient schemaRestClient;
+
+ @SpringBean
+ private ConfigurationRestClient confRestClient;
+
+ @SuppressWarnings("unchecked")
+ public LayoutsPanel(final String id, final LayoutType layoutType, final NotificationPanel feedbackPanel) {
+ super(id);
+
+ final WebMarkupContainer container = new WebMarkupContainer("container");
+ container.setOutputMarkupId(true);
+
+ final Form<String> form = new Form<String>("form");
+ form.setOutputMarkupId(true);
+
+ final AttributableType type;
+ final AttributeTO attributeTO;
+ if (layoutType == LayoutType.ADMIN_USER || layoutType == layoutType.SELF_USER) {
+ attributeTO = getConfiguration(layoutType, AttributableType.USER);
+ type = AttributableType.USER;
+ } else if (layoutType == LayoutType.ADMIN_ROLE || layoutType == layoutType.SELF_ROLE) {
+ attributeTO = getConfiguration(layoutType, AttributableType.ROLE);
+ type = AttributableType.ROLE;
+ } else {
+ attributeTO = getConfiguration(layoutType, AttributableType.MEMBERSHIP);
+ type = AttributableType.MEMBERSHIP;
+ }
+
+ form.setModel(new CompoundPropertyModel(attributeTO.getValues()));
+
+ final List<String> fields = getAllFields(type);
+
+ final ListModel<String> selectedFields = new ListModel<String>(!attributeTO.getValues().isEmpty()
+ ? attributeTO.getValues() : fields);
+ final ListModel<String> availableFields = new ListModel<String>(fields);
+
+ form.add(new AjaxPalettePanel<String>("fields", selectedFields, availableFields, true));
+
+ final AjaxButton submit = new IndicatingAjaxButton(APPLY, new ResourceModel(APPLY)) {
+
+ private static final long serialVersionUID = -958724007591692537L;
+
+ @Override
+ protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
+ try {
+ if (schemaRestClient.readSchema(
+ AttributableType.CONFIGURATION, layoutType.getParameter()) == null) {
+ final SchemaTO confSchemaTO = new SchemaTO();
+ confSchemaTO.setName(layoutType.getParameter());
+ confSchemaTO.setMultivalue(true);
+ confSchemaTO.setType(AttributeSchemaType.String);
+ schemaRestClient.createSchema(AttributableType.CONFIGURATION, confSchemaTO);
+ }
+ confRestClient.set(attributeTO);
+ info(getString(Constants.OPERATION_SUCCEEDED));
+ } catch (Exception e) {
+ LOG.error("While save layout configuration", e);
+ error(getString(Constants.ERROR) + ": " + e.getMessage());
+ }
+ feedbackPanel.refresh(target);
+ }
+
+ @Override
+ protected void onError(final AjaxRequestTarget target, final Form<?> form) {
+ LOG.error("While save layout configuration");
+ error(getString(Constants.ERROR) + ": While save layout configuration");
+ feedbackPanel.refresh(target);
+ }
+ };
+
+ form.add(submit);
+
+ final IndicatingAjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) {
+
+ private static final long serialVersionUID = -958724007591692537L;
+
+ @Override
+ protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
+ target.add(container);
+ }
+
+ @Override
+ protected void onError(final AjaxRequestTarget target, final Form<?> form) {
+ }
+ };
+
+ cancel.setDefaultFormProcessing(false);
+ form.add(cancel);
+ container.add(form);
+ add(container);
+ }
+
+ private AttributeTO getConfiguration(
+ final LayoutType layoutType, final AttributableType type) {
+ AttributeTO attributeTO = confRestClient.read(layoutType.getParameter());
+ if (attributeTO != null) {
+ return attributeTO;
+ } else {
+ attributeTO = new AttributeTO();
+ attributeTO.setSchema(layoutType.getParameter());
+ attributeTO.getValues().addAll(getAllFields(type));
+ return attributeTO;
+ }
+ }
+
+ private List<String> getAllFields(final AttributableType type) {
+ final List<String> fields = new ArrayList<String>();
+ for (SchemaTO item : schemaRestClient.getSchemas(type)) {
+ fields.add(item.getName());
+ }
+ return fields;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java b/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java
index f341492..5490e7a 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java
@@ -26,6 +26,7 @@ import javax.swing.tree.DefaultMutableTreeNode;
import org.apache.syncope.common.to.MembershipTO;
import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.commons.RoleTreeBuilder;
import org.apache.syncope.console.commons.RoleUtils;
import org.apache.syncope.console.commons.status.StatusUtils;
@@ -72,7 +73,7 @@ public class MembershipsPanel extends Panel {
private final NestedTree<DefaultMutableTreeNode> tree;
- public MembershipsPanel(final String id, final UserTO userTO, final boolean templateMode,
+ public MembershipsPanel(final String id, final UserTO userTO, final Mode mode,
final StatusPanel statusPanel, final PageReference pageRef) {
super(id);
@@ -127,14 +128,14 @@ public class MembershipsPanel extends Panel {
for (MembershipTO membTO : membView.getList()) {
if (membTO.getRoleId() == roleTO.getId()) {
- return new MembershipModalPage(pageRef, membWin, membTO, templateMode);
+ return new MembershipModalPage(pageRef, membWin, membTO, mode);
}
}
MembershipTO membTO = new MembershipTO();
membTO.setRoleId(roleTO.getId());
membTO.setRoleName(roleTO.getName());
- return new MembershipModalPage(pageRef, membWin, membTO, templateMode);
+ return new MembershipModalPage(pageRef, membWin, membTO, mode);
}
});
membWin.show(target);
@@ -175,7 +176,7 @@ public class MembershipsPanel extends Panel {
@Override
public Page createPage() {
return new MembershipModalPage(getPage().getPageReference(), membWin,
- membershipTO, templateMode);
+ membershipTO, mode);
}
});
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceSecurityPanel.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceSecurityPanel.java b/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceSecurityPanel.java
index 0fc782e..f7d92ff 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceSecurityPanel.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceSecurityPanel.java
@@ -107,7 +107,7 @@ public class ResourceSecurityPanel extends Panel {
// -------------------------------
final AjaxDropDownChoicePanel<Long> passwordPolicy = new AjaxDropDownChoicePanel<Long>("passwordPolicy",
new ResourceModel("passwordPolicy", "passwordPolicy").getObject(), new PropertyModel<Long>(resourceTO,
- "passwordPolicy"));
+ "passwordPolicy"));
passwordPolicy.setChoiceRenderer(new PolicyRenderer(PolicyType.PASSWORD));
@@ -123,7 +123,7 @@ public class ResourceSecurityPanel extends Panel {
// -------------------------------
final AjaxDropDownChoicePanel<Long> accountPolicy = new AjaxDropDownChoicePanel<Long>("accountPolicy",
new ResourceModel("accountPolicy", "accountPolicy").getObject(), new PropertyModel<Long>(resourceTO,
- "accountPolicy"));
+ "accountPolicy"));
accountPolicy.setChoiceRenderer(new PolicyRenderer(PolicyType.ACCOUNT));
@@ -139,7 +139,7 @@ public class ResourceSecurityPanel extends Panel {
// -------------------------------
final AjaxDropDownChoicePanel<Long> syncPolicy = new AjaxDropDownChoicePanel<Long>("syncPolicy",
new ResourceModel("syncPolicy", "syncPolicy").getObject(), new PropertyModel<Long>(resourceTO,
- "syncPolicy"));
+ "syncPolicy"));
syncPolicy.setChoiceRenderer(new PolicyRenderer(PolicyType.SYNC));
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java b/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java
index ec9e261..8a2ab6d 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java
@@ -23,10 +23,10 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-
import org.apache.syncope.common.to.RoleTO;
-import org.apache.syncope.console.commons.status.StatusBean;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.commons.XMLRolesReader;
+import org.apache.syncope.console.commons.status.StatusBean;
import org.apache.syncope.console.pages.RoleModalPage;
import org.apache.syncope.console.rest.AuthRestClient;
import org.apache.syncope.console.wicket.markup.html.form.AjaxCheckBoxPanel;
@@ -62,7 +62,7 @@ public class RolePanel extends Panel {
private RoleTO roleTO;
- private RoleModalPage.Mode mode;
+ private Mode mode;
private PageReference pageReference;
@@ -80,7 +80,7 @@ public class RolePanel extends Panel {
return this;
}
- public Builder roleModalPageMode(final RoleModalPage.Mode mode) {
+ public Builder roleModalPageMode(final Mode mode) {
this.mode = mode;
return this;
}
@@ -98,7 +98,7 @@ public class RolePanel extends Panel {
private RolePanel(final Builder builder) {
super(builder.id);
- this.add(new RoleDetailsPanel("details", builder.roleTO, builder.mode == RoleModalPage.Mode.TEMPLATE));
+ this.add(new RoleDetailsPanel("details", builder.roleTO, builder.mode == Mode.TEMPLATE));
if (builder.pageReference == null || builder.roleTO.getId() == 0) {
this.add(new Label("statuspanel", ""));
@@ -123,7 +123,7 @@ public class RolePanel extends Panel {
// Attributes panel
//--------------------------------
this.add(new AttributesPanel(
- "attrs", builder.roleTO, builder.form, builder.mode == RoleModalPage.Mode.TEMPLATE, attrTemplates));
+ "attrs", builder.roleTO, builder.form, builder.mode, attrTemplates));
final AjaxCheckBoxPanel inhAttributes = new AjaxCheckBoxPanel("inheritAttrs", "inheritAttrs",
new PropertyModel<Boolean>(builder.roleTO, "inheritAttrs"));
@@ -146,7 +146,7 @@ public class RolePanel extends Panel {
// Virtual attributes panel
//--------------------------------
this.add(new VirtualAttributesPanel(
- "virAttrs", builder.roleTO, builder.mode == RoleModalPage.Mode.TEMPLATE, attrTemplates));
+ "virAttrs", builder.roleTO, builder.mode == Mode.TEMPLATE, attrTemplates));
final AjaxCheckBoxPanel inhVirtualAttributes = new AjaxCheckBoxPanel("inheritVirAttrs",
"inheritVirAttrs", new PropertyModel<Boolean>(builder.roleTO, "inheritVirAttrs"));
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java b/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java
index 41eba3c..04668ab 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java
@@ -19,9 +19,10 @@
package org.apache.syncope.console.pages.panels;
import org.apache.syncope.client.SyncopeClient;
-import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.SyncopeClientException;
+import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.console.commons.Constants;
+import org.apache.syncope.console.commons.Mode;
import org.apache.syncope.console.commons.XMLRolesReader;
import org.apache.syncope.console.pages.ResultStatusModalPage;
import org.apache.syncope.console.pages.RoleModalPage;
@@ -165,7 +166,7 @@ public class RoleTabPanel extends Panel {
form.setOutputMarkupId(true);
final RolePanel rolePanel = new RolePanel.Builder("rolePanel").form(form).roleTO(selectedNode).
- roleModalPageMode(RoleModalPage.Mode.ADMIN).build();
+ roleModalPageMode(Mode.ADMIN).build();
rolePanel.setEnabled(false);
form.add(rolePanel);
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/java/org/apache/syncope/console/rest/ConfigurationRestClient.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/rest/ConfigurationRestClient.java b/console/src/main/java/org/apache/syncope/console/rest/ConfigurationRestClient.java
index c2f5ac3..e3bedce 100644
--- a/console/src/main/java/org/apache/syncope/console/rest/ConfigurationRestClient.java
+++ b/console/src/main/java/org/apache/syncope/console/rest/ConfigurationRestClient.java
@@ -21,6 +21,7 @@ package org.apache.syncope.console.rest;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.Response;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.common.services.ConfigurationService;
import org.apache.syncope.common.to.AttributeTO;
import org.apache.syncope.common.to.ConfTO;
@@ -38,7 +39,12 @@ public class ConfigurationRestClient extends BaseRestClient {
}
public AttributeTO read(final String key) {
- return getService(ConfigurationService.class).read(key);
+ try {
+ return getService(ConfigurationService.class).read(key);
+ } catch (SyncopeClientException e) {
+ LOG.error("While reading a configuration schema", e);
+ }
+ return null;
}
public void set(final AttributeTO attributeTO) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
index 3996a72..78cd215 100644
--- a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
+++ b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
@@ -19,9 +19,10 @@ under the License.
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:head>
<script type="text/javascript">
- $(document).ready(function() {
+ $(document).ready(function () {
$("#policies").tabs();
$("#logs").tabs();
+ $("#layouts").tabs();
});
</script>
</wicket:head>
@@ -33,13 +34,43 @@ under the License.
<li class="tabs-selected">
<a href="#parameters"><span><wicket:message key="parameters"/></span></a>
</li>
+ <li><a href="#layouts"><span><wicket:message key="layouts"/></span></a></li>
<li><a href="#policies"><span><wicket:message key="policies"/></span></a></li>
<li><a href="#notifications"><span><wicket:message key="notifications"/></span></a></li>
<li><a href="#securityQuestions"><span><wicket:message key="securityQuestions"/></span></a></li>
<li><a href="#workflow"><span><wicket:message key="workflow"/></span></a></li>
<li><a href="#logs"><span><wicket:message key="logs"/></span></a></li>
</ul>
-
+ <div id="layouts">
+ <ul>
+ <li class="tabs-selected">
+ <a href="#adminUser"><span><wicket:message key="adminUser"/></span></a>
+ </li>
+ <li><a href="#selfUser"><span><wicket:message key="selfUser"/></span></a></li>
+ <li><a href="#adminRole"><span><wicket:message key="adminRole"/></span></a></li>
+ <li><a href="#selfRole"><span><wicket:message key="selfRole"/></span></a></li>
+ <li><a href="#adminMembership"><span><wicket:message key="adminMembership"/></span></a></li>
+ <li><a href="#selfMembership"><span><wicket:message key="selfMembership"/></span></a></li>
+ </ul>
+ <div id="adminUser" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="adminUserLayoutPanel">[admin user layout panel]</span>
+ </div>
+ <div id="selfUser" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="selfUserLayoutPanel">[self user layout panel]</span>
+ </div>
+ <div id="adminRole" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="adminRoleLayoutPanel">[admin role layout panel]</span>
+ </div>
+ <div id="selfRole" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="selfRoleLayoutPanel">[self role layout panel]</span>
+ </div>
+ <div id="adminMembership" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="adminMembershipLayoutPanel">[admin membership layout panel]</span>
+ </div>
+ <div id="selfMembership" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="selfMembershipLayoutPanel">[self membership layout panel]</span>
+ </div>
+ </div>
<div id="parameters" wicket:id="parameters" style="width: 700px;">
<form wicket:id="confForm">
<span wicket:id="parameters">[parameters]</span>
@@ -194,7 +225,6 @@ under the License.
alt="DB export" title="title" wicket:message="title:db_export"/>
</a>
</div>
-
</div>
</wicket:extend>
</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties
index 87c4342..1b6bcc7 100644
--- a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties
+++ b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties
@@ -38,3 +38,10 @@ active=Enabled
apply=Save
securityQuestions=Security Questions
content=Text
+layouts=Layouts
+adminUser=Administrator User Form
+selfUser=Self User Form
+adminRole=Administrator Role Form
+selfRole=Self Role Form
+adminMembership=Administrator Membership Form
+selfMembership=Self Membership Form
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/resources/org/apache/syncope/console/pages/Configuration_it.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/Configuration_it.properties b/console/src/main/resources/org/apache/syncope/console/pages/Configuration_it.properties
index 2b63a18..4969e24 100644
--- a/console/src/main/resources/org/apache/syncope/console/pages/Configuration_it.properties
+++ b/console/src/main/resources/org/apache/syncope/console/pages/Configuration_it.properties
@@ -38,3 +38,10 @@ active=Abilitata
apply=Salva
securityQuestions=Domande di sicurezza
content=Testo
+layouts=Layouts
+adminUser=Form Amministrazione Utente
+selfUser=Form Utente
+adminRole=Form Amministrazione Ruolo
+selfRole=Form Ruolo
+adminMembership=Form Amministrazione Membership
+selfMembership=Form Membership
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/resources/org/apache/syncope/console/pages/Configuration_pt_BR.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/Configuration_pt_BR.properties b/console/src/main/resources/org/apache/syncope/console/pages/Configuration_pt_BR.properties
index 68996f5..cc2dd2b 100644
--- a/console/src/main/resources/org/apache/syncope/console/pages/Configuration_pt_BR.properties
+++ b/console/src/main/resources/org/apache/syncope/console/pages/Configuration_pt_BR.properties
@@ -38,3 +38,10 @@ active=Ativada
apply=Salvar
securityQuestions=Quest\u00f5es de seguran\u00e7a
content=Texto
+layouts=Layouts
+adminUser=Forma do usu\u00e1rio de administra\u00e7\u00e3o
+selfUser=Forma Usu\u00e1rio
+adminRole=Forma Fun\u00e7\u00e3o de administra\u00e7\u00e3o
+selfRole=Form Fun\u00e7\u00e3o
+adminMembership=Forma de membro de administra\u00e7\u00e3o
+selfMembership=Forma Membro
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel.html
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel.html b/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel.html
new file mode 100644
index 0000000..51840f4
--- /dev/null
+++ b/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel.html
@@ -0,0 +1,41 @@
+<!--
+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:panel>
+ <div>
+ <div id="users-contain" class="ui-widget">
+ <span wicket:id="container">
+ <form wicket:id="form">
+ <div id="fields">
+ <span wicket:id="fields">[fields]</span>
+ </div>
+ <div style="margin: 20px 0px 0">
+ <input type="submit" style="padding: 7px 15px;"
+ class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
+ wicket:id="apply"/>
+ <input type="button" style="padding: 7px 15px;"
+ class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
+ wicket:id="cancel"/>
+ </div>
+ </form>
+ </span>
+ </div>
+ </div>
+ </wicket:panel>
+</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel.properties b/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel.properties
new file mode 100644
index 0000000..a7a1683
--- /dev/null
+++ b/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel.properties
@@ -0,0 +1,18 @@
+# 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.
+apply=Save
+cancel=Cancel
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel_it.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel_it.properties b/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel_it.properties
new file mode 100644
index 0000000..a7a1683
--- /dev/null
+++ b/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel_it.properties
@@ -0,0 +1,18 @@
+# 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.
+apply=Save
+cancel=Cancel
http://git-wip-us.apache.org/repos/asf/syncope/blob/08e7032f/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel_pt_BR.properties b/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel_pt_BR.properties
new file mode 100644
index 0000000..a7a1683
--- /dev/null
+++ b/console/src/main/resources/org/apache/syncope/console/pages/panels/LayoutsPanel_pt_BR.properties
@@ -0,0 +1,18 @@
+# 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.
+apply=Save
+cancel=Cancel
[2/2] git commit: Merge branch '1_2_X'
Posted by md...@apache.org.
Merge branch '1_2_X'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b40948e0
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b40948e0
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b40948e0
Branch: refs/heads/master
Commit: b40948e0cd9fd0b33292a8f318594705facf7192
Parents: 14b8988 08e7032
Author: Marco Di Sabatino Di Diodoro <md...@apache.org>
Authored: Fri Oct 17 12:27:04 2014 +0200
Committer: Marco Di Sabatino Di Diodoro <md...@apache.org>
Committed: Fri Oct 17 12:27:04 2014 +0200
----------------------------------------------------------------------
.../syncope/console/commons/LayoutType.java | 43 +++++
.../apache/syncope/console/commons/Mode.java | 27 +++
.../syncope/console/pages/Configuration.java | 31 +++-
.../pages/ConfirmPasswordResetModalPage.java | 4 +-
.../console/pages/EditUserModalPage.java | 4 +-
.../console/pages/MembershipModalPage.java | 9 +-
.../pages/RequestPasswordResetModalPage.java | 3 +-
.../console/pages/ResultStatusModalPage.java | 13 +-
.../syncope/console/pages/RoleModalPage.java | 8 +-
.../console/pages/RoleTemplateModalPage.java | 5 +-
.../org/apache/syncope/console/pages/Roles.java | 2 +-
.../syncope/console/pages/UserModalPage.java | 15 +-
.../console/pages/UserSelfModalPage.java | 1 +
.../console/pages/UserTemplateModalPage.java | 3 +-
.../pages/panels/AttrTemplatesPanel.java | 42 ++---
.../console/pages/panels/AttributesPanel.java | 72 ++++++--
.../pages/panels/EventSelectionPanel.java | 22 +--
.../console/pages/panels/LayoutsPanel.java | 175 +++++++++++++++++++
.../console/pages/panels/MembershipsPanel.java | 9 +-
.../pages/panels/ResourceSecurityPanel.java | 6 +-
.../syncope/console/pages/panels/RolePanel.java | 14 +-
.../console/pages/panels/RoleTabPanel.java | 5 +-
.../console/rest/ConfigurationRestClient.java | 8 +-
.../syncope/console/pages/Configuration.html | 36 +++-
.../console/pages/Configuration.properties | 7 +
.../console/pages/Configuration_it.properties | 7 +
.../pages/Configuration_pt_BR.properties | 7 +
.../console/pages/panels/LayoutsPanel.html | 41 +++++
.../pages/panels/LayoutsPanel.properties | 18 ++
.../pages/panels/LayoutsPanel_it.properties | 18 ++
.../pages/panels/LayoutsPanel_pt_BR.properties | 18 ++
31 files changed, 565 insertions(+), 108 deletions(-)
----------------------------------------------------------------------