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 2016/04/25 08:15:43 UTC

svn commit: r1740763 - in /openmeetings/application: branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/ branches/3.2.x/openmeetings-web/src/main/java/o...

Author: solomax
Date: Mon Apr 25 06:15:42 2016
New Revision: 1740763

URL: http://svn.apache.org/viewvc?rev=1740763&view=rev
Log:
[OPENMEETINGS-1376] more work on icons

Modified:
    openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java

Modified: openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Mon Apr 25 06:15:42 2016
@@ -1421,9 +1421,18 @@ public class ScopeApplicationAdapter ext
 	public synchronized List<Client> getCurrentModeratorList() {
 		try {
 			IConnection current = Red5.getConnectionLocal();
-			Client currentClient = sessionManager.getClientByStreamId(current.getClient().getId(), null);
-			Long roomId = currentClient.getRoomId();
-			return sessionManager.getCurrentModeratorByRoom(roomId);
+			Client client = sessionManager.getClientByStreamId(current.getClient().getId(), null);
+			Long roomId = client.getRoomId();
+			Room r = roomDao.get(roomId);
+			if (r != null) {
+				if (Room.Type.conference == r.getType()) {
+					client.setCanVideo(!r.isAudioOnly());
+					client.setIsBroadcasting(true);
+					sessionManager.updateClientByStreamId(client.getStreamid(), client, false, null);
+					sendToScope(roomId, "clientUpdated", client);
+				}
+				return sessionManager.getCurrentModeratorByRoom(roomId);
+			}
 		} catch (Exception err) {
 			log.error("[getCurrentModerator]", err);
 		}

Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx Mon Apr 25 06:15:42 2016
@@ -680,13 +680,6 @@
 					
 					//if ($debug) Debug.write("throw event to drawarea: ", canvas.moderatorStreamID, canvas.ismoderator);
 					
-					if (this.parent.modus == "conference") {
-						if ($debug) Debug.write("############## start broadcasting ");
-						parent.setBroadCastingFlag.publicSIDOfNewModerator = canvas.publicSID;
-						parent.setBroadCastingFlag.canVideo = !canvas.currentRoomObj.audioOnly;
-						parent.setBroadCastingFlag.isAllowedToBroadCastAV = true;
-						parent.setBroadCastingFlag.doCall();
-					}
 					canvas._drawarea.onopenWhiteBoard.sendEvent();
 					
 					if ($debug) Debug.write("room ", canvas.currentRoomObj);

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Mon Apr 25 06:15:42 2016
@@ -210,8 +210,9 @@ public class Application extends Authent
 		return get().dashboardContext;
 	}
 	
