Fix glitches
authorBruno Sinou <bsinou@argeo.org>
Thu, 12 May 2016 16:40:04 +0000 (16:40 +0000)
committerBruno Sinou <bsinou@argeo.org>
Thu, 12 May 2016 16:40:04 +0000 (16:40 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@8911 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.cms/src/org/argeo/cms/forms/EditablePropertyString.java
org.argeo.cms/src/org/argeo/cms/forms/FormPageViewer.java

index e7840396d81199f60b52cce0c4fbd429a1e18ab9..dd3ff29dc50749cba984c34bd086c79656d2d440 100644 (file)
@@ -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 = "&#38;";
+       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)) {
index 7890f4710435334a5073b54b992b3f901f275869..98566485963e8231e6fac23e5caed93b46f40640 100644 (file)
@@ -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