You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/08/01 13:55:15 UTC

openmeetings git commit: [OPENMEETINGS-1677] icons are fixed

Repository: openmeetings
Updated Branches:
  refs/heads/3.3.x 6ada5d8ef -> 795cf657b


[OPENMEETINGS-1677] icons are fixed


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/795cf657
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/795cf657
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/795cf657

Branch: refs/heads/3.3.x
Commit: 795cf657bf995a18414f0169e75199d176f95064
Parents: 6ada5d8
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Tue Aug 1 20:55:07 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Tue Aug 1 20:55:07 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/web/common/MainPanel.java      | 27 ++++++++++++--------
 .../apache/openmeetings/web/room/RoomPanel.java |  4 +++
 .../web/room/sidebar/ClientIconsPanel.java      | 19 +++++++-------
 .../web/room/sidebar/RoomClientPanel.java       |  9 ++++---
 .../web/room/sidebar/RoomSidebar.java           |  2 +-
 .../web/room/sidebar/SelfIconsPanel.java        | 11 ++++----
 .../web/room/sidebar/icon/ClientIcon.java       | 14 +++++++---
 .../web/room/sidebar/icon/KickIcon.java         | 11 ++++----
 .../web/room/sidebar/icon/RefreshIcon.java      |  9 ++++---
 .../web/room/sidebar/icon/SettingsIcon.java     |  5 ++--
 .../sidebar/icon/activity/CamActivityIcon.java  |  9 ++++---
 .../sidebar/icon/activity/MicActivityIcon.java  |  9 +++----
 .../sidebar/icon/activity/RoomActivityIcon.java | 13 +++++-----
 .../room/sidebar/icon/right/AudioRightIcon.java |  5 ++--
 .../sidebar/icon/right/ExclusiveRightIcon.java  |  5 ++--
 .../sidebar/icon/right/ModeratorRightIcon.java  |  7 +++--
 .../icon/right/RemoteControlRightIcon.java      |  7 +++--
 .../room/sidebar/icon/right/RoomRightIcon.java  | 11 ++++----
 .../icon/right/ScreenShareRightIcon.java        |  7 +++--
 .../room/sidebar/icon/right/VideoRightIcon.java |  7 +++--
 .../sidebar/icon/right/WhiteboardRightIcon.java |  7 +++--
 21 files changed, 101 insertions(+), 97 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
index 3055c86..2c6fec2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
@@ -26,8 +26,8 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.LEVEL_USER;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.MENU_ROOMS_NAME;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.web.app.Application.addOnlineUser;
-import static org.apache.openmeetings.web.app.Application.exit;
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.Application.getOnlineClient;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
 import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getParam;
