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 2018/02/22 16:50:39 UTC
[1/2] syncope git commit: [SYNCOPE-1269] Aligning conf param create
with PlainSchema create
Repository: syncope
Updated Branches:
refs/heads/2_0_X 370e1af95 -> 48bb5bfa0
refs/heads/master 691693cb5 -> ccca7072c
[SYNCOPE-1269] Aligning conf param create with PlainSchema create
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/48bb5bfa
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/48bb5bfa
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/48bb5bfa
Branch: refs/heads/2_0_X
Commit: 48bb5bfa093afb2b7824e12286928f48721f901a
Parents: 370e1af
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Feb 22 17:24:01 2018 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Feb 22 17:24:01 2018 +0100
----------------------------------------------------------------------
.../ParametersCreateWizardSchemaStep.java | 311 ++++++++++++++++---
.../console/panels/PlainSchemaDetails.java | 27 +-
.../ParametersCreateWizardSchemaStep.html | 27 +-
.../ParametersCreateWizardSchemaStep.properties | 10 +-
...rametersCreateWizardSchemaStep_it.properties | 10 +-
...rametersCreateWizardSchemaStep_ja.properties | 10 +-
...etersCreateWizardSchemaStep_pt_BR.properties | 12 +-
...rametersCreateWizardSchemaStep_ru.properties | 14 +-
8 files changed, 336 insertions(+), 85 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/48bb5bfa/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java
index afe5ab2..71dffaa 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java
@@ -18,10 +18,13 @@
*/
package org.apache.syncope.client.console.panels;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleApplication;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.commons.PropertyList;
import org.apache.syncope.client.console.init.ConsoleInitializer;
import org.apache.syncope.client.console.init.MIMETypesLoader;
@@ -36,6 +39,9 @@ import org.apache.syncope.common.lib.types.CipherAlgorithm;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.wizard.WizardStep;
import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
@@ -46,6 +52,12 @@ public class ParametersCreateWizardSchemaStep extends WizardStep {
private static final MIMETypesLoader MIME_TYPES_LOADER = (MIMETypesLoader) SyncopeConsoleApplication.get().
getServletContext().getAttribute(ConsoleInitializer.MIMETYPES_LOADER);
+ private final MultiFieldPanel<String> enumerationValues;
+
+ private final MultiFieldPanel<String> enumerationKeys;
+
+ private final AjaxDropDownChoicePanel<String> validatorClass;
+
public ParametersCreateWizardSchemaStep(final ParametersCreateWizardPanel.ParametersForm modelObject) {
modelObject.getPlainSchemaTO().setMandatoryCondition("false");
@@ -53,15 +65,34 @@ public class ParametersCreateWizardSchemaStep extends WizardStep {
this.setOutputMarkupId(true);
content.setOutputMarkupId(true);
add(content);
+
final AjaxDropDownChoicePanel<AttrSchemaType> type = new AjaxDropDownChoicePanel<>(
"type", getString("type"), new PropertyModel<AttrSchemaType>(modelObject.getPlainSchemaTO(), "type"));
type.setChoices(Arrays.asList(AttrSchemaType.values()));
content.add(type);
- final MultiFieldPanel<String> panel = new MultiFieldPanel.Builder<String>(
+ // long, double, date
+ final AjaxTextFieldPanel conversionPattern = new AjaxTextFieldPanel("conversionPattern",
+ getString("conversionPattern"), new PropertyModel<String>(
+ modelObject.getPlainSchemaTO(), "conversionPattern"));
+ content.add(conversionPattern);
+
+ final WebMarkupContainer conversionParams = new WebMarkupContainer("conversionParams");
+ conversionParams.setOutputMarkupPlaceholderTag(true);
+ conversionParams.add(conversionPattern);
+ content.add(conversionParams);
+
+ final WebMarkupContainer typeParams = new WebMarkupContainer("typeParams");
+ typeParams.setOutputMarkupPlaceholderTag(true);
+
+ // enum
+ final AjaxTextFieldPanel enumerationValuesPanel = new AjaxTextFieldPanel("panel", "enumerationValues",
+ new Model<String>(null));
+
+ enumerationValues = new MultiFieldPanel.Builder<String>(
new PropertyModel<List<String>>(modelObject.getPlainSchemaTO(), "enumerationValues") {
- private static final long serialVersionUID = 3985215199105092649L;
+ private static final long serialVersionUID = -4953564762272833993L;
@Override
public PropertyList<PlainSchemaTO> getObject() {
@@ -92,76 +123,262 @@ public class ParametersCreateWizardSchemaStep extends WizardStep {
return StringUtils.EMPTY;
}
- }.build("values", getString("values"), new AjaxTextFieldPanel(
- "panel", getString("values"), new Model<String>(), false));
+ }.build(
+ "enumerationValues",
+ "enumerationValues",
+ enumerationValuesPanel);
- panel.setVisible(false);
- content.add(panel);
+ enumerationKeys = new MultiFieldPanel.Builder<String>(
+ new PropertyModel<List<String>>(modelObject.getPlainSchemaTO(), "enumerationKeys") {
- //binary
- final AjaxTextFieldPanel mimeType = new AjaxTextFieldPanel("mimeType",
- "MIME-Type", new PropertyModel<String>(modelObject.getPlainSchemaTO(), "mimeType"));
- mimeType.setVisible(false);
- content.add(mimeType);
+ private static final long serialVersionUID = -4953564762272833993L;
+
+ @Override
+ public PropertyList<PlainSchemaTO> getObject() {
+ return new PropertyList<PlainSchemaTO>() {
+
+ @Override
+ public String getValues() {
+ return modelObject.getPlainSchemaTO().getEnumerationKeys();
+ }
+
+ @Override
+ public void setValues(final List<String> list) {
+ modelObject.getPlainSchemaTO().setEnumerationKeys(PropertyList.getEnumValuesAsString(list));
+ }
+ };
+ }
+
+ @Override
+ public void setObject(final List<String> object) {
+ modelObject.getPlainSchemaTO().setEnumerationKeys(PropertyList.getEnumValuesAsString(object));
+ }
+ }) {
+
+ private static final long serialVersionUID = -8752965211744734798L;
- //encrypted
+ @Override
+ protected String newModelObject() {
+ return StringUtils.EMPTY;
+ }
+
+ }.build(
+ "enumerationKeys",
+ "enumerationKeys",
+ new AjaxTextFieldPanel("panel", "enumerationKeys", new Model<String>()));
+
+ final WebMarkupContainer enumParams = new WebMarkupContainer("enumParams");
+ enumParams.setOutputMarkupPlaceholderTag(true);
+ enumParams.add(enumerationValues);
+ enumParams.add(enumerationKeys);
+ typeParams.add(enumParams);
+
+ // encrypted
final AjaxTextFieldPanel secretKey = new AjaxTextFieldPanel("secretKey",
- "Secret-key", new PropertyModel<String>(modelObject.getPlainSchemaTO(), "secretKey"));
+ getString("secretKey"), new PropertyModel<String>(modelObject.getPlainSchemaTO(), "secretKey"));
final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm = new AjaxDropDownChoicePanel<>(
- "cipherAlgorithm", "Cipher-algorithm",
+ "cipherAlgorithm", getString("cipherAlgorithm"),
new PropertyModel<CipherAlgorithm>(modelObject.getPlainSchemaTO(), "cipherAlgorithm"));
cipherAlgorithm.setChoices(Arrays.asList(CipherAlgorithm.values()));
- secretKey.setVisible(false);
- cipherAlgorithm.setVisible(false);
- content.add(secretKey);
- content.add(cipherAlgorithm);
- showHide(type, secretKey, cipherAlgorithm, mimeType);
+ final WebMarkupContainer encryptedParams = new WebMarkupContainer("encryptedParams");
+ encryptedParams.setOutputMarkupPlaceholderTag(true);
+ encryptedParams.add(secretKey);
+ encryptedParams.add(cipherAlgorithm);
+
+ typeParams.add(encryptedParams);
+
+ // binary
+ final AjaxTextFieldPanel mimeType = new AjaxTextFieldPanel("mimeType",
+ getString("mimeType"), new PropertyModel<String>(modelObject.getPlainSchemaTO(), "mimeType"));
+
+ final WebMarkupContainer binaryParams = new WebMarkupContainer("binaryParams");
+ binaryParams.setOutputMarkupPlaceholderTag(true);
+ binaryParams.add(mimeType);
+ typeParams.add(binaryParams);
+ content.add(typeParams);
+
+ // show or hide
+ showHide(modelObject.getPlainSchemaTO(), type,
+ conversionParams, conversionPattern,
+ enumParams, enumerationValuesPanel, enumerationValues, enumerationKeys,
+ encryptedParams, secretKey, cipherAlgorithm,
+ binaryParams, mimeType);
- type.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior("onchange") {
+ type.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@Override
protected void onUpdate(final AjaxRequestTarget target) {
- if ("enum".equalsIgnoreCase(type.getField().getModelObject().name())) {
- panel.setVisible(true);
- content.add(panel);
- target.add(content);
- } else {
- panel.setVisible(false);
- content.add(panel);
- target.add(content);
- }
- ParametersCreateWizardSchemaStep.this.showHide(type, secretKey, cipherAlgorithm, mimeType);
+ ParametersCreateWizardSchemaStep.this.showHide(modelObject.getPlainSchemaTO(), type,
+ conversionParams, conversionPattern,
+ enumParams, enumerationValuesPanel, enumerationValues, enumerationKeys,
+ encryptedParams, secretKey, cipherAlgorithm,
+ binaryParams, mimeType);
+ target.add(conversionParams);
+ target.add(typeParams);
+ target.add(validatorClass);
}
});
- final AjaxCheckBoxPanel multiValue = new AjaxCheckBoxPanel("panel", getString("multivalue"),
- new PropertyModel<Boolean>(modelObject.getPlainSchemaTO(), "multivalue"), false);
- content.add(multiValue);
+ IModel<List<String>> validatorsList = new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<String> load() {
+ return new ArrayList<>(SyncopeConsoleSession.get().getPlatformInfo().getValidators());
+ }
+ };
+ validatorClass = new AjaxDropDownChoicePanel<>("validatorClass", getString("validatorClass"),
+ new PropertyModel<String>(modelObject.getPlainSchemaTO(), "validatorClass"));
+ validatorClass.setOutputMarkupId(true);
+ ((DropDownChoice) validatorClass.getField()).setNullValid(true);
+ validatorClass.setChoices(validatorsList.getObject());
+ content.add(validatorClass);
+
+ content.add(new AjaxCheckBoxPanel("multivalue", getString("multivalue"),
+ new PropertyModel<Boolean>(modelObject.getPlainSchemaTO(), "multivalue")));
}
- private void showHide(
- final AjaxDropDownChoicePanel<AttrSchemaType> type,
- final AjaxTextFieldPanel secretKey,
- final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm,
- final AjaxTextFieldPanel mimeType) {
+ private void showHide(final PlainSchemaTO schema, final AjaxDropDownChoicePanel<AttrSchemaType> type,
+ final WebMarkupContainer conversionParams, final AjaxTextFieldPanel conversionPattern,
+ final WebMarkupContainer enumParams, final AjaxTextFieldPanel enumerationValuesPanel,
+ final MultiFieldPanel<String> enumerationValues, final MultiFieldPanel<String> enumerationKeys,
+ final WebMarkupContainer encryptedParams,
+ final AjaxTextFieldPanel secretKey, final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm,
+ final WebMarkupContainer binaryParams, final AjaxTextFieldPanel mimeType) {
final int typeOrdinal = Integer.parseInt(type.getField().getValue());
- if (AttrSchemaType.Encrypted.ordinal() == typeOrdinal) {
- mimeType.setVisible(false);
- secretKey.setVisible(true);
- secretKey.addRequiredLabel();
- cipherAlgorithm.setVisible(true);
- cipherAlgorithm.addRequiredLabel();
+ if (AttrSchemaType.Long.ordinal() == typeOrdinal
+ || AttrSchemaType.Double.ordinal() == typeOrdinal
+ || AttrSchemaType.Date.ordinal() == typeOrdinal) {
+
+ conversionParams.setVisible(true);
+
+ enumParams.setVisible(false);
+ if (enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.removeRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(null));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(null));
+
+ encryptedParams.setVisible(false);
+ if (secretKey.isRequired()) {
+ secretKey.removeRequiredLabel();
+ }
+ secretKey.setModelObject(null);
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.removeRequiredLabel();
+ }
+ cipherAlgorithm.setModelObject(null);
+
+ binaryParams.setVisible(false);
+ mimeType.setModelObject(null);
+ mimeType.setChoices(null);
+
+ schema.setValidatorClass(null);
+ } else if (AttrSchemaType.Enum.ordinal() == typeOrdinal) {
+ conversionParams.setVisible(false);
+ conversionPattern.setModelObject(null);
+
+ enumParams.setVisible(true);
+ if (!enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.addRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(schema.getEnumerationValues()));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(schema.getEnumerationKeys()));
+
+ encryptedParams.setVisible(false);
+ if (secretKey.isRequired()) {
+ secretKey.removeRequiredLabel();
+ }
+ secretKey.setModelObject(null);
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.removeRequiredLabel();
+ }
+ cipherAlgorithm.setModelObject(null);
+
+ binaryParams.setVisible(false);
+ mimeType.setModelObject(null);
+ mimeType.setChoices(null);
+
+ schema.setValidatorClass(null);
+ } else if (AttrSchemaType.Encrypted.ordinal() == typeOrdinal) {
+ conversionParams.setVisible(false);
+ conversionPattern.setModelObject(null);
+
+ enumParams.setVisible(false);
+ if (enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.removeRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(null));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(null));
+
+ encryptedParams.setVisible(true);
+ if (!secretKey.isRequired()) {
+ secretKey.addRequiredLabel();
+ }
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.addRequiredLabel();
+ }
+
+ binaryParams.setVisible(false);
+ mimeType.setModelObject(null);
+ mimeType.setChoices(null);
+ schema.setValidatorClass(null);
} else if (AttrSchemaType.Binary.ordinal() == typeOrdinal) {
- secretKey.setVisible(false);
- cipherAlgorithm.setVisible(false);
- mimeType.setVisible(true);
+ conversionParams.setVisible(false);
+ conversionPattern.setModelObject(null);
+
+ enumParams.setVisible(false);
+ if (enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.removeRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(null));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(null));
+
+ encryptedParams.setVisible(false);
+ if (secretKey.isRequired()) {
+ secretKey.removeRequiredLabel();
+ }
+ secretKey.setModelObject(null);
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.removeRequiredLabel();
+ }
+ cipherAlgorithm.setModelObject(null);
+
+ binaryParams.setVisible(true);
mimeType.setChoices(MIME_TYPES_LOADER.getMimeTypes());
+ schema.setValidatorClass("org.apache.syncope.core.persistence.jpa.attrvalue.validation.BinaryValidator");
+ } else {
+ conversionParams.setVisible(false);
+ conversionPattern.setModelObject(null);
+
+ enumParams.setVisible(false);
+ if (enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.removeRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(null));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(null));
+
+ encryptedParams.setVisible(false);
+ if (secretKey.isRequired()) {
+ secretKey.removeRequiredLabel();
+ }
+ secretKey.setModelObject(null);
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.removeRequiredLabel();
+ }
+ cipherAlgorithm.setModelObject(null);
+
+ binaryParams.setVisible(false);
+ mimeType.setModelObject(null);
+ mimeType.setChoices(null);
+ schema.setValidatorClass(null);
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/48bb5bfa/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
index 3788b64..53b2fc1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
@@ -36,7 +36,6 @@ import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPan
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
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.common.lib.to.SchemaTO;
import org.apache.syncope.common.lib.to.PlainSchemaTO;
import org.apache.syncope.common.lib.types.AttrSchemaType;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
@@ -77,23 +76,19 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
type.setChoices(Arrays.asList(AttrSchemaType.values()));
type.setEnabled(schemaTO == null || schemaTO.getKey() == null || schemaTO.getKey().isEmpty());
type.addRequiredLabel();
-
schemaForm.add(type);
// long, double, date
final AjaxTextFieldPanel conversionPattern = new AjaxTextFieldPanel("conversionPattern",
getString("conversionPattern"), new PropertyModel<String>(schemaTO, "conversionPattern"));
-
schemaForm.add(conversionPattern);
final WebMarkupContainer conversionParams = new WebMarkupContainer("conversionParams");
conversionParams.setOutputMarkupPlaceholderTag(true);
conversionParams.add(conversionPattern);
-
schemaForm.add(conversionParams);
final WebMarkupContainer typeParams = new WebMarkupContainer("typeParams");
-
typeParams.setOutputMarkupPlaceholderTag(true);
// enum
@@ -233,8 +228,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
target.add(typeParams);
target.add(validatorClass);
}
- }
- );
+ });
IModel<List<String>> validatorsList = new LoadableDetachableModel<List<String>>() {
@@ -294,7 +288,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
}
- private void showHide(final SchemaTO schema, final AjaxDropDownChoicePanel<AttrSchemaType> type,
+ private void showHide(final PlainSchemaTO schema, final AjaxDropDownChoicePanel<AttrSchemaType> type,
final WebMarkupContainer conversionParams, final AjaxTextFieldPanel conversionPattern,
final WebMarkupContainer enumParams, final AjaxTextFieldPanel enumerationValuesPanel,
final MultiFieldPanel<String> enumerationValues, final MultiFieldPanel<String> enumerationKeys,
@@ -330,7 +324,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
mimeType.setModelObject(null);
mimeType.setChoices(null);
- PlainSchemaTO.class.cast(schema).setValidatorClass(null);
+ schema.setValidatorClass(null);
} else if (AttrSchemaType.Enum.ordinal() == typeOrdinal) {
conversionParams.setVisible(false);
conversionPattern.setModelObject(null);
@@ -339,10 +333,8 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
if (!enumerationValuesPanel.isRequired()) {
enumerationValuesPanel.addRequiredLabel();
}
- enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(((PlainSchemaTO) schema).
- getEnumerationValues()));
- enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(((PlainSchemaTO) schema).
- getEnumerationKeys()));
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(schema.getEnumerationValues()));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(schema.getEnumerationKeys()));
encryptedParams.setVisible(false);
if (secretKey.isRequired()) {
@@ -358,7 +350,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
mimeType.setModelObject(null);
mimeType.setChoices(null);
- PlainSchemaTO.class.cast(schema).setValidatorClass(null);
+ schema.setValidatorClass(null);
} else if (AttrSchemaType.Encrypted.ordinal() == typeOrdinal) {
conversionParams.setVisible(false);
conversionPattern.setModelObject(null);
@@ -382,7 +374,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
mimeType.setModelObject(null);
mimeType.setChoices(null);
- PlainSchemaTO.class.cast(schema).setValidatorClass(null);
+ schema.setValidatorClass(null);
} else if (AttrSchemaType.Binary.ordinal() == typeOrdinal) {
conversionParams.setVisible(false);
conversionPattern.setModelObject(null);
@@ -407,8 +399,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
binaryParams.setVisible(true);
mimeType.setChoices(MIME_TYPES_LOADER.getMimeTypes());
- PlainSchemaTO.class.cast(schema).
- setValidatorClass("org.apache.syncope.core.persistence.jpa.attrvalue.validation.BinaryValidator");
+ schema.setValidatorClass("org.apache.syncope.core.persistence.jpa.attrvalue.validation.BinaryValidator");
} else {
conversionParams.setVisible(false);
conversionPattern.setModelObject(null);
@@ -434,7 +425,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
mimeType.setModelObject(null);
mimeType.setChoices(null);
- PlainSchemaTO.class.cast(schema).setValidatorClass(null);
+ schema.setValidatorClass(null);
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/48bb5bfa/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html
index 1f25c57..0bf5388 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html
@@ -20,11 +20,28 @@ under the License.
<wicket:panel>
<div wicket:id="content">
<span wicket:id="type">[type]</span>
- <span wicket:id="values">[values]</span>
- <span wicket:id="panel">[panel]</span>
- <span wicket:id="mimeType">[mimeType]</span>
- <span wicket:id="secretKey">[secretKey]</span>
- <span wicket:id="cipherAlgorithm">[cipherAlgorithm]</span>
+
+ <div wicket:id="conversionParams">
+ <span wicket:id="conversionPattern">[conversionPattern]</span>
+ </div>
+
+ <div wicket:id="typeParams">
+ <div wicket:id="enumParams">
+ <span wicket:id="enumerationValues">[enumerationValues]</span>
+ <span wicket:id="enumerationKeys">[enumerationKeys]</span>
+ </div>
+ <div wicket:id="encryptedParams">
+ <span wicket:id="secretKey">[secretKey]</span>
+ <span wicket:id="cipherAlgorithm">[cipherAlgorithm]</span>
+ </div>
+ <div wicket:id="binaryParams">
+ <span wicket:id="mimeType">[mimeType]</span>
+ </div>
+ </div>
+
+ <span wicket:id="validatorClass">[validatorClass]</span>
+
+ <span wicket:id="multivalue">[multivalue]</span>
</div>
</wicket:panel>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/48bb5bfa/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties
index 75805fc..d9ce6ce 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties
@@ -15,6 +15,12 @@
# specific language governing permissions and limitations
# under the License.
type=Schema type
-values=Values
+required_alert=All form fields are required.
+enumerationValues= Enumeration values
+enumerationKeys= Enumeration labels
multivalue=Multivalue
-mandatoryCondition=Mandatory
+validatorClass=Validator class
+conversionPattern=Conversion pattern
+secretKey=Secret key
+cipherAlgorithm=Cipher algorithm
+mimeType=MIME Type
http://git-wip-us.apache.org/repos/asf/syncope/blob/48bb5bfa/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties
index 1f57d33..b1ec68a 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties
@@ -15,6 +15,12 @@
# specific language governing permissions and limitations
# under the License.
type=Tipo di schema
-values=Valori
+required_alert=Tutti i campi sono richiesti
+enumerationValues= Valori enumeration
+enumerationKeys= Label enumeration
multivalue=Multivalore
-mandatoryCondition=Obbligatorio
+validatorClass=Validatore
+conversionPattern=Conversion pattern
+secretKey=Chiave segreta
+cipherAlgorithm=Algoritmo di cifratura
+mimeType=MIME Type
http://git-wip-us.apache.org/repos/asf/syncope/blob/48bb5bfa/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties
index 11bcf52..046bef6 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties
@@ -15,6 +15,12 @@
# specific language governing permissions and limitations
# under the License.
type=\u30b9\u30ad\u30fc\u30de\u30bf\u30a4\u30d7
-values=\u5024
+required_alert=\u3059\u3079\u3066\u306e\u30d5\u30a9\u30fc\u30e0\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u5fc5\u9808\u3067\u3059\u3002
+enumerationValues= \u5217\u6319\u5024
+enumerationKeys= \u5217\u6319\u30e9\u30d9\u30eb
multivalue=\u8907\u6570\u5024
-mandatoryCondition=\u5fc5\u9808
+validatorClass=Validator class
+conversionPattern=\u5909\u63db\u30d1\u30bf\u30fc\u30f3
+secretKey=\u79d8\u5bc6\u9375
+cipherAlgorithm=\u6697\u53f7\u5316\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0
+mimeType=MIME \u30bf\u30a4\u30d7
http://git-wip-us.apache.org/repos/asf/syncope/blob/48bb5bfa/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties
index 0f5de79..84bb9e3 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties
@@ -15,6 +15,12 @@
# specific language governing permissions and limitations
# under the License.
type=Tipo de esquema
-values=Valores
-multivalue=Multi-valorizados
-mandatoryCondition=Obrigat\u00f3rio
+required_alert=Todos os campos s\u00e3o obrigat\u00f3rios
+enumerationValues= Valores enumerados
+enumerationKeys= R\u00f3tulos de enumera\u00e7\u00e3o
+multivalue=Multivalorado
+validatorClass=Classe de Valida\u00e7\u00e3o
+conversionPattern=Padr\u00e3o de Convers\u00e3o
+secretKey=Chave secreta
+cipherAlgorithm=Algoritmo de criptografia
+mimeType=MIME Type
http://git-wip-us.apache.org/repos/asf/syncope/blob/48bb5bfa/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties
index 0bbbc65..ffd5fa3 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties
@@ -14,11 +14,13 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-# type=Тип схемы
type=\u0422\u0438\u043f \u0441\u0445\u0435\u043c\u044b
-# values=Значения
-values=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f
-# multivalue=Множественные значения
+required_alert=\u0412\u0441\u0435 \u043f\u043e\u043b\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.
+enumerationValues=\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439
+enumerationKeys=\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439
multivalue=\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f
-# mandatoryCondition=Обязательный
-mandatoryCondition=\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439
+validatorClass=\u041a\u043b\u0430\u0441\u0441 \u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u0430
+conversionPattern=\u0428\u0430\u0431\u043b\u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f
+secretKey=\u041a\u043b\u044e\u0447 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f
+cipherAlgorithm=\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f
+mimeType=\u0422\u0438\u043f MIME
[2/2] syncope git commit: [SYNCOPE-1269] Aligning conf param create
with PlainSchema create
Posted by il...@apache.org.
[SYNCOPE-1269] Aligning conf param create with PlainSchema create
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ccca7072
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ccca7072
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ccca7072
Branch: refs/heads/master
Commit: ccca7072caaa538c28818195e6d744fc61ac1a6e
Parents: 691693c
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Feb 22 17:24:01 2018 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Feb 22 17:50:23 2018 +0100
----------------------------------------------------------------------
.../ParametersCreateWizardSchemaStep.java | 316 ++++++++++++++++---
.../console/panels/PlainSchemaDetails.java | 26 +-
.../ParametersCreateWizardSchemaStep.html | 27 +-
.../ParametersCreateWizardSchemaStep.properties | 10 +-
...rametersCreateWizardSchemaStep_it.properties | 10 +-
...rametersCreateWizardSchemaStep_ja.properties | 10 +-
...etersCreateWizardSchemaStep_pt_BR.properties | 12 +-
...rametersCreateWizardSchemaStep_ru.properties | 14 +-
8 files changed, 341 insertions(+), 84 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/ccca7072/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java
index a0b0d7c..4eed5ad 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.java
@@ -20,22 +20,30 @@ package org.apache.syncope.client.console.panels;
import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleApplication;
+import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.commons.PropertyList;
import org.apache.syncope.client.console.init.ConsoleInitializer;
import org.apache.syncope.client.console.init.MIMETypesLoader;
+import org.apache.syncope.client.console.rest.ImplementationRestClient;
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.AjaxTextFieldPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.PlainSchemaTO;
import org.apache.syncope.common.lib.types.AttrSchemaType;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
+import org.apache.syncope.common.lib.types.ImplementationType;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.wizard.WizardStep;
import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
@@ -46,6 +54,14 @@ public class ParametersCreateWizardSchemaStep extends WizardStep {
private static final MIMETypesLoader MIME_TYPES_LOADER = (MIMETypesLoader) SyncopeConsoleApplication.get().
getServletContext().getAttribute(ConsoleInitializer.MIMETYPES_LOADER);
+ private final ImplementationRestClient implRestClient = new ImplementationRestClient();
+
+ private final MultiFieldPanel<String> enumerationValues;
+
+ private final MultiFieldPanel<String> enumerationKeys;
+
+ private final AjaxDropDownChoicePanel<String> validator;
+
public ParametersCreateWizardSchemaStep(final ParametersCreateWizardPanel.ParametersForm modelObject) {
modelObject.getPlainSchemaTO().setMandatoryCondition("false");
@@ -53,15 +69,34 @@ public class ParametersCreateWizardSchemaStep extends WizardStep {
this.setOutputMarkupId(true);
content.setOutputMarkupId(true);
add(content);
+
final AjaxDropDownChoicePanel<AttrSchemaType> type = new AjaxDropDownChoicePanel<>(
"type", getString("type"), new PropertyModel<>(modelObject.getPlainSchemaTO(), "type"));
type.setChoices(Arrays.asList(AttrSchemaType.values()));
content.add(type);
- final MultiFieldPanel<String> panel = new MultiFieldPanel.Builder<String>(
+ // long, double, date
+ final AjaxTextFieldPanel conversionPattern = new AjaxTextFieldPanel("conversionPattern",
+ getString("conversionPattern"), new PropertyModel<String>(
+ modelObject.getPlainSchemaTO(), "conversionPattern"));
+ content.add(conversionPattern);
+
+ final WebMarkupContainer conversionParams = new WebMarkupContainer("conversionParams");
+ conversionParams.setOutputMarkupPlaceholderTag(true);
+ conversionParams.add(conversionPattern);
+ content.add(conversionParams);
+
+ final WebMarkupContainer typeParams = new WebMarkupContainer("typeParams");
+ typeParams.setOutputMarkupPlaceholderTag(true);
+
+ // enum
+ final AjaxTextFieldPanel enumerationValuesPanel = new AjaxTextFieldPanel("panel", "enumerationValues",
+ new Model<>(null));
+
+ enumerationValues = new MultiFieldPanel.Builder<String>(
new PropertyModel<List<String>>(modelObject.getPlainSchemaTO(), "enumerationValues") {
- private static final long serialVersionUID = 3985215199105092649L;
+ private static final long serialVersionUID = -4953564762272833993L;
@Override
public PropertyList<PlainSchemaTO> getObject() {
@@ -92,76 +127,263 @@ public class ParametersCreateWizardSchemaStep extends WizardStep {
return StringUtils.EMPTY;
}
- }.build("values", getString("values"), new AjaxTextFieldPanel(
- "panel", getString("values"), new Model<String>(), false));
+ }.build(
+ "enumerationValues",
+ "enumerationValues",
+ enumerationValuesPanel);
- panel.setVisible(false);
- content.add(panel);
+ enumerationKeys = new MultiFieldPanel.Builder<String>(
+ new PropertyModel<List<String>>(modelObject.getPlainSchemaTO(), "enumerationKeys") {
- //binary
- final AjaxTextFieldPanel mimeType = new AjaxTextFieldPanel("mimeType",
- "MIME-Type", new PropertyModel<>(modelObject.getPlainSchemaTO(), "mimeType"));
- mimeType.setVisible(false);
- content.add(mimeType);
+ private static final long serialVersionUID = -4953564762272833993L;
- //encrypted
+ @Override
+ public PropertyList<PlainSchemaTO> getObject() {
+ return new PropertyList<PlainSchemaTO>() {
+
+ @Override
+ public String getValues() {
+ return modelObject.getPlainSchemaTO().getEnumerationKeys();
+ }
+
+ @Override
+ public void setValues(final List<String> list) {
+ modelObject.getPlainSchemaTO().setEnumerationKeys(PropertyList.getEnumValuesAsString(list));
+ }
+ };
+ }
+
+ @Override
+ public void setObject(final List<String> object) {
+ modelObject.getPlainSchemaTO().setEnumerationKeys(PropertyList.getEnumValuesAsString(object));
+ }
+ }) {
+
+ private static final long serialVersionUID = -8752965211744734798L;
+
+ @Override
+ protected String newModelObject() {
+ return StringUtils.EMPTY;
+ }
+
+ }.build(
+ "enumerationKeys",
+ "enumerationKeys",
+ new AjaxTextFieldPanel("panel", "enumerationKeys", new Model<String>()));
+
+ final WebMarkupContainer enumParams = new WebMarkupContainer("enumParams");
+ enumParams.setOutputMarkupPlaceholderTag(true);
+ enumParams.add(enumerationValues);
+ enumParams.add(enumerationKeys);
+ typeParams.add(enumParams);
+
+ // encrypted
final AjaxTextFieldPanel secretKey = new AjaxTextFieldPanel("secretKey",
- "Secret-key", new PropertyModel<>(modelObject.getPlainSchemaTO(), "secretKey"));
+ getString("secretKey"), new PropertyModel<>(modelObject.getPlainSchemaTO(), "secretKey"));
final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm = new AjaxDropDownChoicePanel<>(
- "cipherAlgorithm", "Cipher-algorithm",
+ "cipherAlgorithm", getString("cipherAlgorithm"),
new PropertyModel<>(modelObject.getPlainSchemaTO(), "cipherAlgorithm"));
cipherAlgorithm.setChoices(Arrays.asList(CipherAlgorithm.values()));
- secretKey.setVisible(false);
- cipherAlgorithm.setVisible(false);
- content.add(secretKey);
- content.add(cipherAlgorithm);
- showHide(type, secretKey, cipherAlgorithm, mimeType);
+ final WebMarkupContainer encryptedParams = new WebMarkupContainer("encryptedParams");
+ encryptedParams.setOutputMarkupPlaceholderTag(true);
+ encryptedParams.add(secretKey);
+ encryptedParams.add(cipherAlgorithm);
+
+ typeParams.add(encryptedParams);
+
+ // binary
+ final AjaxTextFieldPanel mimeType = new AjaxTextFieldPanel("mimeType",
+ getString("mimeType"), new PropertyModel<>(modelObject.getPlainSchemaTO(), "mimeType"));
- type.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior("onchange") {
+ final WebMarkupContainer binaryParams = new WebMarkupContainer("binaryParams");
+ binaryParams.setOutputMarkupPlaceholderTag(true);
+ binaryParams.add(mimeType);
+ typeParams.add(binaryParams);
+ content.add(typeParams);
+
+ // show or hide
+ showHide(modelObject.getPlainSchemaTO(), type,
+ conversionParams, conversionPattern,
+ enumParams, enumerationValuesPanel, enumerationValues, enumerationKeys,
+ encryptedParams, secretKey, cipherAlgorithm,
+ binaryParams, mimeType);
+
+ type.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@Override
protected void onUpdate(final AjaxRequestTarget target) {
- if ("enum".equalsIgnoreCase(type.getField().getModelObject().name())) {
- panel.setVisible(true);
- content.add(panel);
- target.add(content);
- } else {
- panel.setVisible(false);
- content.add(panel);
- target.add(content);
- }
- ParametersCreateWizardSchemaStep.this.showHide(type, secretKey, cipherAlgorithm, mimeType);
+ ParametersCreateWizardSchemaStep.this.showHide(modelObject.getPlainSchemaTO(), type,
+ conversionParams, conversionPattern,
+ enumParams, enumerationValuesPanel, enumerationValues, enumerationKeys,
+ encryptedParams, secretKey, cipherAlgorithm,
+ binaryParams, mimeType);
+ target.add(conversionParams);
+ target.add(typeParams);
+ target.add(validator);
}
});
- final AjaxCheckBoxPanel multiValue = new AjaxCheckBoxPanel("panel", getString("multivalue"),
- new PropertyModel<>(modelObject.getPlainSchemaTO(), "multivalue"), false);
- content.add(multiValue);
+ IModel<List<String>> validators = new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<String> load() {
+ return implRestClient.list(ImplementationType.VALIDATOR).stream().
+ map(EntityTO::getKey).sorted().collect(Collectors.toList());
+ }
+ };
+ validator = new AjaxDropDownChoicePanel<>("validator",
+ getString("validator"), new PropertyModel<>(modelObject.getPlainSchemaTO(), "validator"));
+ validator.setOutputMarkupId(true);
+ ((DropDownChoice) validator.getField()).setNullValid(true);
+ validator.setChoices(validators.getObject());
+ content.add(validator);
+
+ content.add(new AjaxCheckBoxPanel("multivalue", getString("multivalue"),
+ new PropertyModel<>(modelObject.getPlainSchemaTO(), "multivalue")));
}
- private void showHide(
- final AjaxDropDownChoicePanel<AttrSchemaType> type,
- final AjaxTextFieldPanel secretKey,
- final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm,
- final AjaxTextFieldPanel mimeType) {
+ private void showHide(final PlainSchemaTO schema, final AjaxDropDownChoicePanel<AttrSchemaType> type,
+ final WebMarkupContainer conversionParams, final AjaxTextFieldPanel conversionPattern,
+ final WebMarkupContainer enumParams, final AjaxTextFieldPanel enumerationValuesPanel,
+ final MultiFieldPanel<String> enumerationValues, final MultiFieldPanel<String> enumerationKeys,
+ final WebMarkupContainer encryptedParams,
+ final AjaxTextFieldPanel secretKey, final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm,
+ final WebMarkupContainer binaryParams, final AjaxTextFieldPanel mimeType) {
final int typeOrdinal = Integer.parseInt(type.getField().getValue());
- if (AttrSchemaType.Encrypted.ordinal() == typeOrdinal) {
- mimeType.setVisible(false);
- secretKey.setVisible(true);
- secretKey.addRequiredLabel();
- cipherAlgorithm.setVisible(true);
- cipherAlgorithm.addRequiredLabel();
+ if (AttrSchemaType.Long.ordinal() == typeOrdinal
+ || AttrSchemaType.Double.ordinal() == typeOrdinal
+ || AttrSchemaType.Date.ordinal() == typeOrdinal) {
+
+ conversionParams.setVisible(true);
+
+ enumParams.setVisible(false);
+ if (enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.removeRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(null));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(null));
+
+ encryptedParams.setVisible(false);
+ if (secretKey.isRequired()) {
+ secretKey.removeRequiredLabel();
+ }
+ secretKey.setModelObject(null);
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.removeRequiredLabel();
+ }
+ cipherAlgorithm.setModelObject(null);
+
+ binaryParams.setVisible(false);
+ mimeType.setModelObject(null);
+ mimeType.setChoices(null);
+
+ schema.setValidator(null);
+ } else if (AttrSchemaType.Enum.ordinal() == typeOrdinal) {
+ conversionParams.setVisible(false);
+ conversionPattern.setModelObject(null);
+
+ enumParams.setVisible(true);
+ if (!enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.addRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(schema.getEnumerationValues()));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(schema.getEnumerationKeys()));
+
+ encryptedParams.setVisible(false);
+ if (secretKey.isRequired()) {
+ secretKey.removeRequiredLabel();
+ }
+ secretKey.setModelObject(null);
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.removeRequiredLabel();
+ }
+ cipherAlgorithm.setModelObject(null);
+
+ binaryParams.setVisible(false);
+ mimeType.setModelObject(null);
+ mimeType.setChoices(null);
+
+ schema.setValidator(null);
+ } else if (AttrSchemaType.Encrypted.ordinal() == typeOrdinal) {
+ conversionParams.setVisible(false);
+ conversionPattern.setModelObject(null);
+
+ enumParams.setVisible(false);
+ if (enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.removeRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(null));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(null));
+
+ encryptedParams.setVisible(true);
+ if (!secretKey.isRequired()) {
+ secretKey.addRequiredLabel();
+ }
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.addRequiredLabel();
+ }
+
+ binaryParams.setVisible(false);
+ mimeType.setModelObject(null);
+ mimeType.setChoices(null);
+ schema.setValidator(null);
} else if (AttrSchemaType.Binary.ordinal() == typeOrdinal) {
- secretKey.setVisible(false);
- cipherAlgorithm.setVisible(false);
- mimeType.setVisible(true);
+ conversionParams.setVisible(false);
+ conversionPattern.setModelObject(null);
+
+ enumParams.setVisible(false);
+ if (enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.removeRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(null));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(null));
+
+ encryptedParams.setVisible(false);
+ if (secretKey.isRequired()) {
+ secretKey.removeRequiredLabel();
+ }
+ secretKey.setModelObject(null);
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.removeRequiredLabel();
+ }
+ cipherAlgorithm.setModelObject(null);
+
+ binaryParams.setVisible(true);
mimeType.setChoices(MIME_TYPES_LOADER.getMimeTypes());
+ schema.setValidator("BinaryValidator");
+ } else {
+ conversionParams.setVisible(false);
+ conversionPattern.setModelObject(null);
+
+ enumParams.setVisible(false);
+ if (enumerationValuesPanel.isRequired()) {
+ enumerationValuesPanel.removeRequiredLabel();
+ }
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(null));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(null));
+
+ encryptedParams.setVisible(false);
+ if (secretKey.isRequired()) {
+ secretKey.removeRequiredLabel();
+ }
+ secretKey.setModelObject(null);
+ if (cipherAlgorithm.isRequired()) {
+ cipherAlgorithm.removeRequiredLabel();
+ }
+ cipherAlgorithm.setModelObject(null);
+
+ binaryParams.setVisible(false);
+ mimeType.setModelObject(null);
+ mimeType.setChoices(null);
+ schema.setValidator(null);
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ccca7072/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
index aefc565..e62f289 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
@@ -38,7 +38,6 @@ import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownCho
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.common.lib.to.EntityTO;
-import org.apache.syncope.common.lib.to.SchemaTO;
import org.apache.syncope.common.lib.to.PlainSchemaTO;
import org.apache.syncope.common.lib.types.AttrSchemaType;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
@@ -82,23 +81,19 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
type.setChoices(Arrays.asList(AttrSchemaType.values()));
type.setEnabled(schemaTO == null || schemaTO.getKey() == null || schemaTO.getKey().isEmpty());
type.addRequiredLabel();
-
schemaForm.add(type);
// long, double, date
final AjaxTextFieldPanel conversionPattern = new AjaxTextFieldPanel("conversionPattern",
getString("conversionPattern"), new PropertyModel<>(schemaTO, "conversionPattern"));
-
schemaForm.add(conversionPattern);
final WebMarkupContainer conversionParams = new WebMarkupContainer("conversionParams");
conversionParams.setOutputMarkupPlaceholderTag(true);
conversionParams.add(conversionPattern);
-
schemaForm.add(conversionParams);
final WebMarkupContainer typeParams = new WebMarkupContainer("typeParams");
-
typeParams.setOutputMarkupPlaceholderTag(true);
// enum
@@ -238,8 +233,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
target.add(typeParams);
target.add(validator);
}
- }
- );
+ });
IModel<List<String>> validators = new LoadableDetachableModel<List<String>>() {
@@ -300,7 +294,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
}
- private void showHide(final SchemaTO schema, final AjaxDropDownChoicePanel<AttrSchemaType> type,
+ private void showHide(final PlainSchemaTO schema, final AjaxDropDownChoicePanel<AttrSchemaType> type,
final WebMarkupContainer conversionParams, final AjaxTextFieldPanel conversionPattern,
final WebMarkupContainer enumParams, final AjaxTextFieldPanel enumerationValuesPanel,
final MultiFieldPanel<String> enumerationValues, final MultiFieldPanel<String> enumerationKeys,
@@ -336,7 +330,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
mimeType.setModelObject(null);
mimeType.setChoices(null);
- PlainSchemaTO.class.cast(schema).setValidator(null);
+ schema.setValidator(null);
} else if (AttrSchemaType.Enum.ordinal() == typeOrdinal) {
conversionParams.setVisible(false);
conversionPattern.setModelObject(null);
@@ -345,10 +339,8 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
if (!enumerationValuesPanel.isRequired()) {
enumerationValuesPanel.addRequiredLabel();
}
- enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(((PlainSchemaTO) schema).
- getEnumerationValues()));
- enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(((PlainSchemaTO) schema).
- getEnumerationKeys()));
+ enumerationValues.setModelObject(PropertyList.getEnumValuesAsList(schema.getEnumerationValues()));
+ enumerationKeys.setModelObject(PropertyList.getEnumValuesAsList(schema.getEnumerationKeys()));
encryptedParams.setVisible(false);
if (secretKey.isRequired()) {
@@ -364,7 +356,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
mimeType.setModelObject(null);
mimeType.setChoices(null);
- PlainSchemaTO.class.cast(schema).setValidator(null);
+ schema.setValidator(null);
} else if (AttrSchemaType.Encrypted.ordinal() == typeOrdinal) {
conversionParams.setVisible(false);
conversionPattern.setModelObject(null);
@@ -388,7 +380,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
mimeType.setModelObject(null);
mimeType.setChoices(null);
- PlainSchemaTO.class.cast(schema).setValidator(null);
+ schema.setValidator(null);
} else if (AttrSchemaType.Binary.ordinal() == typeOrdinal) {
conversionParams.setVisible(false);
conversionPattern.setModelObject(null);
@@ -413,7 +405,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
binaryParams.setVisible(true);
mimeType.setChoices(MIME_TYPES_LOADER.getMimeTypes());
- PlainSchemaTO.class.cast(schema).setValidator("BinaryValidator");
+ schema.setValidator("BinaryValidator");
} else {
conversionParams.setVisible(false);
conversionPattern.setModelObject(null);
@@ -439,7 +431,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
mimeType.setModelObject(null);
mimeType.setChoices(null);
- PlainSchemaTO.class.cast(schema).setValidator(null);
+ schema.setValidator(null);
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ccca7072/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html
index 1f25c57..a18efd1 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.html
@@ -20,11 +20,28 @@ under the License.
<wicket:panel>
<div wicket:id="content">
<span wicket:id="type">[type]</span>
- <span wicket:id="values">[values]</span>
- <span wicket:id="panel">[panel]</span>
- <span wicket:id="mimeType">[mimeType]</span>
- <span wicket:id="secretKey">[secretKey]</span>
- <span wicket:id="cipherAlgorithm">[cipherAlgorithm]</span>
+
+ <div wicket:id="conversionParams">
+ <span wicket:id="conversionPattern">[conversionPattern]</span>
+ </div>
+
+ <div wicket:id="typeParams">
+ <div wicket:id="enumParams">
+ <span wicket:id="enumerationValues">[enumerationValues]</span>
+ <span wicket:id="enumerationKeys">[enumerationKeys]</span>
+ </div>
+ <div wicket:id="encryptedParams">
+ <span wicket:id="secretKey">[secretKey]</span>
+ <span wicket:id="cipherAlgorithm">[cipherAlgorithm]</span>
+ </div>
+ <div wicket:id="binaryParams">
+ <span wicket:id="mimeType">[mimeType]</span>
+ </div>
+ </div>
+
+ <span wicket:id="validator">[validator]</span>
+
+ <span wicket:id="multivalue">[multivalue]</span>
</div>
</wicket:panel>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/ccca7072/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties
index 75805fc..c778ac4 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep.properties
@@ -15,6 +15,12 @@
# specific language governing permissions and limitations
# under the License.
type=Schema type
-values=Values
+required_alert=All form fields are required.
+enumerationValues= Enumeration values
+enumerationKeys= Enumeration labels
multivalue=Multivalue
-mandatoryCondition=Mandatory
+validator=Validator
+conversionPattern=Conversion pattern
+secretKey=Secret key
+cipherAlgorithm=Cipher algorithm
+mimeType=MIME Type
http://git-wip-us.apache.org/repos/asf/syncope/blob/ccca7072/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties
index 1f57d33..b76d460 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_it.properties
@@ -15,6 +15,12 @@
# specific language governing permissions and limitations
# under the License.
type=Tipo di schema
-values=Valori
+required_alert=Tutti i campi sono richiesti
+enumerationValues= Valori enumeration
+enumerationKeys= Label enumeration
multivalue=Multivalore
-mandatoryCondition=Obbligatorio
+validator=Validatore
+conversionPattern=Conversion pattern
+secretKey=Chiave segreta
+cipherAlgorithm=Algoritmo di cifratura
+mimeType=MIME Type
http://git-wip-us.apache.org/repos/asf/syncope/blob/ccca7072/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties
index 11bcf52..a7467ae 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ja.properties
@@ -15,6 +15,12 @@
# specific language governing permissions and limitations
# under the License.
type=\u30b9\u30ad\u30fc\u30de\u30bf\u30a4\u30d7
-values=\u5024
+required_alert=\u3059\u3079\u3066\u306e\u30d5\u30a9\u30fc\u30e0\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u5fc5\u9808\u3067\u3059\u3002
+enumerationValues= \u5217\u6319\u5024
+enumerationKeys= \u5217\u6319\u30e9\u30d9\u30eb
multivalue=\u8907\u6570\u5024
-mandatoryCondition=\u5fc5\u9808
+validator=Validator
+conversionPattern=\u5909\u63db\u30d1\u30bf\u30fc\u30f3
+secretKey=\u79d8\u5bc6\u9375
+cipherAlgorithm=\u6697\u53f7\u5316\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0
+mimeType=MIME \u30bf\u30a4\u30d7
http://git-wip-us.apache.org/repos/asf/syncope/blob/ccca7072/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties
index 0f5de79..cfd7c93 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_pt_BR.properties
@@ -15,6 +15,12 @@
# specific language governing permissions and limitations
# under the License.
type=Tipo de esquema
-values=Valores
-multivalue=Multi-valorizados
-mandatoryCondition=Obrigat\u00f3rio
+required_alert=Todos os campos s\u00e3o obrigat\u00f3rios
+enumerationValues= Valores enumerados
+enumerationKeys= R\u00f3tulos de enumera\u00e7\u00e3o
+multivalue=Multivalorado
+validator=Valida\u00e7\u00e3o
+conversionPattern=Padr\u00e3o de Convers\u00e3o
+secretKey=Chave secreta
+cipherAlgorithm=Algoritmo de criptografia
+mimeType=MIME Type
http://git-wip-us.apache.org/repos/asf/syncope/blob/ccca7072/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties
index 0bbbc65..b48bb24 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ParametersCreateWizardSchemaStep_ru.properties
@@ -14,11 +14,13 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-# type=Тип схемы
type=\u0422\u0438\u043f \u0441\u0445\u0435\u043c\u044b
-# values=Значения
-values=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f
-# multivalue=Множественные значения
+required_alert=\u0412\u0441\u0435 \u043f\u043e\u043b\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.
+enumerationValues=\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439
+enumerationKeys=\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439
multivalue=\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f
-# mandatoryCondition=Обязательный
-mandatoryCondition=\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439
+validator=\u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u0430
+conversionPattern=\u0428\u0430\u0431\u043b\u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f
+secretKey=\u041a\u043b\u044e\u0447 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f
+cipherAlgorithm=\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f
+mimeType=\u0422\u0438\u043f MIME