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();
});
}