-	public static void addOnlineUser(Client client) {
-		ONLINE_USERS.put(client.getUid(), client);
+	public static void addOnlineUser(Client c) {
+		log.debug("Adding online client: {}, room: {}", c.getUid(), c.getRoomId());
+		ONLINE_USERS.put(c.getUid(), c);
 	}
 	
 	public static void removeOnlineUser(Client c) {
@@ -289,6 +290,7 @@ public class Application extends Authent
 	}
 	
 	public static Client addUserToRoom(Client c) {
+		log.debug("Adding online room client: {}, room: {}", c.getUid(), c.getRoomId());
 		ROOMS.putIfAbsent(c.getRoomId(), new ConcurrentHashSet<Client>());
 		ROOMS.get(c.getRoomId()).add(c);
 		return c;
@@ -301,7 +303,7 @@ public class Application extends Authent
 	}
 	
 	public static Client removeUserFromRoom(Client c) {
-		log.debug("Removing room client: {}, room: {}", c.getUid(), c.getRoomId());
+		log.debug("Removing online room client: {}, room: {}", c.getUid(), c.getRoomId());
 		if (c.getRoomId() != null) {
 			Set<Client> clients = ROOMS.get(c.getRoomId());
 			if (clients != null) {

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java Mon Apr 25 06:15:42 2016
@@ -218,7 +218,7 @@ public class MainPage extends BaseInited
 			protected void onConnect(ConnectedMessage message) {
 				super.onConnect(message);
 				addOnlineUser(client.setPageId(message.getKey()));
-				log.debug(String.format("WebSocketBehavior::onConnect [session: %s, key: %s]", message.getSessionId(), message.getKey()));
+				log.debug("WebSocketBehavior::onConnect [uid: {}, session: {}, key: {}]", client.getUid(), message.getSessionId(), message.getKey());
 			}
 			
 			@Override
@@ -234,12 +234,12 @@ public class MainPage extends BaseInited
 			}
 			
 			private void closeHandler(AbstractClientMessage message) {
-				log.debug(String.format("WebSocketBehavior::onClose [session: %s, key: %s]", message.getSessionId(), message.getKey()));
 				if (MainPage.this.getCurrentPanel() instanceof RoomPanel) {
 					RoomPanel rp = (RoomPanel)MainPage.this.getCurrentPanel();
 					RoomMenuPanel.roomExit(rp);
 				}
 				removeOnlineUser(client);
+				log.debug("WebSocketBehavior::closeHandler [uid: {}, session: {}, key: {}]", client.getUid(), message.getSessionId(), message.getKey());
 			}
 		});
 		add(new AbstractDefaultAjaxBehavior() {

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Mon Apr 25 06:15:42 2016
@@ -118,8 +118,6 @@ public class RoomPanel extends BasePanel
 		//private String recordingUser = null;
 		//private String sharingUser = null;
 		//private String publishingUser = null;
-		
-		//TODO FIXME conference room should send setBroadCastingFlag(String uid, boolean isBroadcasting, boolean canVideo, Integer interviewPodId) on enter !!!!!!!!!!
 	}
 
 	@Override
@@ -428,6 +426,12 @@ public class RoomPanel extends BasePanel
 	public Client getClient() {
 		return getMainPage().getClient();
 	}
+
+	public boolean screenShareAllowed() {
+		Room r = getRoom();
+		return Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing)
+				&& r.isAllowRecording() && getClient().hasRight(Client.Right.share) && getSharingUser() == null;
+	}
 	
 	public RoomSidebar getSidebar() {
 		return sidebar;

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java Mon Apr 25 06:15:42 2016
@@ -256,8 +256,7 @@ public class RoomMenuPanel extends Panel
 		boolean moder = room.getClient().hasRight(Client.Right.moderator);
 		inviteMenuItem.setEnabled(notExternalUser && moder);
 		//TODO add check "sharing started"
-		boolean shareVisible = Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing)
-				&& r.isAllowRecording() && room.getClient().hasRight(Client.Right.share) && room.getSharingUser() == null;
+		boolean shareVisible = room.screenShareAllowed();
 		shareMenuItem.setEnabled(shareVisible);
 		//FIXME TODO apply* should be enabled if moder is in room
 		applyModerMenuItem.setEnabled(!moder);

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java Mon Apr 25 06:15:42 2016
@@ -37,24 +37,10 @@ public class RoomClientPanel extends Pan
 	private static final long serialVersionUID = 1L;
 
 	public RoomClientPanel(String id, ListItem<Client> item, final RoomPanel room) {
-		super(id);
+		super(id, item.getModel());
 		setRenderBodyOnly(true);
 		Client c = item.getModelObject();
 		item.setMarkupId(String.format("user%s", c.getUid()));
-		String status = null, statusTitle = null;
-		if (c.hasRight(Right.moderator)) {
-			status = "status-mod";
-			statusTitle = "679";
-		} else if (c.hasRight(Right.whiteBoard)) {
-			status = "status-wb";
-			statusTitle = "678";
-		} else {
-			status = "status-user";
-			statusTitle = "677";
-		}
-		//FIXME TODO add 'typingActivity'
-		//FIXME TODO add ability to change 'first/last name'
-		add(new WebMarkupContainer("status").add(AttributeAppender.append("class", status), AttributeAppender.replace("title", getString(statusTitle))));
 		User u = getBean(UserDao.class).get(c.getUserId());
 		add(new Label("name", u.getFirstname() + " " + u.getLastname()));
 		add(AttributeAppender.append("data-userid", c.getUserId()));
@@ -71,4 +57,24 @@ public class RoomClientPanel extends Pan
 		}
 		add(actions);
 	}
