diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java index f8f86b7034..44f49d8d86 100644 --- a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java +++ b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java @@ -376,7 +376,7 @@ protected List> getColumns() { authProfileModal.header(new Model<>(getString("u2fRegisteredDevices", model))); authProfileModal.show(true); } - }, ActionLink.ActionType.FO_EDIT, AMEntitlement.AUTH_PROFILE_UPDATE); + }, ActionLink.ActionType.DEPROVISION, AMEntitlement.AUTH_PROFILE_UPDATE); panel.add(new ActionLink<>() { diff --git a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.properties b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.properties index 56627ae0a4..49b21ba589 100644 --- a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.properties +++ b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.properties @@ -37,8 +37,8 @@ secretKey=Secret Key validationCode=Validation Code scratchCodes=Scratch Codes record=Record -fo_edit.class=fab fa-usb -fo_edit.title=u2f Devices +deprovision.class=fab fa-usb +deprovision.title=u2f Devices identifier=Identifier json=JSON html.class=fas fa-at diff --git a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_fr_CA.properties b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_fr_CA.properties index 495d278dbc..5e1a601fa4 100644 --- a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_fr_CA.properties +++ b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_fr_CA.properties @@ -37,8 +37,8 @@ secretKey=Secret Key validationCode=Validation Code scratchCodes=Scratch Codes record=Record -fo_edit.class=fab fa-usb -fo_edit.title=u2f Devices +deprovision.class=fab fa-usb +deprovision.title=u2f Devices identifier=Identifier json=JSON html.class=fas fa-at diff --git a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_it.properties b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_it.properties index cc0d9a5ce7..eeea47d4da 100644 --- a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_it.properties +++ b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_it.properties @@ -37,8 +37,8 @@ secretKey=Chiave Segreta validationCode=Codice Validazione scratchCodes=Codici Scratch record=Record -fo_edit.class=fab fa-usb -fo_edit.title=dispositivi u2f +deprovision.class=fab fa-usb +deprovision.title=dispositivi u2f identifier=Identificativo json=JSON html.class=fas fa-at diff --git a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ja.properties b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ja.properties index f3d1ac236c..a7a4938210 100644 --- a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ja.properties +++ b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ja.properties @@ -37,8 +37,8 @@ secretKey=Secret Key validationCode=Validation Code scratchCodes=Scratch Codes record=Record -fo_edit.class=fab fa-usb -fo_edit.title=u2f Devices +deprovision.class=fab fa-usb +deprovision.title=u2f Devices identifier=Identifier json=JSON html.class=fas fa-at diff --git a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_pt_BR.properties b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_pt_BR.properties index e227e6f900..623f5481b5 100644 --- a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_pt_BR.properties +++ b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_pt_BR.properties @@ -37,8 +37,8 @@ secretKey=Secret Key validationCode=Validation Code scratchCodes=Scratch Codes record=Record -fo_edit.class=fab fa-usb -fo_edit.title=u2f Devices +deprovision.class=fab fa-usb +deprovision.title=u2f Devices identifier=Identifier json=JSON html.class=fas fa-at diff --git a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ru.properties b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ru.properties index a60b6d6825..e11f42941c 100644 --- a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ru.properties +++ b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ru.properties @@ -38,8 +38,8 @@ secretKey=Secret Key validationCode=Validation Code scratchCodes=Scratch Codes record=Record -fo_edit.class=fab fa-usb -fo_edit.title=u2f Devices +deprovision.class=fab fa-usb +deprovision.title=u2f Devices identifier=Identifier json=JSON html.class=fas fa-at diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.java index 04c20391ae..1c37260680 100644 --- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.java +++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.java @@ -49,6 +49,8 @@ public final class AjaxSpinnerFieldPanel extends FieldPanel private final Options options; + private final boolean convertValuesToString; + private SpinnerBehavior behavior; private AjaxSpinnerFieldPanel( @@ -57,7 +59,8 @@ private AjaxSpinnerFieldPanel( final Class reference, final IModel model, final Options options, - final boolean enableOnChange) { + final boolean enableOnChange, + final boolean convertValuesToString) { super(id, name, model); @@ -91,6 +94,7 @@ protected void onUpdate(final AjaxRequestTarget target) { this.model = model; this.reference = reference; this.options = options; + this.convertValuesToString = convertValuesToString; } @Override @@ -125,9 +129,7 @@ public T getObject() { @Override public void setObject(final T object) { list.clear(); - if (object != null) { - list.add(object.toString()); - } + Optional.ofNullable(object).ifPresent(v -> list.add(convertValuesToString ? v.toString() : v)); } }); @@ -221,7 +223,8 @@ public void setObject(final Serializable object) { @Override public AjaxSpinnerFieldPanel clone() { - AjaxSpinnerFieldPanel panel = new AjaxSpinnerFieldPanel<>(getId(), name, reference, model, options, false); + AjaxSpinnerFieldPanel panel = new AjaxSpinnerFieldPanel<>( + getId(), name, reference, model, options, false, convertValuesToString); panel.setRequired(isRequired()); panel.setReadOnly(isReadOnly()); @@ -251,6 +254,8 @@ public static class Builder { private boolean enableOnChange = false; + private boolean convertValuesToString = true; + public Builder min(final T min) { options.set("min", min); return this; @@ -271,13 +276,19 @@ public Builder enableOnChange() { return this; } + public Builder convertValuesToString(final boolean convertValuesToString) { + this.convertValuesToString = convertValuesToString; + return this; + } + public AjaxSpinnerFieldPanel build( final String id, final String name, final Class reference, final IModel model) { - return new AjaxSpinnerFieldPanel<>(id, name, reference, model, options, enableOnChange); + return new AjaxSpinnerFieldPanel<>( + id, name, reference, model, options, enableOnChange, convertValuesToString); } } } diff --git a/client/idrepo/console/pom.xml b/client/idrepo/console/pom.xml index 991f6db052..553346408d 100644 --- a/client/idrepo/console/pom.xml +++ b/client/idrepo/console/pom.xml @@ -72,6 +72,15 @@ under the License. ${project.version} + + org.bouncycastle + bcpkix-jdk18on + + + org.bouncycastle + bcprov-jdk18on + + com.nimbusds nimbus-jose-jwt diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersModalPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersModalPanel.java index 4c6edbfafd..481c706af4 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersModalPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersModalPanel.java @@ -18,18 +18,71 @@ */ package org.apache.syncope.client.console.panels; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.json.JsonMapper; +import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal; import jakarta.ws.rs.core.MediaType; +import java.io.IOException; +import java.io.StringReader; +import java.text.ParseException; +import java.util.Base64; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParserFactory; +import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; import org.apache.syncope.client.ui.commons.wizards.AjaxWizard; import org.apache.syncope.common.keymaster.client.api.ConfParamOps; import org.apache.syncope.common.lib.to.PlainSchemaTO; import org.apache.syncope.common.lib.types.AttrSchemaType; import org.apache.wicket.PageReference; +import org.bouncycastle.util.io.pem.PemReader; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; public class ParametersModalPanel extends AbstractModalPanel { private static final long serialVersionUID = 4024126489500665435L; + private static final JsonMapper JSON_MAPPER = JsonMapper.builder().findAndAddModules().build(); + + private static final SAXParserFactory SAX_PARSER_FACTORY = SAXParserFactory.newInstance(); + + private static boolean isDate(final String value) { + try { + DateFormatUtils.ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT.parse(value); + return true; + } catch (ParseException pe) { + return false; + } + } + + private static boolean isJSON(final String value) { + try { + JSON_MAPPER.readTree(value); + return true; + } catch (JsonProcessingException jpe) { + return false; + } + } + + private static boolean isXML(final String value) { + try { + SAX_PARSER_FACTORY.newSAXParser().getXMLReader().parse(new InputSource(new StringReader(value))); + return true; + } catch (IOException | ParserConfigurationException | SAXException xmle) { + return false; + } + } + + private static boolean isPEM(final String value) { + try { + PemReader reader = new PemReader(new StringReader(value)); + return reader.readPemObject() != null; + } catch (IOException e) { + return false; + } + } + private final ParametersWizardPanel.ParametersForm form; public ParametersModalPanel( @@ -42,6 +95,8 @@ public ParametersModalPanel( super(modal, pageRef); PlainSchemaTO schema = new PlainSchemaTO(); + schema.setMultivalue(param.isMultivalue()); + schema.setMimeType(MediaType.APPLICATION_OCTET_STREAM); if (param.getSchema() != null) { if (param.isInstance(Boolean.class)) { schema.setType(AttrSchemaType.Boolean); @@ -49,14 +104,39 @@ public ParametersModalPanel( schema.setType(AttrSchemaType.Long); } else if (param.isInstance(Float.class) || param.isInstance(Double.class)) { schema.setType(AttrSchemaType.Double); - } else { - schema.setType(AttrSchemaType.String); + } else // attempt to guess type from content: otherwise, it's bare String + if (!param.getValues().isEmpty()) { + // 1. is it Date? + if (isDate(param.getValues().get(0).toString())) { + schema.setType(AttrSchemaType.Date); + } else // 2. does it look like Base64? + if (org.apache.commons.codec.binary.Base64.isBase64(param.getValues().get(0).toString())) { + String value = new String(Base64.getDecoder().decode(param.getValues().get(0).toString())); + + // 3. is it JSON? + if (isJSON(value)) { + schema.setType(AttrSchemaType.Binary); + schema.setMimeType(MediaType.APPLICATION_JSON); + } else // 4. is it XML? + if (isXML(value)) { + schema.setType(AttrSchemaType.Binary); + schema.setMimeType(MediaType.APPLICATION_XML); + } else // 5. is it PEM? + if (isPEM(value)) { + schema.setType(AttrSchemaType.Binary); + schema.setMimeType("application/x-pem-file"); + } + } } - schema.setMultivalue(param.isMultivalue()); - schema.setMimeType(MediaType.APPLICATION_OCTET_STREAM); } - form = new ParametersWizardPanel.ParametersForm(schema, param); + if (schema.getType() == AttrSchemaType.Binary) { + modal.size(Modal.Size.Extra_large); + } else { + modal.size(Modal.Size.Default); + } + + form = new ParametersWizardPanel.ParametersForm(schema, param); add(new ParametersWizardPanel(form, confParamOps, pageRef).build("parametersCreateWizardPanel", mode)); } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardAttrStep.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardAttrStep.java index 5927060f3b..ef993cdb7f 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardAttrStep.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardAttrStep.java @@ -18,7 +18,6 @@ */ package org.apache.syncope.client.console.panels; -import jakarta.ws.rs.core.MediaType; import java.util.List; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.time.DateFormatUtils; @@ -130,30 +129,31 @@ public Boolean getObject( case Long: panel = new AjaxSpinnerFieldPanel.Builder(). + convertValuesToString(false). build(id, valueHeaderName, Long.class, new Model<>()); break; case Double: panel = new AjaxSpinnerFieldPanel.Builder(). + convertValuesToString(false). build(id, valueHeaderName, Double.class, new Model<>()); break; case Binary: panel = new BinaryFieldPanel(id, valueHeaderName, new Model<>(), - MediaType.APPLICATION_OCTET_STREAM, schema.getModelObject()); + plainSchemaTO.getMimeType(), schema.getModelObject()); break; default: panel = new AjaxTextFieldPanel(id, valueHeaderName, new Model<>(), false); } + if (plainSchemaTO.isMultivalue()) { return new MultiFieldPanel.Builder<>( new PropertyModel<>(param, "values")).build(id, valueHeaderName, panel); - } else { - panel.setNewModel(param.getValues()); } - panel.setRequired("true".equalsIgnoreCase(plainSchemaTO.getMandatoryCondition())); + panel.setNewModel(param.getValues()); return panel; } } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardPanel.java index 2917c46ccb..fa19891c5c 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardPanel.java @@ -41,7 +41,7 @@ public ParametersWizardPanel( @Override protected WizardModel buildModelSteps(final ParametersForm modelObject, final WizardModel wizardModel) { - wizardModel.add(new ParametersWizardSchemaStep(modelObject)); + wizardModel.add(new ParametersWizardSchemaStep(mode, modelObject)); wizardModel.add(new ParametersWizardAttrStep(mode, modelObject)); return wizardModel; } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardSchemaStep.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardSchemaStep.java index 50fe4ce11a..cbdddc38bf 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardSchemaStep.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardSchemaStep.java @@ -21,6 +21,7 @@ import java.util.List; import org.apache.syncope.client.ui.commons.markup.html.form.AjaxCheckBoxPanel; import org.apache.syncope.client.ui.commons.markup.html.form.AjaxDropDownChoicePanel; +import org.apache.syncope.client.ui.commons.wizards.AjaxWizard; import org.apache.syncope.common.lib.types.AttrSchemaType; import org.apache.wicket.extensions.wizard.WizardStep; import org.apache.wicket.markup.html.WebMarkupContainer; @@ -30,19 +31,25 @@ public class ParametersWizardSchemaStep extends WizardStep { private static final long serialVersionUID = -7843275202297616553L; - public ParametersWizardSchemaStep(final ParametersWizardPanel.ParametersForm modelObject) { - modelObject.getSchema().setMandatoryCondition("false"); + public ParametersWizardSchemaStep( + final AjaxWizard.Mode mode, + final ParametersWizardPanel.ParametersForm modelObject) { + + setOutputMarkupId(true); WebMarkupContainer content = new WebMarkupContainer("content"); - this.setOutputMarkupId(true); - content.setOutputMarkupId(true); - add(content); + add(content.setOutputMarkupId(true)); AjaxDropDownChoicePanel type = new AjaxDropDownChoicePanel<>( "type", getString("type"), new PropertyModel<>(modelObject.getSchema(), "type")); + type.setReadOnly(mode != AjaxWizard.Mode.CREATE); type.setChoices(List.of( - AttrSchemaType.String, AttrSchemaType.Long, AttrSchemaType.Double, - AttrSchemaType.Boolean, AttrSchemaType.Date, AttrSchemaType.Binary)); + AttrSchemaType.String, + AttrSchemaType.Long, + AttrSchemaType.Double, + AttrSchemaType.Boolean, + AttrSchemaType.Date, + AttrSchemaType.Binary)); content.add(type); content.add(new AjaxCheckBoxPanel("multivalue", getString("multivalue"), diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationDataView.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationDataView.java index 8c08f87d8a..09198c2de6 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationDataView.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationDataView.java @@ -57,7 +57,6 @@ public void onSubmit(final AjaxRequestTarget target) { }; add(jsonPanel); - } private static String getJSONInfo(final PropagationTaskTO taskTO) { diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java index f87f1edc6e..44d65ab309 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java @@ -57,7 +57,6 @@ public enum ActionType { TEMPLATE("read"), EDIT("read"), TYPE_EXTENSIONS("read"), - FO_EDIT("read"), HTML("read"), TEXT("read"), COMPOSE("update"), diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.properties index 673ade0437..b12aad1180 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.properties @@ -65,18 +65,6 @@ type_extensions.class=fa fa-expand type_extensions.title=extensions type_extensions.alt=extensions icon -fo_edit.class=fas fa-file-code -fo_edit.title=fo -fo_edit.alt=fo icon - -fo_manage_approval.class=fas fa-file-code -fo_manage_approval.title=fo -fo_manage_approval.alt=fo icon - -fo_edit_approval.class=fas fa-file-code -fo_edit_approval.title=fo -fo_edit_approval.alt=fo icon - html.class=fas fa-file-code html.title=html html.alt=html icon diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_fr_CA.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_fr_CA.properties index 8bcf8e8562..6fb794fa94 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_fr_CA.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_fr_CA.properties @@ -56,15 +56,6 @@ edit_approval.alt=ic\u00f4ne approbation de modification type_extensions.class=fa fa-expand type_extensions.title=extensions type_extensions.alt=ic\u00f4ne extensions -fo_edit.class=fas fa-file-code -fo_edit.title=fo -fo_edit.alt=ic\u00f4ne fo -fo_manage_approval.class=fas fa-file-code -fo_manage_approval.title=fo -fo_manage_approval.alt=ic\u00f4ne fo -fo_edit_approval.class=fas fa-file-code -fo_edit_approval.title=fo -fo_edit_approval.alt=ic\u00f4ne fo html.class=fas fa-file-code html.title=html html.alt=ic\u00f4ne html diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_it.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_it.properties index 73e0740798..b0006b4950 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_it.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_it.properties @@ -66,18 +66,6 @@ type_extensions.class=fa fa-expand type_extensions.title=estensioni type_extensions.alt=extensions icon -fo_edit.class=fas fa-file-code -fo_edit.title=fo -fo_edit.alt=fo icon - -fo_manage_approval.class=fas fa-file-code -fo_manage_approval.title=fo -fo_manage_approval.alt=fo icon - -fo_edit_approval.class=fas fa-file-code -fo_edit_approval.title=fo -fo_edit_approval.alt=fo icon - html.class=fas fa-file-code html.title=html html.alt=html icon diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_ja.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_ja.properties index 0712a7561c..9c04224f2d 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_ja.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_ja.properties @@ -66,18 +66,6 @@ type_extensions.class=fa fa-expand type_extensions.title=\u62e1\u5f35 type_extensions.alt=\u62e1\u5f35 -fo_edit.class=fas fa-file-code -fo_edit.title=fo -fo_edit.alt=fo icon - -fo_manage_approval.class=fas fa-file-code -fo_manage_approval.title=fo -fo_manage_approval.alt=fo icon - -fo_edit_approval.class=fas fa-file-code -fo_edit_approval.title=fo -fo_edit_approval.alt=fo icon - html.class=fas fa-file-code html.title=html html.alt=html icon diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_pt_BR.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_pt_BR.properties index f54bdbfd68..e8f8611b9b 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_pt_BR.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_pt_BR.properties @@ -65,18 +65,6 @@ type_extensions.class=fa fa-expand type_extensions.title=extensions type_extensions.alt=extensions icon -fo_edit.class=fas fa-file-code -fo_edit.title=fo -fo_edit.alt=fo icon - -fo_manage_approval.class=fas fa-file-code -fo_manage_approval.title=fo -fo_manage_approval.alt=fo icon - -fo_edit_approval.class=fas fa-file-code -fo_edit_approval.title=fo -fo_edit_approval.alt=fo icon - html.class=fas fa-file-code html.title=html html.alt=html icon diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_ru.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_ru.properties index 56c33ae7ae..e23a28d5d3 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_ru.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel_ru.properties @@ -66,18 +66,6 @@ type_extensions.class=fa fa-expand type_extensions.title=extensions type_extensions.alt=extensions icon -fo_edit.class=fas fa-file-code -fo_edit.title=fo -fo_edit.alt=fo icon - -fo_manage_approval.class=fas fa-file-code -fo_manage_approval.title=fo -fo_manage_approval.alt=fo icon - -fo_edit_approval.class=fas fa-file-code -fo_edit_approval.title=fo -fo_edit_approval.alt=fo icon - html.class=fas fa-file-code html.title=html html.alt=html icon diff --git a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/BpmnProcessesAjaxPanel.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/BpmnProcessesAjaxPanel.java index 7ad531d888..41b72835af 100644 --- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/BpmnProcessesAjaxPanel.java +++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/BpmnProcessesAjaxPanel.java @@ -18,6 +18,7 @@ */ package org.apache.syncope.client.enduser.markup.html.form; +import java.util.Optional; import org.apache.syncope.client.ui.commons.markup.html.form.AjaxTextFieldPanel; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.model.IModel; @@ -28,15 +29,14 @@ public class BpmnProcessesAjaxPanel extends AjaxTextFieldPanel { public BpmnProcessesAjaxPanel( final String id, final String name, final IModel model) { + this(id, name, model, null); } public BpmnProcessesAjaxPanel( final String id, final String name, final IModel model, final Behavior behavior) { + super(id, name, model, false); - if (behavior != null) { - field.add(behavior); - } + Optional.ofNullable(behavior).ifPresent(field::add); } - } diff --git a/pom.xml b/pom.xml index 4da634176b..1ad47bfeaa 100644 --- a/pom.xml +++ b/pom.xml @@ -425,7 +425,7 @@ under the License. 3.4.4 - 8.9.0 + 8.9.1 3.3 1.10.0 @@ -1583,7 +1583,7 @@ under the License. io.fabric8 docker-maven-plugin - 0.43.3 + 0.43.4