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/01/15 19:25:22 UTC

svn commit: r1652209 - in /openmeetings: branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/ branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/ branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ branches/3.0.x/...

Author: solomax
Date: Thu Jan 15 18:25:22 2015
New Revision: 1652209

URL: http://svn.apache.org/r1652209
Log:
[OPENMEETINGS-1143] recording ordering is changed; default recording names are changed for better sorting

Modified:
    openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
    openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
    openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceService.java
    openmeetings/branches/3.0.x/src/main/webapp/css/theme.css
    openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/CalendarPatterns.java
    openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
    openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
    openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
    openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
    openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
    openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarPatterns.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css

Modified: openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java (original)
+++ openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java Thu Jan 15 18:25:22 2015
@@ -226,24 +226,8 @@ public class FlvRecordingDao {
 		return null;
 	}
 
-	public List<FlvRecording> getFlvRecordingByParent(Long parentFileExplorerItemId) {
-		try {
-
-			String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted "
-					+ "AND c.parentFileExplorerItemId = :parentFileExplorerItemId "
-					+ "ORDER BY c.folder DESC, c.fileName ";
-
-			TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
-			query.setParameter("deleted", true);
-			query.setParameter("parentFileExplorerItemId", parentFileExplorerItemId);
-
-			List<FlvRecording> flvRecordingList = query.getResultList();
-
-			return flvRecordingList;
-		} catch (Exception ex2) {
-			log.error("[getFlvRecordingByParent]: ", ex2);
-		}
-		return null;
+	public List<FlvRecording> getFlvRecordingByParent(Long parentId) {
+		return em.createNamedQuery("getRecordingsByParent", FlvRecording.class).setParameter("parentId", parentId).getResultList();
 	}
 
 	public void updateFlvRecordingEndTime(Long flvRecordingId, Date recordEnd, Long organization_id) {

Modified: openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java (original)
+++ openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java Thu Jan 15 18:25:22 2015
@@ -63,28 +63,29 @@ import org.simpleframework.xml.Root;
 @NamedQueries({ 
 	@NamedQuery(name = "getRecordingById", query = "SELECT f FROM FlvRecording f WHERE f.flvRecordingId = :id") 
 	, @NamedQuery(name = "getRecordingByHash", query = "SELECT f FROM FlvRecording f WHERE f.fileHash = :fileHash") 
-	, @NamedQuery(name = "getRecordingsByExternalUser", query = "SELECT c "
-			+ "FROM FlvRecording c, User u "
+	, @NamedQuery(name = "getRecordingsByExternalUser", query = "SELECT c FROM FlvRecording c, User u "
 			+ "WHERE c.insertedBy = u.user_id AND u.externalUserId = :externalUserId  AND u.externalUserType = :externalUserType "
 			+ "AND c.deleted = false") 
 	, @NamedQuery(name = "getRecordingsPublic", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL "
 			+ "AND f.organization_id IS NULL AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) "
-			+ "ORDER BY f.folder DESC, f.fileName")
+			+ "ORDER BY f.folder DESC, f.inserted")
 	, @NamedQuery(name = "getRecordingsByOrganization", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL "
 			+ "AND f.organization_id = :organization_id AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) "
-			+ "ORDER BY f.folder DESC, f.fileName")
+			+ "ORDER BY f.folder DESC, f.inserted")
 	, @NamedQuery(name = "getRecordingsByOwner", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId = :ownerId "
 			+ "AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) "
-			+ "ORDER BY f.folder DESC, f.fileName ")
+			+ "ORDER BY f.folder DESC, f.inserted")
+	, @NamedQuery(name = "getRecordingsByParent", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.parentFileExplorerItemId = :parentId "
+			+ "ORDER BY f.folder DESC, f.inserted")
 	, @NamedQuery(name = "resetRecordingProcessingStatus", query = "UPDATE FlvRecording f SET f.status = :error WHERE f.status = :processing")
 	, @NamedQuery(name = "getRecordingsByExternalType", query = "SELECT rec FROM FlvRecording rec, Room r, User u "
 			+ "WHERE rec.deleted = false AND rec.room_id = r.rooms_id AND rec.insertedBy = u.user_id "
-					+ "AND (r.externalRoomType = :externalType OR u.externalUserType = :externalType)")
+			+ "AND (r.externalRoomType = :externalType OR u.externalUserType = :externalType)")
 })
 @Table(name = "flvrecording")
 @Root(name = "flvrecording")
 public class FlvRecording implements Serializable {
-	private static final long serialVersionUID = -2234874663310617072L;
+	private static final long serialVersionUID = 1L;
 	
 	public enum Status {
 		NONE

Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceService.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceService.java Thu Jan 15 18:25:22 2015
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.remote;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -26,7 +27,6 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.TimeZone;
 
 import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
 import org.apache.openmeetings.data.conference.RoomManager;
@@ -51,11 +51,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.util.AuthLevelUtil;
-import org.apache.openmeetings.util.CalendarPatterns;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.red5.logging.Red5LoggerFactory;
-import org.red5.server.api.IConnection;
-import org.red5.server.api.Red5;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
@@ -65,9 +61,7 @@ import org.springframework.beans.factory
  * 
  */
 public class ConferenceService {
-
-	private static final Logger log = Red5LoggerFactory.getLogger(
-			ConferenceService.class, OpenmeetingsVariables.webAppRootKey);
+	private static final Logger log = Red5LoggerFactory.getLogger(ConferenceService.class, webAppRootKey);
 
 	@Autowired
 	private AppointmentLogic appointmentLogic;
@@ -272,54 +266,6 @@ public class ConferenceService {
 
 	// --------------------------------------------------------------------------------------------
 
-	public Map<String, Object> getAppointMentAndTimeZones(Long room_id) {
-		try {
-			log.debug("getAppointMentDataForRoom");
-			
-			IConnection current = Red5.getConnectionLocal();
-			String streamid = current.getClient().getId();
-	
-			log.debug("getCurrentRoomClient -2- " + streamid);
-	
-			Client currentClient = this.sessionManager
-					.getClientByStreamId(streamid, null);
-	
-			Room room = roomDao.get(room_id);
-	
-			if (room.getAppointment() == false) {
-				throw new IllegalStateException("Room has no appointment");
-			}
-		
-			Appointment appointment = appointmentLogic
-					.getAppointmentByRoom(room_id);
-
-			Map<String, Object> returnMap = new HashMap<String, Object>();
-
-			returnMap.put("appointment", appointment);
-
-			User us = userDao.get(currentClient.getUser_id());
-			TimeZone timezone = timezoneUtil.getTimeZone(us);
-
-			returnMap.put("appointment", appointment);
-
-			returnMap.put(
-					"start",
-					CalendarPatterns.getDateWithTimeByMiliSeconds(
-							appointment.getStart(), timezone));
-			returnMap.put(
-					"end",
-					CalendarPatterns.getDateWithTimeByMiliSeconds(
-							appointment.getEnd(), timezone));
-			returnMap.put("timeZone", timezone.getDisplayName());
-
-			return returnMap;
-		} catch (Exception e) {
-			log.error("getAppointMentAndTimeZones " , e );
-			return null;
-		}
-
-	}
-
 	/**
 	 * 
 	 */

Modified: openmeetings/branches/3.0.x/src/main/webapp/css/theme.css
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/css/theme.css?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/css/theme.css (original)
+++ openmeetings/branches/3.0.x/src/main/webapp/css/theme.css Thu Jan 15 18:25:22 2015
@@ -328,7 +328,8 @@ html, body {
 	clear: both;
 }
 .om-icon {
-	background-repeat: no-repeat;
+	background-repeat: no-repeat !important;
+	background-position: 0 0 !important;
 	width: 18px;
 	height: 18px;
 	border: none;
@@ -342,6 +343,7 @@ html, body {
 .trees a.om-icon span {
 	white-space: nowrap;
 	padding-right: 20px;
+	vertical-align: top;
 }
 .cross.om-icon {
 	background-image: url(images/cross.png);
@@ -356,47 +358,49 @@ html, body {
 	background-image: url(images/email_add.png);
 }
 .user.om-icon {
-	background: url(images/user.png) no-repeat;
+	background: url(images/user.png);
 }
 .refresh.om-icon {
-	background: url(images/refresh.gif) no-repeat;
+	background: url(images/refresh.gif);
 }
 .trash.om-icon {
-	background: url(images/trash.png) no-repeat;
+	background: url(images/trash.png);
 }
 .folder-create.om-icon {
-	background: url(images/folder_add.png) no-repeat;
+	background: url(images/folder_add.png);
 }
 .recording.om-icon {
 	padding-left: 18px;
 	background-image: url(images/film.png);
-	background-repeat: no-repeat;
 }
 .broken-recording.om-icon {
 	padding-left: 18px;
 	background-image: url(images/film_error.png);
-	background-repeat: no-repeat;
 }
 .processing-recording.om-icon {
 	padding-left: 18px;
 	background-image: url(images/film_processing.png);
-	background-repeat: no-repeat;
 }
 .my-recordings.om-icon {
 	padding-left: 18px;
 	background-image: url(images/house_link.png);
-	background-repeat: no-repeat;
 }
 .public-recordings.om-icon {
 	padding-left: 18px;
 	background-image: url(images/world_link.png);
-	background-repeat: no-repeat;
+}
+.tree-theme-windows span.tree-content {
+	display: flex !important;
 }
 .recording.item {
 	position: relative;
+	vertical-align: top;
 }
 .recording.item .name {
 	color: black;
+	display: block;
+	overflow: hidden;
+	width: 230px;
 }
 .recording.item .errors {
 	position: absolute;
@@ -417,10 +421,10 @@ html, body {
 }
 .recording.dialog.errors .message {
 	display: block;
-    unicode-bidi: embed;
-    font-family: monospace;
-    white-space: pre;
-    margin: 0;
+	unicode-bidi: embed;
+	font-family: monospace;
+	white-space: pre;
+	margin: 0;
 }
 .online.om-icon {
 	background-image: url(images/bullet_green.png);
@@ -432,11 +436,11 @@ html, body {
 	color: red;
 }
 .message {
-    margin: 50px;
-    border: 1px solid black;
-    padding: 15px;
-    -webkit-border-radius: 8px;
-    border-radius: 8px;
+	margin: 50px;
+	border: 1px solid black;
+	padding: 15px;
+	-webkit-border-radius: 8px;
+	border-radius: 8px;
 }
 .ui-progressbar div { 
 	text-align: center;

Modified: openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/CalendarPatterns.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/CalendarPatterns.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/CalendarPatterns.java (original)
+++ openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/CalendarPatterns.java Thu Jan 15 18:25:22 2015
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.util;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.TimeZone;
@@ -26,200 +28,186 @@ import org.red5.logging.Red5LoggerFactor
 import org.slf4j.Logger;
 
 /**
- * @author Sebastian Wagner
- * 27.08.2005 - 19:24:25
+ * @author Sebastian Wagner 27.08.2005 - 19:24:25
  *
  */
 public class CalendarPatterns {
-	
-	private static final Logger log = Red5LoggerFactory.getLogger(CalendarPatterns.class, "openmeetings");
-	
-	public static SimpleDateFormat dateFormat__ddMMyyyyHHmmss = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
-	public static SimpleDateFormat dateFormat__ddMMyyyy = new SimpleDateFormat("dd.MM.yyyy");
-	public static SimpleDateFormat dateFormat__ddMMyyyyBySeparator = new SimpleDateFormat("dd-MM-yyyy");
-    
-    public static String getDateByMiliSeconds(Date t){
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getDateWithTimeByMiliSeconds(Date t){
-    	if (t == null) {
-    		return null;
-    	}
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getDateWithTimeByMiliSeconds(Date t, TimeZone timezone){
-    	if (t == null) {
-    		return null;
-    	}
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
-        sdf.setTimeZone(timezone);
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getDateWithTimeByMiliSecondsWithZone(Date t){
-    	if (t == null) {
-    		return null;
-    	}
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getExportDate(Date t){
-    	if (t == null) {
-    		return "";
-    	}
-        return ""+t.getTime();
-    }
-    
-    public static Date parseImportDate(String dateString) {
-    	try {
-    		
-    		Date resultDate = null;
-    		
-    		resultDate = validDate(dateFormat__ddMMyyyyHHmmss, dateString);
-    		
-    		if ( resultDate != null ) {
-    			return resultDate;
-    		}
-    		
-    		resultDate = validDate(dateFormat__ddMMyyyy, dateString);
-    		
-    		if ( resultDate != null ) {
-    			return resultDate;
-    		}
-    		
-    		resultDate = validDate(dateString);
-    		
-    		if (dateString != null) {
-    			return resultDate;
-    		}
-    		
-    		
-    		throw new Exception ("Could not parse date string "+dateString);
-    	} catch (Exception e) {
-    		log.error("parseDate",e);
-    	}
-    	return null;
-    }
-    
-    private static Date validDate(String testdate) {
-    	try {
-    		
-    		Long t = Long.valueOf(testdate);
-    		
-    		if (t != null) {
-    			return new Date(t);
-    		}
-    		
-    	} catch (Exception err) {
-    	}
-    	return null;
-    }
-    
-    private static Date validDate(SimpleDateFormat sdf, String testdate)
-    {
-        Date resultDate = null;
-        try
-        {
-        	resultDate = sdf.parse(testdate);
-        }
-
-        // if the format of the string provided doesn't match the format we 
-        // declared in SimpleDateFormat() we will get an exception
-
-        catch (java.text.ParseException e)
-        {
-          return null;
-        }
-
-        if (!sdf.format(resultDate).equals(testdate)) 
-        {
-          return null;
-        }
-        
-        return resultDate;
-
-    }
-    
-    public static String getDateWithTimeByMiliSecondsAndTimeZone(Date t, TimeZone timezone){
-    	if (t == null) {
-    		return null;
-    	}
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
-        sdf.setTimeZone(timezone);
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getTimeForStreamId(Date t){
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }    
-    
-    public static Date parseDate(String dateString) {
-    	try {
-    		return dateFormat__ddMMyyyy.parse(dateString);
-    	} catch (Exception e) {
-    		log.error("parseDate",e);
-    	}
-    	return null;
-    }
-    
-    public static Date parseDateBySeparator(String dateString) {
-    	try {
-    		return dateFormat__ddMMyyyyBySeparator.parse(dateString);
-    	} catch (Exception e) {
-    		log.error("parseDate",e);
-    	}
-    	return null;
-    }
-    
-    public static Date parseDateWithHour(String dateString) {
-    	try {
-    		if (dateString == null || dateString.length()==0 || dateString.equals("null") ) {
-        		return null;
-        	}
-    		return dateFormat__ddMMyyyyHHmmss.parse(dateString);
-    	} catch (Exception e) {
-    		log.error("parseDate",e);
-    	}
-    	return null;
-    }
-
-	public static String getYear(Date t){
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    } 
-    
+	private static final Logger log = Red5LoggerFactory.getLogger(CalendarPatterns.class, webAppRootKey);
+
+	public static ThreadLocal<SimpleDateFormat> dateFormat__ddMMyyyyHHmmss = new ThreadLocal<SimpleDateFormat>() {
+		protected SimpleDateFormat initialValue() {
+			return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+		};
+	};
+	public static ThreadLocal<SimpleDateFormat> dateFormat__ddMMyyyy = new ThreadLocal<SimpleDateFormat>() {
+		protected SimpleDateFormat initialValue() {
+			return new SimpleDateFormat("dd.MM.yyyy");
+		};
+	};
+	public static ThreadLocal<SimpleDateFormat> dateFormat__ddMMyyyyBySeparator = new ThreadLocal<SimpleDateFormat>() {
+		protected SimpleDateFormat initialValue() {
+			return new SimpleDateFormat("dd-MM-yyyy");
+		};
+	};
+	public static ThreadLocal<SimpleDateFormat> dateFormat__yyyyMMddHHmmss = new ThreadLocal<SimpleDateFormat>() {
+		protected SimpleDateFormat initialValue() {
+			return new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
+		};
+	};
+
+	public static String getDateByMiliSeconds(Date t) {
+		return dateFormat__yyyyMMddHHmmss.get().format(t);
+	}
+
+	public static String getDateWithTimeByMiliSeconds(Date t) {
+		return t == null ? null : dateFormat__yyyyMMddHHmmss.get().format(t);
+	}
+
+	public static String getDateWithTimeByMiliSecondsWithZone(Date t) {
+		if (t == null) {
+			return null;
+		}
+		SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
+		Date dateOld = new Date();
+		long timeAdv = t.getTime();
+		dateOld.setTime(timeAdv);
+		String result = sdf.format(dateOld);
+		return result;
+	}
+
+	public static String getExportDate(Date t) {
+		if (t == null) {
+			return "";
+		}
+		return "" + t.getTime();
+	}
+
+	public static Date parseImportDate(String dateString) {
+		try {
+
+			Date resultDate = null;
+
+			resultDate = validDate(dateFormat__ddMMyyyyHHmmss.get(), dateString);
+
+			if (resultDate != null) {
+				return resultDate;
+			}
+
+			resultDate = validDate(dateFormat__ddMMyyyy.get(), dateString);
+
+			if (resultDate != null) {
+				return resultDate;
+			}
+
+			resultDate = validDate(dateString);
+
+			if (dateString != null) {
+				return resultDate;
+			}
+
+			throw new Exception("Could not parse date string " + dateString);
+		} catch (Exception e) {
+			log.error("parseDate", e);
+		}
+		return null;
+	}
+
+	private static Date validDate(String testdate) {
+		try {
+
+			Long t = Long.valueOf(testdate);
+
+			if (t != null) {
+				return new Date(t);
+			}
+
+		} catch (Exception err) {
+		}
+		return null;
+	}
+
+	private static Date validDate(SimpleDateFormat sdf, String testdate) {
+		Date resultDate = null;
+		try {
+			resultDate = sdf.parse(testdate);
+		}
+
+		// if the format of the string provided doesn't match the format we
+		// declared in SimpleDateFormat() we will get an exception
+
+		catch (java.text.ParseException e) {
+			return null;
+		}
+
+		if (!sdf.format(resultDate).equals(testdate)) {
+			return null;
+		}
+
+		return resultDate;
+
+	}
+
+	public static String getDateWithTimeByMiliSecondsAndTimeZone(Date t,
+			TimeZone timezone) {
+		if (t == null) {
+			return null;
+		}
+		SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
+		sdf.setTimeZone(timezone);
+		Date dateOld = new Date();
+		long timeAdv = t.getTime();
+		dateOld.setTime(timeAdv);
+		String result = sdf.format(dateOld);
+		return result;
+	}
+
+	public static String getTimeForStreamId(Date t) {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
+		Date dateOld = new Date();
+		long timeAdv = t.getTime();
+		dateOld.setTime(timeAdv);
+		String result = sdf.format(dateOld);
+		return result;
+	}
+
+	public static Date parseDate(String dateString) {
+		try {
+			return dateFormat__ddMMyyyy.get().parse(dateString);
+		} catch (Exception e) {
+			log.error("parseDate", e);
+		}
+		return null;
+	}
+
+	public static Date parseDateBySeparator(String dateString) {
+		try {
+			return dateFormat__ddMMyyyyBySeparator.get().parse(dateString);
+		} catch (Exception e) {
+			log.error("parseDate", e);
+		}
+		return null;
+	}
+
+	public static Date parseDateWithHour(String dateString) {
+		try {
+			if (dateString == null || dateString.length() == 0
+					|| dateString.equals("null")) {
+				return null;
+			}
+			return dateFormat__ddMMyyyyHHmmss.get().parse(dateString);
+		} catch (Exception e) {
+			log.error("parseDate", e);
+		}
+		return null;
+	}
+
+	public static String getYear(Date t) {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+		Date dateOld = new Date();
+		long timeAdv = t.getTime();
+		dateOld.setTime(timeAdv);
+		String result = sdf.format(dateOld);
+		return result;
+	}
+
 }

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java Thu Jan 15 18:25:22 2015
@@ -93,7 +93,7 @@ public class RecordingPanel extends Pane
 			d.add(AttributeAppender.append("class", "recorditem"));
 			drag = d;
 		}
-		drag.add(r.getFlvRecordingId() < 1 || !r.isFolder() ? new Label("name", r.getFileName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
+		drag.add(r.getFlvRecordingId() < 1 ? new Label("name", r.getFileName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
 			private static final long serialVersionUID = 1L;
 			
 			@Override

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java Thu Jan 15 18:25:22 2015
@@ -253,11 +253,7 @@ public class RecordingsPanel extends Use
 				
 				@Override
 				protected String getOtherStyleClass(FlvRecording r) {
-					String style = getRecordingStyle(r, super.getOtherStyleClass(r));
-					if (isSelected()) {
-						style += " ui-state-active";
-					}
-					return style;
+					return getRecordingStyle(r, super.getOtherStyleClass(r));
 				}
 				
 				@Override
@@ -271,6 +267,11 @@ public class RecordingsPanel extends Use
 				}
 				
 				@Override
+				protected String getSelectedStyleClass() {
+					return "ui-state-active";
+				}
+				
+				@Override
 				protected IModel<String> newLabelModel(IModel<FlvRecording> model) {
 					return Model.of(model.getObject().getFileName());
 				}

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java Thu Jan 15 18:25:22 2015
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.core.remote;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -26,7 +27,6 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.TimeZone;
 
 import org.apache.openmeetings.core.data.calendar.management.AppointmentLogic;
 import org.apache.openmeetings.core.data.conference.RoomManager;
@@ -51,11 +51,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.util.CalendarPatterns;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import org.red5.logging.Red5LoggerFactory;
-import org.red5.server.api.IConnection;
-import org.red5.server.api.Red5;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
@@ -269,54 +265,6 @@ public class ConferenceService {
 
 	// --------------------------------------------------------------------------------------------
 
-	public Map<String, Object> getAppointMentAndTimeZones(Long room_id) {
-		try {
-			log.debug("getAppointMentDataForRoom");
-			
-			IConnection current = Red5.getConnectionLocal();
-			String streamid = current.getClient().getId();
-	
-			log.debug("getCurrentRoomClient -2- " + streamid);
-	
-			Client currentClient = this.sessionManager
-					.getClientByStreamId(streamid, null);
-	
-			Room room = roomDao.get(room_id);
-	
-			if (room.isAppointment() == false) {
-				throw new IllegalStateException("Room has no appointment");
-			}
-		
-			Appointment appointment = appointmentLogic
-					.getAppointmentByRoom(room_id);
-
-			Map<String, Object> returnMap = new HashMap<String, Object>();
-
-			returnMap.put("appointment", appointment);
-
-			User us = userDao.get(currentClient.getUser_id());
-			TimeZone timezone = timezoneUtil.getTimeZone(us);
-
-			returnMap.put("appointment", appointment);
-
-			returnMap.put(
-					"start",
-					CalendarPatterns.getDateWithTimeByMiliSeconds(
-							appointment.getStart(), timezone));
-			returnMap.put(
-					"end",
-					CalendarPatterns.getDateWithTimeByMiliSeconds(
-							appointment.getEnd(), timezone));
-			returnMap.put("timeZone", timezone.getDisplayName());
-
-			return returnMap;
-		} catch (Exception e) {
-			log.error("getAppointMentAndTimeZones " , e );
-			return null;
-		}
-
-	}
-
 	/**
 	 * 
 	 */

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java Thu Jan 15 18:25:22 2015
@@ -194,18 +194,8 @@ public class FlvRecordingDao {
 		return null;
 	}
 
-	public List<FlvRecording> getFlvRecordingByParent(Long parentFileExplorerItemId) {
-		try {
-			TypedQuery<FlvRecording> query = em.createNamedQuery("getRecordingsByParent", FlvRecording.class);
-			query.setParameter("parentItemId", parentFileExplorerItemId);
-
-			List<FlvRecording> flvRecordingList = query.getResultList();
-
-			return flvRecordingList;
-		} catch (Exception ex2) {
-			log.error("[getFlvRecordingByParent]: ", ex2);
-		}
-		return null;
+	public List<FlvRecording> getFlvRecordingByParent(Long parentId) {
+		return em.createNamedQuery("getRecordingsByParent", FlvRecording.class).setParameter("parentId", parentId).getResultList();
 	}
 
 	public void updateFlvRecordingEndTime(Long flvRecordingId, Date recordEnd) {

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecording.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecording.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecording.java Thu Jan 15 18:25:22 2015
@@ -72,13 +72,13 @@ import org.simpleframework.xml.Root;
 			+ "AND c.deleted = false") 
 	, @NamedQuery(name = "getRecordingsPublic", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL "
 			+ "AND f.organization_id IS NULL AND (f.parentItemId IS NULL OR f.parentItemId = 0) "
-			+ "ORDER BY f.type DESC, f.fileName")
+			+ "ORDER BY f.type DESC, f.inserted")
 	, @NamedQuery(name = "getRecordingsByOrganization", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL "
 			+ "AND f.organization_id = :organization_id AND (f.parentItemId IS NULL OR f.parentItemId = 0) "
-			+ "ORDER BY f.type DESC, f.fileName")
+			+ "ORDER BY f.type DESC, f.inserted")
 	, @NamedQuery(name = "getRecordingsByOwner", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId = :ownerId "
 			+ "AND (f.parentItemId IS NULL OR f.parentItemId = 0) "
-			+ "ORDER BY f.type DESC, f.fileName ")
+			+ "ORDER BY f.type DESC, f.inserted")
 	, @NamedQuery(name = "resetRecordingProcessingStatus", query = "UPDATE FlvRecording f SET f.status = :error WHERE f.status = :processing")
 	, @NamedQuery(name = "getRecordingsAll", query = "SELECT c FROM FlvRecording c LEFT JOIN FETCH c.flvRecordingMetaData ORDER BY c.id")
 	, @NamedQuery(name = "getRecordingsByExternalRoomTypeAndOwner", query = "SELECT c FROM FlvRecording c, Room r WHERE c.roomId = r.id "
@@ -86,12 +86,12 @@ import org.simpleframework.xml.Root;
 	, @NamedQuery(name = "getRecordingsByExternalRoomType", query = "SELECT c FROM FlvRecording c, Room r WHERE c.roomId = r.id "
 			+ "AND r.externalRoomType LIKE :externalRoomType AND c.deleted = false")
 	, @NamedQuery(name = "getRecordingsByRoom", query = "SELECT c FROM FlvRecording c WHERE c.deleted = false AND c.roomId = :roomId "
-			+ "ORDER BY c.type ASC, c.fileName")
-	, @NamedQuery(name = "getRecordingsByParent", query = "SELECT c FROM FlvRecording c WHERE c.deleted = false AND c.parentItemId = :parentItemId "
-			+ "ORDER BY c.type ASC, c.fileName") 
+			+ "ORDER BY c.type ASC, c.inserted")
+	, @NamedQuery(name = "getRecordingsByParent", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.parentItemId = :parentId "
+			+ "ORDER BY f.type ASC, f.inserted") 
 	, @NamedQuery(name = "getRecordingsByExternalType", query = "SELECT rec FROM FlvRecording rec, Room r, User u "
 			+ "WHERE rec.deleted = false AND rec.room_id = r.rooms_id AND rec.insertedBy = u.user_id "
-					+ "AND (r.externalRoomType = :externalType OR u.externalUserType = :externalType)")
+			+ "AND (r.externalRoomType = :externalType OR u.externalUserType = :externalType)")
 })
 @Table(name = "flvrecording")
 @Root(name = "flvrecording")

Modified: openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarPatterns.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarPatterns.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarPatterns.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarPatterns.java Thu Jan 15 18:25:22 2015
@@ -28,13 +28,12 @@ import org.red5.logging.Red5LoggerFactor
 import org.slf4j.Logger;
 
 /**
- * @author Sebastian Wagner
- * 27.08.2005 - 19:24:25
+ * @author Sebastian Wagner 27.08.2005 - 19:24:25
  *
  */
 public class CalendarPatterns {
 	private static final Logger log = Red5LoggerFactory.getLogger(CalendarPatterns.class, webAppRootKey);
-	
+
 	public static ThreadLocal<SimpleDateFormat> dateFormat__ddMMyyyyHHmmss = new ThreadLocal<SimpleDateFormat>() {
 		protected SimpleDateFormat initialValue() {
 			return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
@@ -50,189 +49,165 @@ public class CalendarPatterns {
 			return new SimpleDateFormat("dd-MM-yyyy");
 		};
 	};
-    
-    public static String getDateByMiliSeconds(Date t){
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getDateWithTimeByMiliSeconds(Date t){
-    	if (t == null) {
-    		return null;
-    	}
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getDateWithTimeByMiliSeconds(Date t, TimeZone timezone){
-    	if (t == null) {
-    		return null;
-    	}
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
-        sdf.setTimeZone(timezone);
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getDateWithTimeByMiliSecondsWithZone(Date t){
-    	if (t == null) {
-    		return null;
-    	}
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getExportDate(Date t){
-    	if (t == null) {
-    		return "";
-    	}
-        return ""+t.getTime();
-    }
-    
-    public static Date parseImportDate(String dateString) {
-    	try {
-    		
-    		Date resultDate = null;
-    		
-    		resultDate = validDate(dateFormat__ddMMyyyyHHmmss.get(), dateString);
-    		
-    		if ( resultDate != null ) {
-    			return resultDate;
-    		}
-    		
-    		resultDate = validDate(dateFormat__ddMMyyyy.get(), dateString);
-    		
-    		if ( resultDate != null ) {
-    			return resultDate;
-    		}
-    		
-    		resultDate = validDate(dateString);
-    		
-    		if (dateString != null) {
-    			return resultDate;
-    		}
-    		
-    		
-    		throw new Exception ("Could not parse date string "+dateString);
-    	} catch (Exception e) {
-    		log.error("parseDate",e);
-    	}
-    	return null;
-    }
-    
-    private static Date validDate(String testdate) {
-    	try {
-    		
-    		Long t = Long.valueOf(testdate);
-    		
-    		if (t != null) {
-    			return new Date(t);
-    		}
-    		
-    	} catch (Exception err) {
-    	}
-    	return null;
-    }
-    
-    private static Date validDate(SimpleDateFormat sdf, String testdate)
-    {
-        Date resultDate = null;
-        try
-        {
-        	resultDate = sdf.parse(testdate);
-        }
-
-        // if the format of the string provided doesn't match the format we 
-        // declared in SimpleDateFormat() we will get an exception
-
-        catch (java.text.ParseException e)
-        {
-          return null;
-        }
-
-        if (!sdf.format(resultDate).equals(testdate)) 
-        {
-          return null;
-        }
-        
-        return resultDate;
-
-    }
-    
-    public static String getDateWithTimeByMiliSecondsAndTimeZone(Date t, TimeZone timezone){
-    	if (t == null) {
-    		return null;
-    	}
-        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
-        sdf.setTimeZone(timezone);
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }
-    
-    public static String getTimeForStreamId(Date t){
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    }    
-    
-    public static Date parseDate(String dateString) {
-    	try {
-    		return dateFormat__ddMMyyyy.get().parse(dateString);
-    	} catch (Exception e) {
-    		log.error("parseDate",e);
-    	}
-    	return null;
-    }
-    
-    public static Date parseDateBySeparator(String dateString) {
-    	try {
-    		return dateFormat__ddMMyyyyBySeparator.get().parse(dateString);
-    	} catch (Exception e) {
-    		log.error("parseDate",e);
-    	}
-    	return null;
-    }
-    
-    public static Date parseDateWithHour(String dateString) {
-    	try {
-    		if (dateString == null || dateString.length()==0 || dateString.equals("null") ) {
-        		return null;
-        	}
-    		return dateFormat__ddMMyyyyHHmmss.get().parse(dateString);
-    	} catch (Exception e) {
-    		log.error("parseDate",e);
-    	}
-    	return null;
-    }
-
-	public static String getYear(Date t){
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
-        Date dateOld = new Date();
-        long timeAdv = t.getTime();
-        dateOld.setTime(timeAdv);
-        String result = sdf.format(dateOld);
-        return result;
-    } 
-    
+	public static ThreadLocal<SimpleDateFormat> dateFormat__yyyyMMddHHmmss = new ThreadLocal<SimpleDateFormat>() {
+		protected SimpleDateFormat initialValue() {
+			return new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
+		};
+	};
+
+	public static String getDateByMiliSeconds(Date t) {
+		return dateFormat__yyyyMMddHHmmss.get().format(t);
+	}
+
+	public static String getDateWithTimeByMiliSeconds(Date t) {
+		return t == null ? null : dateFormat__yyyyMMddHHmmss.get().format(t);
+	}
+
+	public static String getDateWithTimeByMiliSecondsWithZone(Date t) {
+		if (t == null) {
+			return null;
+		}
+		SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
+		Date dateOld = new Date();
+		long timeAdv = t.getTime();
+		dateOld.setTime(timeAdv);
+		String result = sdf.format(dateOld);
+		return result;
+	}
+
+	public static String getExportDate(Date t) {
+		if (t == null) {
+			return "";
+		}
+		return "" + t.getTime();
+	}
+
+	public static Date parseImportDate(String dateString) {
+		try {
+
+			Date resultDate = null;
+
+			resultDate = validDate(dateFormat__ddMMyyyyHHmmss.get(), dateString);
+
+			if (resultDate != null) {
+				return resultDate;
+			}
+
+			resultDate = validDate(dateFormat__ddMMyyyy.get(), dateString);
+
+			if (resultDate != null) {
+				return resultDate;
+			}
+
+			resultDate = validDate(dateString);
+
+			if (dateString != null) {
+				return resultDate;
+			}
+
+			throw new Exception("Could not parse date string " + dateString);
+		} catch (Exception e) {
+			log.error("parseDate", e);
+		}
+		return null;
+	}
+
+	private static Date validDate(String testdate) {
+		try {
+
+			Long t = Long.valueOf(testdate);
+
+			if (t != null) {
+				return new Date(t);
+			}
+
+		} catch (Exception err) {
+		}
+		return null;
+	}
+
+	private static Date validDate(SimpleDateFormat sdf, String testdate) {
+		Date resultDate = null;
+		try {
+			resultDate = sdf.parse(testdate);
+		}
+
+		// if the format of the string provided doesn't match the format we
+		// declared in SimpleDateFormat() we will get an exception
+
+		catch (java.text.ParseException e) {
+			return null;
+		}
+
+		if (!sdf.format(resultDate).equals(testdate)) {
+			return null;
+		}
+
+		return resultDate;
+
+	}
+
+	public static String getDateWithTimeByMiliSecondsAndTimeZone(Date t,
+			TimeZone timezone) {
+		if (t == null) {
+			return null;
+		}
+		SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
+		sdf.setTimeZone(timezone);
+		Date dateOld = new Date();
+		long timeAdv = t.getTime();
+		dateOld.setTime(timeAdv);
+		String result = sdf.format(dateOld);
+		return result;
+	}
+
+	public static String getTimeForStreamId(Date t) {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
+		Date dateOld = new Date();
+		long timeAdv = t.getTime();
+		dateOld.setTime(timeAdv);
+		String result = sdf.format(dateOld);
+		return result;
+	}
+
+	public static Date parseDate(String dateString) {
+		try {
+			return dateFormat__ddMMyyyy.get().parse(dateString);
+		} catch (Exception e) {
+			log.error("parseDate", e);
+		}
+		return null;
+	}
+
+	public static Date parseDateBySeparator(String dateString) {
+		try {
+			return dateFormat__ddMMyyyyBySeparator.get().parse(dateString);
+		} catch (Exception e) {
+			log.error("parseDate", e);
+		}
+		return null;
+	}
+
+	public static Date parseDateWithHour(String dateString) {
+		try {
+			if (dateString == null || dateString.length() == 0
+					|| dateString.equals("null")) {
+				return null;
+			}
+			return dateFormat__ddMMyyyyHHmmss.get().parse(dateString);
+		} catch (Exception e) {
+			log.error("parseDate", e);
+		}
+		return null;
+	}
+
+	public static String getYear(Date t) {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+		Date dateOld = new Date();
+		long timeAdv = t.getTime();
+		dateOld.setTime(timeAdv);
+		String result = sdf.format(dateOld);
+		return result;
+	}
+
 }

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java Thu Jan 15 18:25:22 2015
@@ -130,11 +130,7 @@ public class FileItemTree<T extends File
 			
 			@Override
 			protected String getOtherStyleClass(T r) {
-				String style = getItemStyle(r, super.getOtherStyleClass(r));
-				if (isSelected()) {
-					style += " ui-state-active";
-				}
-				return style;
+				return getItemStyle(r, super.getOtherStyleClass(r));
 			}
 			
 			@Override
@@ -148,6 +144,11 @@ public class FileItemTree<T extends File
 			}
 			
 			@Override
+			protected String getSelectedStyleClass() {
+				return "ui-state-active";
+			}
+			
+			@Override
 			protected IModel<String> newLabelModel(IModel<T> model) {
 				return Model.of(model.getObject().getFileName());
 			}

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java Thu Jan 15 18:25:22 2015
@@ -102,7 +102,7 @@ public class FolderPanel extends Panel {
 			d.add(AttributeAppender.append("class", r instanceof FlvRecording ? "recorditem" : "fileitem"));
 			drag = d;
 		}
-		drag.add(r.getId() < 1 || r.getType() != Type.Folder ? new Label("name", r.getFileName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
+		drag.add(r.getId() < 1 ? new Label("name", r.getFileName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
 			private static final long serialVersionUID = 1L;
 			
 			@Override

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css?rev=1652209&r1=1652208&r2=1652209&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css Thu Jan 15 18:25:22 2015
@@ -290,7 +290,8 @@ html, body {
 	clear: both;
 }
 .om-icon {
-	background-repeat: no-repeat;
+	background-repeat: no-repeat !important;
+	background-position: 0 0 !important;
 	width: 18px;
 	height: 18px;
 	border: none;
@@ -304,6 +305,7 @@ html, body {
 .trees a.om-icon span {
 	white-space: nowrap;
 	padding-right: 20px;
+	vertical-align: top;
 }
 .cross.om-icon {
 	background-image: url(images/cross.png);
@@ -318,35 +320,31 @@ html, body {
 	background-image: url(images/email_add.png);
 }
 .user.om-icon {
-	background: url(images/user.png) no-repeat;
+	background: url(images/user.png);
 }
 .refresh.om-icon {
-	background: url(images/refresh.gif) no-repeat;
+	background: url(images/refresh.gif);
 }
 .trash.om-icon {
-	background: url(images/trash.png) no-repeat;
+	background: url(images/trash.png);
 }
 .folder-create.om-icon {
-	background: url(images/folder_add.png) no-repeat;
+	background: url(images/folder_add.png);
 }
 .recording.om-icon {
 	padding-left: 18px;
 	background-image: url(images/film.png);
-	background-repeat: no-repeat;
 }
 .broken-recording.om-icon {
 	padding-left: 18px;
 	background-image: url(images/film_error.png);
-	background-repeat: no-repeat;
 }
 .processing-recording.om-icon {
 	padding-left: 18px;
 	background-image: url(images/film_processing.png);
-	background-repeat: no-repeat;
 }
 .file.om-icon {
 	padding-left: 18px;
-	background-repeat: no-repeat;
 }
 .my.file.om-icon {
 	background-image: url(images/house_link.png);
@@ -369,13 +367,19 @@ html, body {
 .selected .file.item {
 	background-color: #0099FF;
 }
+.tree-theme-windows span.tree-content {
+	display: flex !important;
+}
 .file.item {
 	position: relative;
 	display: inline-block;
-	min-width: 150px;
+	vertical-align: top;
 }
 .file.item .name {
 	color: black;
+	display: block;
+	overflow: hidden;
+	width: 230px;
 }
 .file.item .errors {
 	background-image: url(images/script_error.png);
@@ -393,10 +397,10 @@ html, body {
 }
 .file.tree .dialog.errors .message {
 	display: block;
-    unicode-bidi: embed;
-    font-family: monospace;
-    white-space: pre;
-    margin: 0;
+	unicode-bidi: embed;
+	font-family: monospace;
+	white-space: pre;
+	margin: 0;
 }
 .online.om-icon {
 	background-image: url(images/bullet_green.png);
@@ -408,11 +412,11 @@ html, body {
 	color: red;
 }
 .message {
-    margin: 50px;
-    border: 1px solid black;
-    padding: 15px;
-    -webkit-border-radius: 8px;
-    border-radius: 8px;
+	margin: 50px;
+	border: 1px solid black;
+	padding: 15px;
+	-webkit-border-radius: 8px;
+	border-radius: 8px;
 }
 .ui-progressbar div { 
 	text-align: center;