Author: solomax
Date: Thu Nov 26 19:51:00 2015
New Revision: 1716760

URL: http://svn.apache.org/viewvc?rev=1716760&view=rev
Log:
[OPENMEETINGS-1279] add folder works as expected (almost)

Modified:
    
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
    
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dynamicFileName.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/documentFileExplorerItem.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/folderFileExplorerItem.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/imageFileExplorerItem.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/rootFileExplorerItem.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/videoFileExplorerItem.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/wmlFileExplorerItem.lzx
    
openmeetings/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
    
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/public/config.xml
    
openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java
    
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
    
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java

Modified: 
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
 Thu Nov 26 19:51:00 2015
@@ -93,19 +93,6 @@ public class FileExplorerItemDao {
                return null;
        }
 
-       public Long addFileExplorerItem(FileExplorerItem fileItem) {
-               try {
-
-                       fileItem = em.merge(fileItem);
-                       Long fileItemId = fileItem.getId();
-
-                       return fileItemId;
-               } catch (Exception ex2) {
-                       log.error("[addFileExplorerItem]", ex2);
-               }
-               return null;
-       }
-
        public List<FileExplorerItem> getFileExplorerItemsByRoomAndOwner(Long 
roomId, Long ownerId) {
                log.debug(".getFileExplorerItemsByRoomAndOwner() started");
                try {
@@ -238,11 +225,11 @@ public class FileExplorerItemDao {
                // fId.setUpdated(new Date());
 
                if (f.getId() == null) {
+                       f.setInserted(new Date());
                        em.persist(f);
                } else {
-                       if (!em.contains(f)) {
-                               f = em.merge(f);
-                       }
+                       f.setUpdated(new Date());
+                       f = em.merge(f);
                }
                return f;
        }

Modified: 
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java
 Thu Nov 26 19:51:00 2015
@@ -44,6 +44,7 @@ public class FileExplorerItemDTO impleme
        private String hash;
        private Long parentId;
        private Long roomId;
+       private Long ownerId;
        private Long size;
        private String externalId;
        private String externalType;
@@ -59,6 +60,7 @@ public class FileExplorerItemDTO impleme
                hash = f.getHash();
                parentId = f.getParentId();
                roomId = f.getRoomId();
+               ownerId = f.getOwnerId();
                size = f.getSize();
                externalId = f.getExternalId();
                externalType = f.getExternalType();
@@ -74,6 +76,7 @@ public class FileExplorerItemDTO impleme
                f.setHash(hash);
                f.setParentId(parentId);
                f.setRoomId(roomId);
+               f.setOwnerId(ownerId);
                f.setSize(size);
                f.setExternalId(externalId);
                f.setExternalType(externalType);
@@ -90,7 +93,7 @@ public class FileExplorerItemDTO impleme
        public void setId(Long id) {
                this.id = id;
        }
-       
+
        public String getName() {
                return name;
        }
@@ -123,6 +126,14 @@ public class FileExplorerItemDTO impleme
                this.roomId = roomId;
        }
 
+       public Long getOwnerId() {
+               return ownerId;
+       }
+
+       public void setOwnerId(Long ownerId) {
+               this.ownerId = ownerId;
+       }
+
        public Long getSize() {
                return size;
        }

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
 Thu Nov 26 19:51:00 2015
@@ -47,8 +47,8 @@
                <![CDATA[
                if (this.refObj != itemRef) {
                        
-                       if (this.refObj.isFolder) {
-                               if (!itemRef.isTrashCan && !itemRef.isFolder) {
+                       if (this.refObj.type == 'Folder') {
+                               if (!itemRef.isTrashCan && itemRef.type != 
'Folder') {
                                        //No Folders to the whiteboard please
                                        return;
                                }
@@ -97,7 +97,7 @@
                                   showCheckBox:false,
                            refReturnMethod:"sendConfirmation"
                                });
-               } else if (this.overItem["isFolder"] && this.overItem.isFolder){
+               } else if (this.overItem["type"] && this.overItem.type == 
'Folder'){
                        if ($debug) Debug.write("MOVE ITEM",this.refObj.fileId);
                        if ($debug) Debug.write("MOVE TO 
PARENT",this.overItem.fileId);
                        this.fileId = this.refObj.fileId;
@@ -121,17 +121,22 @@
                        this.moveFile();
                } else {
                        if ($debug) Debug.warn("Drag to whiteboard !!! ");
-                       if (this.refObj.isVideo) {
-                               this.refObj.playVideo();
-                       } else if (this.refObj.isPresentation) {
-                           this.refObj.loadDocumentToWhiteboard();
-                       } else if (this.refObj.isImage) {
-                               this.refObj.loadImageToWhiteboard();
-                       } else if (this.refObj.isWmlFile) {
-                               this.refObj.loadWmlFile();
-                       } else {
-                               if ($debug) Debug.warn("Should never happen 
dragItemFileExplorer unhandled case");
-                       }
+                   switch (this.refObj.type) {
+                       case 'Video':
+                               this.refObj.playVideo();
+                               break;
+                       case 'WmlFile':
+                               this.refObj.loadWmlFile();
+                               break;
+                                       case 'Presentation':
+                                               
this.refObj.loadDocumentToWhiteboard();
+                               break;
+                                       case 'Image':
+                                               
this.refObj.loadImageToWhiteboard();
+                               break;
+                       default:
+                               if ($debug) Debug.warn("Should never happen 
dragItemFileExplorer unhandled case");
+                   }
                        this.destroy();
                }
        } else {

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dynamicFileName.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dynamicFileName.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dynamicFileName.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dynamicFileName.lzx
 Thu Nov 26 19:51:00 2015
@@ -20,64 +20,79 @@
 -->
 <library>
 
-<class name="dynamicFileName" extends="customInputtext" 
-          fontsize="10" bgcolor="0xFFFFFF">
-       
-       <attribute name="isNew" value="false" type="boolean" />
-       
-       <!-- Only used in case its an update -->
-       <attribute name="fileId" value="0" type="number" />
-       
-       <attribute name="parentId" value="0" type="number" />
-       <attribute name="isOwner" value="false" type="boolean" />
+<class name="dynamicFileName" extends="customInputtext" fontsize="10" 
bgcolor="0xFFFFFF">
+       <switch>
+               <when property="$as3">
+                       <passthrough>
+                               import flash.net.*;
+                       </passthrough>
+               </when>
+       </switch>
        
        <attribute name="refObj" value="null" />
+       <attribute name="addFolderLoader"/>
        
        <handler name="onblur">
                lz.ModeManager.release(this);
-               if ($debug) Debug.write("Store and Destroy ",this.parentId);
-               if (this.isNew) {
-                   this.addFolder();
+               if ($debug) Debug.write("Store and Destroy ", 
this.refObj.parentId);
+               if (this.refObj.fileId == 0) {
+                   this.add();
                } else {
-                       this.updateFileOrFolderName();
+                       this.rename();
                }
        </handler>
        
        <handler name="onkeydown" args="k">
-               <![CDATA[
-               if (k == 13 || k == 27) {
-                       this.onblur.sendEvent();
-               }
-               ]]>
+       <![CDATA[
+               if (k == 13 || k == 27) {
+                       this.onblur.sendEvent();
+               }
+       ]]>
        </handler>
        
-       <method name="addFolder">
+       <method name="add">
         <![CDATA[
-            if ($debug) Debug.write("addFolder HTTP 1: ");
-            var downloadurl = 
canvas.getUrl()+'services/FileService/addFolderSelfInternal?'
-                            +'SID='+canvas.sessionId
-                            +'&parentId='+this.parentId
-                            +'&fileName='+this.text
-                            +'&roomId='+hib.currentroomid
-                            +'&isOwner='+this.isOwner;
-            
-            this.addFolderSelf.setAttribute("src", downloadurl);
-            if ($debug) Debug.write("addFolderSelf doRequest ", downloadurl);
-            this.addFolderSelf.doRequest();
+            if ($debug) Debug.write("addFolder:: ", this);
+                       if (!addFolderLoader) {
+                               addFolderLoader = new RestCall({
+                                       url: canvas.getUrl() + 'services/file/'
+                                       , method: URLRequestMethod.POST
+                                       , dataFormat: URLLoaderDataFormat.BINARY
+                                       , contentType: "multipart/form-data; 
boundary=" + UploadPostHelper.getBoundary()
+                                       , errorCallback: httpRequestError
+                                       , successCallback: addFolderComplete
+                                       });
+                       }
+                       var vars = UploadPostHelper.getPostData(null, null, [
+                               {
+                                       name: 'file'
+                                       , type: 'application/json'
+                                       , value: 
JSON.stringify({fileExplorerItemDTO: {
+                                               name: this.text
+                                               , parentId: 
this.refObj.parentId > 0 ? this.refObj.parentId : null
+                                               , roomId: this.refObj.roomId > 
0 ? this.refObj.roomId : null
+                                               , ownerId: this.refObj.ownerId 
> 0 ? this.refObj.ownerId : null
+                                               , type: this.refObj.type
+                                               }})
+                                       }
+                               ]);
+            if ($debug) Debug.write("addFolder:: ", vars);
+                       addFolderLoader.load(vars);
+                       //FIXME TODO revert changes on error
         ]]>
     </method>
     
-    <dataset name="addFolderSelf" type="http" >
-        <handler name="ondata" args="d">
-            <![CDATA[
-                //if ($debug) Debug.write("ondata ",d);
-                if ($debug) Debug.write("addFolderSelf: ",d);
-                parent.completed();
-            ]]>
-        </handler>
-    </dataset>
+       <method name="addFolderComplete" args="event">
+               if ($debug) Debug.info("addFolderComplete ", event);
+               completed();
+       </method>
+
+       <method name="httpRequestError" args="event">
+               if ($debug) Debug.error("httpRequestError ", event);
+               completed();
+       </method>
        
-    <method name="updateFileOrFolderName">
+    <method name="rename">
         <![CDATA[
             if ($debug) Debug.write("moveFile HTTP 1: ");
             var downloadurl = 
canvas.getUrl()+'services/FileService/updateFileOrFolderNameSelf?'
@@ -102,13 +117,13 @@
     </dataset>
     
        <method name="completed">
-               this.refObj.setAttribute("fileName",this.getText());
+               this.refObj.setAttribute("fileName", this.text);
                this.refObj.parent.parent.doOpen();
                this.destroy();
        </method>
        
        <method name="completedRename">
-               this.refObj.setAttribute("fileName",this.getText());
+               this.refObj.setAttribute("fileName",this.text);
                this.destroy();
        </method>
        

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
 Thu Nov 26 19:51:00 2015
@@ -28,12 +28,10 @@
        <switch>
                <when property="$as3">
                        <passthrough>
-                               import flash.events.*;
                                import flash.net.*;
                        </passthrough>
                </when>
        </switch>
-       <attribute name="parentFolderId" value="-2" type="number" />
        <attribute name="_selected" value="null" />
        <attribute name="rootFileLoader" />
     
@@ -47,7 +45,7 @@
        <handler name="onvisible">
                if ($debug) Debug.write("fileExplorer::onvisible this._selected 
", this._selected);
                //This is thrown whenever an uploaded Document has completed
-               if (this._selected == null || !this._selected.isFolder) {
+               if (this._selected == null || this._selected.type == 'Folder') {
                        this.loadFiles();
                } else {
                        this._selected.refresh();
@@ -65,9 +63,6 @@
         //Set parent folder id for next Folder or uploaded file
         if (this._selected.fileId == 0) {
             if (this._selected.isOwner) {
-                this.parentFolderId = -2;
-            } else {
-                this.parentFolderId = 0;
             }
         } else {
             this.parentFolderId = this._selected.fileId;
@@ -77,7 +72,7 @@
     
     <method name="addFile">
        <![CDATA[
-               if ($debug) Debug.write("addFile :: 
",this._selected,this.parentFolderId);
+               if ($debug) Debug.write("addFile :: ",this._selected);
                
                if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
                        new lz.labelerrorPopup(canvas,{errorlabelid:1462});
@@ -122,11 +117,11 @@
                        if ($debug) Debug.write("addFolder ::1 
",this._selected);
                    this._filearea._contentarea.subviews[0].addFolder();
                } else {
-                   if (this._selected.isFolder) {
-                       if ($debug) Debug.write("-1 this._selected.isFolder 
",this._selected);
+                   if (this._selected.type == 'Folder') {
+                       if ($debug) Debug.write("-1 this._selected->Folder ", 
this._selected);
                        this._selected.addFolder();
                    } else {
-                       if ($debug) Debug.write("-2 !this._selected.isFolder 
",this._selected);
+                       if ($debug) Debug.write("-2 this._selected->!Folder ", 
this._selected);
                        this._selected.parent.parent.addFolder();
                    }
                }
@@ -164,23 +159,20 @@
        <method name="loadFiles">
        <![CDATA[
                if (!rootFileLoader) {
-                       rootFileLoader = new lz.restCall(this, {
-                               restUrl: canvas.getUrl() + 
'services/file/room/' + hib.currentroomid
-                               , restMethod: URLRequestMethod.GET
+                       rootFileLoader = new RestCall({
+                               url: canvas.getUrl() + 'services/file/room/' + 
hib.currentroomid
+                               , method: URLRequestMethod.GET
                                , errorCallback: httpRequestError
-                               , successCallback: httpRequestComplete
+                               , successCallback: loadFilesComplete
                                });
                }
-               var variables:URLVariables = new URLVariables();
-               variables.sid = canvas.sessionId;
-               rootFileLoader.load(variables);
+               rootFileLoader.load('');
        ]]>
        </method>
        
-       <method name="httpRequestComplete" args="event">
+       <method name="loadFilesComplete" args="event">
                var o = JSON.parse(event.target.data);
-               if ($debug) Debug.info("httpRequestComplete ", this);
-               if ($debug) Debug.info("httpRequestComplete ", o);
+               if ($debug) Debug.info("loadFilesComplete ", o);
                createRootItems(o.fileExplorerObject);
        </method>
     
@@ -195,51 +187,60 @@
            
        <method name="setNodes" args="list, root">
        <![CDATA[
+               //if ($debug) Debug.info("setNodes:: ", list.length, list);
                if (!list) {
                        return;
                }
+               if (!list.length) {
+                       list = [list];
+               }
                for (var i = 0; i < list.length; ++i) {
                        var f = list[i];
-                       //if ($debug) Debug.write("fileItem, ", f);
+                       //if ($debug) Debug.write("fileItem, ", f, root);
                        switch (f.type) {
                                case 'Folder':
                                        new 
lz.folderFileExplorerItem(root.content,{
                                                        fileId: f.id
                                                        , fileName: f.name
                                                        , fileIcon: 
'icon_folder_rsc'
+                                                       , type: f.type
+                                                       , ownerId: f.ownerId
+                                                       , roomId: f.roomId
                                                        , refObjListRoot:this
                                                        });
                                        break;
                                case 'Image':
                                        new 
lz.imageFileExplorerItem(root.content,{
-                                                       isFolder: false
-                                                       , fileId: f.id
+                                                       fileId: f.id
                                                        , fileName: f.name
                                                        , fileHash: f.hash
-                                                       , isImage: true
+                                                       , type: f.type
+                                                       , ownerId: f.ownerId
+                                                       , roomId: f.roomId
                                                        , fileIcon: 
'file_explorer_image_rsc'
                                                        , refObjListRoot: this
                                                        });
                                        break;
                                case 'Presentation':
                                        new 
lz.documentFileExplorerItem(root.content,{
-                                                       isFolder: false
-                                                       , fileId: f.id
+                                                       fileId: f.id
                                                        , fileName: f.name
                                                        , fileHash: f.hash
-                                                       , isPresentation: true
+                                                       , type: f.type
+                                                       , ownerId: f.ownerId
+                                                       , roomId: f.roomId
                                                        , fileIcon: 
'file_explorer_document_rsc'
                                                        , refObjListRoot: this
                                                        });
                                        break;
                                case 'Video':
                                        new 
lz.videoFileExplorerItem(root.content,{
-                                                       isFolder: false
-                                                       , isVideo: true
-                                                       , fileId: f.id
+                                                       fileId: f.id
                                                        , fileName: f.name
                                                        , fileHash: f.hash
-                                                       , isImage: true
+                                                       , type: f.type
+                                                       , ownerId: f.ownerId
+                                                       , roomId: f.roomId
                                                        , fileIcon: 
'file_explorer_video_rsc'
                                                        , flvHeight: f.flvHeight
                                                        , flvWidth: f.flvWidth
@@ -248,21 +249,24 @@
                                        break;
                                case 'WmlFile':
                                        new 
lz.wmlFileExplorerItem(root.content,{
-                                                       isFolder: false
-                                                       , fileId: f.id
+                                                       fileId: f.id
                                                        , fileName: f.name
                                                        , fileIcon: 
'file_explorer_wml_rsc'
+                                                       , type: f.type
+                                                       , ownerId: f.ownerId
+                                                       , roomId: f.roomId
                                                        , isWmlFile: true
                                                        , refObjListRoot: this
                                                        });
                                        break;
                                case 'PollChart':
                                        new 
lz.wmlFileExplorerItem(root.content,{
-                                                       isFolder: false
-                                                       , fileId: f.id
+                                                       fileId: f.id
                                                        , fileName: f.name
                                                        , fileIcon: 
'file_explorer_chart_rsc'
-                                                       , isChart: true
+                                                       , type: f.type
+                                                       , ownerId: f.ownerId
+                                                       , roomId: f.roomId
                                                        , refObjListRoot: this
                                                        });
                                        break;
@@ -284,20 +288,21 @@
                                , fileId: -1
                                , fileName:canvas.getLabelName(706)
                                , name: '_userHome'
-                               , isRoot:true
-                               , fileIcon:'file_explorer_folder_home_rsc'
-                               , isOwner:true
-                               , refObjListRoot:this
+                               , isRoot: true
+                               , ownerId: canvas.userId
+                               , fileIcon: 'file_explorer_folder_home_rsc'
+                               , refObjListRoot: this
                                });
                userHome.content.setAttribute("visibility", "visible");
                userHome.icon_folder_pre.setAttribute("frame", 2);
                userHome._folderIcon.setAttribute("frame", 2);
-               
+               if ($debug) Debug.info("createUserRootItems ");
                setNodes(roomObject.userHome, userHome);
                
                var roomHome = new 
lz.rootFileExplorerItem(this._filearea._contentarea,{
                                open: true
                                , fileId: -2
+                               , roomId: hib.currentroomid
                                , fileName: canvas.getLabelName(707)
                                , name: '_roomHome'
                                , isRoot: true
@@ -307,7 +312,7 @@
                roomHome.content.setAttribute("visibility", "visible");
                roomHome.icon_folder_pre.setAttribute("frame", 2);
                roomHome._folderIcon.setAttribute("frame", 2);
-               
+               if ($debug) Debug.info("createRoomRootItems ");
                setNodes(roomObject.roomHome, roomHome);
        ]]>
        </method>

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx
 Thu Nov 26 19:51:00 2015
@@ -8,8 +8,8 @@
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at
   
-      http://www.apache.org/licenses/LICENSE-2.0
-         
+         http://www.apache.org/licenses/LICENSE-2.0
+                 
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,43 +19,237 @@
   
 -->
 <library>
-       <!-- ###################
-           Class restCall
-        -->
-       <class name="restCall" >
-               <switch>
-                       <when property="$as3">
-                               <passthrough>
-                                       import flash.events.*;
-                                       import flash.net.*;
-                               </passthrough>
-                       </when>
-               </switch>
-               <attribute name="restUrl" type="string" />
-               <attribute name="restMethod" type="string" />
-               <attribute name="errorCallback" />
-               <attribute name="successCallback" />
-               <attribute name="requestor" />
-               
-               <handler name="oninit">
-               <![CDATA[
-                       if ($debug) Debug.write("restCall:: ", restUrl);
-                       requestor = new URLLoader();
+ <switch>
+       <when runtime="swf11">
+       <script when="immediate">
+       <![CDATA[
+       
+               /**
+                * Take a fileName, byteArray, and parameters object as input 
and return ByteArray post data suitable for a UrlRequest as output
+                *
+                * @see http://www.marstonstudio.com/?p=36
+                * @see http://www.w3.org/TR/html4/interact/forms.html
+                * @see http://www.jooce.com/blog/?p=143
+                * @see 
http://www.jooce.com/blog/wp%2Dcontent/uploads/2007/06/uploadFile.txt
+                * @see 
http://blog.je2050.de/2006/05/01/save-bytearray-to-file-with-php/
+                *
+                * @author Jonathan Marston
+                * @version 2007.08.19
+                *
+                * This work is licensed under a Creative Commons Attribution 
NonCommercial ShareAlike 3.0 License.
+                * @see http://creativecommons.org/licenses/by-nc-sa/3.0/
+                *
+                */
+               public class UploadPostHelper {
+                       #passthrough (toplevel:true) {
+                               import flash.events.*;
+                               import flash.net.*;
+                               import flash.utils.ByteArray;
+                               import flash.utils.Endian;
+                       }#
+       
+                       /**
+                        * Boundary used to break up different parts of the 
http POST body
+                        */
+                       private static var _boundary:String = "";
+       
+                       /**
+                        * Get the boundary for the post.
+                        * Must be passed as part of the contentType of the 
UrlRequest
+                        */
+                       public static function getBoundary():String {
+                               if (_boundary.length == 0) {
+                                       for (var i:int = 0; i < 0x20; i++ ) {
+                                               _boundary += 
String.fromCharCode( int( 97 + Math.random() * 25 ) );
+                                       }
+                               }
+                               return _boundary;
+                       }
+       
+                       private static function 
addContentType(postData:ByteArray, type:String):void {
+                               var bytes:String = 'Content-Type: ' + type;
+                               for (var i:int = 0; i < bytes.length; ++i) {
+                                       postData.writeByte(bytes.charCodeAt(i));
+                               }
+                               postData = LINEBREAK(postData);
+                               postData = LINEBREAK(postData);
+                       }
                        
-                       //Initiate the transaction
-                       requestor.addEventListener(Event.COMPLETE, 
successCallback);
-                       requestor.addEventListener("ioError", errorCallback); 
//IOErrorEvent.IOERROR
-                       
requestor.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorCallback);
-               ]]>
-               </handler>
+                       /**
+                        * Create post data to send in a UrlRequest
+                        */
+                       public static function getPostData(fileName:String, 
byteArray:ByteArray, parameters:Array = null):ByteArray {
+                               var i:int;
+                               var bytes:String;
+       
+                               var postData:ByteArray = new ByteArray();
+                               postData.endian = Endian.BIG_ENDIAN;
+       
+                               //add Filename to parameters
+                               if(parameters == null) {
+                                       parameters = [];
+                               }
+                               if (fileName) {
+                                       parameters[parameters.length] = {name: 
'Filename', value: fileName};
+                               }
+       
+                               //add parameters to postData
+                               for (var j:int = 0; j < parameters.length; ++j) 
{
+                                       postData = BOUNDARY(postData);
+                                       postData = LINEBREAK(postData);
+                                       bytes = 'Content-Disposition: 
form-data; name="' + parameters[j].name + '"';
+                                       for (i = 0; i < bytes.length; ++i) {
+                                               
postData.writeByte(bytes.charCodeAt(i));
+                                       }
+                                       postData = LINEBREAK(postData);
+                                       if (parameters[j].type) {
+                                               addContentType(postData, 
parameters[j].type)
+                                       } else {
+                                               postData = LINEBREAK(postData);
+                                       }
+                                       
postData.writeUTFBytes(parameters[j].value);
+                                       postData = LINEBREAK(postData);
+                               }
+       
+                               if (fileName && byteArray) {
+                                       //add Filedata to postData
+                                       postData = BOUNDARY(postData);
+                                       postData = LINEBREAK(postData);
+                                       bytes = 'Content-Disposition: 
form-data; name="Filedata"; filename="';
+                                       for (i = 0; i < bytes.length; ++i) {
+                                               postData.writeByte( 
bytes.charCodeAt(i) );
+                                       }
+                                       postData.writeUTFBytes(fileName);
+                                       postData = QUOTATIONMARK(postData);
+                                       postData = LINEBREAK(postData);
+                                       addContentType(postData, 
"application/octet-stream");
+                                       postData.writeBytes(byteArray, 0, 
byteArray.length);
+                                       postData = LINEBREAK(postData);
+               
+                                       //add upload filed to postData
+                                       postData = LINEBREAK(postData);
+                                       postData = BOUNDARY(postData);
+                                       postData = LINEBREAK(postData);
+                                       bytes = 'Content-Disposition: 
form-data; name="Upload"';
+                                       for (i = 0; i < bytes.length; ++i) {
+                                               
postData.writeByte(bytes.charCodeAt(i));
+                                       }
+                                       postData = LINEBREAK(postData);
+                                       postData = LINEBREAK(postData);
+                                       bytes = 'Submit Query';
+                                       for (i = 0; i < bytes.length; ++i) {
+                                               
postData.writeByte(bytes.charCodeAt(i));
+                                       }
+                                       postData = LINEBREAK(postData);
                
-               <method name="load" args="params">
-                       var request:URLRequest = new URLRequest(restUrl);
-                       request.method = restMethod;
-                       //Add the URL variables
-                       request.data = params;
+                                       //closing boundary
+                                       postData = BOUNDARY(postData);
+                                       postData = DOUBLEDASH(postData);
+                               }
+                               return postData;
+                       }
+       
+                       /**
+                        * Add a boundary to the PostData with leading 
doubledash
+                        */
+                       private static function BOUNDARY(p:ByteArray):ByteArray 
{
+                               var l:int = 
UploadPostHelper.getBoundary().length;
+       
+                               p = DOUBLEDASH(p);
+                               for (var i:int = 0; i < l; i++ ) {
+                                       p.writeByte( _boundary.charCodeAt( i ) 
);
+                               }
+                               return p;
+                       }
+       
+                       /**
+                        * Add one linebreak
+                        */
+                       private static function 
LINEBREAK(p:ByteArray):ByteArray {
+                               p.writeShort(0x0d0a);
+                               return p;
+                       }
+       
+                       /**
+                        * Add quotation mark
+                        */
+                       private static function 
QUOTATIONMARK(p:ByteArray):ByteArray {
+                               p.writeByte(0x22);
+                               return p;
+                       }
+       
+                       /**
+                        * Add Double Dash
+                        */
+                       private static function 
DOUBLEDASH(p:ByteArray):ByteArray {
+                               p.writeShort(0x2d2d);
+                               return p;
+                       }
+       
+               }
+               
+               public class RestCall {
+                       #passthrough (toplevel:true) {
+                               import flash.events.*;
+                               import flash.net.*;
+                       }#
+                       private var url:String = null;
+                       private var method:String = null;
+                       private var contentType:String = null;
+                       private var dataFormat:String = "text";
+                       private var errorCallback:Function;
+                       private var successCallback:Function;
+                       private var hdrs:Array = [];
+                       private var requestor:URLLoader = null;
+                       
+                       public function RestCall(options:Object) {
+                               if (options["url"]) {
+                                       this.url = options.url;
+                               }
+                               if (options["method"]) {
+                                       this.method = options.method;
+                               }
+                               if (options["contentType"]) {
+                                       this.contentType = options.contentType;
+                               }
+                               if (options["dataFormat"]) {
+                                       this.dataFormat = options.dataFormat;
+                               }
+                               if (options["errorCallback"]) {
+                                       this.errorCallback = 
options.errorCallback;
+                               }
+                               if (options["successCallback"]) {
+                                       this.successCallback = 
options.successCallback;
+                               }
+                               if (options["hdrs"]) {
+                                       this.hdrs = options.hdrs;
+                               }
+                               requestor = new URLLoader();
+                               requestor.dataFormat = dataFormat;
+                               
+                               //Initiate the transaction
+                               requestor.addEventListener(Event.COMPLETE, 
successCallback);
+                               requestor.addEventListener("ioError", 
errorCallback); //IOErrorEvent.IOERROR
+                               
requestor.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorCallback);
+                       }
                        
-                       requestor.load(request);
-               </method>
-       </class>
+                       public function load(vars):void {
+                               var request:URLRequest = new URLRequest(url + 
'?sid=' + canvas.sessionId); //FIXME TODO
+                               request.method = method;
+                               if (contentType) {
+                                       request.contentType = contentType;
+                               }
+                               for (var i = 0; i < hdrs.length; ++i) {
+                                       request.requestHeaders.push(hdrs[i]);
+                               }
+                               //Add the URL vars
+                               request.data = vars;
+                               
+                               requestor.load(request);
+                       }
+               }
+       ]]>
+       </script>
+        </when>
+</switch>
 </library>

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx
 Thu Nov 26 19:51:00 2015
@@ -21,52 +21,37 @@
 <library>
 
 <class name="baseFileExplorerItem" extends="view">
-       
        <attribute name="refObjListRoot" value="null"/>
-       
        <attribute name="isRoot" value="false" type="boolean" />
-       
        <attribute name="fileIcon" type="string" value="string" />
-       
        <attribute name="open" value="false" type="boolean" />
-       
        <attribute name="fileId" value="0" type="number" />
-       <attribute name="isOwner" value="false" type="boolean" />
-       
-       <attribute name="isFolder" value="true" type="boolean" />
-       <attribute name="isImage" value="false" type="boolean" />
-       <attribute name="isPresentation" value="false" type="boolean" />
-       <attribute name="isVideo" value="false" type="boolean" />
-       
+       <attribute name="ownerId" value="0" type="number" />
+       <attribute name="roomId" value="0" type="number" />
+       <attribute name="type" type="string" />
        <attribute name="fileName" value="" type="string" />
        <attribute name="fileHash" value="" type="string" />
-       
        <attribute name="selected" value="false" type="boolean"/>
-       
        <attribute name="singleClickDelegate" value="null" />
        <attribute name="singleClickStarted" value="false" type="boolean" />
-       
        <attribute name="isMouseDownDragAction" value="false" type="boolean"/>
-       
-       <!-- If this is true, then this item has been drag-n-droped and it 
makes no 
-              sense to handle any single or double click event -->
+       <!-- If this is true, then this item has been drag-n-droped and it 
makes no sense to handle any single or double click event -->
        <attribute name="mouseDownClickUsed" value="false" type="boolean" />
        <attribute name="mouseDownClickDelegate" value="null" />
-       
        <attribute name="isTrashCan" value="false" type="boolean" />
        
        <handler name="oninit">
                this.singleClickDelegate = new LzDelegate( this, 
"doSingleClick" );
                this.resetClickDelegate = new LzDelegate( this, 
"doResetSingleClick" );
                this.mouseDownClickDelegate = new LzDelegate( this, 
"doMouseDownClick" );
-               if (this.isFolder) {
+               if (this.type = 'Folder') {
                    lz.Track.register(this._fileName, 
canvas.currentImagesListdraw.currentTrackGroupName);
                }
        </handler>
        
        <method name="doOpen">
                this.open = true;
-               if (this.isFolder) {
+               if (this.type = 'Folder') {
                this.icon_folder_pre.setAttribute("frame",2);
                this.content.setAttribute("visibility","visible");
                        this._folderIcon.setAttribute("frame",2);
@@ -76,7 +61,7 @@
        
        <method name="doClose">
                this.open = false;
-               if (this.isFolder) {
+               if (this.type = 'Folder') {
             this.icon_folder_pre.setAttribute("frame",1);
             this.content.setAttribute("visibility","hidden");
             this._folderIcon.setAttribute("frame",1);
@@ -173,7 +158,6 @@
                 if ($debug) Debug.write("deleteFileOrFolder: ",d);
                 parent.parent.parent.doOpen();
                 parent.refObjListRoot._selected = null;
-                parent.refObjListRoot.parentFolderId = -2;
             ]]>
         </handler>
     </dataset>
@@ -184,7 +168,7 @@
                if (this.isRoot) {
             return;
         }
-               this.addOrUpdateFolderName(this.fileId,false);
+               this.addOrUpdateFolderName();
        </method>
        
        <method name="doResetSingleClick" args="itmeObj">
@@ -197,30 +181,31 @@
        </method>
        
        <method name="addFolder">
-               <![CDATA[
-                       if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
-                       new lz.labelerrorPopup(canvas,{errorlabelid:1462});
-                       return;
-               }
-       
-                       if (this.isFolder) {
-                               if ($debug) Debug.write("NEW this.fileId INTO 
",this);
-                               if ($debug) Debug.write("NEW this.fileId 
",this.fileId);
-                               if (this["icon_folder_pre"]) {
-                               this.icon_folder_pre.setAttribute("frame",2);
-                       this.content.setAttribute("visibility","visible");
-                       this._folderIcon.setAttribute("frame",2);
-                               var t = new 
lz.folderFileExplorerItem(this.content,{
-                                                   isOwner:this.isOwner,
-                                                   isFolder:true,
-                                           fileIcon:'icon_folder_rsc',
-                                       refObjListRoot:this.refObjListRoot,
-                                           fileName:canvas.getLabelName(712)
-                                       });
-                       t.addOrUpdateFolderName(this.fileId,true);
-                               }
+       <![CDATA[
+               if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+                       new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+                       return;
+               }
+               if (this.type == 'Folder') {
+                       if ($debug) Debug.write("NEW this.fileId INTO ", this);
+                       if ($debug) Debug.write("NEW this.fileId ", 
this.fileId);
+                       if (this["icon_folder_pre"]) {
+                               this.icon_folder_pre.setAttribute("frame", 2);
+                               this.content.setAttribute("visibile", true);
+                               this._folderIcon.setAttribute("frame", 2);
+                               var t = new 
lz.folderFileExplorerItem(this.content, {
+                                               parentId: this.fileId
+                                               , ownerId: this.ownerId
+                                               , roomId: this.roomId
+                                               , type: 'Folder'
+                                               , fileIcon: 'icon_folder_rsc'
+                                               , refObjListRoot: 
this.refObjListRoot
+                                               , fileName: 
canvas.getLabelName(712)
+                                               });
+                               t.addOrUpdateFolderName();
                        }
-               ]]>
+               }
+       ]]>
        </method>
        
        <method name="refresh">
@@ -243,7 +228,7 @@
                new lz.labelerrorPopup(canvas,{errorlabelid:1462});
                return;
        }
-               this.addOrUpdateFolderName(this.fileId,false);
+               this.addOrUpdateFolderName();
        ]]>
        </method>
        
@@ -277,40 +262,36 @@
        ]]>
        </method>
        
-       <method name="addOrUpdateFolderName" args="fileId,isNew">
-               <![CDATA[
-                       if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
-                       new lz.labelerrorPopup(canvas,{errorlabelid:1462});
-                       return;
-               }
+       <method name="addOrUpdateFolderName">
+       <![CDATA[
+               if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+                       new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+                       return;
+               }
                
-               if ($debug) Debug.write("addOrUpdateFolderName ",fileId);
-               var tWidth = this._fileName.width;
-               if (tWidth < 160) {
-                       tWidth = 160;
-               }
-               var _y = this._fileName.getAttributeRelative("y",canvas);
-               var _x = this._fileName.getAttributeRelative("x",canvas);
-               if (isNew) {
-                       _y = 65; 
-                       _x += 10;
-               }
-               
-               var t = new lz.dynamicFileName(canvas,{
-                               parentId:fileId,
-                               fileId:this.fileId, //Only used at update Name
-                               isOwner:this.isOwner,
-                               text:this.fileName,
-                               isNew:isNew, //false means its a renaming
-                               refObj:this,width:tWidth+10,
-                           x:_x,
-                           y:_y
-                       });
-                       
-            lz.Focus.setFocus(t,true);
-            lz.ModeManager.makeModal(t);
-            
-        ]]>
+               if ($debug) Debug.write("addOrUpdateFolderName ", 
this.parentId);
+               var tWidth = this._fileName.width;
+               if (tWidth < 160) {
+                       tWidth = 160;
+               }
+               var _y = this._fileName.getAttributeRelative("y", canvas);
+               var _x = this._fileName.getAttributeRelative("x", canvas);
+               if (this.fileId == 0) {
+                       _y = 65;
+                       _x += 10;
+               }
+               
+               var t = new lz.dynamicFileName(canvas, {
+                               text: this.fileName
+                               , refObj: this
+                               , width: tWidth + 10
+                               , x: _x
+                               , y: _y
+                               });
+
+               lz.Focus.setFocus(t,true);
+               lz.ModeManager.makeModal(t);
+       ]]>
        </method>
        
        <method name="toggleOpen" args="setSelection">
@@ -331,18 +312,22 @@
                                return;
                        }
                    
-                   if (this.isVideo) {
-                       this.playVideo();
-                   } else if (this.isWmlFile){
-                                       this.loadWmlFile();
-                               } else if (this.isFolder) {
-                       this.doSingleClick(null);
-                   } else if (this.isPresentation) {
-                       this.loadDocument();
+                   switch (this.type) {
+                       case 'Video':
+                               this.playVideo();
+                               break;
+                       case 'WmlFile':
+                               this.loadWmlFile();
+                               break;
+                                       case 'Folder':
+                                               this.doSingleClick(null);
+                               break;
+                                       case 'Presentation':
+                                               this.loadDocument();
+                               break;
                    }
                } else {
-                       
-                       if (this.isFolder){
+                       if (this.type == 'Folder'){
                                if (!this.open) {
                                        this.doOpen();
                                } else {
@@ -350,11 +335,11 @@
                                        if (this.selected) {
                                                if ($debug) Debug.write("Is 
this selected => Do Edit !!!");
                                                this.singleClickStarted = true;
-                                           lz.Timer.addTimer( 
this.singleClickDelegate, 300 );
+                                           
lz.Timer.addTimer(this.singleClickDelegate, 300);
                                        } else {
                                                
                                                this.singleClickStarted = true;
-                                               lz.Timer.addTimer( 
this.resetClickDelegate, 300 );
+                                               
lz.Timer.addTimer(this.resetClickDelegate, 300);
                                        }
                                        } else {
                                                this.doClose();
@@ -365,10 +350,10 @@
                            if (this.selected) {
                                if ($debug) Debug.write("Is this selected => Do 
Edit !!!");
                                this.singleClickStarted = true;
-                               lz.Timer.addTimer( this.singleClickDelegate, 
300 );
+                               lz.Timer.addTimer(this.singleClickDelegate, 
300);
                            } else {
                                this.singleClickStarted = true;
-                               lz.Timer.addTimer( this.resetClickDelegate, 300 
);
+                               lz.Timer.addTimer(this.resetClickDelegate, 300);
                            }
                        }
                        }
@@ -424,7 +409,7 @@
         </handler>
     </dataset>
     
-       <view name="icon_folder_pre" visibility="$once{ (parent.isFolder) ? 
'visible' : 'hidden' }" resource="icon_folder_pre_rsc" frame="1" >
+       <view name="icon_folder_pre" visible="$once{ parent.type == 'Folder' }" 
resource="icon_folder_pre_rsc" frame="1" >
                <handler name="onclick">
                        parent.toggleOpen(false);
                </handler>

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/documentFileExplorerItem.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/documentFileExplorerItem.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/documentFileExplorerItem.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/documentFileExplorerItem.lzx
 Thu Nov 26 19:51:00 2015
@@ -21,7 +21,7 @@
 <library>
 
  
-<class name="documentFileExplorerItem" extends="baseFileExplorerItem" 
isFolder="true">
+<class name="documentFileExplorerItem" extends="baseFileExplorerItem" 
type="Presentation">
        
        <method name="formatURL" args="filename">
         <![CDATA[

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/folderFileExplorerItem.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/folderFileExplorerItem.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/folderFileExplorerItem.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/folderFileExplorerItem.lzx
 Thu Nov 26 19:51:00 2015
@@ -20,7 +20,7 @@
 -->
 <library>
 
-<class name="folderFileExplorerItem" extends="baseFileExplorerItem" 
isFolder="true">
+<class name="folderFileExplorerItem" extends="baseFileExplorerItem" 
type="Folder">
        
        <text name="_fileName" x="36" text="${ parent.fileName }" fontsize="10" 
resize="true" y="1">
                <contextmenu>

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/imageFileExplorerItem.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/imageFileExplorerItem.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/imageFileExplorerItem.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/imageFileExplorerItem.lzx
 Thu Nov 26 19:51:00 2015
@@ -20,7 +20,7 @@
 -->
 <library>
 
-<class name="imageFileExplorerItem" extends="baseFileExplorerItem" 
isFolder="true">
+<class name="imageFileExplorerItem" extends="baseFileExplorerItem" 
type="Image">
        
     <method name="generateFileLink">
         <![CDATA[

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/rootFileExplorerItem.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/rootFileExplorerItem.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/rootFileExplorerItem.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/rootFileExplorerItem.lzx
 Thu Nov 26 19:51:00 2015
@@ -20,7 +20,7 @@
 -->
 <library>
 
-<class name="rootFileExplorerItem" extends="baseFileExplorerItem" 
isFolder="true" isRoot="true">
+<class name="rootFileExplorerItem" extends="baseFileExplorerItem" 
type="Folder" isRoot="true">
        
        <text name="_fileName" x="36" text="${ parent.fileName }" fontsize="10" 
resize="true" y="1">
                <contextmenu>

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/videoFileExplorerItem.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/videoFileExplorerItem.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/videoFileExplorerItem.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/videoFileExplorerItem.lzx
 Thu Nov 26 19:51:00 2015
@@ -20,7 +20,7 @@
 -->
 <library>
 
-<class name="videoFileExplorerItem" extends="baseFileExplorerItem" 
isFolder="true" isVideo="true">
+<class name="videoFileExplorerItem" extends="baseFileExplorerItem" 
type="Video">
        
     <method name="generateFileLink">
         <![CDATA[

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/wmlFileExplorerItem.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/wmlFileExplorerItem.lzx?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/wmlFileExplorerItem.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/wmlFileExplorerItem.lzx
 Thu Nov 26 19:51:00 2015
@@ -20,9 +20,7 @@
 -->
 <library>
 
-<class name="wmlFileExplorerItem" extends="baseFileExplorerItem" 
isFolder="true">
-       
-       <attribute name="isWmlFile" type="boolean" value="true"/>
+<class name="wmlFileExplorerItem" extends="baseFileExplorerItem" 
type="WmlFile">
        
        <text name="_fileName" x="36" text="${ parent.fileName }" fontsize="10" 
resize="true" y="1">
                <contextmenu>

Modified: 
openmeetings/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
 Thu Nov 26 19:51:00 2015
@@ -595,7 +595,7 @@ public class BackupImport {
                                if (file.getParentId() != null && 
file.getParentId() <= 0L) {
                                        file.setParentId(null);
                                }
-                               fileExplorerItemDao.addFileExplorerItem(file);
+                               fileExplorerItemDao.update(file);
                        }
                }
 

Modified: 
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/public/config.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/public/config.xml?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/public/config.xml 
(original)
+++ 
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/public/config.xml 
Thu Nov 26 19:51:00 2015
@@ -148,14 +148,6 @@ of the red5-servlet
 <showRecording>hidden</showRecording>
 
 <!--
-    
-       To enable the modern whiteboard Panel you need to switch this to y
-    old menu bar is not active any more
-    
-<showmodernWhiteBoard>y</showmodernWhiteBoard>    
- -->    
-       
-<!--
        First day in the Week used by the Calendar
        0 means Sunday
        1 means Monday

Modified: 
openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 Thu Nov 26 19:51:00 2015
@@ -29,6 +29,7 @@ import java.util.Set;
 import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
+import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
@@ -161,15 +162,18 @@ public class FileWebService {
         *            The SID of the User. This SID must be marked as logged in
         * @param file
         *            the The file to be added
+        * @param stream
+        *            the The file to be added
         * @return - Object created
         * @throws ServiceException
         */
        @WebMethod
        @POST
+       @Consumes(MediaType.MULTIPART_FORM_DATA)
        @Path("/")
        public FileExplorerItemDTO add(@WebParam(name="sid") @QueryParam("sid") 
String sid
-                       , @Multipart(value = "file") @WebParam(name="file") 
FileExplorerItemDTO file
-                       , @Multipart(value = "attach", type = 
"application/octet-stream", required = false) @WebParam(name="attach") 
InputStream attach //TODO check this
+                       , @Multipart(value = "file", type = 
MediaType.APPLICATION_JSON) @WebParam(name="file") FileExplorerItemDTO file
+                       , @Multipart(value = "stream", type = 
MediaType.APPLICATION_OCTET_STREAM, required = false) @WebParam(name="stream") 
InputStream attach //TODO check this
                        ) throws ServiceException
        {
                try {
@@ -180,11 +184,14 @@ public class FileWebService {
                                throw new ServiceException("Bad id");//TODO err 
code -1 ????
                        }
                        Set<Right> rights = userDao.getRights(userId);
+                       /* FIXME TODO permissions
                        if (AuthLevelUtil.hasWebServiceLevel(rights)
-                                       || (AuthLevelUtil.hasUserLevel(rights) 
&& userId.equals(f.getOwnerId())))
+                                       || (AuthLevelUtil.hasUserLevel(rights) 
&& userId.equals(f.getOwnerId())))*/
+                       if (AuthLevelUtil.hasUserLevel(rights))
                        {
                                //TODO permissions
                                //TODO attachment
+                               f.setInsertedBy(userId);
                                fileDao.update(f);
                                return new FileExplorerItemDTO(f);
                        } else {

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
 Thu Nov 26 19:51:00 2015
@@ -93,19 +93,6 @@ public class FileExplorerItemDao {
                return null;
        }
 
-       public Long addFileExplorerItem(FileExplorerItem fileItem) {
-               try {
-
-                       fileItem = em.merge(fileItem);
-                       Long fileItemId = fileItem.getId();
-
-                       return fileItemId;
-               } catch (Exception ex2) {
-                       log.error("[addFileExplorerItem]", ex2);
-               }
-               return null;
-       }
-
        public List<FileExplorerItem> getFileExplorerItemsByRoomAndOwner(Long 
roomId, Long ownerId) {
                log.debug(".getFileExplorerItemsByRoomAndOwner() started");
                try {
@@ -238,11 +225,11 @@ public class FileExplorerItemDao {
                // fId.setUpdated(new Date());
 
                if (f.getId() == null) {
+                       f.setInserted(new Date());
                        em.persist(f);
                } else {
-                       if (!em.contains(f)) {
-                               f = em.merge(f);
-                       }
+                       f.setUpdated(new Date());
+                       f = em.merge(f);
                }
                return f;
        }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java
 Thu Nov 26 19:51:00 2015
@@ -44,6 +44,7 @@ public class FileExplorerItemDTO impleme
        private String hash;
        private Long parentId;
        private Long roomId;
+       private Long ownerId;
        private Long size;
        private String externalId;
        private String externalType;
@@ -59,6 +60,7 @@ public class FileExplorerItemDTO impleme
                hash = f.getHash();
                parentId = f.getParentId();
                roomId = f.getRoomId();
+               ownerId = f.getOwnerId();
                size = f.getSize();
                externalId = f.getExternalId();
                externalType = f.getExternalType();
@@ -74,6 +76,7 @@ public class FileExplorerItemDTO impleme
                f.setHash(hash);
                f.setParentId(parentId);
                f.setRoomId(roomId);
+               f.setOwnerId(ownerId);
                f.setSize(size);
                f.setExternalId(externalId);
                f.setExternalType(externalType);
@@ -123,6 +126,14 @@ public class FileExplorerItemDTO impleme
                this.roomId = roomId;
        }
 
+       public Long getOwnerId() {
+               return ownerId;
+       }
+
+       public void setOwnerId(Long ownerId) {
+               this.ownerId = ownerId;
+       }
+
        public Long getSize() {
                return size;
        }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
 Thu Nov 26 19:51:00 2015
@@ -595,7 +595,7 @@ public class BackupImport {
                                if (file.getParentId() != null && 
file.getParentId() <= 0L) {
                                        file.setParentId(null);
                                }
-                               fileExplorerItemDao.addFileExplorerItem(file);
+                               fileExplorerItemDao.update(file);
                        }
                }
 

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1716760&r1=1716759&r2=1716760&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 Thu Nov 26 19:51:00 2015
@@ -29,6 +29,7 @@ import java.util.Set;
 import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
+import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
@@ -161,15 +162,18 @@ public class FileWebService {
         *            The SID of the User. This SID must be marked as logged in
         * @param file
         *            the The file to be added
+        * @param stream
+        *            the The file to be added
         * @return - Object created
         * @throws ServiceException
         */
        @WebMethod
        @POST
+       @Consumes(MediaType.MULTIPART_FORM_DATA)
        @Path("/")
        public FileExplorerItemDTO add(@WebParam(name="sid") @QueryParam("sid") 
String sid
-                       , @Multipart(value = "file") @WebParam(name="file") 
FileExplorerItemDTO file
-                       , @Multipart(value = "attach", type = 
"application/octet-stream", required = false) @WebParam(name="attach") 
InputStream attach //TODO check this
+                       , @Multipart(value = "file", type = 
MediaType.APPLICATION_JSON) @WebParam(name="file") FileExplorerItemDTO file
+                       , @Multipart(value = "stream", type = 
MediaType.APPLICATION_OCTET_STREAM, required = false) @WebParam(name="stream") 
InputStream attach //TODO check this
                        ) throws ServiceException
        {
                try {
@@ -180,11 +184,14 @@ public class FileWebService {
                                throw new ServiceException("Bad id");//TODO err 
code -1 ????
                        }
                        Set<Right> rights = userDao.getRights(userId);
+                       /* FIXME TODO permissions
                        if (AuthLevelUtil.hasWebServiceLevel(rights)
-                                       || (AuthLevelUtil.hasUserLevel(rights) 
&& userId.equals(f.getOwnerId())))
+                                       || (AuthLevelUtil.hasUserLevel(rights) 
&& userId.equals(f.getOwnerId())))*/
+                       if (AuthLevelUtil.hasUserLevel(rights))
                        {
                                //TODO permissions
                                //TODO attachment
+                               f.setInsertedBy(userId);
                                fileDao.update(f);
                                return new FileExplorerItemDTO(f);
                        } else {


Reply via email to