/*\r
- * Copyright 2011-2012 GRNET S.A. All rights reserved.\r
+ * Copyright 2011-2013 GRNET S.A. All rights reserved.\r
*\r
* Redistribution and use in source and binary forms, with or\r
* without modification, are permitted provided that the following\r
package gr.grnet.pithos.web.client;\r
\r
import gr.grnet.pithos.web.client.foldertree.File;\r
-import gr.grnet.pithos.web.client.foldertree.Resource;\r
import gr.grnet.pithos.web.client.rest.PostRequest;\r
import gr.grnet.pithos.web.client.rest.PutRequest;\r
\r
+import java.util.Arrays;\r
import java.util.HashMap;\r
import java.util.Map;\r
\r
import com.google.gwt.user.client.ui.FlexTable;\r
import com.google.gwt.user.client.ui.HasHorizontalAlignment;\r
import com.google.gwt.user.client.ui.HorizontalPanel;\r
-import com.google.gwt.user.client.ui.Image;\r
import com.google.gwt.user.client.ui.Label;\r
import com.google.gwt.user.client.ui.TextBox;\r
import com.google.gwt.user.client.ui.VerticalPanel;\r
super(_app);\r
file = _file;\r
\r
- Anchor close = new Anchor();\r
+ Anchor close = new Anchor("close");\r
close.addStyleName("close");\r
close.addClickHandler(new ClickHandler() {\r
\r
});\r
// Set the dialog's caption.\r
setText("File properties");\r
- setAnimationEnabled(true);\r
setGlassEnabled(true);\r
setStyleName("pithos-DialogBox");\r
\r
name.setWidth("100%");\r
name.setText(file.getName());\r
generalTable.setWidget(0, 1, name);\r
- if(file.getParent() != null)\r
+ if(file.getParent() != null) {\r
generalTable.setText(1, 1, file.getParent().getName());\r
- else\r
+ }\r
+ else {\r
generalTable.setText(1, 1, "-");\r
- generalTable.setText(2, 1, file.getOwner());\r
+ }\r
+\r
+ final String ownerID = file.getOwnerID();\r
+ final String displayName = app.getDisplayNameForUserID(ownerID);\r
+ final String ownerDisplayName;\r
+ if(displayName == null) {\r
+ // FIXME: Get the actual display name and do not use the id\r
+ ownerDisplayName = ownerID;\r
+ }\r
+ else {\r
+ ownerDisplayName = displayName;\r
+ }\r
+ generalTable.setText(2, 1, ownerDisplayName);\r
\r
final DateTimeFormat formatter = DateTimeFormat.getFormat("d/M/yyyy h:mm a");\r
generalTable.setText(3, 1, file.getLastModified() != null ? formatter.format(file.getLastModified()) : "");\r
meta.addStyleName("pithos-metaTitle");\r
metaTitlePanel.add(meta);\r
\r
- Image plus = new Image();\r
- plus.addStyleName("pithos-addMetaImg");\r
+ Anchor plus = new Anchor("add");\r
+ plus.addStyleName(Pithos.resources.pithosCss().commandAnchor());\r
metaTitlePanel.add(plus);\r
\r
generalPanel.add(metaTitlePanel);\r
table.setWidget(row, 1, valueBox);\r
table.getFlexCellFormatter().setStyleName(1, 1, "props-values");\r
\r
- Image delete = new Image();\r
- delete.addStyleName("pithos-metaDeleteImg");\r
+ Anchor delete = new Anchor("remove");\r
+ delete.addStyleName(Pithos.resources.pithosCss().commandAnchor());\r
delete.addClickHandler(new ClickHandler() {\r
\r
@Override\r
\r
if (newFilename != null) {\r
final String path = file.getParent().getUri() + "/" + newFilename;\r
- PutRequest updateFile = new PutRequest(app.getApiPath(), app.getUsername(), path) {\r
+ PutRequest updateFile = new PutRequest(app.getApiPath(), app.getUserID(), path) {\r
@Override\r
public void onSuccess(Resource result) {\r
- updateMetaData(app.getApiPath(), file.getOwner(), path + "?update=", newMeta);\r
+ updateMetaData(app.getApiPath(), file.getOwnerID(), path, newMeta);\r
}\r
\r
@Override\r
app.sessionExpired();\r
}\r
};\r
- updateFile.setHeader("X-Auth-Token", app.getToken());\r
+ updateFile.setHeader("X-Auth-Token", app.getUserToken());\r
updateFile.setHeader("X-Move-From", URL.encodePathSegment(file.getUri()));\r
updateFile.setHeader("Content-Type", file.getContentType());\r
for (String key : file.getMeta().keySet())\r
Scheduler.get().scheduleDeferred(updateFile);\r
}\r
else\r
- updateMetaData(app.getApiPath(), app.getUsername(), file.getUri() + "?update=", newMeta);\r
+ updateMetaData(app.getApiPath(), app.getUserID(), file.getUri(), newMeta);\r
return true;\r
}\r
\r
- protected void updateMetaData(String api, String owner, String path, Map<String, String> newMeta) {\r
+ protected void updateMetaData(final String api, final String owner, final String path, Map<String, String> newMeta) {\r
if (newMeta != null) {\r
- PostRequest updateFile = new PostRequest(api, owner, path) {\r
+ PostRequest updateFile = new PostRequest(api, owner, path + "?update=") {\r
@Override\r
public void onSuccess(Resource result) {\r
if (!app.isMySharedSelected())\r
\r
@Override\r
public void execute() {\r
+ app.getFileList().selectByUrl(Arrays.asList(api + owner + path));\r
app.updateMySharedRoot();\r
}\r
}, true);\r
- else\r
- app.updateSharedFolder(file.getParent(), true);\r
+ else {\r
+ app.updateSharedFolder(file.getParent(), true, new Command() {\r
+ \r
+ @Override\r
+ public void execute() {\r
+ app.getFileList().selectByUrl(Arrays.asList(api + owner + path));\r
+ }\r
+ });\r
+ }\r
}\r
\r
@Override\r
app.sessionExpired();\r
}\r
};\r
- updateFile.setHeader("X-Auth-Token", app.getToken());\r
+ updateFile.setHeader("X-Auth-Token", app.getUserToken());\r
\r
for (String t : file.getMeta().keySet()) {\r
updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(t.trim()), "~");\r
\r
@Override\r
public void execute() {\r
+ app.getFileList().selectByUrl(Arrays.asList(api + owner + path));\r
if (file.isSharedOrPublished())\r
app.updateMySharedRoot();\r
}\r
}, true);\r
- else\r
+ else {\r
+ app.getFileList().selectByUrl(Arrays.asList(api + owner + path));\r
app.updateSharedFolder(file.getParent(), true);\r
+ }\r
}\r
}\r