+	
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		Client c = (Client)getDefaultModelObject();
+		String status = null, statusTitle = null;
+		if (c.hasRight(Right.moderator)) {
+			status = "status-mod";
+			statusTitle = "679";
+		} else if (c.hasRight(Right.whiteBoard)) {
+			status = "status-wb";
+			statusTitle = "678";
+		} else {
+			status = "status-user";
+			statusTitle = "677";
+		}
+		//FIXME TODO add 'typingActivity'
+		//FIXME TODO add ability to change 'first/last name'
+		add(new WebMarkupContainer("status").add(AttributeAppender.append("class", status), AttributeAppender.replace("title", getString(statusTitle))));
+	}
 }

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java Mon Apr 25 06:15:42 2016
@@ -40,7 +40,6 @@ public class RoomRightPanel extends Pane
 
 	public RoomRightPanel(String id, Client client, RoomPanel room) {
 		super(id);
-		setRenderBodyOnly(true);
 		setOutputMarkupId(true);
 		add(rightModer = new ModeratorRightIcon("right-moder", client, room));
 		add(rightWb = new WhiteboardRightIcon("right-wb", client, room));

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java Mon Apr 25 06:15:42 2016
@@ -31,6 +31,11 @@ public class AudioRightIcon extends Room
 	}
 
 	@Override
+	protected boolean isClickable() {
+		return self || room.getClient().hasRight(Right.moderator);
+	}
+	
+	@Override
 	protected boolean hasRight() {
 		return false; //FIXME TODO need some flag
 	}

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java Mon Apr 25 06:15:42 2016
@@ -18,11 +18,10 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon;
 
-import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.Client.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 
 public class RemoteControlRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
@@ -30,8 +29,6 @@ public class RemoteControlRightIcon exte
 	public RemoteControlRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.remoteControl, room);
 		mainCssClass = "remote-control-right ";
-		Room r = room.getRoom();
-		setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing));
 	}
 
 	@Override
@@ -44,4 +41,10 @@ public class RemoteControlRightIcon exte
 		}
 		return getString(title);
 	}
+
+	@Override
+	public void update(IPartialPageRequestHandler handler) {
+		setVisible(room.screenShareAllowed());
+		super.update(handler);
+	}
 }

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java Mon Apr 25 06:15:42 2016
@@ -32,7 +32,7 @@ public abstract class RoomRightIcon exte
 	private static final String CLS_CLICKABLE = "clickable ";
 	private static final String CLS_GRANTED = "granted ";
 	private static final String ICON_CLASS = "ui-icon align-left ";
-	private final RoomPanel room;
+	protected final RoomPanel room;
 	protected final Right right;
 	protected final boolean self;
 	protected final Client client;
@@ -55,6 +55,10 @@ public abstract class RoomRightIcon exte
 	
 	protected abstract String getTitle();
 	
+	protected boolean isClickable() {
+		return !self && room.getClient().hasRight(Right.moderator);
+	}
+	
 	protected boolean hasRight() {
 		return client.hasRight(right);
 	}
@@ -65,7 +69,7 @@ public abstract class RoomRightIcon exte
 		if (hasRight()) {
 			cls.append(CLS_GRANTED);
 		}
-		if (!self && room.getClient().hasRight(Right.moderator)) {
+		if (isClickable()) {
 			//request/remove
 			cls.append(CLS_CLICKABLE);
 			add(AttributeAppender.replace("onclick", String.format("%s('%s', '%s');", FUNC_CHANGE_RIGHT, right.name(), client.getUid())));

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java Mon Apr 25 06:15:42 2016
@@ -18,11 +18,10 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon;
 
-import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.Client.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 
 public class ScreenShareRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
@@ -30,8 +29,6 @@ public class ScreenShareRightIcon extend
 	public ScreenShareRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.share, room);
 		mainCssClass = "screen-share-right ";
-		Room r = room.getRoom();
-		setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing));
 	}
 
 	@Override
@@ -44,4 +41,10 @@ public class ScreenShareRightIcon extend
 		}
 		return getString(title);
 	}
