From 1dd501c67d25472240084ea7c54ae1a3d5f70bd8 Mon Sep 17 00:00:00 2001 From: Bruno Sinou Date: Thu, 12 May 2016 16:40:04 +0000 Subject: [PATCH] Fix glitches git-svn-id: https://svn.argeo.org/commons/trunk@8911 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../src/org/argeo/cms/forms/EditablePropertyString.java | 7 ++++++- org.argeo.cms/src/org/argeo/cms/forms/FormPageViewer.java | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/org.argeo.cms/src/org/argeo/cms/forms/EditablePropertyString.java b/org.argeo.cms/src/org/argeo/cms/forms/EditablePropertyString.java index e7840396d..dd3ff29dc 100644 --- a/org.argeo.cms/src/org/argeo/cms/forms/EditablePropertyString.java +++ b/org.argeo.cms/src/org/argeo/cms/forms/EditablePropertyString.java @@ -22,6 +22,10 @@ public class EditablePropertyString extends EditableText implements private String propertyName; private String message; + // encode the '&' character in rap + private final static String AMPERSAND = "&"; + private final static String AMPERSAND_REGEX = "&(?![#a-zA-Z0-9]+;)"; + public EditablePropertyString(Composite parent, int style, Node node, String propertyName, String message) throws RepositoryException { super(parent, style, node, true); @@ -45,7 +49,8 @@ public class EditablePropertyString extends EditableText implements if (EclipseUiUtils.isEmpty(text)) lbl.setText(message + " "); else - lbl.setText(text); + // TODO enhance this + lbl.setText(text.replaceAll(AMPERSAND_REGEX, AMPERSAND)); } else if (child instanceof Text) { Text txt = (Text) child; if (EclipseUiUtils.isEmpty(text)) { diff --git a/org.argeo.cms/src/org/argeo/cms/forms/FormPageViewer.java b/org.argeo.cms/src/org/argeo/cms/forms/FormPageViewer.java index 7890f4710..985664859 100644 --- a/org.argeo.cms/src/org/argeo/cms/forms/FormPageViewer.java +++ b/org.argeo.cms/src/org/argeo/cms/forms/FormPageViewer.java @@ -461,8 +461,12 @@ public class FormPageViewer extends AbstractPageViewer { if (name == null) name = details.getFileName(); + + // TODO clean image name more carefully + String cleanedName = name.replaceAll("[^a-zA-Z0-9-.]", "_"); + try { - imageManager().uploadImage(context, name, stream); + imageManager().uploadImage(context, cleanedName, stream); // TODO clean refresh strategy section.getDisplay().asyncExec(new Runnable() { @Override -- 2.30.2