@@ -100,7 +100,7 @@ public class MainPanel extends Panel {
 	private static final String DELIMITER = "     ";
 	private static final WebMarkupContainer EMPTY = new WebMarkupContainer(CHILD_ID);
 	public static final String PARAM_USER_ID = "userId";
-	private Client client = null;
+	private String uid = null;
 	private final MenuPanel menu;
 	private final WebMarkupContainer topControls = new WebMarkupContainer("topControls");
 	private final WebMarkupContainer topLinks = new WebMarkupContainer("topLinks");
@@ -115,7 +115,7 @@ public class MainPanel extends Panel {
 		@Override
 		protected void onTimer(AjaxRequestTarget target) {
 			log.debug("Sending WebSocket PING");
-			WebSocketHelper.sendClient(client, new byte[1]);
+			WebSocketHelper.sendClient(getClient(), new byte[1]);
 		}
 	};
 
@@ -130,7 +130,7 @@ public class MainPanel extends Panel {
 		add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls"));
 		menu = new MenuPanel("menu", getMainMenu());
 		contents = new WebMarkupContainer("contents");
-		add(contents.add(client == null ? EMPTY : _panel).setOutputMarkupId(true).setMarkupId("contents"));
+		add(contents.add(getClient() == null ? EMPTY : _panel).setOutputMarkupId(true).setMarkupId("contents"));
 		topControls.add(menu.setVisible(false), topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
 		topLinks.add(new AjaxLink<Void>("messages") {
 			private static final long serialVersionUID = 1L;
@@ -224,8 +224,9 @@ public class MainPanel extends Panel {
 			@Override
 			protected void onConnect(ConnectedMessage msg) {
 				super.onConnect(msg);
-				client = new Client(getSession().getId(), msg.getKey().hashCode(), getUserId(), getBean(UserDao.class));
+				final Client client = new Client(getSession().getId(), msg.getKey().hashCode(), getUserId(), getBean(UserDao.class));
 				client.setRemoteAddress(WebSession.get().getClientInfo().getProperties().getRemoteAddress());
+				uid = client.getUid();
 				addOnlineUser(client);
 				log.debug("WebSocketBehavior::onConnect [uid: {}, session: {}, key: {}]", client.getUid(), msg.getSessionId(), msg.getKey());
 			}
@@ -261,10 +262,10 @@ public class MainPanel extends Panel {
 
 			private void closeHandler(AbstractClientMessage msg) {
 				//no chance to stop pingTimer here :(
-				if (client != null) {
-					log.debug("WebSocketBehavior::closeHandler [uid: {}, session: {}, key: {}]", client.getUid(), msg.getSessionId(), msg.getKey());
-					exit(client);
-					client = null;
+				if (uid != null) {
+					log.debug("WebSocketBehavior::closeHandler [uid: {}, session: {}, key: {}]", uid, msg.getSessionId(), msg.getKey());
+					Application.get().exit(uid);
+					uid = null;
 				}
 			}
 		});
@@ -341,7 +342,7 @@ public class MainPanel extends Panel {
 	public void updateContents(OmUrlFragment f, IPartialPageRequestHandler handler, boolean updateFragment) {
 		BasePanel panel = getPanel(f.getArea(), f.getType());
 		if (panel != null) {
-			if (client != null) {
+			if (getClient() != null) {
 				updateContents(panel, handler);
 			} else {
 				this.panel = panel;
@@ -380,7 +381,11 @@ public class MainPanel extends Panel {
 		return chat;
 	}
 
+	public String getUid() {
+		return uid;
+	}
+
 	public Client getClient() {
-		return client;
+		return getOnlineClient(uid);
 	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 72764cd..6d6c293 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -614,6 +614,10 @@ public class RoomPanel extends BasePanel {
 		return getMainPanel().getClient();
 	}
 
+	public String getUid() {
+		return getMainPanel().getUid();
+	}
+
 	public boolean screenShareAllowed() {
 		Room r = getRoom();
 		StreamClient rcl = RoomBroadcaster.getClient(getMainPanel().getClient().getUid());

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ClientIconsPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ClientIconsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ClientIconsPanel.java
index b1f4a85..6b1bcd3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ClientIconsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ClientIconsPanel.java
@@ -18,7 +18,6 @@
  */
 package org.apache.openmeetings.web.room.sidebar;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.openmeetings.web.room.sidebar.icon.right.AudioRightIcon;
 import org.apache.openmeetings.web.room.sidebar.icon.right.ExclusiveRightIcon;
@@ -40,17 +39,17 @@ public class ClientIconsPanel extends Panel {
 	private final VideoRightIcon rightVideo;
 	private final ExclusiveRightIcon rightExclsv;
 
-	public ClientIconsPanel(String id, Client client, RoomPanel room) {
+	public ClientIconsPanel(String id, String uid, RoomPanel room) {
 		super(id);
 		setOutputMarkupId(true);
 		setOutputMarkupPlaceholderTag(true);
-		add(rightModer = new ModeratorRightIcon("right-moder", client, room));
-		add(rightWb = new WhiteboardRightIcon("right-wb", client, room));
-		add(rightScreen = new ScreenShareRightIcon("right-screen-share", client, room));
-		add(rightRemote = new RemoteControlRightIcon("right-remote-control", client, room));
-		add(rightAudio = new AudioRightIcon("right-audio", client, room));
-		add(rightVideo = new VideoRightIcon("right-video", client, room));
-		add(rightExclsv = new ExclusiveRightIcon("right-exclsv", client, room));
+		add(rightModer = new ModeratorRightIcon("right-moder", uid, room));
+		add(rightWb = new WhiteboardRightIcon("right-wb", uid, room));
+		add(rightScreen = new ScreenShareRightIcon("right-screen-share", uid, room));
+		add(rightRemote = new RemoteControlRightIcon("right-remote-control", uid, room));
+		add(rightAudio = new AudioRightIcon("right-audio", uid, room));
+		add(rightVideo = new VideoRightIcon("right-video", uid, room));
+		add(rightExclsv = new ExclusiveRightIcon("right-exclsv", uid, room));
 	}
 
 	@Override
@@ -58,7 +57,7 @@ public class ClientIconsPanel extends Panel {
 		super.onInitialize();
 		update(null);
 	}
-	
+
 	public void update(IPartialPageRequestHandler handler) {
 		rightModer.update(handler);
 		rightWb.update(handler);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
index 0c269d5..be3c805 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
@@ -41,22 +41,23 @@ public class RoomClientPanel extends Panel {
 		super(id, item.getModel());
 		setRenderBodyOnly(true);
 		Client c = item.getModelObject();
+		final String uid = c.getUid();
 		item.setMarkupId(String.format("user%s", c.getUid()));
 		item.add(AttributeModifier.append("style", String.format("background-image: url(profile/%s);", c.getUserId())));
 		item.add(AttributeModifier.append("data-userid", c.getUserId()));
-		add(new RefreshIcon("refresh", c, room));
+		add(new RefreshIcon("refresh", uid, room));
 		final String name = getName(c);
 		add(new Label("name", name));
 		item.add(new AttributeModifier("title", name));
 		WebMarkupContainer actions = new WebMarkupContainer("actions");
-		actions.add(new KickIcon("kick", c, room));
+		actions.add(new KickIcon("kick", uid, room));
 		actions.add(new WebMarkupContainer("privateChat").setVisible(!room.getRoom().isHidden(RoomElement.Chat) && !getUserId().equals(c.getUserId())));
 		actions.setVisible(room.getClient().hasRight(Right.moderator));
 		if (c.getUid().equals(room.getClient().getUid())) {
-			actions.add(new SelfIconsPanel("icons", c, room, false));
+			actions.add(new SelfIconsPanel("icons", uid, room, false));
 			item.add(AttributeModifier.append("class", "current"));
 		} else {
-			actions.add(new ClientIconsPanel("icons", c, room));
+			actions.add(new ClientIconsPanel("icons", uid, room));
 		}
 		add(actions);
 	}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 4f0918f..cad12c5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -309,7 +309,7 @@ public class RoomSidebar extends Panel {
 				return t;
 			}
 		}).setOutputMarkupId(true));
-		selfRights = new SelfIconsPanel("icons", room.getClient(), room, true);
+		selfRights = new SelfIconsPanel("icons", room.getUid(), room, true);
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.java
index 9e15acb..3c41ecc 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.java
@@ -18,7 +18,6 @@
  */
 package org.apache.openmeetings.web.room.sidebar;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.openmeetings.web.room.sidebar.icon.SettingsIcon;
 import org.apache.openmeetings.web.room.sidebar.icon.activity.CamActivityIcon;
@@ -32,12 +31,12 @@ public class SelfIconsPanel extends ClientIconsPanel {
 	private final MicActivityIcon mic;
 	private final boolean header;
 
-	public SelfIconsPanel(String id, Client client, RoomPanel room, boolean header) {
-		super(id, client, room);
+	public SelfIconsPanel(String id, String uid, RoomPanel room, boolean header) {
+		super(id, uid, room);
 		this.header = header;
-		add(settings = new SettingsIcon("settings", client, room)
-			, cam = new CamActivityIcon("cam", client, room)
-			, mic = new MicActivityIcon("mic", client, room));
+		add(settings = new SettingsIcon("settings", uid, room)
+			, cam = new CamActivityIcon("cam", uid, room)
+			, mic = new MicActivityIcon("mic", uid, room));
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
index 8a6af36..c9b626b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon;
 
+import static org.apache.openmeetings.web.app.Application.getOnlineClient;
+
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.wicket.AttributeModifier;
@@ -32,15 +34,15 @@ public abstract class ClientIcon extends WebMarkupContainer {
 	protected static final String CLS_CLICKABLE = "clickable ";
 	protected final RoomPanel room;
 	protected final boolean self;
-	protected final Client client;
+	protected final String uid;
 	protected String mainCssClass;
 	protected final StringBuilder cssClass = new StringBuilder(ICON_CLASS);
 
-	public ClientIcon(String id, Client client, RoomPanel room) {
+	public ClientIcon(String id, String uid, RoomPanel room) {
 		super(id);
 		this.room = room;
-		this.client = client;
-		self = room.getClient().getUid().equals(client.getUid());
+		this.uid = uid;
+		self = room.getClient().getUid().equals(uid);
 		setOutputMarkupId(true);
 		setOutputMarkupPlaceholderTag(true);
 	}
@@ -82,4 +84,8 @@ public abstract class ClientIcon extends WebMarkupContainer {
 			handler.add(this);
 		}
 	}
+
+	protected Client getClient() {
+		return getOnlineClient(uid);
+	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
index 4044ea8..ed1c87d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
@@ -20,16 +20,15 @@ package org.apache.openmeetings.web.room.sidebar.icon;
 
 import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_ACTION;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.openmeetings.web.room.RoomPanel.Action;
 
 public class KickIcon extends ClientIcon {
 	private static final long serialVersionUID = 1L;
-	
-	public KickIcon(String id, Client client, RoomPanel room) {
-		super(id, client, room);
+
+	public KickIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, room);
 		mainCssClass = "kick ";
 	}
 
@@ -40,12 +39,12 @@ public class KickIcon extends ClientIcon {
 
 	@Override
 	protected boolean isClickable() {
-		return !self && room.getClient().hasRight(Right.moderator) && !client.hasRight(Right.superModerator);
+		return !self && room.getClient().hasRight(Right.moderator) && !getClient().hasRight(Right.superModerator);
 	}
 
 	@Override
 	protected String getScript() {
-		return String.format("%s('%s', '%s');", FUNC_ACTION, Action.kick.name(), client.getUid());
+		return String.format("%s('%s', '%s');", FUNC_ACTION, Action.kick.name(), getClient().getUid());
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
index 0a51ca6..457e938 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
@@ -25,8 +25,8 @@ import org.apache.openmeetings.web.room.RoomPanel;
 public class RefreshIcon extends ClientIcon {
 	private static final long serialVersionUID = 1L;
 
-	public RefreshIcon(String id, Client client, RoomPanel room) {
-		super(id, client, room);
+	public RefreshIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, room);
 		mainCssClass = "restart ";
 	}
 
@@ -42,12 +42,13 @@ public class RefreshIcon extends ClientIcon {
 
 	@Override
 	protected boolean isClickable() {
-		return client.hasActivity(Activity.broadcastA) || client.hasActivity(Activity.broadcastV);
+		final Client c = getClient();
+		return c.hasActivity(Activity.broadcastA) || c.hasActivity(Activity.broadcastV);
 	}
 
 	@Override
 	protected String getScript() {
-		return String.format("document.getElementById('lzapp').refreshAv('%s');", client.getUid());
+		return String.format("document.getElementById('lzapp').refreshAv('%s');", uid);
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
index 2f0565b..1d789a4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
@@ -18,15 +18,14 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.web.room.RoomPanel;
 
 public class SettingsIcon extends ClientIcon {
 	private static final long serialVersionUID = 1L;
 
-	public SettingsIcon(String id, Client client, RoomPanel room) {
-		super(id, client, room);
+	public SettingsIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, room);
 		mainCssClass = "settings ";
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java
index 48531f2..2f1f5fb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java
@@ -26,18 +26,19 @@ import org.apache.openmeetings.web.room.RoomPanel;
 public class CamActivityIcon extends RoomActivityIcon {
 	private static final long serialVersionUID = 1L;
 
-	public CamActivityIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Activity.broadcastV, room);
+	public CamActivityIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, Activity.broadcastV, room);
 		mainCssClass = "activity cam ";
 	}
 
 	@Override
 	protected String getTitle() {
-		return getString(client.hasRight(Right.audio) &&  client.hasRight(Right.video) ? "690" : "687");
+		final Client c = getClient();
+		return getString(c.hasRight(Right.audio) && c.hasRight(Right.video) ? "690" : "687");
 	}
 
 	@Override
 	public boolean isEnabled() {
-		return client.isCamEnabled();
+		return getClient().isCamEnabled();
 	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java
index 87c0f81..6ae2cbb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java
@@ -18,7 +18,6 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon.activity;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.basic.Client.Activity;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
@@ -26,18 +25,18 @@ import org.apache.openmeetings.web.room.RoomPanel;
 public class MicActivityIcon extends RoomActivityIcon {
 	private static final long serialVersionUID = 1L;
 
-	public MicActivityIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Activity.broadcastA, room);
+	public MicActivityIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, Activity.broadcastA, room);
 		mainCssClass = "activity mic bumper ";
 	}
 
 	@Override
 	protected String getTitle() {
-		return getString(client.hasRight(Right.audio) ? "1607" : "1606");
+		return getString(getClient().hasRight(Right.audio) ? "1607" : "1606");
 	}
 
 	@Override
 	public boolean isEnabled() {
-		return client.isMicEnabled();
+		return getClient().isMicEnabled();
 	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
index d8ed675..3d75520 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
@@ -18,10 +18,9 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon.activity;
 
-import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.activityAllowed;
 import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_TOGGLE_ACTIVITY;
+import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.activityAllowed;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.basic.Client.Activity;
 import org.apache.openmeetings.db.entity.basic.Client.Pod;
 import org.apache.openmeetings.db.entity.room.Room;
@@ -35,19 +34,19 @@ public abstract class RoomActivityIcon extends ClientIcon {
 	protected final Activity activity;
 	protected final Pod pod = Pod.none;
 
-	public RoomActivityIcon(String id, Client client, Activity activity, RoomPanel room) {
-		super(id, client, room);
+	public RoomActivityIcon(String id, String uid, Activity activity, RoomPanel room) {
+		super(id, uid, room);
 		this.activity = activity;
 	}
 
 	@Override
 	protected String getScript() {
-		return String.format("%s('%s', '%s', '%s');", FUNC_TOGGLE_ACTIVITY, activity.name(), client.getUid(), pod.ordinal());
+		return String.format("%s('%s', '%s', '%s');", FUNC_TOGGLE_ACTIVITY, activity.name(), uid, pod.ordinal());
 	}
 
 	protected boolean visible() {
 		return Room.Type.interview != room.getRoom().getType()
-				&& activityAllowed(client, activity, room.getRoom());
+				&& activityAllowed(getClient(), activity, room.getRoom());
 	}
 
 	@Override
@@ -60,7 +59,7 @@ public abstract class RoomActivityIcon extends ClientIcon {
 		setVisible(visible());
 		if (!isEnabled()) {
 			cssClass.append(CLS_DISABLED);
-		} else if (client.hasActivity(activity)) {
+		} else if (getClient().hasActivity(activity)) {
 			cssClass.append(CLS_ENABLED);
 		}
 	}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java
index 7a75ad1..f34d17c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java
@@ -18,15 +18,14 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon.right;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 
 public class AudioRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
 
-	public AudioRightIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Right.audio, room);
+	public AudioRightIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, Right.audio, room);
 		mainCssClass = "right audio bumper ";
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java
index 434ee86..02cab2c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java
@@ -18,15 +18,14 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon.right;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 
 public class ExclusiveRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
 
-	public ExclusiveRightIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Right.exclusive, room);
+	public ExclusiveRightIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, Right.exclusive, room);
 		mainCssClass = "exclsv-audio ";
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java
index 2a57ade..29f7fad 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java
@@ -18,22 +18,21 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon.right;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 
 public class ModeratorRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
 
-	public ModeratorRightIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Right.moderator, room);
+	public ModeratorRightIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, Right.moderator, room);
 		mainCssClass = "right moderator bumper ";
 	}
 
 	@Override
 	protected String getTitle() {
 		String title;
-		if (client.hasRight(right)) {
+		if (getClient().hasRight(right)) {
 			title = self ? "688" : "675";
 		} else {
 			title = self ? "81" : "676";

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java
index ba1ad45..978d9a5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java
@@ -18,15 +18,14 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon.right;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 
 public class RemoteControlRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
-	
-	public RemoteControlRightIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Right.remoteControl, room);
+
+	public RemoteControlRightIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, Right.remoteControl, room);
 		mainCssClass = "right remote-control bumper ";
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
index b02f333..d0e2dc2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
@@ -20,7 +20,6 @@ package org.apache.openmeetings.web.room.sidebar.icon.right;
 
 import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_TOGGLE_RIGHT;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.openmeetings.web.room.sidebar.icon.ClientIcon;
@@ -30,8 +29,8 @@ public abstract class RoomRightIcon extends ClientIcon {
 	private static final String CLS_GRANTED = "granted ";
 	protected final Right right;
 
-	public RoomRightIcon(String id, Client client, Right right, RoomPanel room) {
-		super(id, client, room);
+	public RoomRightIcon(String id, String uid, Right right, RoomPanel room) {
+		super(id, uid, room);
 		this.right = right;
 	}
 
@@ -41,16 +40,16 @@ public abstract class RoomRightIcon extends ClientIcon {
 	}
 
 	protected boolean hasRight() {
-		return client.hasRight(right);
+		return getClient().hasRight(right);
 	}
 
 	@Override
 	protected String getScript() {
-		return String.format("%s('%s', '%s');", FUNC_TOGGLE_RIGHT, right.name(), client.getUid());
+		return String.format("%s('%s', '%s');", FUNC_TOGGLE_RIGHT, right.name(), uid);
 	}
 
 	protected boolean visible() {
-		return !client.hasRight(Right.superModerator) && (
+		return !getClient().hasRight(Right.superModerator) && (
 				(self && !hasRight() && room.getRoom().isAllowUserQuestions())
 				|| (!self && room.getClient().hasRight(Right.moderator))
 			);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java
index bc71fb6..90fffe7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java
@@ -18,15 +18,14 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon.right;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 
 public class ScreenShareRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
-	
-	public ScreenShareRightIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Right.share, room);
+
+	public ScreenShareRightIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, Right.share, room);
 		mainCssClass = "right screen-share ";
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java
index 6e8a4e0..7b78592 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java
@@ -18,15 +18,14 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon.right;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 
 public class VideoRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
-	
-	public VideoRightIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Right.video, room);
+
+	public VideoRightIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, Right.video, room);
 		mainCssClass = "right camera ";
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/795cf657/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java
index fd64376..64b1572 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java
@@ -18,7 +18,6 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon.right;
 
-import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
@@ -27,15 +26,15 @@ import org.apache.openmeetings.web.room.RoomPanel;
 public class WhiteboardRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
 
-	public WhiteboardRightIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Right.whiteBoard, room);
+	public WhiteboardRightIcon(String id, String uid, RoomPanel room) {
+		super(id, uid, Right.whiteBoard, room);
 		mainCssClass = "right wb bumper ";
 	}
 
 	@Override
 	protected String getTitle() {
 		String title;
-		if (client.hasRight(right)) {
+		if (getClient().hasRight(right)) {
 			title = self ? "689" : "612";
 		} else {
 			title = self ? "686" : "694";