+	
+	@Override
+	public void update(IPartialPageRequestHandler handler) {
+		setVisible(room.screenShareAllowed());
+		super.update(handler);
+	}
 }

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java Mon Apr 25 06:15:42 2016
@@ -32,6 +32,11 @@ public class VideoRightIcon extends Room
 	}
 
 	@Override
+	protected boolean isClickable() {
+		return self || room.getClient().hasRight(Right.moderator);
+	}
+	
+	@Override
 	protected boolean hasRight() {
 		return false; //FIXME TODO need some flag
 	}

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Mon Apr 25 06:15:42 2016
@@ -1421,9 +1421,18 @@ public class ScopeApplicationAdapter ext
 	public synchronized List<Client> getCurrentModeratorList() {
 		try {
 			IConnection current = Red5.getConnectionLocal();
-			Client currentClient = sessionManager.getClientByStreamId(current.getClient().getId(), null);
-			Long roomId = currentClient.getRoomId();
-			return sessionManager.getCurrentModeratorByRoom(roomId);
+			Client client = sessionManager.getClientByStreamId(current.getClient().getId(), null);
+			Long roomId = client.getRoomId();
+			Room r = roomDao.get(roomId);
+			if (r != null) {
+				if (Room.Type.conference == r.getType()) {
+					client.setCanVideo(!r.isAudioOnly());
+					client.setIsBroadcasting(true);
+					sessionManager.updateClientByStreamId(client.getStreamid(), client, false, null);
+					sendToScope(roomId, "clientUpdated", client);
+				}
+				return sessionManager.getCurrentModeratorByRoom(roomId);
+			}
 		} catch (Exception err) {
 			log.error("[getCurrentModerator]", err);
 		}

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=1740763&r1=1740762&r2=1740763&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 Mon Apr 25 06:15:42 2016
@@ -210,8 +210,9 @@ public class Application extends Authent
 		return get().dashboardContext;
 	}
 	
