[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

Reply via email to