Repository: openmeetings
Updated Branches:
  refs/heads/master 99fc6c864 -> c28ae3823


[OPENMEETINGS-1756] User name is added to RoomMessage and Activities, title is 
renamed on nick-name change


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

Branch: refs/heads/master
Commit: c28ae3823c6eec5b19c85a2bd8aff299a227cda2
Parents: 99fc6c8
Author: Maxim Solodovnik <[email protected]>
Authored: Mon Nov 20 23:37:29 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Mon Nov 20 23:38:04 2017 +0700

----------------------------------------------------------------------
 .../core/remote/ScopeApplicationAdapter.java    |  16 +--
 .../core/service/RecordingService.java          |   9 +-
 .../openmeetings/core/util/WebSocketHelper.java |   4 +-
 .../core/util/ws/WsMessageRoomMsg.java          |   2 +-
 .../openmeetings/db/entity/basic/Client.java    |  10 ++
 .../openmeetings/db/entity/basic/IClient.java   |   2 +
 .../db/entity/room/StreamClient.java            |   2 +
 .../openmeetings/db/util/ws/RoomMessage.java    | 113 +++++++++++++++++++
 .../db/util/ws/TextRoomMessage.java             |  41 +++++++
 .../openmeetings/util/message/RoomMessage.java  |  90 ---------------
 .../util/message/TextRoomMessage.java           |  33 ------
 .../openmeetings/web/app/Application.java       |   8 +-
 .../apache/openmeetings/web/pages/HashPage.java |   4 +-
 .../apache/openmeetings/web/room/RoomPanel.java |  14 +--
 .../web/room/activities/ActivitiesPanel.java    |  41 +++----
 .../web/room/activities/Activity.java           |  16 ++-
 .../web/room/menu/RoomMenuPanel.java            |   6 +-
 .../web/room/poll/CreatePollDialog.java         |   5 +-
 .../web/room/poll/PollResultsDialog.java        |   8 +-
 .../openmeetings/web/room/poll/VoteDialog.java  |   5 +-
 .../org/apache/openmeetings/web/room/room.js    |   3 +-
 .../web/room/sidebar/RoomSidebar.java           |   9 +-
 .../openmeetings/webservice/RoomWebService.java |   4 +-
 23 files changed, 247 insertions(+), 198 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
index be01e8c..afc8148 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
@@ -53,11 +53,11 @@ import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.log.ConferenceLog;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.StreamClient;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.util.NullStringer;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.Version;
-import org.apache.openmeetings.util.message.RoomMessage;
-import org.apache.openmeetings.util.message.TextRoomMessage;
 import org.apache.wicket.Application;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
@@ -339,7 +339,7 @@ public class ScopeApplicationAdapter extends 
MultiThreadedApplicationAdapter imp
 
                                                //Send message to all users
                                                
sendMessageToCurrentScope("newScreenSharing", client, false);
-                                               WebSocketHelper.sendRoom(new 
TextRoomMessage(client.getRoomId(), client.getUserId(), 
RoomMessage.Type.sharingStarted, client.getUid()));
+                                               WebSocketHelper.sendRoom(new 
TextRoomMessage(client.getRoomId(), client, RoomMessage.Type.sharingStarted, 
client.getUid()));
                                        } else {
                                                _log.warn("Streaming is already 
started for the client id={}. Second request is ignored.", client.getId());
                                        }
@@ -534,7 +534,7 @@ public class ScopeApplicationAdapter extends 
MultiThreadedApplicationAdapter imp
                                        .put("type", c.getType())
                                        .put("streamId", 
current.getClient().getId())
                                        .put("streamName", streamName);
-                       WebSocketHelper.sendRoom(new 
TextRoomMessage(c.getRoomId(), c.getUserId(), RoomMessage.Type.newStream, 
obj.toString(new NullStringer())));
+                       WebSocketHelper.sendRoom(new 
TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.newStream, obj.toString(new 
NullStringer())));
                } catch (Exception err) {
                        _log.error("[streamPublishStart]", err);
                }
@@ -612,14 +612,14 @@ public class ScopeApplicationAdapter extends 
MultiThreadedApplicationAdapter imp
                JSONObject obj = new JSONObject()
                                .put("sid", rcl.getSid())
                                .put("uid", rcl.getUid());
