From: Christos Stathis Date: Thu, 28 Jun 2012 12:27:25 +0000 (+0300) Subject: Replaced the folder deletion procedure with the new single DELETE request (issue... X-Git-Tag: 0.14rc1~71 X-Git-Url: https://code.grnet.gr/git/pithos-web-client/commitdiff_plain/f6c9957eba96bec9cb3a2c2b0c9b13a48f513125 Replaced the folder deletion procedure with the new single DELETE request (issue #2630) --- diff --git a/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java b/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java index de6877f..720b02e 100644 --- a/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java +++ b/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java @@ -215,52 +215,7 @@ public class FolderPermissionsDialog extends DialogBox { void updateFolder() { final Map perms = (permList.hasChanges() ? permList.getPermissions() : null); - final String newName = folderName.getText().trim(); - if (!folder.isContainer() && !folder.getName().equals(newName)) { - final String path = folder.getParent().getUri() + "/" + newName; - PutRequest newFolder = new PutRequest(app.getApiPath(), folder.getParent().getOwner(), path) { - @Override - public void onSuccess(Resource result) { - Iterator iter = folder.getFiles().iterator(); - app.copyFiles(iter, folder.getParent().getOwner(), folder.getParent().getUri() + "/" + newName, new Command() { - @Override - public void execute() { - Iterator iterf = folder.getSubfolders().iterator(); - app.copySubfolders(iterf, folder.getParent().getOwner(), folder.getParent().getUri() + "/" + newName, new Command() { - @Override - public void execute() { - app.deleteFolder(folder, null); - updateMetadata(path + "?update=", perms); - } - }); - } - }); - } - - @Override - public void onError(Throwable t) { - GWT.log("", t); - app.setError(t); - if(t instanceof RestException){ - app.displayError("Unable to update folder: " + ((RestException) t).getHttpStatusText()); - } - else - app.displayError("System error modifying folder: " + t.getMessage()); - } - - @Override - protected void onUnauthorized(Response response) { - app.sessionExpired(); - } - }; - newFolder.setHeader("X-Auth-Token", app.getToken()); - newFolder.setHeader("Content-Type", "application/folder"); - newFolder.setHeader("Accept", "*/*"); - newFolder.setHeader("Content-Length", "0"); - Scheduler.get().scheduleDeferred(newFolder); - } - else - updateMetadata(folder.getUri() + "?update=", perms); + updateMetadata(folder.getUri() + "?update=", perms); } protected void updateMetadata(final String path, final Map newPermissions) { diff --git a/src/gr/grnet/pithos/web/client/Pithos.java b/src/gr/grnet/pithos/web/client/Pithos.java index fcf9fb2..ec098cc 100644 --- a/src/gr/grnet/pithos/web/client/Pithos.java +++ b/src/gr/grnet/pithos/web/client/Pithos.java @@ -900,147 +900,44 @@ public class Pithos implements EntryPoint, ResizeHandler { } public void deleteFolder(final Folder folder, final Command callback) { - String path = getApiPath() + folder.getOwner() + "/" + folder.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(folder.getPrefix()) + "&t=" + System.currentTimeMillis(); - RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, path); - builder.setHeader("X-Auth-Token", getToken()); - try { - builder.sendRequest("", new RequestCallback() { - @Override - public void onResponseReceived(Request request, Response response) { - if (response.getStatusCode() == Response.SC_OK) { - JSONValue json = JSONParser.parseStrict(response.getText()); - JSONArray array = json.isArray(); - int i = 0; - if (array != null) { - deleteObject(folder, i, array, callback); - } - } - } - - @Override - public void onError(Request request, Throwable exception) { - setError(exception); - displayError("System error unable to delete folder: " + exception.getMessage()); - } - }); - } - catch (RequestException e) { - } - } - - void deleteObject(final Folder folder, final int i, final JSONArray array, final Command callback) { - if (i < array.size()) { - JSONObject o = array.get(i).isObject(); - if (o != null && !o.containsKey("subdir")) { - JSONString name = o.get("name").isString(); - String path = "/" + folder.getContainer() + "/" + name.stringValue(); - DeleteRequest delete = new DeleteRequest(getApiPath(), folder.getOwner(), URL.encode(path)) { - @Override - public void onSuccess(Resource result) { - deleteObject(folder, i + 1, array, callback); - } - - @Override - public void onError(Throwable t) { - GWT.log("", t); - setError(t); - displayError("System error unable to delete folder: " + t.getMessage()); - deleteObject(folder, i + 1, array, callback); - } - - @Override - protected void onUnauthorized(Response response) { - sessionExpired(); - } - }; - delete.setHeader("X-Auth-Token", getToken()); - Scheduler.get().scheduleDeferred(delete); - } - else if (o != null) { - String subdir = o.get("subdir").isString().stringValue(); - subdir = subdir.substring(0, subdir.length() - 1); - String path = getApiPath() + folder.getOwner() + "/" + folder.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(subdir) + "&t=" + System.currentTimeMillis(); - RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, path); - builder.setHeader("X-Auth-Token", getToken()); - try { - builder.sendRequest("", new RequestCallback() { - @Override - public void onResponseReceived(Request request, Response response) { - if (response.getStatusCode() == Response.SC_OK) { - JSONValue json = JSONParser.parseStrict(response.getText()); - JSONArray array2 = json.isArray(); - if (array2 != null) { - int l = array.size(); - for (int j=0; j