Use SSL transport all over the place, for the production deployment.
[pithos] / src / gr / ebs / gss / client / FileList.java
index 9cc053a..9a91a04 100644 (file)
@@ -236,7 +236,6 @@ public class FileList extends Composite implements ClickHandler {
                nextButton.addClickHandler(this);\r
 \r
                contextMenu = new DnDSimpleFocusPanel(new HTML(AbstractImagePrototype.create(images.fileContextMenu()).getHTML()));\r
-               contextMenu.addClickHandler(new FileContextMenu(images, false, false));\r
                GSS.get().getDragController().makeDraggable(contextMenu);\r
 \r
                // Setup the table.\r
@@ -348,7 +347,7 @@ public class FileList extends Composite implements ClickHandler {
                                String resource = file.getUri().substring(app.getApiPath().length() - 1, file.getUri().length());\r
                                String sig = app.getCurrentUserResource().getUsername() + " " +\r
                                                RestCommand.calculateSig("GET", dateString, resource,\r
-                                               RestCommand.base64decode(app.getToken().replaceAll(" ", "+")));\r
+                                               RestCommand.base64decode(app.getToken()));\r
                                Window.open(file.getUri() + "?Authorization=" + URL.encodeComponent(sig) + "&Date=" + URL.encodeComponent(dateString), "_blank", "");\r
                                event.preventDefault();\r
                                return;\r
@@ -723,7 +722,22 @@ public class FileList extends Composite implements ClickHandler {
         */\r
        private AbstractImagePrototype getFileIcon(FileResource file) {\r
                String mimetype = file.getContentType();\r
-               boolean shared = file.isShared();\r
+               boolean shared=false;\r
+               Folders folders = GSS.get().getFolders();\r
+               if(folders.getCurrent() != null && folders.isOthersSharedItem(folders.getCurrent())){\r
+                       DnDTreeItem otherUser = (DnDTreeItem) folders.getUserOfSharedItem(folders.getCurrent());\r
+                       if(otherUser==null)\r
+                               shared = false;\r
+                       else{\r
+                               String uname = otherUser.getOtherUserResource().getUsername();\r
+                               if(uname==null)\r
+                                       uname = ((DnDTreeItem)folders.getSharesItem()).getOthersResource().getUsernameOfUri(otherUser.getOtherUserResource().getUri());\r
+                               if(uname != null)\r
+                                       shared = file.isShared();\r
+                       }\r
+               }\r
+               else\r
+                       shared = file.isShared();\r
                if (mimetype == null)\r
                        return shared ? AbstractImagePrototype.create(images.documentShared()) : AbstractImagePrototype.create(images.document());\r
                mimetype = mimetype.toLowerCase();\r
@@ -790,9 +804,9 @@ public class FileList extends Composite implements ClickHandler {
                        updateFileCache(clearSelection);\r
                else if (GSS.get().getFolders().getCurrent() != null) {\r
                        final DnDTreeItem folderItem = (DnDTreeItem) GSS.get().getFolders().getCurrent();\r
-                       if (folderItem.getFolderResource() != null) {\r
+                       if(GSS.get().getFolders().isFileItem(folderItem) || GSS.get().getFolders().isMySharedItem(folderItem) || GSS.get().getFolders().isOthersSharedItem(folderItem)){\r
                                update(true);\r
-                               GetCommand<FolderResource> gf = new GetCommand<FolderResource>(FolderResource.class, folderItem.getFolderResource().getUri()) {\r
+                               GetCommand<FolderResource> gf = new GetCommand<FolderResource>(FolderResource.class, folderItem.getFolderResource().getUri(),folderItem.getFolderResource()) {\r
 \r
                                                @Override\r
                                                public void onComplete() {\r
@@ -804,7 +818,7 @@ public class FileList extends Composite implements ClickHandler {
                                                                        filePaths[c] = fpath + "?" + Math.random();\r
                                                                        c++;\r
                                                                }\r
-                                                               MultipleHeadCommand<FileResource> getFiles = new MultipleHeadCommand<FileResource>(FileResource.class, filePaths){\r
+                                                               MultipleHeadCommand<FileResource> getFiles = new MultipleHeadCommand<FileResource>(FileResource.class, filePaths, folderItem.getFolderResource().getFileCache()){\r
 \r
                                                                        @Override\r
                                                                        public void onComplete(){\r
@@ -815,8 +829,10 @@ public class FileList extends Composite implements ClickHandler {
                                                                                        int indexOfQuestionMark = p.lastIndexOf('?');\r
                                                                                        if(indexOfQuestionMark>0)\r
                                                                                                r.setUri(p.substring(0, indexOfQuestionMark));\r
+                                                                                       GWT.log("FETCHED:"+r.getLastModifiedSince(), null);\r
                                                                                }\r
                                                                                folderItem.getFolderResource().setFiles(result);\r
+                                                                               folderItem.getFolderResource().setFilesExpanded(true);\r
                                                                                updateFileCache(clearSelection, newFilename);\r
                                                                        }\r
 \r
@@ -847,7 +863,7 @@ public class FileList extends Composite implements ClickHandler {
                                        };\r
                                        DeferredCommand.addCommand(gf);\r
                        } else if (folderItem.getTrashResource() != null) {\r
-                               GetCommand<TrashResource> gt = new GetCommand<TrashResource>(TrashResource.class, folderItem.getTrashResource().getUri()) {\r
+                               GetCommand<TrashResource> gt = new GetCommand<TrashResource>(TrashResource.class, folderItem.getTrashResource().getUri(), null) {\r
 \r
                                        @Override\r
                                        public void onComplete() {\r
@@ -868,12 +884,50 @@ public class FileList extends Composite implements ClickHandler {
                                };\r
                                DeferredCommand.addCommand(gt);\r
                        } else if (folderItem.getSharedResource() != null) {\r
-                               GetCommand<SharedResource> gt = new GetCommand<SharedResource>(SharedResource.class, folderItem.getSharedResource().getUri()) {\r
+                               GetCommand<SharedResource> gt = new GetCommand<SharedResource>(SharedResource.class, folderItem.getSharedResource().getUri(), null) {\r
 \r
                                        @Override\r
                                        public void onComplete() {\r
                                                folderItem.setUserObject(getResult());\r
                                                updateFileCache(clearSelection, newFilename);\r
+                                               String[] filePaths = new String[folderItem.getSharedResource().getFilePaths().size()];\r
+                                               int c=0;\r
+                                               for(String fpath : folderItem.getSharedResource().getFilePaths()){\r
+                                                       filePaths[c] = fpath + "?" + Math.random();\r
+                                                       c++;\r
+                                               }\r
+                                               MultipleHeadCommand<FileResource> getFiles = new MultipleHeadCommand<FileResource>(FileResource.class, filePaths, folderItem.getSharedResource().getFileCache()){\r
+\r
+                                                       @Override\r
+                                                       public void onComplete(){\r
+                                                               List<FileResource> result = getResult();\r
+                                                               //remove random from path\r
+                                                               for(FileResource r : result){\r
+                                                                       String p = r.getUri();\r
+                                                                       int indexOfQuestionMark = p.lastIndexOf('?');\r
+                                                                       if(indexOfQuestionMark>0)\r
+                                                                               r.setUri(p.substring(0, indexOfQuestionMark));\r
+                                                                       GWT.log("FETCHED:"+r.getLastModifiedSince(), null);\r
+                                                               }\r
+                                                               folderItem.getSharedResource().setFiles(result);\r
+                                                               folderItem.getSharedResource().setFilesExpanded(true);\r
+                                                               updateFileCache(clearSelection, newFilename);\r
+                                                       }\r
+\r
+                                                       @Override\r
+                                                       public void onError(String p, Throwable throwable) {\r
+                                                               if(throwable instanceof RestException)\r
+                                                                       GSS.get().displayError("Unable to retrieve file details:"+((RestException)throwable).getHttpStatusText());\r
+                                                       }\r
+\r
+                                                       @Override\r
+                                                       public void onError(Throwable t) {\r
+                                                               GWT.log("", t);\r
+                                                               GSS.get().displayError("Unable to fetch files for folder " + folderItem.getFolderResource().getName());\r
+                                                       }\r
+\r
+                                               };\r
+                                               DeferredCommand.addCommand(getFiles);\r
                                        }\r
 \r
                                        @Override\r
@@ -884,12 +938,50 @@ public class FileList extends Composite implements ClickHandler {
                                };\r
                                DeferredCommand.addCommand(gt);\r
                        } else if (folderItem.getOtherUserResource() != null) {\r
-                               GetCommand<OtherUserResource> gt = new GetCommand<OtherUserResource>(OtherUserResource.class, folderItem.getOtherUserResource().getUri()) {\r
+                               GetCommand<OtherUserResource> gt = new GetCommand<OtherUserResource>(OtherUserResource.class, folderItem.getOtherUserResource().getUri(), null) {\r
 \r
                                        @Override\r
                                        public void onComplete() {\r
                                                folderItem.setUserObject(getResult());\r
                                                updateFileCache(clearSelection, newFilename);\r
+                                               String[] filePaths = new String[folderItem.getOtherUserResource().getFilePaths().size()];\r
+                                               int c=0;\r
+                                               for(String fpath : folderItem.getOtherUserResource().getFilePaths()){\r
+                                                       filePaths[c] = fpath + "?" + Math.random();\r
+                                                       c++;\r
+                                               }\r
+                                               MultipleHeadCommand<FileResource> getFiles = new MultipleHeadCommand<FileResource>(FileResource.class, filePaths, folderItem.getOtherUserResource().getFileCache()){\r
+\r
+                                                       @Override\r
+                                                       public void onComplete(){\r
+                                                               List<FileResource> result = getResult();\r
+                                                               //remove random from path\r
+                                                               for(FileResource r : result){\r
+                                                                       String p = r.getUri();\r
+                                                                       int indexOfQuestionMark = p.lastIndexOf('?');\r
+                                                                       if(indexOfQuestionMark>0)\r
+                                                                               r.setUri(p.substring(0, indexOfQuestionMark));\r
+                                                                       GWT.log("FETCHED:"+r.getLastModifiedSince(), null);\r
+                                                               }\r
+                                                               folderItem.getOtherUserResource().setFiles(result);\r
+                                                               folderItem.getOtherUserResource().setFilesExpanded(true);\r
+                                                               updateFileCache(clearSelection, newFilename);\r
+                                                       }\r
+\r
+                                                       @Override\r
+                                                       public void onError(String p, Throwable throwable) {\r
+                                                               if(throwable instanceof RestException)\r
+                                                                       GSS.get().displayError("Unable to retrieve file details:"+((RestException)throwable).getHttpStatusText());\r
+                                                       }\r
+\r
+                                                       @Override\r
+                                                       public void onError(Throwable t) {\r
+                                                               GWT.log("", t);\r
+                                                               GSS.get().displayError("Unable to fetch files for folder " + folderItem.getFolderResource().getName());\r
+                                                       }\r
+\r
+                                               };\r
+                                               DeferredCommand.addCommand(getFiles);\r
                                        }\r
 \r
                                        @Override\r