Repository: syncope Updated Branches: refs/heads/2_0_X 421aac1ce -> 0f32e624f refs/heads/2_1_X d59627fea -> 251c267a7 refs/heads/master 3e106c244 -> c3dbca022
Better help message for JEXL mapping transformers, remarking that only 'value' shall be used Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/0f32e624 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/0f32e624 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/0f32e624 Branch: refs/heads/2_0_X Commit: 0f32e624f6240c6d0fa62367051bcd5044a68988 Parents: 421aac1 Author: Francesco Chicchiriccò <[email protected]> Authored: Tue Jul 10 09:47:26 2018 +0200 Committer: Francesco Chicchiriccò <[email protected]> Committed: Tue Jul 10 09:47:26 2018 +0200 ---------------------------------------------------------------------- .../client/console/commons/Constants.java | 26 ++++++++++++++------ .../markup/html/form/AjaxTextFieldPanel.java | 8 +++++- .../resources/JEXLTransformersTogglePanel.java | 4 +-- .../java/data/JEXLItemTransformerImpl.java | 2 -- 4 files changed, 28 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/0f32e624/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java index f514789..5b26f8d 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java @@ -192,15 +192,27 @@ public final class Constants { public static final String GUARDED_BYTE_ARRAY = "org.identityconnectors.common.security.GuardedByteArray"; public static Component getJEXLPopover(final Component caller, final TooltipConfig.Placement placement) { + return getJEXLPopover(caller, placement, caller.getString("jexl_ex1"), caller.getString("jexl_ex2")); + } + + public static Component getJEXLPopover( + final Component caller, + final TooltipConfig.Placement placement, + final String... jexlExamples) { + + StringBuilder body = new StringBuilder(caller.getString("jexl_info")). + append("<ul>"); + for (String jexlExample : jexlExamples) { + body.append("<li>").append(jexlExample).append("</li>"); + } + body.append("</ul>"). + append("<a href='https://commons.apache.org/proper/commons-jexl/reference/' target='_blank'>"). + append(caller.getString("jexl_syntax_url")). + append("</a>"); + return new Label("jexlInfo", Model.of()).add(new PopoverBehavior( Model.<String>of(), - Model.of(caller.getString("jexl_info") - + "<ul>" - + "<li>" + caller.getString("jexl_ex1") + "</li>" - + "<li>" + caller.getString("jexl_ex2") + "</li>" - + "</ul>" - + "<a href='https://commons.apache.org/proper/commons-jexl/reference/index.html' " - + "target='_blank'>" + caller.getString("jexl_syntax_url") + "</a>"), + Model.of(body.toString()), new PopoverConfig().withHtml(true).withPlacement(placement)) { private static final long serialVersionUID = -7867802555691605021L; http://git-wip-us.apache.org/repos/asf/syncope/blob/0f32e624/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java index 16b7db5..5c9317e 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxTextFieldPanel.java @@ -41,7 +41,7 @@ public class AjaxTextFieldPanel extends FieldPanel<String> implements Cloneable private static final long serialVersionUID = 238940918106696068L; - private final Component questionMarkJexlHelp; + private Component questionMarkJexlHelp; private List<String> choices = Collections.emptyList(); @@ -114,6 +114,12 @@ public class AjaxTextFieldPanel extends FieldPanel<String> implements Cloneable return this; } + public FieldPanel<String> enableJexlHelp(final String... jexlExamples) { + questionMarkJexlHelp = Constants.getJEXLPopover(this, TooltipConfig.Placement.bottom, jexlExamples); + addOrReplace(questionMarkJexlHelp.setVisible(true)); + return this; + } + protected Iterator<String> getChoices(final String input) { final Pattern pattern = Pattern.compile(".*" + Pattern.quote(input) + ".*", Pattern.CASE_INSENSITIVE); http://git-wip-us.apache.org/repos/asf/syncope/blob/0f32e624/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java index da3847b..c3170cf 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java @@ -49,13 +49,13 @@ public class JEXLTransformersTogglePanel extends TogglePanel<Serializable> { "propagationJEXLTransformer", "Propagation", Model.of("")); - form.add(propagationJEXLTransformer.enableJexlHelp()); + form.add(propagationJEXLTransformer.enableJexlHelp("value.toLowecase()", "'PREFIX' + value")); pullJEXLTransformer = new AjaxTextFieldPanel( "pullJEXLTransformer", "Pull", Model.of("")); - form.add(pullJEXLTransformer.enableJexlHelp()); + form.add(pullJEXLTransformer.enableJexlHelp("value.toLowecase()", "'PREFIX' + value")); form.add(new AjaxSubmitLink("submit", form) { http://git-wip-us.apache.org/repos/asf/syncope/blob/0f32e624/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/JEXLItemTransformerImpl.java ---------------------------------------------------------------------- diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/JEXLItemTransformerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/JEXLItemTransformerImpl.java index 01f1b7e..98042c5 100644 --- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/JEXLItemTransformerImpl.java +++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/JEXLItemTransformerImpl.java @@ -94,7 +94,6 @@ public class JEXLItemTransformerImpl extends DefaultItemTransformer implements J JexlUtils.addAttrTOsToContext(((AnyTO) entityTO).getVirAttrs(), jexlContext); } else if (entityTO instanceof RealmTO) { JexlUtils.addFieldsToContext((RealmTO) entityTO, jexlContext); - newValues.add(JexlUtils.evaluate(pullJEXL, jexlContext)); } newValues.add(JexlUtils.evaluate(pullJEXL, jexlContext)); @@ -105,5 +104,4 @@ public class JEXLItemTransformerImpl extends DefaultItemTransformer implements J return super.beforePull(item, entityTO, values); } - }
