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
}