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 2017/03/14 03:59:50 UTC

svn commit: r1786840 [2/3] - in /openmeetings/application: branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/ branches/3.2.x/openmeeti...

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java Tue Mar 14 03:59:48 2017
@@ -29,14 +29,15 @@ import static org.apache.openmeetings.we
 import java.io.File;
 
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.util.FileItemResourceReference;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource.Attributes;
 import org.apache.wicket.util.string.StringValue;
-import org.apache.wicket.util.string.Strings;
 
 public class RoomResourceReference extends FileItemResourceReference<FileExplorerItem> {
 	private static final long serialVersionUID = 1L;
@@ -87,11 +88,15 @@ public class RoomResourceReference exten
 			//no-op expected
 		}
 		WebSession ws = WebSession.get();
-		if (id != null && ws.isSignedIn() && !Strings.isEmpty(uid) && getOnlineClient(uid) != null) {
-			//FIXME TODO ADDITIONALLY CHECK Rights !! and room !!
-			return getBean(FileExplorerItemDao.class).get(id);
+		Client c = getOnlineClient(uid);
+		if (id == null || !ws.isSignedIn() || c == null) {
+			return null;
 		}
-		return null;
+		FileExplorerItem f = getBean(FileExplorerItemDao.class).get(id);
+		// impossible to check file permission based on client, file can be dropped on WB
+		// and should be accessible to whole room
+		//FIXME TODO ADDITIONALLY CHECK Rights !! and room !!
+		return f;
 	}
 
 	protected File getFile(FileExplorerItem f, String ext) {
@@ -105,7 +110,7 @@ public class RoomResourceReference exten
 
 	@Override
 	protected File getFile(FileExplorerItem f) {
-		return getFile(f, null);
+		return getFile(f, Type.Video == f.getType() && preview ? EXTENSION_JPG : null);
 	}
 
 	@Override

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java Tue Mar 14 03:59:48 2017
@@ -25,7 +25,6 @@ import static org.apache.openmeetings.we
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dto.record.RecordingContainerData;
 import org.apache.openmeetings.db.entity.file.FileItem;
-import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.common.AddFolderDialog;
 import org.apache.openmeetings.web.common.UserPanel;
@@ -62,8 +61,8 @@ public class RecordingsPanel extends Use
 
 			@Override
 			protected void update(AjaxRequestTarget target, FileItem f) {
-				video.update(target, (Recording)f);
-				info.update(target, (Recording)f);
+				video.update(target, f);
+				info.update(target, f);
 			}
 		});
 		add(video, info, addFolder);

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java Tue Mar 14 03:59:48 2017
@@ -32,6 +32,7 @@ import org.apache.openmeetings.core.conv
 import org.apache.openmeetings.core.converter.RecordingConverter;
 import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.record.Recording.Status;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData;
@@ -111,38 +112,41 @@ public class VideoInfo extends Panel {
 		update(null, r);
 	}
 
