Revision f6c9957e src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java
b/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java | ||
---|---|---|
215 | 215 |
|
216 | 216 |
void updateFolder() { |
217 | 217 |
final Map<String, Boolean[]> perms = (permList.hasChanges() ? permList.getPermissions() : null); |
218 |
final String newName = folderName.getText().trim(); |
|
219 |
if (!folder.isContainer() && !folder.getName().equals(newName)) { |
|
220 |
final String path = folder.getParent().getUri() + "/" + newName; |
|
221 |
PutRequest newFolder = new PutRequest(app.getApiPath(), folder.getParent().getOwner(), path) { |
|
222 |
@Override |
|
223 |
public void onSuccess(Resource result) { |
|
224 |
Iterator<File> iter = folder.getFiles().iterator(); |
|
225 |
app.copyFiles(iter, folder.getParent().getOwner(), folder.getParent().getUri() + "/" + newName, new Command() { |
|
226 |
@Override |
|
227 |
public void execute() { |
|
228 |
Iterator<Folder> iterf = folder.getSubfolders().iterator(); |
|
229 |
app.copySubfolders(iterf, folder.getParent().getOwner(), folder.getParent().getUri() + "/" + newName, new Command() { |
|
230 |
@Override |
|
231 |
public void execute() { |
|
232 |
app.deleteFolder(folder, null); |
|
233 |
updateMetadata(path + "?update=", perms); |
|
234 |
} |
|
235 |
}); |
|
236 |
} |
|
237 |
}); |
|
238 |
} |
|
239 |
|
|
240 |
@Override |
|
241 |
public void onError(Throwable t) { |
|
242 |
GWT.log("", t); |
|
243 |
app.setError(t); |
|
244 |
if(t instanceof RestException){ |
|
245 |
app.displayError("Unable to update folder: " + ((RestException) t).getHttpStatusText()); |
|
246 |
} |
|
247 |
else |
|
248 |
app.displayError("System error modifying folder: " + t.getMessage()); |
|
249 |
} |
|
250 |
|
|
251 |
@Override |
|
252 |
protected void onUnauthorized(Response response) { |
|
253 |
app.sessionExpired(); |
|
254 |
} |
|
255 |
}; |
|
256 |
newFolder.setHeader("X-Auth-Token", app.getToken()); |
|
257 |
newFolder.setHeader("Content-Type", "application/folder"); |
|
258 |
newFolder.setHeader("Accept", "*/*"); |
|
259 |
newFolder.setHeader("Content-Length", "0"); |
|
260 |
Scheduler.get().scheduleDeferred(newFolder); |
|
261 |
} |
|
262 |
else |
|
263 |
updateMetadata(folder.getUri() + "?update=", perms); |
|
218 |
updateMetadata(folder.getUri() + "?update=", perms); |
|
264 | 219 |
} |
265 | 220 |
|
266 | 221 |
protected void updateMetadata(final String path, final Map<String, Boolean[]> newPermissions) { |
Also available in: Unified diff