Revision 3601b114

b/src/gr/grnet/pithos/web/client/FilePropertiesDialog.java
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
}
b/src/gr/grnet/pithos/web/client/Pithos.java
141 141
        groupTreeView.updateGroupNode(group);
142 142
    }
143 143

  
144
    public void updateMySharedRoot() {
145
    	mysharedTreeView.updateRoot();
146
    }
147
    
144 148
    public void updateSharedFolder(Folder f, boolean showfiles) {
145 149
    	mysharedTreeView.updateFolder(f, showfiles);
146 150
    }
b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeView.java
149 149
    public void updateFolder(Folder folder, boolean showfiles) {
150 150
        model.updateFolder(folder, showfiles);
151 151
    }
152

  
153
	public void updateRoot() {
154
		model.fetchSharedFiles(false);
155
	}
152 156
}
b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeViewModel.java
120 120
                    if (selectionModel2.getSelectedObject() != null) {
121 121
                    	app.deselectOthers(app.getMySharedTreeView(), selectionModel2);
122 122
                    	app.applyPermissions(null);
123
                    	fetchSharedFiles();
123
                    	fetchSharedFiles(true);
124 124
                    }
125 125
                }
126 126
            });
......
156 156
        }
157 157
    }
158 158

  
159
	protected void fetchSharedFiles() {
159
	protected void fetchSharedFiles(final boolean showFiles) {
160
		sharedFiles.clear();
160 161
    	final List<Folder> containers = app.getAccount().getContainers();
161 162
    	final ListDataProvider<Folder> tempProvider = new ListDataProvider<Folder>();
162 163
    	Iterator<Folder> iter = containers.iterator();
......
166 167
			public void execute() {
167 168
				firstLevelDataProvider.getList().clear();
168 169
				firstLevelDataProvider.getList().addAll(tempProvider.getList());
169
				app.showFiles(sharedFiles);
170
				if (showFiles)
171
					app.showFiles(sharedFiles);
170 172
			}
171 173
		});
172 174
	}

Also available in: Unified diff