-	public VideoInfo update(AjaxRequestTarget target, Recording _r) {
-		Recording r = _r == null ? new Recording() : _r;
-		rm.setObject(r);
-		try {
-			String name = null;
-			if (r.getRoomId() != null) {
-				Room room = getBean(RoomDao.class).get(r.getRoomId());
-				if (room != null) {
-					name = room.getName();
-					isInterview = Room.Type.interview == room.getType();
+	public VideoInfo update(AjaxRequestTarget target, FileItem _r) {
+		boolean reConvEnabled = false;
+		boolean exists = false;
+		if (_r instanceof Recording) {
+			Recording r = _r == null ? new Recording() : (Recording)_r;
+			rm.setObject(r);
+			exists = r.exists();
+			try {
+				String name = null;
+				if (r.getRoomId() != null) {
+					Room room = getBean(RoomDao.class).get(r.getRoomId());
+					if (room != null) {
+						name = room.getName();
+						isInterview = Room.Type.interview == room.getType();
+					}
 				}
+				roomName.setObject(name);
+			} catch (Exception e) {
+				//no-op
 			}
-			roomName.setObject(name);
-		} catch (Exception e) {
-			//no-op
-		}
 
-		boolean reConvEnabled = false;
-		if (r.getOwnerId() != null && r.getOwnerId().equals(getUserId()) && r.getStatus() != Status.RECORDING && r.getStatus() != Status.CONVERTING) {
-			List<RecordingMetaData> metas = getBean(RecordingMetaDataDao.class).getByRecording(r.getId());
-			reconvLabel:
-			if (!metas.isEmpty()) {
-				for (RecordingMetaData meta : metas) {
-					if (r.getRoomId() == null || !getRecordingMetaData(r.getRoomId(), meta.getStreamName()).exists()) {
-						break reconvLabel;
+			if (r.getOwnerId() != null && r.getOwnerId().equals(getUserId()) && r.getStatus() != Status.RECORDING && r.getStatus() != Status.CONVERTING) {
+				List<RecordingMetaData> metas = getBean(RecordingMetaDataDao.class).getByRecording(r.getId());
+				reconvLabel:
+				if (!metas.isEmpty()) {
+					for (RecordingMetaData meta : metas) {
+						if (r.getRoomId() == null || !getRecordingMetaData(r.getRoomId(), meta.getStreamName()).exists()) {
+							break reconvLabel;
+						}
 					}
+					reConvEnabled = true;
 				}
-				reConvEnabled = true;
 			}
 		}
 		reConvert.setEnabled(reConvEnabled);
-		boolean exists = r.exists();
 		downloadBtn.setEnabled(exists);
 		share.setEnabled(exists);
 		if (target != null) {

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java Tue Mar 14 03:59:48 2017
@@ -20,76 +20,74 @@ package org.apache.openmeetings.web.user
 
 import static org.apache.openmeetings.util.OmFileHelper.MP4_MIME_TYPE;
 
+import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.record.Recording;
+import org.apache.openmeetings.web.common.MainPanel;
+import org.apache.openmeetings.web.room.RoomResourceReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.media.Source;
 import org.apache.wicket.markup.html.media.video.Video;
 import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.request.Url;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.request.resource.UrlResourceReference;
 
 public class VideoPlayer extends Panel {
 	private static final long serialVersionUID = 1L;
 	private final WebMarkupContainer wait = new WebMarkupContainer("wait"); //FIXME not used
 	private final WebMarkupContainer container = new WebMarkupContainer("container");
-	private final Mp4RecordingResourceReference mp4res = new Mp4RecordingResourceReference();
-	private final OmVideo player = new OmVideo("player", null);
-	private final Source mp4 = new Source("mp4", mp4res);
+	private final Mp4RecordingResourceReference mp4RecRes = new Mp4RecordingResourceReference();
+	private final JpgRecordingResourceReference posterRecRes = new JpgRecordingResourceReference();
+	private final RoomResourceReference mp4FileRes = new RoomResourceReference();
+	private final RoomResourceReference posterFileRes = new RoomResourceReference();
+	private final Video player = new Video("player") {
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		public boolean isAutoplay() {
+			return false;
+		}
+
+		@Override
+		public boolean hasControls() {
+			return true;
+		}
+	};
+	private final Source mp4Rec = new Source("mp4", mp4RecRes);
+	private final Source mp4File = new Source("mp4", mp4FileRes);
 
 	public VideoPlayer(String id) {
-		this(id, null);
-	}
-	
-	public VideoPlayer(String id, Recording r) {
 		super(id);
 		add(container.setOutputMarkupPlaceholderTag(true));
-		mp4.setDisplayType(true);
-		mp4.setType(MP4_MIME_TYPE);
-		player.add(mp4);
+		mp4Rec.setDisplayType(true);
+		mp4Rec.setType(MP4_MIME_TYPE);
+		mp4File.setDisplayType(true);
+		mp4File.setType(MP4_MIME_TYPE);
+		player.add(mp4Rec);
 		container.add(wait.setVisible(false), player);
-		update(null, r);
+		update(null, null);
 	}
-	
-	public VideoPlayer update(AjaxRequestTarget target, Recording r) {
+
+	public VideoPlayer update(AjaxRequestTarget target, FileItem r) {
 		boolean videoExists = r != null && r.exists();
 		if (videoExists) {
-			PageParameters pp = new PageParameters().add("id", r.getId());
-			mp4.setPageParameters(pp);
-			player.recId = r.getId();
+			PageParameters pp = new PageParameters();
+			if (r instanceof Recording) {
+				pp.add("id", r.getId());
+				mp4Rec.setPageParameters(pp);
+				player.replace(mp4Rec);
+				player.setPoster(posterRecRes, pp);
+			} else {
+				pp.add("id", r.getId()).add("uid", findParent(MainPanel.class).getClient().getUid());
+				mp4File.setPageParameters(pp);
+				player.replace(mp4File);
+				player.setPoster(posterFileRes, new PageParameters(pp).add("preview", true));
+			}
 		}
 		container.setVisible(videoExists);
 		if (target != null) {
 			target.add(container);
 		}
-		
+
 		return this;
 	}
-	
-	private static class OmVideo extends Video {
-		private static final long serialVersionUID = 1L;
-		Long recId = null;
-		
-		OmVideo(String id, Long recId) {
-			super(id);
-			this.recId = recId;
-		}
-		
-		@Override
-		public boolean isAutoplay() {
-			return false;
-		}
-		
-		@Override
-		public boolean hasControls() {
-			return true;
-		}
-		
-		@Override
-		public ResourceReference getPoster() {
-			return recId == null ? null : new UrlResourceReference(Url.parse("recordings/jpg/" + recId)).setContextRelative(true);
-		}
-	}
 }

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java Tue Mar 14 03:59:48 2017
@@ -335,7 +335,7 @@ public abstract class BaseConverter {
 	}
 
 	protected String getDimensions(Recording r) {
-		return String.format("%sx%s", r.getFlvWidth(), r.getFlvHeight());
+		return String.format("%sx%s", r.getWidth(), r.getHeight());
 	}
 
 	protected List<String> addMp4OutParams(Recording r, List<String> argv, String mp4path) {

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java Tue Mar 14 03:59:48 2017
@@ -89,8 +89,8 @@ public class FlvExplorerConverter extend
 			}
 			//Parse the width height from the FFMPEG output
 			FlvDimension dim = getFlvDimension(res.getError());
-			f.setFlvWidth(dim.width);
-			f.setFlvHeight(dim.height);
+			f.setWidth(dim.width);
+			f.setHeight(dim.height);
 			File jpeg = f.getFile(EXTENSION_JPG);
 
 			args = new String[] { getPathToFFMPEG(), "-y", "-i",

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java Tue Mar 14 03:59:48 2017
@@ -251,8 +251,8 @@ public class InterviewConverter extends
 			args.add("-qmin"); args.add("1");
 			// TODO additional flag to 'quiet' output should be added
 
-			r.setFlvWidth(2 * flvWidth);
-			r.setFlvHeight(flvHeight);
+			r.setWidth(2 * flvWidth);
+			r.setHeight(flvHeight);
 
 			String mp4path = convertToMp4(r, args, logs);
 

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java Tue Mar 14 03:59:48 2017
@@ -130,8 +130,8 @@ public class RecordingConverter extends
 			log.debug("flvWidth -2- " + flvWidth);
 			log.debug("flvHeight -2- " + flvHeight);
 
-			r.setFlvWidth(flvWidth);
-			r.setFlvHeight(flvHeight);
+			r.setWidth(flvWidth);
+			r.setHeight(flvHeight);
 
 			String mp4path = convertToMp4(r, Arrays.asList(
 					"-itsoffset", formatMillis(diff(screenMetaData.getRecordStart(), r.getRecordStart())),

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java Tue Mar 14 03:59:48 2017
@@ -106,12 +106,34 @@ public class FileExplorerItemDao {
 		return query.getResultList();
 	}
 
+	public List<FileExplorerItem> getByGroup(Long groupId) {
+		log.debug("getByGroup() started");
+		return em.createNamedQuery("getFileByGroup", FileExplorerItem.class)
+				.setParameter("groupId", groupId)
+				.getResultList();
+	}
+
+	public List<FileExplorerItem> getByGroup(Long groupId, List<Type> filter) {
+		log.debug("getByGroup() started");
+		return em.createNamedQuery("getFileFilteredByGroup", FileExplorerItem.class)
+				.setParameter("filter", filter)
+				.setParameter("groupId", groupId)
+				.getResultList();
+	}
+
 	public List<FileExplorerItem> getByParent(Long parentId) {
 		log.debug("getByParent() started");
-		TypedQuery<FileExplorerItem> query = em.createNamedQuery("getFilesByParent", FileExplorerItem.class);
-		query.setParameter("parentId", parentId);
+		return em.createNamedQuery("getFilesByParent", FileExplorerItem.class)
+				.setParameter("parentId", parentId)
+				.getResultList();
+	}
 
-		return query.getResultList();
+	public List<FileExplorerItem> getByParent(Long parentId, List<Type> filter) {
+		log.debug("getByParent() started");
+		return em.createNamedQuery("getFilesFilteredByParent", FileExplorerItem.class)
+				.setParameter("filter", filter)
+				.setParameter("parentId", parentId)
+				.getResultList();
 	}
 
 	public FileExplorerItem getByHash(String hash) {
@@ -264,7 +286,6 @@ public class FileExplorerItemDao {
 	public long getSize(List<FileExplorerItem> list) {
 		long size = 0;
 		for (FileExplorerItem f : list) {
-			log.debug("FileExplorerItem fList " + f.getName());
 			size += getSize(f);
 		}
 		return size;

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerItemDTO.java Tue Mar 14 03:59:48 2017
@@ -49,8 +49,8 @@ public class FileExplorerItemDTO impleme
 	private String externalId;
 	private String externalType;
 	private Type type;
-	private Integer flvWidth;
-	private Integer flvHeight;
+	private Integer width;
+	private Integer height;
 
 	public FileExplorerItemDTO() {}
 
@@ -65,8 +65,8 @@ public class FileExplorerItemDTO impleme
 		externalId = f.getExternalId();
 		externalType = f.getExternalType();
 		type = f.getType();
-		flvWidth = f.getFlvWidth();
-		flvHeight = f.getFlvHeight();
+		width = f.getWidth();
+		height = f.getHeight();
 	}
 	
 	public FileExplorerItem get() {
@@ -81,8 +81,8 @@ public class FileExplorerItemDTO impleme
 		f.setExternalId(externalId);
 		f.setExternalType(externalType);
 		f.setType(type);
-		f.setFlvWidth(flvWidth);
-		f.setFlvHeight(flvHeight);
+		f.setWidth(width);
+		f.setHeight(height);
 		return f;
 	}
 	
@@ -166,20 +166,20 @@ public class FileExplorerItemDTO impleme
 		this.type = type;
 	}
 
-	public Integer getFlvWidth() {
-		return flvWidth;
+	public Integer getWidth() {
+		return width;
 	}
 
-	public void setFlvWidth(Integer flvWidth) {
-		this.flvWidth = flvWidth;
+	public void setWidth(Integer width) {
+		this.width = width;
 	}
 
-	public Integer getFlvHeight() {
-		return flvHeight;
+	public Integer getHeight() {
+		return height;
 	}
 
-	public void setFlvHeight(Integer flvHeight) {
-		this.flvHeight = flvHeight;
+	public void setHeight(Integer height) {
+		this.height = height;
 	}
 
 	public static List<FileExplorerItemDTO> list(List<FileExplorerItem> l) {

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java Tue Mar 14 03:59:48 2017
@@ -32,16 +32,24 @@ import org.simpleframework.xml.Root;
 
 @Entity
 @NamedQueries({
-	@NamedQuery(name = "getAllFiles", query = "SELECT c FROM FileExplorerItem c ORDER BY c.id")
-	, @NamedQuery(name = "getFileById", query = "SELECT c FROM FileExplorerItem c WHERE c.id = :id")
-	, @NamedQuery(name = "getFileByHash", query = "SELECT c FROM FileExplorerItem c WHERE c.hash = :hash")
-	, @NamedQuery(name = "getFilesByRoom", query = "SELECT c FROM FileExplorerItem c WHERE c.deleted = false AND c.roomId = :roomId " +
-			"AND c.ownerId IS NULL AND c.parentId IS NULL ORDER BY c.type ASC, c.name ")
-	, @NamedQuery(name = "getFilesByOwner", query = "SELECT c FROM FileExplorerItem c WHERE c.deleted = false AND c.ownerId = :ownerId "
-			+ "AND c.parentId IS NULL ORDER BY c.type ASC, c.name ")
-	, @NamedQuery(name = "getFilesByParent", query = "SELECT c FROM FileExplorerItem c WHERE c.deleted = false "
-			+ "AND c.parentId = :parentId ORDER BY c.type ASC, c.name ")
-	, @NamedQuery(name = "getFileExternal", query = "SELECT c FROM FileExplorerItem c WHERE c.externalId = :externalId AND c.externalType LIKE :externalType")
+	@NamedQuery(name = "getAllFiles", query = "SELECT f FROM FileExplorerItem f ORDER BY f.id")
+	, @NamedQuery(name = "getFileById", query = "SELECT f FROM FileExplorerItem f WHERE f.id = :id")
+	, @NamedQuery(name = "getFileByHash", query = "SELECT f FROM FileExplorerItem f WHERE f.hash = :hash")
+	, @NamedQuery(name = "getFilesByRoom", query = "SELECT f FROM FileExplorerItem f WHERE f.deleted = false AND f.roomId = :roomId " +
+			"AND f.ownerId IS NULL AND f.parentId IS NULL ORDER BY f.type ASC, f.name ")
+	, @NamedQuery(name = "getFilesByOwner", query = "SELECT f FROM FileExplorerItem f WHERE f.deleted = false AND f.ownerId = :ownerId "
+			+ "AND f.parentId IS NULL ORDER BY f.type ASC, f.name ")
+	, @NamedQuery(name = "getFilesByParent", query = "SELECT f FROM FileExplorerItem f WHERE f.deleted = false "
+			+ "AND f.parentId = :parentId ORDER BY f.type ASC, f.name ")
+	, @NamedQuery(name = "getFilesFilteredByParent", query = "SELECT f FROM FileExplorerItem f WHERE f.deleted = false "
+			+ "AND f.parentId = :parentId AND f.type IN :filter ORDER BY f.type ASC, f.name ")
+	, @NamedQuery(name = "getFileExternal", query = "SELECT f FROM FileExplorerItem f WHERE f.externalId = :externalId AND f.externalType LIKE :externalType")
+	, @NamedQuery(name = "getFileByGroup", query = "SELECT f FROM FileExplorerItem f WHERE f.deleted = false AND f.ownerId IS NULL "
+			+ "AND f.groupId = :groupId AND f.parentId IS NULL "
+			+ "ORDER BY f.type ASC, f.name")
+	, @NamedQuery(name = "getFileFilteredByGroup", query = "SELECT f FROM FileExplorerItem f WHERE f.deleted = false AND f.ownerId IS NULL "
+			+ "AND f.groupId = :groupId AND f.parentId IS NULL AND f.type IN :filter "
+			+ "ORDER BY f.type ASC, f.name")
 })
 @Table(name = "fileexploreritem")
 @Root

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java Tue Mar 14 03:59:48 2017
@@ -90,21 +90,28 @@ public abstract class FileItem implement
 
 	@Column(name = "flv_width")
 	@Element(data = true, required = false)
-	private Integer flvWidth;
+	private Integer width;
 
 	@Column(name = "flv_height")
 	@Element(data = true, required = false)
-	private Integer flvHeight;
+	private Integer height;
 
 	@Column(name = "type")
 	@Element(data = true, required = false)
 	@Enumerated(EnumType.STRING)
 	private Type type;
 
+	@Column(name = "group_id")
+	@Element(data = true, required = false)
+	private Long groupId;
+
 	// Not Mapped
 	@Transient
 	private List<FileItemLog> log;
 
+	@Transient
+	private boolean readOnly;
+
 	public String getName() {
 		return name;
 	}
@@ -177,20 +184,20 @@ public abstract class FileItem implement
 		this.deleted = deleted;
 	}
 
-	public Integer getFlvWidth() {
-		return flvWidth;
+	public Integer getWidth() {
+		return width;
 	}
 
-	public void setFlvWidth(Integer flvWidth) {
-		this.flvWidth = flvWidth;
+	public void setWidth(Integer flvWidth) {
+		this.width = flvWidth;
 	}
 
-	public Integer getFlvHeight() {
-		return flvHeight;
+	public Integer getHeight() {
+		return height;
 	}
 
-	public void setFlvHeight(Integer flvHeight) {
-		this.flvHeight = flvHeight;
+	public void setHeight(Integer flvHeight) {
+		this.height = flvHeight;
 	}
 
 	public Type getType() {
@@ -217,6 +224,22 @@ public abstract class FileItem implement
 		return getFile(null);
 	}
 
+	public Long getGroupId() {
+		return groupId;
+	}
+
+	public void setGroupId(Long groupId) {
+		this.groupId = groupId;
+	}
+
+	public boolean isReadOnly() {
+		return readOnly;
+	}
+
+	public void setReadOnly(boolean readOnly) {
+		this.readOnly = readOnly;
+	}
+
 	public final File getFile(String ext) {
 		File f = null;
 		if (getHash() != null) {

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java Tue Mar 14 03:59:48 2017
@@ -55,30 +55,30 @@ import org.simpleframework.xml.Root;
  * <li>a interview recording</li>
  * <li>a folder</li>
  * </ul>
- * 
+ *
  * Recorded files are situated in: webapps/openmeetings/streams/hibernate.<br/>
  * The raw recorded files are situated in:
  * webapps/openmeetings/streams/$ROOM_ID.<br/>
- * 
+ *
  * @author sebawagner
- * 
+ *
  */
 @Entity
-@NamedQueries({ 
-	@NamedQuery(name = "getRecordingById", query = "SELECT f FROM Recording f WHERE f.id = :id") 
-	, @NamedQuery(name = "getRecordingByHash", query = "SELECT f FROM Recording f WHERE f.hash = :hash") 
+@NamedQueries({
+	@NamedQuery(name = "getRecordingById", query = "SELECT f FROM Recording f WHERE f.id = :id")
+	, @NamedQuery(name = "getRecordingByHash", query = "SELECT f FROM Recording f WHERE f.hash = :hash")
 	, @NamedQuery(name = "getRecordingsByExternalUser", query = "SELECT c FROM Recording c, User u "
 			+ "WHERE c.insertedBy = u.id AND u.externalId = :externalId  AND u.externalType = :externalType "
-			+ "AND c.deleted = false") 
+			+ "AND c.deleted = false")
 	, @NamedQuery(name = "getRecordingsPublic", query = "SELECT f FROM Recording f WHERE f.deleted = false AND f.ownerId IS NULL "
 			+ "AND f.groupId IS NULL AND (f.parentId IS NULL OR f.parentId = 0) "
-			+ "ORDER BY f.type DESC, f.inserted")
+			+ "ORDER BY f.type ASC, f.inserted")
 	, @NamedQuery(name = "getRecordingsByGroup", query = "SELECT f FROM Recording f WHERE f.deleted = false AND f.ownerId IS NULL "
 			+ "AND f.groupId = :groupId AND (f.parentId IS NULL OR f.parentId = 0) "
-			+ "ORDER BY f.type DESC, f.inserted")
+			+ "ORDER BY f.type ASC, f.inserted")
 	, @NamedQuery(name = "getRecordingsByOwner", query = "SELECT f FROM Recording f WHERE f.deleted = false AND f.ownerId = :ownerId "
 			+ "AND (f.parentId IS NULL OR f.parentId = 0) "
-			+ "ORDER BY f.type DESC, f.inserted")
+			+ "ORDER BY f.type ASC, f.inserted")
 	, @NamedQuery(name = "resetRecordingProcessingStatus", query = "UPDATE Recording f SET f.status = :error WHERE f.status IN (:recording, :converting)")
 	, @NamedQuery(name = "getRecordingsAll", query = "SELECT c FROM Recording c LEFT JOIN FETCH c.metaData ORDER BY c.id")
 	, @NamedQuery(name = "getRecordingsByExternalTypeAndOwner", query = "SELECT c FROM Recording c, Room r WHERE c.roomId = r.id "
@@ -103,7 +103,7 @@ import org.simpleframework.xml.Root;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class Recording extends FileItem {
 	private static final long serialVersionUID = 1L;
-	
+
 	@XmlType(namespace="org.apache.openmeetings.record")
 	public enum Status {
 		NONE
@@ -131,14 +131,6 @@ public class Recording extends FileItem
 	@Element(data = true, required = false)
 	private Date recordEnd;
 
-	@Column(name = "width")
-	@Element(data = true, required = false)
-	private Integer width;
-
-	@Column(name = "height")
-	@Element(data = true, required = false)
-	private Integer height;
-
 	@Column(name = "duration")
 	@Element(data = true, required = false)
 	private String duration;
@@ -147,10 +139,6 @@ public class Recording extends FileItem
 	@Element(data = true, required = false)
 	private String recorderStreamId;
 
-	@Column(name = "group_id")
-	@Element(data = true, required = false)
-	private Long groupId;
-
 	@Column(name = "is_interview", nullable = false)
 	@Element(data = true, required = false)
 	private boolean interview;
@@ -219,14 +207,6 @@ public class Recording extends FileItem
 		this.recorderStreamId = recorderStreamId;
 	}
 
-	public Long getGroupId() {
-		return groupId;
-	}
-
-	public void setGroupId(Long groupId) {
-		this.groupId = groupId;
-	}
-
 	public List<RecordingMetaData> getMetaData() {
 		return metaData;
 	}
@@ -235,22 +215,6 @@ public class Recording extends FileItem
 		this.metaData = metaData;
 	}
 
-	public Integer getWidth() {
-		return width;
-	}
-
-	public void setWidth(Integer width) {
-		this.width = width;
-	}
-
-	public Integer getHeight() {
-		return height;
-	}
-
-	public void setHeight(Integer height) {
-		this.height = height;
-	}
-
 	public boolean isInterview() {
 		return interview;
 	}

Modified: openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java (original)
+++ openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java Tue Mar 14 03:59:48 2017
@@ -160,7 +160,7 @@ public class Core implements IPendingSer
 							client.setKeyStorePassword(args[11]);
 							instance = client;
 						} else {
-							instance = new RTMPTSScreenShare(this, true);
+							instance = new RTMPTSScreenShare(this);
 						}
 						break;
 					case rtmpe:

Modified: openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java (original)
+++ openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java Tue Mar 14 03:59:48 2017
@@ -31,7 +31,7 @@ public class RTMPTSScreenShare extends R
 
 	private final Core core;
 
-	public RTMPTSScreenShare(Core core, boolean secure) {
+	public RTMPTSScreenShare(Core core) {
 		this.core = core;
 	};
 

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Tue Mar 14 03:59:48 2017
@@ -366,10 +366,6 @@ public class Application extends Authent
 		return result;
 	}
 
-	public static int getClientsSize() {
-		return ONLINE_USERS.size();
-	}
-
 	public static Client getClientByKeys(Long userId, String sessionId) {
 		Client client = null;
 		for (Map.Entry<String, Client> e : ONLINE_USERS.entrySet()) {

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml Tue Mar 14 03:59:48 2017
@@ -1936,4 +1936,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml Tue Mar 14 03:59:48 2017
@@ -1904,4 +1904,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml Tue Mar 14 03:59:48 2017
@@ -1899,4 +1899,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml Tue Mar 14 03:59:48 2017
@@ -1917,4 +1917,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml Tue Mar 14 03:59:48 2017
@@ -1917,4 +1917,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml Tue Mar 14 03:59:48 2017
@@ -1916,4 +1916,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Комната[{0}]</entry>
 	<entry key="widget.recent.title">Последние комнаты</entry>
 	<entry key="widget.recent.desc">Эта секция отображает комнаты в которые Вы недавно заходили</entry>
+	<entry key="files.root.group">Файлы группы</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml Tue Mar 14 03:59:48 2017
@@ -1916,4 +1916,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml Tue Mar 14 03:59:48 2017
@@ -1901,4 +1901,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml Tue Mar 14 03:59:48 2017
@@ -1915,4 +1915,5 @@
 	<entry key="template.recording.expiring.subj.room"> -- Room[{0}]</entry>
 	<entry key="widget.recent.title">Recent Rooms</entry>
 	<entry key="widget.recent.desc">This sections displays rooms recently opened by you</entry>
+	<entry key="files.root.group">Group files</entry>
 </properties>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.html?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.html Tue Mar 14 03:59:48 2017
@@ -7,16 +7,16 @@
   to you under the Apache License, Version 2.0 (the
   "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
-    	  
+
   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
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-  
+
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 <wicket:panel>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.html?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.html Tue Mar 14 03:59:48 2017
@@ -7,16 +7,16 @@
   to you under the Apache License, Version 2.0 (the
   "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
-  
+
   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
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-  
+
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 <wicket:extend><span wicket:id="errors" class="errors"></span></wicket:extend>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java Tue Mar 14 03:59:48 2017
@@ -73,6 +73,11 @@ public class FileItemTree extends Defaul
 	}
 
 	@Override
+	public OmTreeProvider getProvider() {
+		return (OmTreeProvider)super.getProvider();
+	}
+
+	@Override
 	protected Component newContentComponent(String id, IModel<FileItem> node) {
 		return new Folder<FileItem>(id, this, node) {
 			private static final long serialVersionUID = 1L;

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html Tue Mar 14 03:59:48 2017
@@ -16,7 +16,7 @@
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-  
+
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 <wicket:panel>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java Tue Mar 14 03:59:48 2017
@@ -96,7 +96,6 @@ public abstract class FileTreePanel exte
 	private final ConfirmableBorderDialog trashConfirm;
 	private ConfirmableAjaxBorder trashBorder;
 	private final Long roomId;
-	private final OmTreeProvider tp;
 	private boolean readOnly = true;
 	private final Component createDir = new WebMarkupContainer("create").add(new AjaxEventBehavior("click") {
 		private static final long serialVersionUID = 1L;
@@ -113,7 +112,7 @@ public abstract class FileTreePanel exte
 		this.roomId = roomId;
 		this.addFolder = addFolder;
 		this.trashConfirm = trashConfirm;
-		tp = new OmTreeProvider(roomId);
+		final OmTreeProvider tp = new OmTreeProvider(roomId);
 		select(tp.getRoot(), null, false, false);
 		form.add(tree = new FileItemTree("tree", this, tp));
 		form.add(download.setVisible(false).setOutputMarkupPlaceholderTag(true));
@@ -245,7 +244,7 @@ public abstract class FileTreePanel exte
 	public void setReadOnly(boolean readOnly, IPartialPageRequestHandler handler) {
 		if (this.readOnly != readOnly) {
 			this.readOnly = readOnly;
-			tp.refreshRoots(!readOnly);
+			tree.getProvider().refreshRoots(!readOnly);
 			createDir.setEnabled(!readOnly);
 			createDir.add(AttributeModifier.replace("class", new StringBuilder(CREATE_DIR_CLASS).append(readOnly ? DISABLED_CLASS : "")));
 			upload.setEnabled(!readOnly);
@@ -273,14 +272,13 @@ public abstract class FileTreePanel exte
 		f.setInserted(new Date());
 		f.setType(Type.Folder);
 		f.setOwnerId(p.getOwnerId());
+		f.setGroupId(p.getGroupId());
+		f.setRoomId(p.getRoomId());
 		//TODO lastSelected.parent??
 		f.setParentId(Type.Folder == p.getType() ? p.getId() : null);
 		if (isRecording) {
-			Recording r = (Recording)f;
-			r.setGroupId(((Recording)p).getGroupId());
-			getBean(RecordingDao.class).update(r);
+			getBean(RecordingDao.class).update((Recording)f);
 		} else {
-			f.setRoomId(p.getRoomId());
 			getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
 		}
 		update(target);
@@ -343,7 +341,7 @@ public abstract class FileTreePanel exte
 	}
 
 	public void select(FileItem fi, AjaxRequestTarget target, boolean shift, boolean ctrl) {
-		updateSelected(target);
+		updateSelected(target); //all previously selected are in update list
 		if (ctrl) {
 			if (isSelected(fi)) {
 				selected.remove(fi.getHash());
@@ -354,7 +352,7 @@ public abstract class FileTreePanel exte
 		} else if (shift && lastSelected != null && !lastSelected.getHash().equals(fi.getHash()) && sameParent(roomId, fi, lastSelected)) {
 			selected.clear();
 			String lastHash = null;
-			for (FileItem f : ((OmTreeProvider)tree.getProvider()).getByParent(fi, fi.getParentId())) {
+			for (FileItem f : tree.getProvider().getByParent(fi, fi.getParentId())) {
 				if (lastHash == null) {
 					if (f.getHash().equals(lastSelected.getHash())) {
 						lastHash = fi.getHash();
@@ -375,7 +373,7 @@ public abstract class FileTreePanel exte
 			selected.put(fi.getHash(), fi);
 			lastSelected = fi;
 		}
-		updateSelected(target);
+		updateSelected(target); //all finaly selected are in the update list
 		if (target != null) {
 			target.add(trashBorder, download.setVisible(lastSelected.getType() == Type.Presentation || lastSelected.getType() == Type.Image));
 		}

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html Tue Mar 14 03:59:48 2017
@@ -7,16 +7,16 @@
   to you under the Apache License, Version 2.0 (the
   "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
-          
+
   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
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-  
+
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 <wicket:panel>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java Tue Mar 14 03:59:48 2017
@@ -52,7 +52,8 @@ public class FolderPanel extends Panel {
 	public FolderPanel(String id, final IModel<? extends FileItem> model, final FileTreePanel treePanel) {
 		super(id, model);
 		FileItem r = model.getObject();
-		drop = r.getType() == Type.Folder ? new Droppable<FileItem>("drop", Model.of(r)) {
+		boolean editable = !treePanel.isReadOnly() && !r.isReadOnly();
+		drop = r.getType() == Type.Folder && editable ? new Droppable<FileItem>("drop", Model.of(r)) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -78,7 +79,7 @@ public class FolderPanel extends Panel {
 				target.add(treePanel.trees);
 			}
 		} : new WebMarkupContainer("drop");
-		if (r.getId() == null || treePanel.isReadOnly()) {
+		if (r.getId() == null || !editable) {
 			drag = new WebMarkupContainer("drag");
 		} else {
 			drag = new Draggable<FileItem>("drag", Model.of(r)) {
@@ -94,7 +95,7 @@ public class FolderPanel extends Panel {
 			}.setContainment(treePanel.getContainment());
 			drag.add(AttributeAppender.append("class", r instanceof Recording ? "recorditem" : "fileitem"));
 		}
-		drag.add(r.getId() == null || treePanel.isReadOnly() ? new Label("name", r.getName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getName())) {
+		Component name = r.getId() == null || !editable ? new Label("name", r.getName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getName())) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -118,7 +119,8 @@ public class FolderPanel extends Panel {
 			public void onEdit(AjaxRequestTarget target) {
 				super.onEdit(target);
 			}
-		});
+		};
+		drag.add(name.add(AttributeAppender.append("title", r.getName())));
 		add(drop.add(drag).setOutputMarkupId(true));
 	}
 
@@ -137,10 +139,9 @@ public class FolderPanel extends Panel {
 		f.setParentId(pid);
 		f.setOwnerId(p.getOwnerId());
 		f.setRoomId(p.getRoomId());
+		f.setGroupId(p.getGroupId());
 		if (f instanceof Recording) {
-			Recording r = (Recording)f;
-			r.setGroupId(((Recording)p).getGroupId());
-			getBean(RecordingDao.class).update(r);
+			getBean(RecordingDao.class).update((Recording)f);
 		} else {
 			getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
 		}

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java Tue Mar 14 03:59:48 2017
@@ -22,6 +22,7 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
@@ -41,70 +42,76 @@ import org.apache.wicket.model.Model;
 
 public class OmTreeProvider implements ITreeProvider<FileItem> {
 	private static final long serialVersionUID = 1L;
+	private static final List<Type> VIDEO_TYPES = Arrays.asList(Type.Folder, Type.Video);
 	public static String RECORDINGS_MY = "recordings-my";
 	public static String RECORDINGS_PUBLIC = "recordings-public";
 	public static String RECORDINGS_GROUP = "recordings-group-%s";
 	public static String FILES_MY = "files-my";
 	public static String FILES_ROOM = "files-room";
+	public static String FILES_GROUP = "files-group-%s";
 	private final Long roomId;
 	private final List<FileItem> roots = new ArrayList<>();
+	private final String PUBLIC, GROUP;
 
 	public OmTreeProvider(Long roomId) {
 		this.roomId = roomId;
+		PUBLIC = Application.getString(861);
+		GROUP = Application.getString("files.root.group");
 		refreshRoots(true);
 	}
 
 	public void refreshRoots(boolean all) {
-		roots.clear();
+		List<FileItem> fRoot = new ArrayList<>(), rRoot = new ArrayList<>();
 		if (all) {
 			if (roomId != null) {
-				roots.add(createFileRoot(null));
-				roots.add(createFileRoot(roomId));
+				FileItem r = createRoot(Application.getString(706), FILES_MY, false);
+				r.setOwnerId(getUserId());
+				fRoot.add(r);
 			}
-			final String PUBLIC = Application.getString(861);
+		}
+		if (roomId != null) {
+			FileItem r = createRoot(Application.getString(707), FILES_ROOM, false);
+			r.setRoomId(roomId);
+			roots.add(r);
+		}
+		if (all) {
 			{
-				Recording r = createRecRoot(Application.getString(860), RECORDINGS_MY);
+				FileItem r = createRoot(Application.getString(860), RECORDINGS_MY, true);
 				r.setOwnerId(getUserId());
-				roots.add(r);
+				rRoot.add(r);
 			}
 			{
-				Recording r = createRecRoot(PUBLIC, RECORDINGS_PUBLIC);
-				roots.add(r);
+				FileItem r = createRoot(PUBLIC, RECORDINGS_PUBLIC, true);
+				rRoot.add(r);
 			}
-			for (GroupUser gu : getBean(UserDao.class).get(getUserId()).getGroupUsers()) {
-				Group g = gu.getGroup();
-
-				Recording r = createRecRoot(String.format("%s (%s)", PUBLIC, g.getName()), String.format(RECORDINGS_GROUP, g.getId()));
+		}
+		for (GroupUser gu : getBean(UserDao.class).get(getUserId()).getGroupUsers()) {
+			Group g = gu.getGroup();
+			if (all) {
+				FileItem r = createRoot(String.format("%s (%s)", PUBLIC, g.getName()), String.format(RECORDINGS_GROUP, g.getId()), true);
 				r.setGroupId(g.getId());
-				roots.add(r);
+				rRoot.add(r);
 			}
+			/*FileItem r = createRoot(String.format("%s (%s)", GROUP, g.getName()), String.format(FILES_GROUP, g.getId()), false);
+			r.setGroupId(g.getId());
+			r.setReadOnly(roomId == null); //group videos are read-only in recordings tree
+			fRoot.add(r);*/
+		}
+		roots.clear();
+		if (roomId == null) {
+			roots.addAll(rRoot);
+			roots.addAll(fRoot);
 		} else {
-			if (roomId != null) {
-				roots.add(createFileRoot(roomId));
-			}
+			roots.addAll(fRoot);
+			roots.addAll(rRoot);
 		}
 	}
 
-	static Recording createRecRoot(String name, String hash) {
-		Recording r = new Recording();
-		r.setType(Type.Folder);
-		r.setName(name);
-		r.setHash(hash);
-		return r;
-	}
-
-	static FileExplorerItem createFileRoot(Long roomId) {
-		FileExplorerItem f = new FileExplorerItem();
-		f.setRoomId(roomId);
+	static FileItem createRoot(String name, String hash, boolean rec) {
+		FileItem f = rec ? new Recording() : new FileExplorerItem();
 		f.setType(Type.Folder);
-		if (roomId == null) {
-			f.setOwnerId(getUserId());
-			f.setName(Application.getString(706));
-			f.setHash(FILES_MY);
-		} else {
-			f.setName(Application.getString(707));
-			f.setHash(FILES_ROOM);
-		}
+		f.setName(name);
+		f.setHash(hash);
 		return f;
 	}
 
@@ -137,16 +144,23 @@ public class OmTreeProvider implements I
 			FileExplorerItemDao dao = getBean(FileExplorerItemDao.class);
 			List<FileExplorerItem> _list;
 			if (id == null) {
-				if (node.getRoomId() == null) {
-					_list = dao.getByOwner(node.getOwnerId());
-				} else {
+				if (node.getRoomId() != null) {
 					_list = dao.getByRoom(node.getRoomId());
+				} else if (node.getGroupId() != null) {
+					_list = dao.getByGroup(node.getGroupId(), roomId == null ? VIDEO_TYPES : null);
+				} else {
+					_list = dao.getByOwner(node.getOwnerId());
 				}
 			} else {
-				_list = dao.getByParent(id);
+				_list = dao.getByParent(id, roomId == null ? VIDEO_TYPES : null);
 			}
 			list.addAll(_list);
 		}
+		if (node.isReadOnly()) {
+			for (FileItem f : list) {
+				f.setReadOnly(true);
+			}
+		}
 		return list;
 	}
 

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java Tue Mar 14 03:59:48 2017
@@ -61,7 +61,7 @@ public class HashPage extends BaseInited
 	private static final String HASH = "secure";
 	private final WebMarkupContainer recContainer = new WebMarkupContainer("panel-recording");
 	private final VideoInfo vi = new VideoInfo("info", null);
-	private final VideoPlayer vp = new VideoPlayer("player", null);
+	private final VideoPlayer vp = new VideoPlayer("player");
 	private String errorKey = "invalid.hash";
 	private boolean error = true;
 	private MainPanel mp = null;

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java?rev=1786840&r1=1786839&r2=1786840&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java Tue Mar 14 03:59:48 2017
@@ -29,14 +29,15 @@ import static org.apache.openmeetings.we
 import java.io.File;
 
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.util.FileItemResourceReference;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource.Attributes;
 import org.apache.wicket.util.string.StringValue;
-import org.apache.wicket.util.string.Strings;
 
 public class RoomResourceReference extends FileItemResourceReference<FileExplorerItem> {
 	private static final long serialVersionUID = 1L;
@@ -87,11 +88,15 @@ public class RoomResourceReference exten
 			//no-op expected
 		}
 		WebSession ws = WebSession.get();
-		if (id != null && ws.isSignedIn() && !Strings.isEmpty(uid) && getOnlineClient(uid) != null) {
-			//FIXME TODO ADDITIONALLY CHECK Rights !! and room !!
-			return getBean(FileExplorerItemDao.class).get(id);
+		Client c = getOnlineClient(uid);
+		if (id == null || !ws.isSignedIn() || c == null) {
+			return null;
 		}
-		return null;
+		FileExplorerItem f = getBean(FileExplorerItemDao.class).get(id);
+		// impossible to check file permission based on client, file can be dropped on WB
+		// and should be accessible to whole room
+		//FIXME TODO ADDITIONALLY CHECK Rights !! and room !!
+		return f;
 	}
 
 	protected File getFile(FileExplorerItem f, String ext) {
@@ -105,7 +110,7 @@ public class RoomResourceReference exten
 
 	@Override
 	protected File getFile(FileExplorerItem f) {
-		return getFile(f, null);
+		return getFile(f, Type.Video == f.getType() && preview ? EXTENSION_JPG : null);
 	}
 
 	@Override