Fix for Issue 35, added a note message on creating a new folder or updating an existi...
authorNatasa Kapravelou <akapravelou@gmail.com>
Thu, 7 Oct 2010 13:15:50 +0000 (16:15 +0300)
committerNatasa Kapravelou <akapravelou@gmail.com>
Thu, 7 Oct 2010 13:15:50 +0000 (16:15 +0300)
src/gr/ebs/gss/client/FilePropertiesDialog.java
src/gr/ebs/gss/client/FolderPropertiesDialog.java
src/gr/ebs/gss/client/GSS.java
src/gr/ebs/gss/server/rest/FilesHandler.java

index eb1463d..ea09bc4 100644 (file)
@@ -31,6 +31,8 @@ import java.util.Set;
 import com.google.gwt.core.client.GWT;\r
 import com.google.gwt.event.dom.client.ClickEvent;\r
 import com.google.gwt.event.dom.client.ClickHandler;\r
+import com.google.gwt.event.dom.client.KeyDownEvent;\r
+import com.google.gwt.event.dom.client.KeyDownHandler;\r
 import com.google.gwt.i18n.client.DateTimeFormat;\r
 import com.google.gwt.json.client.JSONArray;\r
 import com.google.gwt.json.client.JSONBoolean;\r
@@ -137,6 +139,10 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                inner.add(verPanel, "Versions");\r
                inner.selectTab(0);\r
 \r
+               final Label fileNameNote = new Label("Please note that slashes ('/') are not allowed in file names.", true);\r
+               fileNameNote.setVisible(false);\r
+               fileNameNote.setStylePrimaryName("gss-readForAllNote");\r
+\r
                final FlexTable generalTable = new FlexTable();\r
                generalTable.setText(0, 0, "Name");\r
                generalTable.setText(1, 0, "Folder");\r
@@ -146,10 +152,20 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                name.setWidth("100%");\r
                name.setText(file.getName());\r
                generalTable.setWidget(0, 1, name);\r
+               name.addKeyDownHandler(new KeyDownHandler() {\r
+\r
+                       @Override\r
+                       public void onKeyDown(KeyDownEvent event) {\r
+                               fileNameNote.setVisible(true);\r
+\r
+                       }\r
+               });\r
+\r
                if(file.getFolderName() != null)\r
                        generalTable.setText(1, 1, file.getFolderName());\r
                else\r
                        generalTable.setText(1, 1, "-");\r
+               generalTable.setWidget(0, 2, fileNameNote);\r
                generalTable.setText(2, 1,userFullName);\r
 \r
                final DateTimeFormat formatter = DateTimeFormat.getFormat("d/M/yyyy h:mm a");\r
index 007ef4d..a3e7b54 100644 (file)
@@ -125,7 +125,7 @@ public class FolderPropertiesDialog extends DialogBox {
                        inner.add(permPanel, "Sharing");\r
                inner.selectTab(0);\r
 \r
-               final Label folderNameNote = new Label("Please note that slashes ('/') are not allowed in foldernames.", true);\r
+               final Label folderNameNote = new Label("Please note that slashes ('/') are not allowed in folder names.", true);\r
                folderNameNote.setVisible(false);\r
                folderNameNote.setStylePrimaryName("gss-readForAllNote");\r
 \r
@@ -145,14 +145,13 @@ public class FolderPropertiesDialog extends DialogBox {
                        }\r
                });\r
 \r
-               if (create){\r
+               if (create)\r
                        generalTable.setText(1, 1, folder.getName());\r
-                       generalTable.setWidget(0, 2, folderNameNote);\r
-               }\r
                else if(folder.getParentName() == null)\r
                        generalTable.setText(1, 1, "-");\r
                else\r
                        generalTable.setText(1, 1, folder.getParentName());\r
+               generalTable.setWidget(0, 2, folderNameNote);\r
                generalTable.setText(2, 1, folder.getOwner());\r
                DateTimeFormat formatter = DateTimeFormat.getFormat("d/M/yyyy h:mm a");\r
                if(folder.getModificationDate() != null)\r
index 9f85f2e..a84a5b3 100644 (file)
@@ -816,10 +816,10 @@ public class GSS implements EntryPoint, ResizeHandler {
        }
 
        /**
-        * Reject illegal resource names, like '.' or '..'.
+        * Reject illegal resource names, like '.' or '..' or slashes '/'.
         */
        static boolean isValidResourceName(String name) {
-               if (".".equals(name) || "..".equals(name))
+               if (".".equals(name) || "..".equals(name) || name.contains("/"))
                        return false;
                return true;
        }
index bf74bb6..f98fb69 100644 (file)
@@ -886,6 +886,11 @@ public class FilesHandler extends RequestHandler {
        final FolderDTO folder = (FolderDTO) parent;
        final String fileName = getLastElement(path);
 
+       if (!isValidResourceName(fileName)) {
+               response.sendError(HttpServletResponse.SC_BAD_REQUEST);
+               return;
+       }
+
                FileItemIterator iter;
                File uploadedFile = null;
                try {