[OPENMEETINGS-1520] restricted drive files can be sent to WB
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/b8c2ac9f Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/b8c2ac9f Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/b8c2ac9f Branch: refs/heads/3.2.x Commit: b8c2ac9fbab25f5326922e4e31ff83359fd7866d Parents: d24410c Author: Maxim Solodovnik <[email protected]> Authored: Thu Mar 30 12:48:50 2017 +0000 Committer: Maxim Solodovnik <[email protected]> Committed: Thu Mar 30 12:48:50 2017 +0000 ---------------------------------------------------------------------- .../apache/openmeetings/web/common/tree/FileItemTree.java | 8 ++++++++ .../apache/openmeetings/web/common/tree/FileTreePanel.java | 9 +++++++-- .../apache/openmeetings/web/common/tree/FolderPanel.java | 5 +++-- .../java/org/apache/openmeetings/web/room/RoomPanel.java | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b8c2ac9f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java index 7ddc63e..f416316 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java @@ -78,6 +78,14 @@ public class FileItemTree extends DefaultNestedTree<FileItem> { return (OmTreeProvider)super.getProvider(); } + public void refreshRoots(boolean all) { + modelChanging(); + getModelObject().clear(); + modelChanged(); + getProvider().refreshRoots(all); + replace(newSubtree("subtree", Model.of((FileItem)null))); + } + @Override protected Component newContentComponent(String id, IModel<FileItem> node) { return new Folder<FileItem>(id, this, node) { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b8c2ac9f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java index 1cb375f..a23cbd1 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java @@ -223,8 +223,12 @@ public abstract class FileTreePanel extends Panel { private void deleteAll(AjaxRequestTarget target) { for (Entry<String, FileItem> e : selected.entrySet()) { - delete(e.getValue(), target); + FileItem f = e.getValue(); + if (!f.isReadOnly()) { + delete(f, target); + } } + updateSelected(target); selected.clear(); } @@ -243,7 +247,7 @@ public abstract class FileTreePanel extends Panel { public void setReadOnly(boolean readOnly, IPartialPageRequestHandler handler) { if (this.readOnly != readOnly) { this.readOnly = readOnly; - tree.getProvider().refreshRoots(!readOnly); + tree.refreshRoots(!readOnly); createDir.setEnabled(!readOnly); createDir.add(AttributeModifier.replace("class", new StringBuilder(CREATE_DIR_CLASS).append(readOnly ? DISABLED_CLASS : ""))); upload.setEnabled(!readOnly); @@ -251,6 +255,7 @@ public abstract class FileTreePanel extends Panel { trashBorder.add(AttributeModifier.replace("class", new StringBuilder(TRASH_CLASS).append(readOnly ? DISABLED_CLASS : ""))); if (handler != null) { handler.add(createDir, upload, trashBorder); + update(handler); } } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b8c2ac9f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java index 4f50487..fdc60b4 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java @@ -79,7 +79,7 @@ public class FolderPanel extends Panel { target.add(treePanel.trees); } } : new WebMarkupContainer("drop"); - if (r.getId() == null || !editable) { + if (r.getId() == null || treePanel.isReadOnly()) { drag = new WebMarkupContainer("drag"); } else { drag = new Draggable<FileItem>("drag", Model.of(r)) { @@ -93,7 +93,8 @@ public class FolderPanel extends Panel { behavior.setOption("helper", "dragHelper"); } }.setContainment(treePanel.getContainment()); - drag.add(AttributeModifier.append("class", r instanceof Recording ? "recorditem" : "fileitem")); + String cls = r instanceof Recording ? "recorditem" : "fileitem"; + drag.add(AttributeModifier.append("class", r.isReadOnly() ? "readonlyitem" : cls)); } Component name = r.getId() == null || !editable ? new Label("name", r.getName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getName())) { private static final long serialVersionUID = 1L; http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b8c2ac9f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java index 8569aec..1146441 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java @@ -181,7 +181,7 @@ public class RoomPanel extends BasePanel { public void onConfigure(JQueryBehavior behavior) { super.onConfigure(behavior); behavior.setOption("hoverClass", Options.asString("ui-state-hover")); - behavior.setOption("accept", Options.asString(".recorditem, .fileitem")); + behavior.setOption("accept", Options.asString(".recorditem, .fileitem, .readonlyitem")); } @Override
