Revision f1b24b82 src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java
b/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java | ||
---|---|---|
49 | 49 |
import com.google.gwt.event.dom.client.ClickEvent; |
50 | 50 |
import com.google.gwt.event.dom.client.ClickHandler; |
51 | 51 |
import com.google.gwt.event.dom.client.KeyCodes; |
52 |
import com.google.gwt.http.client.Response; |
|
52 | 53 |
import com.google.gwt.i18n.client.DateTimeFormat; |
53 | 54 |
import com.google.gwt.user.client.Event.NativePreviewEvent; |
54 | 55 |
import com.google.gwt.user.client.ui.Button; |
... | ... | |
340 | 341 |
updateMetadata(folder.getUri() + "?update=", perms); |
341 | 342 |
} |
342 | 343 |
|
343 |
protected void updateMetadata(String path, Map<String, Boolean[]> newPermissions) {
|
|
344 |
protected void updateMetadata(final String path, final Map<String, Boolean[]> newPermissions) {
|
|
344 | 345 |
if (newPermissions != null) { |
345 | 346 |
PostRequest updateFolder = new PostRequest(app.getApiPath(), folder.getOwner(), path) { |
346 | 347 |
@Override |
... | ... | |
351 | 352 |
@Override |
352 | 353 |
public void onError(Throwable t) { |
353 | 354 |
GWT.log("", t); |
354 |
app.displayError("System error modifying folder: " + t.getMessage()); |
|
355 |
if (t instanceof RestException) { |
|
356 |
if (((RestException) t).getHttpStatusCode() == Response.SC_NOT_FOUND) { //Probably a virtual folder |
|
357 |
final String path1 = folder.getUri(); |
|
358 |
PutRequest newFolder = new PutRequest(app.getApiPath(), app.getUsername(), path1) { |
|
359 |
@Override |
|
360 |
public void onSuccess(@SuppressWarnings("unused") Resource result) { |
|
361 |
updateMetadata(path, newPermissions); |
|
362 |
} |
|
363 |
|
|
364 |
@Override |
|
365 |
public void onError(Throwable t) { |
|
366 |
GWT.log("", t); |
|
367 |
if(t instanceof RestException){ |
|
368 |
app.displayError("Unable to update folder: " + ((RestException) t).getHttpStatusText()); |
|
369 |
} |
|
370 |
else |
|
371 |
app.displayError("System error modifying folder: " + t.getMessage()); |
|
372 |
} |
|
373 |
}; |
|
374 |
newFolder.setHeader("X-Auth-Token", app.getToken()); |
|
375 |
newFolder.setHeader("Content-Type", "application/folder"); |
|
376 |
newFolder.setHeader("Accept", "*/*"); |
|
377 |
newFolder.setHeader("Content-Length", "0"); |
|
378 |
Scheduler.get().scheduleDeferred(newFolder); |
|
379 |
} |
|
380 |
} |
|
381 |
else |
|
382 |
app.displayError("System error modifying folder: " + t.getMessage()); |
|
355 | 383 |
} |
356 | 384 |
}; |
357 | 385 |
updateFolder.setHeader("X-Auth-Token", app.getToken()); |
Also available in: Unified diff