Revision 2c801ad7

b/src/gr/grnet/pithos/web/client/DeleteFolderDialog.java
101 101
		Button ok = new Button("Delete", new ClickHandler() {
102 102
			@Override
103 103
			public void onClick(ClickEvent event) {
104
				app.deleteFolder(folder);
104
				app.deleteFolder(folder, null);
105 105
				hide();
106 106
			}
107 107
		});
......
123 123
			switch (evt.getKeyCode()) {
124 124
				case KeyCodes.KEY_ENTER:
125 125
					hide();
126
					app.deleteFolder(folder);
126
					app.deleteFolder(folder, null);
127 127
					break;
128 128
				case KeyCodes.KEY_ESCAPE:
129 129
					hide();
b/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java
213 213
                            app.copySubfolders(iterf, folder.getParent().getOwner(), folder.getParent().getUri() + "/" + newName, new Command() {
214 214
                                @Override
215 215
                                public void execute() {
216
                                    app.deleteFolder(folder);
216
                                    app.deleteFolder(folder, null);
217 217
                                    updateMetadata(path + "?update=", perms);
218 218
                                }
219 219
                            });
b/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java
303 303
                            app.copySubfolders(iterf, folder.getParent().getOwner(), folder.getParent().getUri() + "/" + newName, new Command() {
304 304
                                @Override
305 305
                                public void execute() {
306
                                    app.deleteFolder(folder);
307
                                    app.updateFolder(folder.getParent(), false, new Command() {
308
                            			
309
                            			@Override
310
                            			public void execute() {
311
                            				app.updateMySharedRoot();
312
                            			}
313
                            		});
306
                                    app.deleteFolder(folder, new Command() {
307
										
308
										@Override
309
										public void execute() {
310
		                                    app.updateFolder(folder.getParent(), false, new Command() {
311
		                            			
312
		                            			@Override
313
		                            			public void execute() {
314
		                            				app.updateMySharedRoot();
315
		                            			}
316
		                            		});
317
										}
318
									});
314 319
                                }
315 320
                            });
316 321
                        }
b/src/gr/grnet/pithos/web/client/Pithos.java
813 813
		History.newItem(key);
814 814
	}
815 815

  
816
    public void deleteFolder(final Folder folder) {
816
    public void deleteFolder(final Folder folder, final Command callback) {
817 817
        String path = getApiPath() + folder.getOwner() + "/" + folder.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(folder.getPrefix()) + "&t=" + System.currentTimeMillis();
818 818
        RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, path);
819 819
        builder.setHeader("X-Auth-Token", getToken());
......
826 826
                        JSONArray array = json.isArray();
827 827
                        int i = 0;
828 828
                        if (array != null) {
829
                            deleteObject(folder, i, array);
829
                            deleteObject(folder, i, array, callback);
830 830
                        }
831 831
                    }
832 832
                }
......
842 842
        }
843 843
    }
844 844

  
845
    void deleteObject(final Folder folder, final int i, final JSONArray array) {
845
    void deleteObject(final Folder folder, final int i, final JSONArray array, final Command callback) {
846 846
        if (i < array.size()) {
847 847
            JSONObject o = array.get(i).isObject();
848 848
            if (o != null && !o.containsKey("subdir")) {
......
851 851
                DeleteRequest delete = new DeleteRequest(getApiPath(), folder.getOwner(), URL.encode(path)) {
852 852
                    @Override
853 853
                    public void onSuccess(Resource result) {
854
                        deleteObject(folder, i + 1, array);
854
                        deleteObject(folder, i + 1, array, callback);
855 855
                    }
856 856

  
857 857
                    @Override
......
888 888
                                        array.set(l++, array2.get(j));
889 889
                                    }
890 890
                                }
891
                                deleteObject(folder, i + 1, array);
891
                                deleteObject(folder, i + 1, array, callback);
892 892
                            }
893 893
                        }
894 894

  
......
913 913
						@Override
914 914
						public void execute() {
915 915
							updateStatistics();
916
							if (callback != null)
917
								callback.execute();
916 918
						}
917 919
					});
918 920
                }
b/src/gr/grnet/pithos/web/client/commands/PasteCommand.java
95 95
                    @Override
96 96
                    public void execute() {
97 97
                        app.getClipboard().clear();
98
                        app.deleteFolder(tobeCopied);
98
                        app.deleteFolder(tobeCopied, null);
99 99
                        app.updateFolder(folder, true, null);
100 100
                    }
101 101
                });

Also available in: Unified diff