Author: solomax
Date: Thu Mar 30 12:48:50 2017
New Revision: 1789519

URL: http://svn.apache.org/viewvc?rev=1789519&view=rev
Log:
[OPENMEETINGS-1520] restricted drive files can be sent to WB

Modified:
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java?rev=1789519&r1=1789518&r2=1789519&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
 Thu Mar 30 12:48:50 2017
@@ -78,6 +78,14 @@ public class FileItemTree extends Defaul
                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) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1789519&r1=1789518&r2=1789519&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
 Thu Mar 30 12:48:50 2017
@@ -223,8 +223,12 @@ public abstract class FileTreePanel exte
 
        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 exte
        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 exte
                        trashBorder.add(AttributeModifier.replace("class", new 
StringBuilder(TRASH_CLASS).append(readOnly ? DISABLED_CLASS : "")));
                        if (handler != null) {
                                handler.add(createDir, upload, trashBorder);
+                               update(handler);
                        }
                }
        }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java?rev=1789519&r1=1789518&r2=1789519&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
 Thu Mar 30 12:48:50 2017
@@ -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;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1789519&r1=1789518&r2=1789519&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Thu Mar 30 12:48:50 2017
@@ -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

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java?rev=1789519&r1=1789518&r2=1789519&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
 Thu Mar 30 12:48:50 2017
@@ -78,6 +78,14 @@ public class FileItemTree extends Defaul
                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) {

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1789519&r1=1789518&r2=1789519&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
 Thu Mar 30 12:48:50 2017
@@ -223,8 +223,12 @@ public abstract class FileTreePanel exte
 
        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 exte
        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 exte
                        trashBorder.add(AttributeModifier.replace("class", new 
StringBuilder(TRASH_CLASS).append(readOnly ? DISABLED_CLASS : "")));
                        if (handler != null) {
                                handler.add(createDir, upload, trashBorder);
+                               update(handler);
                        }
                }
        }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java?rev=1789519&r1=1789518&r2=1789519&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
 Thu Mar 30 12:48:50 2017
@@ -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;

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1789519&r1=1789518&r2=1789519&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Thu Mar 30 12:48:50 2017
@@ -188,7 +188,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