55 |
55 |
import com.google.gwt.http.client.URL;
|
56 |
56 |
import com.google.gwt.i18n.client.DateTimeFormat;
|
57 |
57 |
import com.google.gwt.resources.client.ImageResource;
|
|
58 |
import com.google.gwt.user.client.Command;
|
58 |
59 |
import com.google.gwt.user.client.Window;
|
59 |
60 |
import com.google.gwt.user.client.ui.Anchor;
|
60 |
61 |
import com.google.gwt.user.client.ui.Button;
|
... | ... | |
448 |
449 |
updateFile.setHeader("X-Auth-Token", app.getToken());
|
449 |
450 |
updateFile.setHeader("X-Move-From", URL.encodePathSegment(file.getUri()));
|
450 |
451 |
updateFile.setHeader("Content-Type", file.getContentType());
|
|
452 |
for (String key : file.getMeta().keySet())
|
|
453 |
updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(key.trim()), URL.encodePathSegment(newMeta.get(key)));
|
|
454 |
if (file.isPublished())
|
|
455 |
updateFile.setHeader("X-Object-Public", "true");
|
|
456 |
String readPermHeader = "read=";
|
|
457 |
String writePermHeader = "write=";
|
|
458 |
for (String u : file.getPermissions().keySet()) {
|
|
459 |
Boolean[] p = file.getPermissions().get(u);
|
|
460 |
if (p[0] != null && p[0])
|
|
461 |
readPermHeader += u + ",";
|
|
462 |
if (p[1] != null && p[1])
|
|
463 |
writePermHeader += u + ",";
|
|
464 |
}
|
|
465 |
if (readPermHeader.endsWith("="))
|
|
466 |
readPermHeader = "";
|
|
467 |
else if (readPermHeader.endsWith(","))
|
|
468 |
readPermHeader = readPermHeader.substring(0, readPermHeader.length() - 1);
|
|
469 |
if (writePermHeader.endsWith("="))
|
|
470 |
writePermHeader = "";
|
|
471 |
else if (writePermHeader.endsWith(","))
|
|
472 |
writePermHeader = writePermHeader.substring(0, writePermHeader.length() - 1);
|
|
473 |
String permHeader = readPermHeader + ((readPermHeader.length() > 0 && writePermHeader.length() > 0) ? ";" : "") + writePermHeader;
|
|
474 |
if (permHeader.length() == 0)
|
|
475 |
permHeader="~";
|
|
476 |
else
|
|
477 |
permHeader = URL.encodePathSegment(permHeader);
|
|
478 |
updateFile.setHeader("X-Object-Sharing", permHeader);
|
|
479 |
|
451 |
480 |
Scheduler.get().scheduleDeferred(updateFile);
|
452 |
481 |
}
|
453 |
482 |
else
|
454 |
483 |
updateMetaData(app.getApiPath(), app.getUsername(), file.getUri() + "?update=", newMeta, finalPublished, perms);
|
455 |
484 |
}
|
456 |
485 |
|
457 |
|
protected void updateMetaData(String api, String owner, String path, Map<String, String> newMeta, Boolean published, Map<String, Boolean[]> newPermissions) {
|
|
486 |
protected void updateMetaData(String api, String owner, String path, Map<String, String> newMeta, final Boolean published, final Map<String, Boolean[]> newPermissions) {
|
458 |
487 |
if (newMeta != null || published != null || newPermissions != null) {
|
459 |
488 |
PostRequest updateFile = new PostRequest(api, owner, path) {
|
460 |
489 |
@Override
|
461 |
490 |
public void onSuccess(@SuppressWarnings("unused") Resource result) {
|
462 |
|
app.updateFolder(file.getParent(), true, null);
|
|
491 |
app.updateFolder(file.getParent(), true, new Command() {
|
|
492 |
|
|
493 |
@Override
|
|
494 |
public void execute() {
|
|
495 |
app.updateMySharedRoot();
|
|
496 |
}
|
|
497 |
});
|
463 |
498 |
}
|
464 |
499 |
|
465 |
500 |
@Override
|
... | ... | |
515 |
550 |
Scheduler.get().scheduleDeferred(updateFile);
|
516 |
551 |
}
|
517 |
552 |
else
|
518 |
|
app.updateFolder(file.getParent(), true, null);
|
|
553 |
app.updateFolder(file.getParent(), true, new Command() {
|
|
554 |
|
|
555 |
@Override
|
|
556 |
public void execute() {
|
|
557 |
if (file.isShared())
|
|
558 |
app.updateMySharedRoot();
|
|
559 |
}
|
|
560 |
});
|
519 |
561 |
}
|
520 |
562 |
}
|