-	public static void addOnlineUser(Client client) {
-		ONLINE_USERS.put(client.getUid(), client);
+	public static void addOnlineUser(Client c) {
+		log.debug("Adding online client: {}, room: {}", c.getUid(), c.getRoomId());
+		ONLINE_USERS.put(c.getUid(), c);
 	}
 	
 	public static void removeOnlineUser(Client c) {
@@ -289,6 +290,7 @@ public class Application extends Authent
 	}
 	
 	public static Client addUserToRoom(Client c) {
+		log.debug("Adding online room client: {}, room: {}", c.getUid(), c.getRoomId());
 		ROOMS.putIfAbsent(c.getRoomId(), new ConcurrentHashSet<Client>());
 		ROOMS.get(c.getRoomId()).add(c);
 		return c;
@@ -301,7 +303,7 @@ public class Application extends Authent
 	}
 	
 	public static Client removeUserFromRoom(Client c) {
-		log.debug("Removing room client: {}, room: {}", c.getUid(), c.getRoomId());
+		log.debug("Removing online room client: {}, room: {}", c.getUid(), c.getRoomId());
 		if (c.getRoomId() != null) {
 			Set<Client> clients = ROOMS.get(c.getRoomId());
 			if (clients != null) {

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java Mon Apr 25 06:15:42 2016
@@ -218,7 +218,7 @@ public class MainPage extends BaseInited
 			protected void onConnect(ConnectedMessage message) {
 				super.onConnect(message);
 				addOnlineUser(client.setPageId(message.getKey()));
-				log.debug(String.format("WebSocketBehavior::onConnect [session: %s, key: %s]", message.getSessionId(), message.getKey()));
+				log.debug("WebSocketBehavior::onConnect [uid: {}, session: {}, key: {}]", client.getUid(), message.getSessionId(), message.getKey());
 			}
 			
 			@Override
@@ -234,12 +234,12 @@ public class MainPage extends BaseInited
 			}
 			
 			private void closeHandler(AbstractClientMessage message) {
-				log.debug(String.format("WebSocketBehavior::onClose [session: %s, key: %s]", message.getSessionId(), message.getKey()));
 				if (MainPage.this.getCurrentPanel() instanceof RoomPanel) {
 					RoomPanel rp = (RoomPanel)MainPage.this.getCurrentPanel();
 					RoomMenuPanel.roomExit(rp);
 				}
 				removeOnlineUser(client);
+				log.debug("WebSocketBehavior::closeHandler [uid: {}, session: {}, key: {}]", client.getUid(), message.getSessionId(), message.getKey());
 			}
 		});
 		add(new AbstractDefaultAjaxBehavior() {

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Mon Apr 25 06:15:42 2016
@@ -135,8 +135,6 @@ public class RoomPanel extends BasePanel
 		//private String recordingUser = null;
 		//private String sharingUser = null;
 		//private String publishingUser = null;
-		
-		//TODO FIXME conference room should send setBroadCastingFlag(String uid, boolean isBroadcasting, boolean canVideo, Integer interviewPodId) on enter !!!!!!!!!!
 	}
 
 	@Override
@@ -459,6 +457,12 @@ public class RoomPanel extends BasePanel
 	public Client getClient() {
 		return getMainPage().getClient();
 	}
+
+	public boolean screenShareAllowed() {
+		Room r = getRoom();
+		return Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing)
+				&& r.isAllowRecording() && getClient().hasRight(Client.Right.share) && getSharingUser() == null;
+	}
 	
 	public RoomSidebar getSidebar() {
 		return sidebar;

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java Mon Apr 25 06:15:42 2016
@@ -256,8 +256,7 @@ public class RoomMenuPanel extends Panel
 		boolean moder = room.getClient().hasRight(Client.Right.moderator);
 		inviteMenuItem.setEnabled(notExternalUser && moder);
 		//TODO add check "sharing started"
-		boolean shareVisible = Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing)
-				&& r.isAllowRecording() && room.getClient().hasRight(Client.Right.share) && room.getSharingUser() == null;
+		boolean shareVisible = room.screenShareAllowed();
 		shareMenuItem.setEnabled(shareVisible);
 		//FIXME TODO apply* should be enabled if moder is in room
 		applyModerMenuItem.setEnabled(!moder);

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java Mon Apr 25 06:15:42 2016
@@ -37,24 +37,10 @@ public class RoomClientPanel extends Pan
 	private static final long serialVersionUID = 1L;
 
 	public RoomClientPanel(String id, ListItem<Client> item, final RoomPanel room) {
-		super(id);
+		super(id, item.getModel());
 		setRenderBodyOnly(true);
 		Client c = item.getModelObject();
 		item.setMarkupId(String.format("user%s", c.getUid()));
-		String status = null, statusTitle = null;
-		if (c.hasRight(Right.moderator)) {
-			status = "status-mod";
-			statusTitle = "679";
-		} else if (c.hasRight(Right.whiteBoard)) {
-			status = "status-wb";
-			statusTitle = "678";
-		} else {
-			status = "status-user";
-			statusTitle = "677";
-		}
-		//FIXME TODO add 'typingActivity'
-		//FIXME TODO add ability to change 'first/last name'
-		add(new WebMarkupContainer("status").add(AttributeAppender.append("class", status), AttributeAppender.replace("title", getString(statusTitle))));
 		User u = getBean(UserDao.class).get(c.getUserId());
 		add(new Label("name", u.getFirstname() + " " + u.getLastname()));
 		add(AttributeAppender.append("data-userid", c.getUserId()));
@@ -71,4 +57,24 @@ public class RoomClientPanel extends Pan
 		}
 		add(actions);
 	}
