Revision 64d3b76b src/gr/grnet/pithos/web/client/FilePermissionsDialog.java
b/src/gr/grnet/pithos/web/client/FilePermissionsDialog.java | ||
---|---|---|
91 | 91 |
|
92 | 92 |
final File file; |
93 | 93 |
|
94 |
Images images = GWT.create(Images.class);
|
|
94 |
FileShareDialog.PrivateSharingImages images = GWT.create(FileShareDialog.PrivateSharingImages.class);
|
|
95 | 95 |
|
96 | 96 |
/** |
97 | 97 |
* The widget's constructor. |
... | ... | |
204 | 204 |
|
205 | 205 |
pathPanel = new HorizontalPanel(); |
206 | 206 |
pathPanel.setVisible(false); |
207 |
pathPanel.setWidth("100%");
|
|
207 |
pathPanel.setWidth(Const.PERCENT_100);
|
|
208 | 208 |
pathPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT); |
209 | 209 |
pathPanel.add(new Label("Link")); |
210 | 210 |
pathPanel.setSpacing(8); |
211 | 211 |
pathPanel.addStyleName("pithos-TabPanelBottom"); |
212 | 212 |
|
213 | 213 |
path = new TextBox(); |
214 |
path.setWidth("100%");
|
|
214 |
path.setWidth(Const.PERCENT_100);
|
|
215 | 215 |
path.addClickHandler(new ClickHandler() { |
216 | 216 |
@Override |
217 | 217 |
public void onClick(ClickEvent event) { |
... | ... | |
222 | 222 |
}); |
223 | 223 |
path.setText(Window.Location.getHost() + file.getPublicUri()); |
224 | 224 |
path.setTitle("Use this link for sharing the file via e-mail, IM, etc. (crtl-C/cmd-C to copy to system clipboard)"); |
225 |
path.setWidth("100%");
|
|
225 |
path.setWidth(Const.PERCENT_100);
|
|
226 | 226 |
path.setReadOnly(true); |
227 | 227 |
pathPanel.add(path); |
228 | 228 |
permPanel.add(pathPanel); |
... | ... | |
242 | 242 |
UrlBuilder b = Window.Location.createUrlBuilder(); |
243 | 243 |
b.setPath(app.getApiPath() + file.getOwnerID() + file.getUri()); |
244 | 244 |
String href = Window.Location.getHref(); |
245 |
boolean hasParameters = href.contains("?");
|
|
246 |
path.setText(href + (hasParameters ? "&" : "?") + "goto=" + b.buildString());
|
|
245 |
boolean hasParameters = href.contains(Const.QUESTION_MARK);
|
|
246 |
path.setText(href + (hasParameters ? Const.AMPERSAND : Const.QUESTION_MARK) + Const.GOTO_EQ + b.buildString());
|
|
247 | 247 |
pathPanel.setVisible(true); |
248 | 248 |
} |
249 | 249 |
else { |
... | ... | |
256 | 256 |
*/ |
257 | 257 |
@Override |
258 | 258 |
protected boolean accept() { |
259 |
updateMetaData(app.getApiPath(), app.getUserID(), file.getUri() + "?update=", permList.getPermissions()); |
|
259 |
updateMetaData( |
|
260 |
app.getApiPath(), |
|
261 |
app.getUserID(), |
|
262 |
file.getUri() + Const.QUESTION_MARK_UPDATE_EQ, |
|
263 |
permList.getPermissions() |
|
264 |
); |
|
260 | 265 |
return true; |
261 | 266 |
} |
262 | 267 |
|
... | ... | |
284 | 289 |
|
285 | 290 |
@Override |
286 | 291 |
public void onError(Throwable t) { |
287 |
GWT.log("", t); |
|
288 | 292 |
app.setError(t); |
289 | 293 |
app.displayError("System error modifying file:" + t.getMessage()); |
290 | 294 |
} |
... | ... | |
294 | 298 |
app.sessionExpired(); |
295 | 299 |
} |
296 | 300 |
}; |
297 |
headFile.setHeader("X-Auth-Token", app.getUserToken());
|
|
301 |
headFile.setHeader(Const.X_AUTH_TOKEN, app.getUserToken());
|
|
298 | 302 |
Scheduler.get().scheduleDeferred(headFile); |
299 | 303 |
} |
300 | 304 |
|
301 | 305 |
@Override |
302 | 306 |
public void onError(Throwable t) { |
303 |
GWT.log("", t); |
|
304 | 307 |
app.setError(t); |
305 | 308 |
app.displayError("System error modifying file:" + t.getMessage()); |
306 | 309 |
} |
... | ... | |
310 | 313 |
app.sessionExpired(); |
311 | 314 |
} |
312 | 315 |
}; |
313 |
updateFile.setHeader("X-Auth-Token", app.getUserToken());
|
|
316 |
updateFile.setHeader(Const.X_AUTH_TOKEN, app.getUserToken());
|
|
314 | 317 |
|
315 |
String readPermHeader = "read=";
|
|
316 |
String writePermHeader = "write=";
|
|
318 |
String readPermHeader = Const.READ_EQ;
|
|
319 |
String writePermHeader = Const.WRITE_EQ;
|
|
317 | 320 |
for (String u : newPermissions.keySet()) { |
318 | 321 |
Boolean[] p = newPermissions.get(u); |
319 |
if (p[0] != null && p[0]) |
|
320 |
readPermHeader += u + ","; |
|
321 |
if (p[1] != null && p[1]) |
|
322 |
writePermHeader += u + ","; |
|
322 |
if (p[0] != null && p[0]) { |
|
323 |
readPermHeader += u + Const.COMMA; |
|
324 |
} |
|
325 |
if (p[1] != null && p[1]) { |
|
326 |
writePermHeader += u + Const.COMMA; |
|
327 |
} |
|
323 | 328 |
} |
324 |
if (readPermHeader.endsWith("="))
|
|
329 |
if (readPermHeader.endsWith(Const.EQ)) {
|
|
325 | 330 |
readPermHeader = ""; |
326 |
else if (readPermHeader.endsWith(",")) |
|
331 |
} |
|
332 |
else if (readPermHeader.endsWith(Const.COMMA)) { |
|
327 | 333 |
readPermHeader = readPermHeader.substring(0, readPermHeader.length() - 1); |
328 |
if (writePermHeader.endsWith("=")) |
|
334 |
} |
|
335 |
if (writePermHeader.endsWith(Const.EQ)) { |
|
329 | 336 |
writePermHeader = ""; |
330 |
else if (writePermHeader.endsWith(",")) |
|
337 |
} |
|
338 |
else if (writePermHeader.endsWith(Const.COMMA)) { |
|
331 | 339 |
writePermHeader = writePermHeader.substring(0, writePermHeader.length() - 1); |
332 |
String permHeader = readPermHeader + ((readPermHeader.length() > 0 && writePermHeader.length() > 0) ? ";" : "") + writePermHeader; |
|
333 |
if (permHeader.length() == 0) |
|
334 |
permHeader="~"; |
|
335 |
else |
|
340 |
} |
|
341 |
String permHeader = readPermHeader + |
|
342 |
((readPermHeader.length() > 0 && writePermHeader.length() > 0) ? Const.SEMI : "") + writePermHeader; |
|
343 |
if (permHeader.length() == 0) { |
|
344 |
permHeader=Const.TILDE; |
|
345 |
} |
|
346 |
else { |
|
336 | 347 |
permHeader = URL.encodePathSegment(permHeader); |
337 |
updateFile.setHeader("X-Object-Sharing", permHeader); |
|
348 |
} |
|
349 |
updateFile.setHeader(Const.X_OBJECT_SHARING, permHeader); |
|
338 | 350 |
Scheduler.get().scheduleDeferred(updateFile); |
339 | 351 |
} |
340 |
else if (!app.isMySharedSelected()) |
|
352 |
else if (!app.isMySharedSelected()) {
|
|
341 | 353 |
app.updateFolder(file.getParent(), true, new Command() { |
342 |
|
|
343 | 354 |
@Override |
344 | 355 |
public void execute() { |
345 | 356 |
if (file.isSharedOrPublished()) |
346 | 357 |
app.updateMySharedRoot(); |
347 | 358 |
} |
348 | 359 |
}, true); |
349 |
else |
|
360 |
} |
|
361 |
else { |
|
350 | 362 |
app.updateSharedFolder(file.getParent(), true); |
363 |
} |
|
351 | 364 |
} |
352 | 365 |
|
353 | 366 |
@Override |
... | ... | |
355 | 368 |
super.onPreviewNativeEvent(preview); |
356 | 369 |
|
357 | 370 |
NativeEvent evt = preview.getNativeEvent(); |
358 |
if (evt.getType().equals("keydown") && evt.getKeyCode() == KeyCodes.KEY_ENTER) |
|
359 |
closeDialog(); |
|
371 |
if (evt.getType().equals(Const.EVENT_TYPE_KEYDOWN) && |
|
372 |
evt.getKeyCode() == KeyCodes.KEY_ENTER) { |
|
373 |
|
|
374 |
closeDialog(); |
|
375 |
} |
|
360 | 376 |
} |
361 | 377 |
} |
Also available in: Unified diff