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 2018/07/15 09:35:45 UTC

[openmeetings] 06/07: [OPENMEETINGS-1142] client merge is improved, pod resize is improved

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit eec89c5f9f2c2877fd943c205fc3c84b89ac6321
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Jun 28 16:23:56 2018 +0700

    [OPENMEETINGS-1142] client merge is improved, pod resize is improved
---
 .../openmeetings/db/entity/basic/Client.java       | 31 +++++++++++++---------
 .../apache/openmeetings/web/room/RoomPanel.java    |  4 +--
 .../openmeetings/web/room/wb/interview-area.js     |  8 +++---
 3 files changed, 25 insertions(+), 18 deletions(-)

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 4da9b6c..1b95d75 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
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
+import org.apache.mina.util.ConcurrentHashSet;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.Right;
@@ -64,9 +65,9 @@ public class Client implements IClient, IWsClient {
 	private final String uid;
 	private final String sid;
 	private String remoteAddress;
-	private final Set<Right> rights = new HashSet<>();
-	private final Set<Activity> activities = new HashSet<>();
-	private final Set<String> streams = new HashSet<>();
+	private final Set<Right> rights = new ConcurrentHashSet<>();
+	private final Set<Activity> activities = new ConcurrentHashSet<>();
+	private final Set<String> streams = new ConcurrentHashSet<>();
 	private final Date connectedSince;
 	private Pod pod;
 	private int cam = -1;
@@ -441,15 +442,21 @@ public class Client implements IClient, IWsClient {
 	public void merge(Client c) {
 		user = c.user;
 		room = c.room;
-		Set<Right> rr = new HashSet<>(c.rights);
-		rights.clear();
-		rights.addAll(rr);
-		Set<Activity> aa = new HashSet<>(c.activities);
-		activities.clear();
-		activities.addAll(aa);
-		Set<String> ss = new HashSet<>(c.streams);
-		streams.clear();
-		streams.addAll(ss);
+		synchronized (rights) {
+			Set<Right> rr = new HashSet<>(c.rights);
+			rights.clear();
+			rights.addAll(rr);
+		}
+		synchronized (activities) {
+			Set<Activity> aa = new HashSet<>(c.activities);
+			activities.clear();
+			activities.addAll(aa);
+		}
+		synchronized (streams) {
+			Set<String> ss = new HashSet<>(c.streams);
+			streams.clear();
+			streams.addAll(ss);
+		}
 		pod = c.pod;
 		cam = c.cam;
 		mic = c.mic;
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 bf41dc0..a4791b0 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
@@ -643,9 +643,9 @@ public class RoomPanel extends BasePanel {
 						break;
 					}
 				}
-				handler.appendJavaScript(String.format("WbArea.setRecStarted(false);WbArea.setRecEnabled(%s);", hasStreams));
+				handler.appendJavaScript(String.format("if (typeof(WbArea) === 'object') {WbArea.setRecStarted(false);WbArea.setRecEnabled(%s);}", hasStreams));
 			} else {
-				handler.appendJavaScript("WbArea.setRecStarted(true);");
+				handler.appendJavaScript("if (typeof(WbArea) === 'object') {WbArea.setRecStarted(true);}");
 			}
 		}
 	}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
index 9d5458d..b37c7a8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
@@ -28,13 +28,13 @@ var InterviewWbArea = function() {
 				if (cvid.length === 0) {
 					vid.dialog('option', 'appendTo', big);
 					ui.draggable.remove();
-					_resizePod(big);
 				} else {
 					cvid.dialog('option', 'appendTo', ui.draggable);
 					vid.dialog('option', 'appendTo', big);
-					_resizePod();
 				}
+				pArea.find('.ui-sortable-placeholder.pod').hide();
 				_updateAreaClass();
+				_resizePod();
 			}
 		});
 		pArea.sortable({
@@ -51,8 +51,8 @@ var InterviewWbArea = function() {
 		if (!_inited) return;
 		role = _role;
 	}
-	function _resizePod(el) {
-		(el || pArea).find('.ui-dialog-content').each(function() {
+	function _resizePod() {
+		pArea.find('.ui-dialog-content').each(function() {
 			$(this).data().resizePod();
 		});
 	}