You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2015/11/27 06:59:50 UTC

svn commit: r1716796 - in /openmeetings: branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/ branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/ branches/3.1.x/openmeetings-db...

Author: solomax
Date: Fri Nov 27 05:59:50 2015
New Revision: 1716796

URL: http://svn.apache.org/viewvc?rev=1716796&view=rev
Log:
[OPENMEETINGS-1279] folder add/rename works as expected, code clean-up

Removed:
    openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/datasetHelper.lzx
Modified:
    openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/UploadController.java
    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/base/hibernate/hibRtmpConnection.lzx
    openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
    openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/library.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-web/src/main/webapp/WEB-INF/web.xml
    openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
    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-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
    openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java

Modified: openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/UploadController.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/UploadController.java?rev=1716796&r1=1716795&r2=1716796&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/UploadController.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/UploadController.java Fri Nov 27 05:59:50 2015
@@ -156,17 +156,6 @@ public class UploadController extends Ab
 		msg.setFileHash(fileExplorerItem.getHash());
 	}
     
-    @RequestMapping(value = "/remotelog.upload", method = RequestMethod.POST)
-    public void handleRemoteLog(HttpServletRequest request, HttpServletResponse response) throws ServletException {
-    	String message = request.getParameter("message");
-    	String sid = request.getParameter("sid");
-    	if (sid == null || message == null) return;
-    	Long userId = sessiondataDao.checkSession(sid);
-    	if (userId != null && userId != 0) {
-    		log.debug("[CLIENT MESSAGE] " + message);
-    	}
-    }
-    
     @RequestMapping(value = "/upload.upload", method = RequestMethod.POST)
     public void handleFormUpload(HttpServletRequest request, HttpServletResponse response) throws ServletException {
 		try {

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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -205,25 +205,17 @@ public class FileExplorerItemDao {
 	 * @param id
 	 * @param name
 	 */
-	public void updateFileOrFolderName(Long id, String name) {
-		log.debug(".updateFileOrFolderName() started");
+	public FileExplorerItem rename(Long id, String name) {
+		log.debug("rename started");
 
-		try {
+		FileExplorerItem f = get(id);
 
-			FileExplorerItem fId = get(id);
+		f.setName(name);
 
-			fId.setName(name);
-			fId.setUpdated(new Date());
-
-			update(fId);
-		} catch (Exception ex2) {
-			log.error("[updateFileOrFolderName]: ", ex2);
-		}
+		return update(f);
 	}
 
 	public FileExplorerItem update(FileExplorerItem f) {
-		// fId.setUpdated(new Date());
-
 		if (f.getId() == null) {
 			f.setInserted(new Date());
 			em.persist(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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -74,9 +74,9 @@ public class FileExplorerItemDTO impleme
 		f.setId(id);
 		f.setName(name);
 		f.setHash(hash);
-		f.setParentId(parentId);
-		f.setRoomId(roomId);
-		f.setOwnerId(ownerId);
+		f.setParentId(parentId != null && parentId > 0 ? parentId : null);
+		f.setRoomId(roomId != null && roomId > 0 ? roomId : null);
+		f.setOwnerId(ownerId != null && ownerId > 0 ? ownerId : null);
 		f.setSize(size);
 		f.setExternalId(externalId);
 		f.setExternalType(externalType);

Modified: openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx?rev=1716796&r1=1716795&r2=1716796&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx (original)
+++ openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx Fri Nov 27 05:59:50 2015
@@ -20,10 +20,6 @@
 -->
 <library>
     
-<dataset name="myresultnavi" />
-
-<dataset name="languagesSet" />        
-
 <class name="userStatus" extends="view" width="250" height="30">
     <attribute name="statusText" type="string" />
     <attribute name="statusColor" type="number" value="0" />
@@ -329,47 +325,7 @@
 	        if (userlang == -1 && canvas.language_id != 0) {
 	            userlang = canvas.language_id;
 	        } else if (userlang == -1) {
-	            var lang_id = canvas.default_lang_id;
-	            
-	            var browserLang = ExternalInterface.call("function(){return window.navigator.systemLanguage || window.navigator.userLanguage || window.navigator.language;}");
-	            if (browserLang == null) {
-	                browserLang = "" + Capabilities.language;
-	            }
-	            if (browserLang != null && browserLang.length > 1) {
-	                var lngCode = browserLang.substring(0, 2);
-	                
-	                //openlaszlo XPath is able to search nothing, so will iterate
-	                var xpath = "languagesSet:/item";
-	                var list = languagesSet.getPointer().xpathQuery(xpath);
-	                
-	                var partMatch = -1, fullMatch = -1; 
-	                for (var i = 1; list != null && i <= list.length; ++i) {
-	                    xpath = "languagesSet:/item[" + i + "]/code/text()";
-	                    var val = languagesSet.getPointer().xpathQuery(xpath);
-	                    if (val != null && val.length > 1) {
-	                        var partCode = ("" + val).substring(0, 2);
-	                        
-	                        if (browserLang == val) {
-	                            fullMatch = i;
-	                        } else if (lngCode == val) {
-	                            partMatch = i;
-	                        } else if (partCode == lngCode) {
-	                            partMatch = i;
-	                        }
-	                    }
-	                }
-	                if (partMatch != -1 || fullMatch != -1) {
-	                    i = (fullMatch != -1) ? fullMatch : partMatch;
-	                    xpath = "languagesSet:/item[" + i + "]/language_id/text()";
-	                    lang_id = languagesSet.getPointer().xpathQuery(xpath);
-	                }
-	            }
-	            
-	            if (canvas.language_id == 0) {
-	                userlang = lang_id;
-	            } else {
-	                userlang = canvas.language_id;
-	            }
+	            userlang = canvas.default_lang_id;
 	        }
 	    ]]>
     </method>

Modified: openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx?rev=1716796&r1=1716795&r2=1716796&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx (original)
+++ openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx Fri Nov 27 05:59:50 2015
@@ -130,6 +130,7 @@
      -->
     
     <attribute name="colorArray" value="null" />
+    <attribute name="errorLoader" />
     
     <method name="getColorForUser">
     	<![CDATA[
@@ -141,18 +142,15 @@
     
 	<method name="remoteLogWrite" args="message">
 		if ($debug) Debug.warn("remoteLogWrite:: ", message);
-		var request:URLRequest = new URLRequest(canvas.getUrl() + "remotelog.upload");
-		var requestVars:URLVariables = new URLVariables();
-    	requestVars.message = message;
-    	requestVars.sid = canvas.sessionId;
-    	request.data = requestVars;
-		request.method = URLRequestMethod.POST;
-		
-		try {
-			new URLLoader().load(request);
-		} catch (e:Error) {
-			if ($debug) Debug.error(e);
+		if (!errorLoader) {
+			errorLoader = new RestCall({
+				url: canvas.getUrl() + 'services/error/report/'
+				, method: URLRequestMethod.POST
+			});
 		}
+		var vars:URLVariables = new URLVariables();
+    	vars.message = message;
+    	errorLoader.load(vars);
     </method>
     
     <method name="getHttpHost">
@@ -166,8 +164,7 @@
         
 	<method name="getUrl">
 	<![CDATA[
-		return canvas.protocol + '://' + getHttpHost()
-			+ ':' + canvas.red5httpport + canvas.httpRootKey;
+		return canvas.protocol + '://' + getHttpHost() + ':' + canvas.red5httpport + canvas.httpRootKey;
 	]]>
 	</method>
         

Modified: openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/library.lzx
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/library.lzx?rev=1716796&r1=1716795&r2=1716796&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/library.lzx (original)
+++ openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/library.lzx Fri Nov 27 05:59:50 2015
@@ -22,6 +22,5 @@
 	<include href="baseVideoView.lzx" />
 	<include href="baseVideoStream.lzx" />
 	<include href="baseVideoStreamDevice.lzx" />
-	<include href="datasetHelper.lzx" />
 	<include href="rtmpConnection.lzx" />
 </library>

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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -51,82 +51,73 @@
 	</handler>
 	
 	<method name="add">
-        <![CDATA[
-            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>
-    
+	<![CDATA[
+		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; charset=utf-8; boundary=" + UploadPostHelper.getBoundary()
+				, errorCallback: addFolderError
+				, successCallback: addFolderComplete
+				});
+		}
+		var vars = UploadPostHelper.getPostData(null, null, [
+			{
+				name: 'file'
+				, type: 'application/json'
+				, value: JSON.stringify({fileExplorerItemDTO: {
+					name: this.text
+					, parentId: this.refObj.parentId
+					, roomId: this.refObj.roomId
+					, ownerId: this.refObj.ownerId
+					, type: this.refObj.type
+					}})
+				}
+			]);
+		//if ($debug) Debug.write("addFolder:: ", vars);
+		addFolderLoader.load(vars);
+	]]>
+	</method>
+
 	<method name="addFolderComplete" args="event">
-		if ($debug) Debug.info("addFolderComplete ", event);
-		completed();
+		var o = JSON.parse(event.target.data);
+		var f = o.fileExplorerItemDTO;
+		if ($debug) Debug.info("addFolderComplete ", event, o);
+		this.refObj.setAttribute("fileName", f.name);
+		this.refObj.setAttribute("fileId", f.id);
+		this.refObj.parent.parent.doOpen();
+		this.destroy();
 	</method>
 
-	<method name="httpRequestError" args="event">
-		if ($debug) Debug.error("httpRequestError ", event);
-		completed();
+	<method name="addFolderError" args="event">
+		if ($debug) Debug.error("addFolderError ", event);
+		this.refObj.destroy();
+		this.destroy();
 	</method>
 	
-    <method name="rename">
-        <![CDATA[
-            if ($debug) Debug.write("moveFile HTTP 1: ");
-            var downloadurl = canvas.getUrl()+'services/FileService/updateFileOrFolderNameSelf?'
-                            +'SID='+canvas.sessionId
-                            +'&fileId='+this.fileId
-                            +'&fileName='+this.text;
-            
-            this.updateFileOrFolderNameSelf.setAttribute("src",downloadurl);
-            if ($debug) Debug.write("updateFileOrFolderNameSelf doRequest ",downloadurl);
-            this.updateFileOrFolderNameSelf.doRequest();
-        ]]>
-    </method>
-    
-    <dataset name="updateFileOrFolderNameSelf" type="http" >
-        <handler name="ondata" args="d">
-            <![CDATA[
-                //if ($debug) Debug.write("ondata ",d);
-                if ($debug) Debug.write("updateFileOrFolderNameSelf: ",d);
-                parent.completedRename();
-            ]]>
-        </handler>
-    </dataset>
-    
-	<method name="completed">
+	<method name="rename">
+	<![CDATA[
+		var moveLoader = new RestCall({
+				url: canvas.getUrl() + 'services/file/rename/' + this.refObj.fileId + '/' + this.text
+				, method: URLRequestMethod.POST
+				, errorCallback: renameError
+				, successCallback: renameComplete
+				});
+		moveLoader.load(' ');
+	]]>
+	</method>
+
+	<method name="renameComplete" args="event">
 		this.refObj.setAttribute("fileName", this.text);
-		this.refObj.parent.parent.doOpen();
 		this.destroy();
 	</method>
 	
-	<method name="completedRename">
-		this.refObj.setAttribute("fileName",this.text);
+	<method name="renameError" args="event">
+		if ($debug) Debug.error("renameError ", event);
 		this.destroy();
 	</method>
-	
 </class>
 
 </library>

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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -185,96 +185,6 @@
 		el.setAttribute("text","" + sizem + " MBytes");
 	</method>
 	    
-	<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, 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,{
-							fileId: f.id
-							, fileName: f.name
-							, fileHash: f.hash
-							, type: f.type
-							, ownerId: f.ownerId
-							, roomId: f.roomId
-							, fileIcon: 'file_explorer_image_rsc'
-							, refObjListRoot: this
-							});
-					break;
-				case 'Presentation':
-					new lz.documentFileExplorerItem(root.content,{
-							fileId: f.id
-							, fileName: f.name
-							, fileHash: f.hash
-							, type: f.type
-							, ownerId: f.ownerId
-							, roomId: f.roomId
-							, fileIcon: 'file_explorer_document_rsc'
-							, refObjListRoot: this
-							});
-					break;
-				case 'Video':
-					new lz.videoFileExplorerItem(root.content,{
-							fileId: f.id
-							, fileName: f.name
-							, fileHash: f.hash
-							, type: f.type
-							, ownerId: f.ownerId
-							, roomId: f.roomId
-							, fileIcon: 'file_explorer_video_rsc'
-							, flvHeight: f.flvHeight
-							, flvWidth: f.flvWidth
-							, refObjListRoot: this
-							});
-					break;
-				case 'WmlFile':
-					new lz.wmlFileExplorerItem(root.content,{
-							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,{
-							fileId: f.id
-							, fileName: f.name
-							, fileIcon: 'file_explorer_chart_rsc'
-							, type: f.type
-							, ownerId: f.ownerId
-							, roomId: f.roomId
-							, refObjListRoot: this
-							});
-					break;
-			}
-		}
-	]]>
-	</method>
-	
 	<method name="createRootItems" args="roomObject">
 	<![CDATA[
 		this.clearContent();
@@ -296,8 +206,7 @@
 		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);
+		userHome.setNodes(roomObject.userHome);
 		
 		var roomHome = new lz.rootFileExplorerItem(this._filearea._contentarea,{
 				open: true
@@ -312,8 +221,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);
+		roomHome.setNodes(roomObject.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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -194,7 +194,7 @@
 				import flash.net.*;
 			}#
 			private var url:String = null;
-			private var method:String = null;
+			private var method:String = URLRequestMethod.GET;
 			private var contentType:String = null;
 			private var dataFormat:String = "text";
 			private var errorCallback:Function;
@@ -245,7 +245,11 @@
 				//Add the URL vars
 				request.data = vars;
 				
-				requestor.load(request);
+				try {
+					requestor.load(request);
+				} catch (e:Error) {
+					if ($debug) Debug.error(e);
+				}
 			}
 		}
 	]]>

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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -21,6 +21,13 @@
 <library>
 
 <class name="baseFileExplorerItem" extends="view">
+	<switch>
+		<when property="$as3">
+			<passthrough>
+				import flash.net.*;
+			</passthrough>
+		</when>
+	</switch>
 	<attribute name="refObjListRoot" value="null"/>
 	<attribute name="isRoot" value="false" type="boolean" />
 	<attribute name="fileIcon" type="string" value="string" />
@@ -39,19 +46,20 @@
 	<attribute name="mouseDownClickUsed" value="false" type="boolean" />
 	<attribute name="mouseDownClickDelegate" value="null" />
 	<attribute name="isTrashCan" value="false" type="boolean" />
-	
+	<attribute name="folderLoader" />
+		
 	<handler name="oninit">
 		this.singleClickDelegate = new LzDelegate( this, "doSingleClick" );
 		this.resetClickDelegate = new LzDelegate( this, "doResetSingleClick" );
 		this.mouseDownClickDelegate = new LzDelegate( this, "doMouseDownClick" );
-		if (this.type = 'Folder') {
+		if (this.type == 'Folder') {
 		    lz.Track.register(this._fileName, canvas.currentImagesListdraw.currentTrackGroupName);
 		}
 	</handler>
 	
 	<method name="doOpen">
 		this.open = true;
-		if (this.type = 'Folder') {
+		if (this.type == 'Folder') {
     		this.icon_folder_pre.setAttribute("frame",2);
     		this.content.setAttribute("visibility","visible");
 			this._folderIcon.setAttribute("frame",2);
@@ -61,7 +69,7 @@
 	
 	<method name="doClose">
 		this.open = false;
-		if (this.type = 'Folder') {
+		if (this.type == 'Folder') {
             this.icon_folder_pre.setAttribute("frame",1);
             this.content.setAttribute("visibility","hidden");
             this._folderIcon.setAttribute("frame",1);
@@ -378,37 +386,37 @@
     </method>
 	
 	<method name="clearContent">
-        <![CDATA[
-            for (var eg in this.content.subviews) {
-                this.content.subviews[eg].destroy();
-            }
-        ]]>
-    </method>
-    
-    <method name="loadFiles">
-    	<![CDATA[
-            var downloadurl = canvas.getUrl()+'services/FileService/getFileExplorerByParentSelfInternal?'
-                            +'SID='+canvas.sessionId
-                            +'&parentFileExplorerItemId='+this.fileId
-                            +'&roomId='+hib.currentroomid
-                            +'&isOwner='+this.isOwner;
-            
-            this.getFileExplorerByParentSelf.setAttribute("src",downloadurl);
-            if ($debug) Debug.write("getFileExplorerByParentSelf doRequest ",downloadurl);
-            this.getFileExplorerByParentSelf.doRequest();
-        ]]>
-    </method>
+	<![CDATA[
+		while (this.content.subviews.length > 0) {
+			this.content.subviews[0].destroy();
+		}
+	]]>
+	</method>
     
-    <dataset name="getFileExplorerByParentSelf" type="http" >
-        <handler name="ondata" args="d">
-            <![CDATA[
-                //if ($debug) Debug.write("ondata ",d);
-                //FIXME TODO 
-                parent.renderFilesAndFolders(canvas.currentFileExplorer.parseParentToRoomObject(d));
-            ]]>
-        </handler>
-    </dataset>
+	<method name="loadFiles">
+	<![CDATA[
+		if (!folderLoader) {
+			folderLoader = new RestCall({
+				url: canvas.getUrl() + 'services/file/room/' + hib.currentroomid + '/' + this.fileId
+				, method: URLRequestMethod.GET
+				, errorCallback: loadFilesError
+				, successCallback: loadFilesComplete
+				});
+		}
+		folderLoader.load('');
+	]]>
+	</method>
+
+	<method name="loadFilesComplete" args="event">
+		var o = JSON.parse(event.target.data);
+		if ($debug) Debug.info("base::loadFilesComplete ", o);
+		setNodes(o.fileExplorerItemDTO);
+	</method>
     
+	<method name="loadFilesError" args="event">
+		if ($debug) Debug.error("base::loadFilesError ", event);
+	</method>
+
 	<view name="icon_folder_pre" visible="$once{ parent.type == 'Folder' }" resource="icon_folder_pre_rsc" frame="1" >
 		<handler name="onclick">
 			parent.toggleOpen(false);
@@ -465,7 +473,96 @@
 	<method name="downloadImageByName">
 		lz.Browser.loadURL(this.getDownloadURL(this.fileHash, ''), '_parent');
 	</method>
-</class>
-
 
+	<method name="setNodes" args="list">
+	<![CDATA[
+		this.clearContent();
+		//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);
+			switch (f.type) {
+				case 'Folder':
+					new lz.folderFileExplorerItem(this.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(this.content,{
+							fileId: f.id
+							, fileName: f.name
+							, fileHash: f.hash
+							, type: f.type
+							, ownerId: f.ownerId
+							, roomId: f.roomId
+							, fileIcon: 'file_explorer_image_rsc'
+							, refObjListRoot: this
+							});
+					break;
+				case 'Presentation':
+					new lz.documentFileExplorerItem(this.content,{
+							fileId: f.id
+							, fileName: f.name
+							, fileHash: f.hash
+							, type: f.type
+							, ownerId: f.ownerId
+							, roomId: f.roomId
+							, fileIcon: 'file_explorer_document_rsc'
+							, refObjListRoot: this
+							});
+					break;
+				case 'Video':
+					new lz.videoFileExplorerItem(this.content,{
+							fileId: f.id
+							, fileName: f.name
+							, fileHash: f.hash
+							, type: f.type
+							, ownerId: f.ownerId
+							, roomId: f.roomId
+							, fileIcon: 'file_explorer_video_rsc'
+							, flvHeight: f.flvHeight
+							, flvWidth: f.flvWidth
+							, refObjListRoot: this
+							});
+					break;
+				case 'WmlFile':
+					new lz.wmlFileExplorerItem(this.content,{
+							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(this.content,{
+							fileId: f.id
+							, fileName: f.name
+							, fileIcon: 'file_explorer_chart_rsc'
+							, type: f.type
+							, ownerId: f.ownerId
+							, roomId: f.roomId
+							, refObjListRoot: this
+							});
+					break;
+			}
+		}
+	]]>
+	</method>
+</class>
 </library>

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/web.xml?rev=1716796&r1=1716795&r2=1716796&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/web.xml (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/web.xml Fri Nov 27 05:59:50 2015
@@ -71,7 +71,7 @@
 		</init-param>
 		<init-param>
 			<param-name>ignorePaths</param-name>
-			<param-value>conf,css,default,docs,images,js,persistence,public,screensharing,streams,upload,uploadtemp,services,networktest.,file.,remotelog.,screen.,DownloadHandler</param-value>
+			<param-value>conf,css,default,docs,images,js,persistence,public,screensharing,streams,upload,uploadtemp,services,networktest.,file.,screen.,DownloadHandler</param-value>
 		</init-param>
 	</filter>
 	<filter-mapping>

Modified: openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java?rev=1716796&r1=1716795&r2=1716796&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java Fri Nov 27 05:59:50 2015
@@ -20,17 +20,21 @@ package org.apache.openmeetings.webservi
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
+import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
 import javax.ws.rs.GET;
+import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.db.dao.basic.ErrorDao;
 import org.apache.openmeetings.db.dao.label.LabelDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.entity.basic.ErrorValue;
 import org.red5.logging.Red5LoggerFactory;
@@ -56,6 +60,8 @@ public class ErrorWebService {
 	private ErrorDao errorDao;
 	@Autowired
 	private LabelDao labelDao;
+	@Autowired
+	private SessiondataDao sessionDao;
 
 	/**
 	 * loads an Error-Object. If a Method returns a negative Result, its an
@@ -70,6 +76,7 @@ public class ErrorWebService {
 	 *            
 	 * @return - error with the code given
 	 */
+	@WebMethod
 	@GET
 	@Path("/{id}/{lang}")
 	public ServiceResult get(@WebParam(name="id") @PathParam("id") long id, @WebParam(name="lang") @PathParam("lang") long lang) {
@@ -93,4 +100,16 @@ public class ErrorWebService {
 		}
 		return null;
 	}
+	
+	@WebMethod
+	@POST
+	@Path("/report/")
+	public void report(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="message") @QueryParam("message") String message) {
+    	if (sid != null && message != null) {
+	    	Long userId = sessionDao.checkSession(sid);
+	    	if (userId != null && userId != 0) {
+	    		log.debug("[CLIENT MESSAGE] " + message);
+	    	}
+    	}
+	}
 }

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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -353,38 +353,38 @@ public class FileWebService {
 	 * 
 	 * @param sid
 	 *            SID The SID of the User. This SID must be marked as logged in
-	 * @param fileId
+	 * @param id
 	 *            file or folder id
-	 * @param fileName
+	 * @param name
 	 *            new file or folder name
 	 * @return - null
 	 * @throws ServiceException
 	 */
-	public Long rename(String sid, Long fileId, String fileName) throws ServiceException {
-
+	@WebMethod
+	@POST
+	@Path("/rename/{id}/{name}")
+	public FileExplorerItemDTO rename(@WebParam(name="sid") @QueryParam("sid") String sid
+			, @WebParam(name="id") @PathParam("id") long id
+			, @WebParam(name="name") @PathParam("name") String name) throws ServiceException
+	{
 		try {
-
 			Long userId = sessionDao.checkSession(sid);
 
 			if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+				// FIXME TODO: check if this user is allowed to change this file
 
-				// TODO: check if this user is allowed to change this file
-				/*
-				 * FileExplorerItem fileExItem = fileExplorerItemDao.getFileExplorerItemsById (fileExplorerItemId);
-				 * 
-				 * if (fileExItem.getOwnerId() != null && !fileExItem.getOwnerId().equals(users_id)) { throw new
-				 * Exception( "This user is not the owner of the file and not allowed to edit its name" ); }
-				 */
-
-				log.debug("updateFileOrFolderSelf " + fileId);
-
-				fileDao.updateFileOrFolderName(fileId, fileName);
+				log.debug("rename " + id);
 
+				return new FileExplorerItemDTO(fileDao.rename(id, name));
+			} else {
+				throw new ServiceException("Insufficient permissins"); //TODO code -26
 			}
-		} catch (Exception err) {
-			log.error("[updateFileOrFolderNameSelf] ", err);
+		} catch (ServiceException e) {
+			throw e;
+		} catch (Exception e) {
+			log.error("[rename] ", e);
+			throw new ServiceException(e.getMessage());
 		}
-		return null;
 	}
 
 	/**

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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -205,25 +205,17 @@ public class FileExplorerItemDao {
 	 * @param id
 	 * @param name
 	 */
-	public void updateFileOrFolderName(Long id, String name) {
-		log.debug(".updateFileOrFolderName() started");
+	public FileExplorerItem rename(Long id, String name) {
+		log.debug("rename started");
 
-		try {
+		FileExplorerItem f = get(id);
 
-			FileExplorerItem fId = get(id);
+		f.setName(name);
 
-			fId.setName(name);
-			fId.setUpdated(new Date());
-
-			update(fId);
-		} catch (Exception ex2) {
-			log.error("[updateFileOrFolderName]: ", ex2);
-		}
+		return update(f);
 	}
 
 	public FileExplorerItem update(FileExplorerItem f) {
-		// fId.setUpdated(new Date());
-
 		if (f.getId() == null) {
 			f.setInserted(new Date());
 			em.persist(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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -74,9 +74,9 @@ public class FileExplorerItemDTO impleme
 		f.setId(id);
 		f.setName(name);
 		f.setHash(hash);
-		f.setParentId(parentId);
-		f.setRoomId(roomId);
-		f.setOwnerId(ownerId);
+		f.setParentId(parentId != null && parentId > 0 ? parentId : null);
+		f.setRoomId(roomId != null && roomId > 0 ? roomId : null);
+		f.setOwnerId(ownerId != null && ownerId > 0 ? ownerId : null);
 		f.setSize(size);
 		f.setExternalId(externalId);
 		f.setExternalType(externalType);

Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java?rev=1716796&r1=1716795&r2=1716796&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java Fri Nov 27 05:59:50 2015
@@ -20,17 +20,21 @@ package org.apache.openmeetings.webservi
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
+import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
 import javax.ws.rs.GET;
+import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.db.dao.basic.ErrorDao;
 import org.apache.openmeetings.db.dao.label.LabelDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.entity.basic.ErrorValue;
 import org.red5.logging.Red5LoggerFactory;
@@ -56,6 +60,8 @@ public class ErrorWebService {
 	private ErrorDao errorDao;
 	@Autowired
 	private LabelDao labelDao;
+	@Autowired
+	private SessiondataDao sessionDao;
 
 	/**
 	 * loads an Error-Object. If a Method returns a negative Result, its an
@@ -70,6 +76,7 @@ public class ErrorWebService {
 	 *            
 	 * @return - error with the code given
 	 */
+	@WebMethod
 	@GET
 	@Path("/{id}/{lang}")
 	public ServiceResult get(@WebParam(name="id") @PathParam("id") long id, @WebParam(name="lang") @PathParam("lang") long lang) {
@@ -93,4 +100,16 @@ public class ErrorWebService {
 		}
 		return null;
 	}
+	
+	@WebMethod
+	@POST
+	@Path("/report/")
+	public void report(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="message") @QueryParam("message") String message) {
+    	if (sid != null && message != null) {
+	    	Long userId = sessionDao.checkSession(sid);
+	    	if (userId != null && userId != 0) {
+	    		log.debug("[CLIENT MESSAGE] " + message);
+	    	}
+    	}
+	}
 }

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=1716796&r1=1716795&r2=1716796&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 Fri Nov 27 05:59:50 2015
@@ -353,38 +353,38 @@ public class FileWebService {
 	 * 
 	 * @param sid
 	 *            SID The SID of the User. This SID must be marked as logged in
-	 * @param fileId
+	 * @param id
 	 *            file or folder id
-	 * @param fileName
+	 * @param name
 	 *            new file or folder name
 	 * @return - null
 	 * @throws ServiceException
 	 */
-	public Long rename(String sid, Long fileId, String fileName) throws ServiceException {
-
+	@WebMethod
+	@POST
+	@Path("/rename/{id}/{name}")
+	public FileExplorerItemDTO rename(@WebParam(name="sid") @QueryParam("sid") String sid
+			, @WebParam(name="id") @PathParam("id") long id
+			, @WebParam(name="name") @PathParam("name") String name) throws ServiceException
+	{
 		try {
-
 			Long userId = sessionDao.checkSession(sid);
 
 			if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+				// FIXME TODO: check if this user is allowed to change this file
 
-				// TODO: check if this user is allowed to change this file
-				/*
-				 * FileExplorerItem fileExItem = fileExplorerItemDao.getFileExplorerItemsById (fileExplorerItemId);
-				 * 
-				 * if (fileExItem.getOwnerId() != null && !fileExItem.getOwnerId().equals(users_id)) { throw new
-				 * Exception( "This user is not the owner of the file and not allowed to edit its name" ); }
-				 */
-
-				log.debug("updateFileOrFolderSelf " + fileId);
-
-				fileDao.updateFileOrFolderName(fileId, fileName);
+				log.debug("rename " + id);
 
+				return new FileExplorerItemDTO(fileDao.rename(id, name));
+			} else {
+				throw new ServiceException("Insufficient permissins"); //TODO code -26
 			}
-		} catch (Exception err) {
-			log.error("[updateFileOrFolderNameSelf] ", err);
+		} catch (ServiceException e) {
+			throw e;
+		} catch (Exception e) {
+			log.error("[rename] ", e);
+			throw new ServiceException(e.getMessage());
 		}
-		return null;
 	}
 
 	/**