+	
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		Client c = (Client)getDefaultModelObject();
+		String status = null, statusTitle = null;
+		if (c.hasRight(Right.moderator)) {
+			status = "status-mod";
+			statusTitle = "679";
+		} else if (c.hasRight(Right.whiteBoard)) {
+			status = "status-wb";
+			statusTitle = "678";
+		} else {
+			status = "status-user";
+			statusTitle = "677";
+		}
+		//FIXME TODO add 'typingActivity'
+		//FIXME TODO add ability to change 'first/last name'
+		add(new WebMarkupContainer("status").add(AttributeAppender.append("class", status), AttributeAppender.replace("title", getString(statusTitle))));
+	}
 }

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java Mon Apr 25 06:15:42 2016
@@ -40,7 +40,6 @@ public class RoomRightPanel extends Pane
 
 	public RoomRightPanel(String id, Client client, RoomPanel room) {
 		super(id);
-		setRenderBodyOnly(true);
 		setOutputMarkupId(true);
 		add(rightModer = new ModeratorRightIcon("right-moder", client, room));
 		add(rightWb = new WhiteboardRightIcon("right-wb", client, room));

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java Mon Apr 25 06:15:42 2016
@@ -31,6 +31,11 @@ public class AudioRightIcon extends Room
 	}
 
 	@Override
+	protected boolean isClickable() {
+		return self || room.getClient().hasRight(Right.moderator);
+	}
+	
+	@Override
 	protected boolean hasRight() {
 		return false; //FIXME TODO need some flag
 	}

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java Mon Apr 25 06:15:42 2016
@@ -18,11 +18,10 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon;
 
-import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.Client.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 
 public class RemoteControlRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
@@ -30,8 +29,6 @@ public class RemoteControlRightIcon exte
 	public RemoteControlRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.remoteControl, room);
 		mainCssClass = "remote-control-right ";
-		Room r = room.getRoom();
-		setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing));
 	}
 
 	@Override
@@ -44,4 +41,10 @@ public class RemoteControlRightIcon exte
 		}
 		return getString(title);
 	}
+
+	@Override
+	public void update(IPartialPageRequestHandler handler) {
+		setVisible(room.screenShareAllowed());
+		super.update(handler);
+	}
 }

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java Mon Apr 25 06:15:42 2016
@@ -32,7 +32,7 @@ public abstract class RoomRightIcon exte
 	private static final String CLS_CLICKABLE = "clickable ";
 	private static final String CLS_GRANTED = "granted ";
 	private static final String ICON_CLASS = "ui-icon align-left ";
-	private final RoomPanel room;
+	protected final RoomPanel room;
 	protected final Right right;
 	protected final boolean self;
 	protected final Client client;
@@ -55,6 +55,10 @@ public abstract class RoomRightIcon exte
 	
 	protected abstract String getTitle();
 	
+	protected boolean isClickable() {
+		return !self && room.getClient().hasRight(Right.moderator);
+	}
+	
 	protected boolean hasRight() {
 		return client.hasRight(right);
 	}
@@ -65,7 +69,7 @@ public abstract class RoomRightIcon exte
 		if (hasRight()) {
 			cls.append(CLS_GRANTED);
 		}
-		if (!self && room.getClient().hasRight(Right.moderator)) {
+		if (isClickable()) {
 			//request/remove
 			cls.append(CLS_CLICKABLE);
 			add(AttributeAppender.replace("onclick", String.format("%s('%s', '%s');", FUNC_CHANGE_RIGHT, right.name(), client.getUid())));

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java Mon Apr 25 06:15:42 2016
@@ -18,11 +18,10 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon;
 
-import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.Client.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 
 public class ScreenShareRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
@@ -30,8 +29,6 @@ public class ScreenShareRightIcon extend
 	public ScreenShareRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.share, room);
 		mainCssClass = "screen-share-right ";
-		Room r = room.getRoom();
-		setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing));
 	}
 
 	@Override
@@ -44,4 +41,10 @@ public class ScreenShareRightIcon extend
 		}
 		return getString(title);
 	}
+	
+	@Override
+	public void update(IPartialPageRequestHandler handler) {
+		setVisible(room.screenShareAllowed());
+		super.update(handler);
+	}
 }

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java?rev=1740763&r1=1740762&r2=1740763&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java Mon Apr 25 06:15:42 2016
@@ -32,6 +32,11 @@ public class VideoRightIcon extends Room
 	}
 
 	@Override
+	protected boolean isClickable() {
+		return self || room.getClient().hasRight(Right.moderator);
+	}
+	
+	@Override
 	protected boolean hasRight() {
 		return false; //FIXME TODO need some flag
 	}