-               WebSocketHelper.sendRoom(new TextRoomMessage(rcl.getRoomId(), 
rcl.getUserId(), RoomMessage.Type.sharingStoped, obj.toString()));
+               WebSocketHelper.sendRoom(new TextRoomMessage(rcl.getRoomId(), 
rcl, RoomMessage.Type.sharingStoped, obj.toString()));
        }
 
        private static void sendStreamClosed(StreamClient rcl) {
                JSONObject obj = new JSONObject()
                                .put("uid", rcl.getUid())
                                .put("sid", rcl.getSid());
-               WebSocketHelper.sendRoom(new TextRoomMessage(rcl.getRoomId(), 
rcl.getUserId(), RoomMessage.Type.closeStream, obj.toString()));
+               WebSocketHelper.sendRoom(new TextRoomMessage(rcl.getRoomId(), 
rcl, RoomMessage.Type.closeStream, obj.toString()));
        }
 
        public long switchMicMuted(String publicSID, boolean mute) {
@@ -925,7 +925,7 @@ public class ScopeApplicationAdapter extends 
MultiThreadedApplicationAdapter imp
        public void micActivity(boolean active) {
                IConnection current = Red5.getConnectionLocal();
                StreamClient client = 
sessionManager.get(IClientUtil.getId(current.getClient()));
-               WebSocketHelper.sendRoom(new 
TextRoomMessage(client.getRoomId(), client.getUserId(), 
RoomMessage.Type.audioActivity
+               WebSocketHelper.sendRoom(new 
TextRoomMessage(client.getRoomId(), client, RoomMessage.Type.audioActivity
                                , new JSONObject().put("sid", 
client.getSid()).put("active", active).toString()));
        }
 
@@ -991,7 +991,7 @@ public class ScopeApplicationAdapter extends 
MultiThreadedApplicationAdapter imp
                        sessionManager.update(client);
                        _log.debug("updateSipTransport: {}, {}, {}, {}, {}", 
new Object[] { client.getUid(), client.getRoomId(),
                                        client.getFirstname(), 
client.getLastname(), client.getAvsettings() });
-                       WebSocketHelper.sendRoom(new 
TextRoomMessage(client.getRoomId(), client.getUserId(), 
RoomMessage.Type.rightUpdated, client.getUid()));
+                       WebSocketHelper.sendRoom(new 
TextRoomMessage(client.getRoomId(), client, RoomMessage.Type.rightUpdated, 
client.getUid()));
                        sendMessageWithClient(new String[] { "personal", 
client.getFirstname(), client.getLastname() });
                }
                return count != null && count > 0 ? count - 1 : 0;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/RecordingService.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/RecordingService.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/RecordingService.java
index 0b1b86b..675f403 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/RecordingService.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/RecordingService.java
@@ -46,9 +46,9 @@ import 
org.apache.openmeetings.db.entity.record.RecordingMetaData;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData.Status;
 import org.apache.openmeetings.db.entity.room.StreamClient;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.util.CalendarPatterns;
-import org.apache.openmeetings.util.message.RoomMessage;
-import org.apache.openmeetings.util.message.TextRoomMessage;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.IConnection;
 import org.red5.server.api.scope.IScope;
@@ -110,6 +110,7 @@ public class RecordingService {
                        User u = userDao.get(ownerId);
                        if (u != null && User.Type.contact == u.getType()) {
                                ownerId = u.getOwnerId();
+                               u = userDao.get(ownerId);
                        }
                        recording.setInsertedBy(ownerId);
                        recording.setType(Type.Recording);
@@ -149,7 +150,7 @@ public class RecordingService {
                                }
                        }
                        // Send notification to all users that the recording 
has been started
-                       WebSocketHelper.sendRoom(new TextRoomMessage(roomId, 
ownerId, RoomMessage.Type.recordingStarted
+                       WebSocketHelper.sendRoom(new TextRoomMessage(roomId, u, 
RoomMessage.Type.recordingStarted
                                        , new JSONObject().put("uid", 
client.getUid()).put("sid", client.getSid()).toString()));
                } catch (Exception err) {
                        log.error("[startRecording]", err);
@@ -183,7 +184,7 @@ public class RecordingService {
                                recClient.setRecordingStarted(false);
                                sessionManager.update(recClient);
                        }
-                       WebSocketHelper.sendRoom(new 
TextRoomMessage(stopClient.getRoomId(), stopClient.getUserId(), 
RoomMessage.Type.recordingStoped, stopClient.getSid()));
+                       WebSocketHelper.sendRoom(new 
TextRoomMessage(stopClient.getRoomId(), stopClient, 
RoomMessage.Type.recordingStoped, stopClient.getSid()));
                        // get all stream and stop recording them
                        for (IConnection conn : scope.getClientConnections()) {
                                if (conn != null && conn instanceof 
IServiceCapableConnection) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
index 3aad209..100b213 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
@@ -41,8 +41,8 @@ import org.apache.openmeetings.db.entity.basic.ChatMessage;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.message.RoomMessage;
-import org.apache.openmeetings.util.message.TextRoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.util.ws.IClusterWsMessage;
 import org.apache.wicket.Application;
 import org.apache.wicket.protocol.ws.WebSocketSettings;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ws/WsMessageRoomMsg.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ws/WsMessageRoomMsg.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ws/WsMessageRoomMsg.java
index 4f8a3d2..7e5f455 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ws/WsMessageRoomMsg.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ws/WsMessageRoomMsg.java
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.core.util.ws;
 
-import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.util.ws.IClusterWsMessage;
 
 public class WsMessageRoomMsg implements IClusterWsMessage {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index d9cd0f2..8781a7b 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -133,6 +133,16 @@ public class Client implements IClient {
        }
 
        @Override
+       public String getFirstname() {
+               return user.getFirstname();
+       }
+
+       @Override
+       public String getLastname() {
+               return user.getLastname();
+       }
+
+       @Override
        public String getUid() {
                return uid;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/IClient.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/IClient.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/IClient.java
index f9817a5..328f67c 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/IClient.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/IClient.java
@@ -39,6 +39,8 @@ public interface IClient extends IDataProviderEntity {
        String getSid();
        Long getUserId();
        String getLogin();
+       String getFirstname();
+       String getLastname();
        String getRemoteAddress();
        Long getRoomId();
        int getWidth();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
index 0d8b462..4731e69 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
@@ -209,6 +209,7 @@ public class StreamClient implements IClient {
                this.userId = userId;
        }
 
+       @Override
        public String getFirstname() {
                return firstname;
        }
@@ -217,6 +218,7 @@ public class StreamClient implements IClient {
                this.firstname = firstname;
        }
 
+       @Override
        public String getLastname() {
                return lastname;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
new file mode 100644
index 0000000..1e4af48
--- /dev/null
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.util.ws;
+
+import static org.apache.openmeetings.db.dao.room.SipDao.SIP_FIRST_NAME;
+import static org.apache.openmeetings.util.OmFileHelper.SIP_USER_ID;
+
+import java.util.Date;
+import java.util.UUID;
+
+import org.apache.openmeetings.db.entity.basic.IClient;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.wicket.protocol.ws.api.message.IWebSocketPushMessage;
+
+public class RoomMessage implements IWebSocketPushMessage {
+       private static final long serialVersionUID = 1L;
+       public enum Type {
+               roomEnter
+               , roomExit
+               , roomClosed
+               , pollCreated
+               , pollUpdated
+               , recordingStarted
+               , recordingStoped
+               , sharingStarted
+               , sharingStoped
+               , rightUpdated
+               , activityRemove
+               , requestRightModerator
+               , requestRightPresenter
+               , requestRightWb
+               , requestRightShare
+               , requestRightRemote
+               , requestRightA
+               , requestRightAv
+               , requestRightMute
+               , requestRightExclusive
+               , haveQuestion
+               , kick
+               , newStream
+               , closeStream
+               , audioActivity //user speaks
+               , mute
+               , exclusive
+       }
+       private final Date timestamp;
+       private final String uid;
+       private final Long roomId;
+       private final Long userId;
+       private final String name;
+       private final Type type;
+
+       public RoomMessage(Long roomId, IClient c, Type type) {
+               this(roomId, c.getUserId(), c.getFirstname(), c.getLastname(), 
type);
+       }
+
+       public RoomMessage(Long roomId, User u, Type type) {
+               this(roomId, u.getId(), u.getFirstname(), u.getLastname(), 
type);
+       }
+
+       private RoomMessage(Long roomId, Long userId, String firstName, String 
lastName, Type type) {
+               this.timestamp = new Date();
+               this.roomId = roomId;
+               if (SIP_USER_ID.equals(userId)) {
+                       this.name = SIP_FIRST_NAME;
+               } else {
+                       name = String.format("%s %s", firstName, lastName);
+               }
+               this.userId = userId;
+               this.type = type;
+               this.uid = UUID.randomUUID().toString();
+       }
+
+       public Date getTimestamp() {
+               return timestamp;
+       }
+
+       public Long getRoomId() {
+               return roomId;
+       }
+
+       public Long getUserId() {
+               return userId;
+       }
+
+       public String getName() {
+               return name;
+       }
+
+       public Type getType() {
+               return type;
+       }
+
+       public String getUid() {
+               return uid;
+       }
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/TextRoomMessage.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/TextRoomMessage.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/TextRoomMessage.java
new file mode 100644
index 0000000..0750cd8
--- /dev/null
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/TextRoomMessage.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.util.ws;
+
+import org.apache.openmeetings.db.entity.basic.IClient;
+import org.apache.openmeetings.db.entity.user.User;
+
+public class TextRoomMessage extends RoomMessage {
+       private static final long serialVersionUID = 1L;
+       private final String text;
+
+       public TextRoomMessage(Long roomId, IClient client, Type type, String 
text) {
+               super(roomId, client, type);
+               this.text = text;
+       }
+
+       public TextRoomMessage(Long roomId, User u, Type type, String text) {
+               super(roomId, u, type);
+               this.text = text;
+       }
+
+       public String getText() {
+               return text;
+       }
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
deleted file mode 100644
index 47146ae..0000000
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") +  you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.openmeetings.util.message;
-
-import java.util.Date;
-import java.util.UUID;
-
-import org.apache.wicket.protocol.ws.api.message.IWebSocketPushMessage;
-
-public class RoomMessage implements IWebSocketPushMessage {
-       private static final long serialVersionUID = 1L;
-       public enum Type {
-               roomEnter
-               , roomExit
-               , roomClosed
-               , pollCreated
-               , pollUpdated
-               , recordingStarted
-               , recordingStoped
-               , sharingStarted
-               , sharingStoped
-               , rightUpdated
-               , activityRemove
-               , requestRightModerator
-               , requestRightPresenter
-               , requestRightWb
-               , requestRightShare
-               , requestRightRemote
-               , requestRightA
-               , requestRightAv
-               , requestRightMute
-               , requestRightExclusive
-               , haveQuestion
-               , kick
-               , newStream
-               , closeStream
-               , audioActivity //user speaks
-               , mute
-               , exclusive
-       }
-       private final Date timestamp;
-       private final String uid;
-       private final Long roomId;
-       private final Long userId;
-       private final Type type;
-
-       public RoomMessage(Long roomId, Long userId, Type type) {
-               this.timestamp = new Date();
-               this.roomId = roomId;
-               this.userId = userId;
-               this.type = type;
-               this.uid = UUID.randomUUID().toString();
-       }
-
-       public Date getTimestamp() {
-               return timestamp;
-       }
-
-       public Long getRoomId() {
-               return roomId;
-       }
-
-       public Long getUserId() {
-               return userId;
-       }
-
-       public Type getType() {
-               return type;
-       }
-
-       public String getUid() {
-               return uid;
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
deleted file mode 100644
index d468a5b..0000000
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") +  you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.openmeetings.util.message;
-
-public class TextRoomMessage extends RoomMessage {
-       private static final long serialVersionUID = 1L;
-       private final String text;
-
-       public TextRoomMessage(Long roomId, Long userId, Type type, String 
text) {
-               super(roomId, userId, type);
-               this.text = text;
-       }
-
-       public String getText() {
-               return text;
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index 257e074..9af5134 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -75,8 +75,8 @@ import org.apache.openmeetings.db.entity.room.StreamClient;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
-import org.apache.openmeetings.util.message.RoomMessage;
 import org.apache.openmeetings.util.ws.IClusterWsMessage;
 import org.apache.openmeetings.web.pages.AccessDeniedPage;
 import org.apache.openmeetings.web.pages.ActivatePage;
@@ -395,7 +395,7 @@ public class Application extends 
AuthenticatedWebApplication implements IApplica
                Long roomId = c.getRoomId();
                removeUserFromRoom(c);
                if (roomId != null) {
-                       sendRoom(new RoomMessage(roomId, c.getUserId(), 
RoomMessage.Type.roomExit));
+                       sendRoom(new RoomMessage(roomId, c, 
RoomMessage.Type.roomExit));
                        getBean(ConferenceLogDao.class).add(
                                        ConferenceLog.Type.roomLeave
                                        , c.getUserId(), "0", roomId
@@ -442,7 +442,7 @@ public class Application extends 
AuthenticatedWebApplication implements IApplica
                                        client.setMic(0);
                                        
client.setRoom(getBean(RoomDao.class).get(rcl.getRoomId()));
                                        addUserToRoom(client);
-                                       WebSocketHelper.sendRoom(new 
RoomMessage(client.getRoom().getId(), client.getUserId(), 
RoomMessage.Type.roomEnter));
+                                       WebSocketHelper.sendRoom(new 
RoomMessage(client.getRoom().getId(), client, RoomMessage.Type.roomEnter));
                                }
                        } else if (client == null && Client.Type.sip == 
rcl.getType()) {
                                rcl.setLogin(SIP_USER_NAME);
@@ -459,7 +459,7 @@ public class Application extends 
AuthenticatedWebApplication implements IApplica
                                client.allow(Room.Right.audio, 
Room.Right.video);
                                client.set(Activity.broadcastA);
                                addUserToRoom(client);
-                               WebSocketHelper.sendRoom(new 
RoomMessage(client.getRoom().getId(), client.getUserId(), 
RoomMessage.Type.roomEnter));
+                               WebSocketHelper.sendRoom(new 
RoomMessage(client.getRoom().getId(), client, RoomMessage.Type.roomEnter));
                        } else {
                                return null;
                        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
index 7898d3d..c7c3ef1 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
@@ -109,7 +109,9 @@ public class HashPage extends BaseInitedPage implements 
IUpdatable {
                                FastDateFormat sdf = 
WebSession.createDateFormat(i.getInvitee());
                                errorMsg = Valid.OneTime == i.getValid()
                                                ? getString("error.hash.used")
-                                               : String.format("%s %s - %s", 
getString("error.hash.period"), sdf.format(i.getValidFrom()), 
sdf.format(i.getValidTo()));
+                                               : String.format("%s %s - %s, 
%s", getString("error.hash.period")
+                                                               , 
sdf.format(i.getValidFrom()), sdf.format(i.getValidTo())
+                                                               , 
i.getInvitee().getTimeZoneId());
                        } else {
                                Recording rec = i.getRecording();
                                if (rec != null) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/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 217664d..c489d14 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
@@ -60,10 +60,10 @@ import org.apache.openmeetings.db.entity.server.SOAPLogin;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage.Type;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.util.NullStringer;
-import org.apache.openmeetings.util.message.RoomMessage;
-import org.apache.openmeetings.util.message.RoomMessage.Type;
-import org.apache.openmeetings.util.message.TextRoomMessage;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.BasePanel;
@@ -148,7 +148,7 @@ public class RoomPanel extends BasePanel {
                                        .append(wb.getInitScript())
                                        .append("Room.setSize();");
                        target.appendJavaScript(sb);
-                       WebSocketHelper.sendRoom(new RoomMessage(r.getId(), 
getUserId(), RoomMessage.Type.roomEnter));
+                       WebSocketHelper.sendRoom(new RoomMessage(r.getId(), _c, 
RoomMessage.Type.roomEnter));
                        // play video from other participants
                        initVideos(target);
                        getMainPanel().getChat().roomEnter(r, target);
@@ -782,7 +782,7 @@ public class RoomPanel extends BasePanel {
                                break;
                }
                if (reqType != null) {
-                       WebSocketHelper.sendRoom(new 
TextRoomMessage(getRoom().getId(), getUserId(), reqType, getClient().getUid()));
+                       WebSocketHelper.sendRoom(new 
TextRoomMessage(getRoom().getId(), getClient(), reqType, getClient().getUid()));
                }
        }
 
@@ -807,12 +807,12 @@ public class RoomPanel extends BasePanel {
        }
 
        public void kickUser(Client client) {
-               WebSocketHelper.sendRoom(new 
TextRoomMessage(client.getRoom().getId(), client.getUserId(), Type.kick, 
client.getUid()));
+               WebSocketHelper.sendRoom(new 
TextRoomMessage(client.getRoom().getId(), client, Type.kick, client.getUid()));
        }
 
        public void broadcast(Client client) {
                RoomBroadcaster.sendUpdatedClient(client);
-               WebSocketHelper.sendRoom(new TextRoomMessage(getRoom().getId(), 
getUserId(), RoomMessage.Type.rightUpdated, client.getUid()));
+               WebSocketHelper.sendRoom(new TextRoomMessage(getRoom().getId(), 
getClient(), RoomMessage.Type.rightUpdated, client.getUid()));
        }
 
        public Room getRoom() {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
index 90b3fb6..2215028 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
@@ -19,11 +19,8 @@
 package org.apache.openmeetings.web.room.activities;
 
 import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
-import static org.apache.openmeetings.db.dao.room.SipDao.SIP_FIRST_NAME;
-import static org.apache.openmeetings.util.OmFileHelper.SIP_USER_ID;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-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.pages.BasePage.ALIGN_LEFT;
@@ -37,13 +34,11 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 
 import org.apache.commons.lang3.time.FastDateFormat;
-import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
-import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.message.RoomMessage;
-import org.apache.openmeetings.util.message.TextRoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.web.pages.BasePage;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.wicket.AttributeModifier;
@@ -82,6 +77,10 @@ public class ActivitiesPanel extends Panel {
        private final AbstractDefaultAjaxBehavior action = new 
AbstractDefaultAjaxBehavior() {
                private static final long serialVersionUID = 1L;
 
+               private TextRoomMessage getRemoveMsg(String id) {
+                       return new TextRoomMessage(room.getRoom().getId(), 
room.getClient(), RoomMessage.Type.activityRemove, id);
+               }
+
                @Override
                protected void respond(AjaxRequestTarget target) {
                        try {
@@ -99,7 +98,7 @@ public class ActivitiesPanel extends Panel {
                                                break;
                                        case decline:
                                                if 
(room.getClient().hasRight(Right.moderator)) {
-                                                       sendRoom(new 
TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                       
sendRoom(getRemoveMsg(id));
                                                }
                                                break;
                                        case accept:
@@ -107,39 +106,39 @@ public class ActivitiesPanel extends Panel {
                                                if 
(room.getClient().hasRight(Right.moderator) && client != null && 
client.getRoom() != null && roomId == client.getRoom().getId()) {
                                                        switch (a.getType()) {
                                                                case 
reqRightModerator:
-                                                                       
sendRoom(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                                       
sendRoom(getRemoveMsg(id));
                                                                        
room.allowRight(client, Right.moderator);
                                                                        break;
                                                                case reqRightAv:
-                                                                       
sendRoom(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                                       
sendRoom(getRemoveMsg(id));
                                                                        
room.allowRight(client, Right.audio, Right.video);
                                                                        break;
                                                                case 
reqRightPresenter:
-                                                                       
sendRoom(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                                       
sendRoom(getRemoveMsg(id));
                                                                        
room.allowRight(client, Right.presenter);
                                                                        break;
                                                                case reqRightWb:
-                                                                       
sendRoom(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                                       
sendRoom(getRemoveMsg(id));
                                                                        
room.allowRight(client, Right.whiteBoard);
                                                                        break;
                                                                case 
reqRightShare:
-                                                                       
sendRoom(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                                       
sendRoom(getRemoveMsg(id));
                                                                        
room.allowRight(client, Right.share);
                                                                        break;
                                                                case 
reqRightRemote:
-                                                                       
sendRoom(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                                       
sendRoom(getRemoveMsg(id));
                                                                        
room.allowRight(client, Right.remoteControl);
                                                                        break;
                                                                case reqRightA:
-                                                                       
sendRoom(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                                       
sendRoom(getRemoveMsg(id));
                                                                        
room.allowRight(client, Right.audio);
                                                                        break;
                                                                case 
reqRightMute:
-                                                                       
sendRoom(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                                       
sendRoom(getRemoveMsg(id));
                                                                        
room.allowRight(client, Right.mute);
                                                                        break;
                                                                case 
reqRightExclusive:
-                                                                       
sendRoom(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, id));
+                                                                       
sendRoom(getRemoveMsg(id));
                                                                        
room.allowRight(client, Right.exclusive);
                                                                        break;
                                                                default:
@@ -192,13 +191,7 @@ public class ActivitiesPanel extends Panel {
                                        decline.setVisible(false);
                                        break;
                        }
-                       String name;
-                       if (SIP_USER_ID.equals(a.getSender())) {
-                               name = SIP_FIRST_NAME;
-                       } else {
-                               User u = 
getBean(UserDao.class).get(a.getSender());
-                               name = self ? getString("1362") : 
String.format("%s %s", u.getFirstname(), u.getLastname());
-                       }
+                       String name = self ? getString("1362") : a.getName();
                        final String fmt = ((BasePage)getPage()).isRtl() ? 
ACTIVITY_FMT_RTL : ACTIVITY_FMT;
                        switch (a.getType()) {
                                case roomEnter:

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
index 7dd70c4..0fd8fb7 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
@@ -21,8 +21,8 @@ package org.apache.openmeetings.web.room.activities;
 import java.io.Serializable;
 import java.util.Date;
 
-import org.apache.openmeetings.util.message.RoomMessage;
-import org.apache.openmeetings.util.message.TextRoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 
 public class Activity implements Serializable {
        private static final long serialVersionUID = 1L;
@@ -43,21 +43,23 @@ public class Activity implements Serializable {
        private final String id;
        private final String uid;
        private final Long sender;
+       private final String name;
        private final Date created;
        private final Type type;
 
        public Activity(RoomMessage m, Type type) {
-               this(m.getUid(), null, m.getUserId(), type);
+               this(m.getUid(), null, m.getUserId(), m.getName(), type);
        }
 
        public Activity(TextRoomMessage m, Type type) {
-               this(m.getUid(), m.getText(), m.getUserId(), type);
+               this(m.getUid(), m.getText(), m.getUserId(), m.getName(), type);
        }
 
-       public Activity(String id, String uid, Long sender, Type type) {
+       public Activity(String id, String uid, Long sender, String name, Type 
type) {
                this.id = id;
                this.uid = uid;
                this.sender = sender;
+               this.name = name;
                this.type = type;
                this.created = new Date();
        }
@@ -74,6 +76,10 @@ public class Activity implements Serializable {
                return sender;
        }
 
+       public String getName() {
+               return name;
+       }
+
        public Type getType() {
                return type;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index ca836e9..7c7a4bf 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -46,8 +46,8 @@ import 
org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.message.RoomMessage.Type;
-import org.apache.openmeetings.util.message.TextRoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage.Type;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.ImagePanel;
@@ -95,7 +95,7 @@ public class RoomMenuPanel extends Panel {
                @Override
                public void onClick(AjaxRequestTarget target) {
                        Client c = room.getClient();
-                       WebSocketHelper.sendRoom(new 
TextRoomMessage(c.getRoom().getId(), c.getUserId(), Type.haveQuestion, 
c.getUid()));
+                       WebSocketHelper.sendRoom(new 
TextRoomMessage(c.getRoom().getId(), c, Type.haveQuestion, c.getUid()));
                }
        };
        private final RoomPanel room;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
index ccaf8b9..e318d56 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
@@ -30,8 +30,9 @@ import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.MainPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
@@ -96,7 +97,7 @@ public class CreatePollDialog extends 
AbstractFormDialog<RoomPoll> {
                PollDao dao = getBean(PollDao.class);
                dao.close(roomId);
                dao.update(form.getModelObject());
-               sendRoom(new RoomMessage(roomId, getUserId(), 
RoomMessage.Type.pollCreated));
+               sendRoom(new RoomMessage(roomId, 
findParent(MainPanel.class).getClient(), RoomMessage.Type.pollCreated));
        }
 
        private class PollForm extends Form<RoomPoll> {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
index f1e0637..9d6cbca 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
@@ -20,7 +20,6 @@ package org.apache.openmeetings.web.room.poll;
 
 import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
 import static org.apache.openmeetings.web.app.Application.getBean;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -29,8 +28,9 @@ import java.util.List;
 import org.apache.openmeetings.db.dao.room.PollDao;
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.apache.openmeetings.db.entity.room.RoomPollAnswer;
-import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.MainPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -101,7 +101,7 @@ public class PollResultsDialog extends 
AbstractDialog<RoomPoll> {
                                        RoomPoll p = 
getBean(PollDao.class).get(id);
                                        selForm.select.setModelObject(p);
                                        dispForm.updateModel(p, true, handler);
-                                       sendRoom(new RoomMessage(roomId, 
getUserId(), RoomMessage.Type.pollUpdated));
+                                       sendRoom(new RoomMessage(roomId, 
findParent(MainPanel.class).getClient(), RoomMessage.Type.pollUpdated));
                                }
                        }
                });
@@ -114,7 +114,7 @@ public class PollResultsDialog extends 
AbstractDialog<RoomPoll> {
                                        
getBean(PollDao.class).delete(dispForm.getModelObject());
                                        selForm.updateModel(handler);
                                        
dispForm.updateModel(selForm.select.getModelObject(), true, handler);
-                                       sendRoom(new RoomMessage(roomId, 
getUserId(), RoomMessage.Type.pollUpdated));
+                                       sendRoom(new RoomMessage(roomId, 
findParent(MainPanel.class).getClient(), RoomMessage.Type.pollUpdated));
                                }
                        }
                });

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
index 3fbe2ee..d6fc278 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
@@ -31,8 +31,9 @@ import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.apache.openmeetings.db.entity.room.RoomPollAnswer;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.MainPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -127,7 +128,7 @@ public class VoteDialog extends 
AbstractFormDialog<RoomPollAnswer> {
                        a.getRoomPoll().getAnswers().add(a);
                        dao.update(a.getRoomPoll());
                }
-               sendRoom(new RoomMessage(roomId, getUserId(), 
RoomMessage.Type.pollUpdated));
+               sendRoom(new RoomMessage(roomId, 
findParent(MainPanel.class).getClient(), RoomMessage.Type.pollUpdated));
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
index 0271654..c9db35d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
@@ -364,7 +364,8 @@ var Video = (function() {
                        c.pod = _c.pod;
                        v.dialog('option', 'appendTo', '.pod.pod-' + c.pod);
                }
-               v.dialog('option', 'title', _getName());
+               const name = _getName();
+               v.dialog('option', 'title', 
name).parent().find('.ui-dialog-titlebar').attr('title', name);
                if (swf[0].update !== undefined) {
                        c.self ? swf[0].update() : swf[0].update(c);
                }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/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 a20ea08..e014bd1 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
@@ -21,7 +21,6 @@ package org.apache.openmeetings.web.room.sidebar;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getOnlineClient;
 import static org.apache.openmeetings.web.app.Application.getRoomClients;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static 
org.apache.openmeetings.web.room.RoomBroadcaster.sendUpdatedClient;
 import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
 import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
@@ -35,8 +34,8 @@ import org.apache.openmeetings.db.entity.basic.Client.Pod;
 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;
-import org.apache.openmeetings.util.message.RoomMessage;
-import org.apache.openmeetings.util.message.TextRoomMessage;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
@@ -130,7 +129,7 @@ public class RoomSidebar extends Panel {
                                                break;
                                        case exclusive:
                                                if 
(room.getClient().hasRight(Right.exclusive)) {
-                                                       
WebSocketHelper.sendRoom(new TextRoomMessage(room.getRoom().getId(), 
getUserId(), RoomMessage.Type.exclusive, uid));
+                                                       
WebSocketHelper.sendRoom(new TextRoomMessage(room.getRoom().getId(), cl, 
RoomMessage.Type.exclusive, uid));
                                                }
                                                break;
                                        case mute:
@@ -144,7 +143,7 @@ public class RoomSidebar extends Panel {
                                                        // basic checks, will 
throw in case of missing options
                                                        obj.getBoolean("mute");
                                                        obj.put("sid", 
cl.getSid());
-                                                       
WebSocketHelper.sendRoom(new TextRoomMessage(room.getRoom().getId(), 
getUserId(), RoomMessage.Type.mute, obj.toString()));
+                                                       
WebSocketHelper.sendRoom(new TextRoomMessage(room.getRoom().getId(), cl, 
RoomMessage.Type.mute, obj.toString()));
                                                }
                                        }
                                                break;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c28ae382/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
index 39180ce..898cfb8 100644
--- 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
+++ 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
@@ -53,8 +53,8 @@ import 
org.apache.openmeetings.db.entity.room.Invitation.MessageType;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.RoomFile;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.service.room.InvitationManager;
-import org.apache.openmeetings.util.message.RoomMessage;
 import org.apache.openmeetings.webservice.error.ServiceException;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -244,7 +244,7 @@ public class RoomWebService extends BaseWebService {
 
                        roomDao.update(room, userId);
 
-                       WebSocketHelper.sendRoom(new RoomMessage(room.getId(),  
userId,  RoomMessage.Type.roomClosed));
+                       WebSocketHelper.sendRoom(new RoomMessage(room.getId(),  
getUserDao().get(userId),  RoomMessage.Type.roomClosed));
 
                        return new ServiceResult("Closed", Type.SUCCESS);
                });

Reply via email to