This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch OPENMEETINGS-1649-kurento in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/OPENMEETINGS-1649-kurento by this push: new 2390579 [OPENMEETINGS-1836] initial attempt to fix performance 2390579 is described below commit 2390579ee54d625b81e09145e4b7394b50ce73c6 Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Wed Mar 7 00:42:46 2018 +0700 [OPENMEETINGS-1836] initial attempt to fix performance --- .../openmeetings/core/util/WebSocketHelper.java | 22 ++-- .../apache/openmeetings/web/common/BasePanel.java | 11 ++ .../apache/openmeetings/web/common/MainPanel.java | 22 ++-- .../org/apache/openmeetings/web/common/main.js | 4 + .../apache/openmeetings/web/room/RoomPanel.html | 3 + .../apache/openmeetings/web/room/RoomPanel.java | 138 +++++++++++---------- .../web/room/sidebar/ClientIconsPanel.java | 19 ++- .../web/room/sidebar/RoomClientPanel.java | 10 +- .../openmeetings/web/room/sidebar/RoomSidebar.java | 4 +- .../web/room/sidebar/SelfIconsPanel.java | 11 +- .../web/room/sidebar/icon/ClientIcon.java | 33 ++++- .../web/room/sidebar/icon/KickIcon.java | 7 +- .../web/room/sidebar/icon/RefreshIcon.java | 5 +- .../web/room/sidebar/icon/SettingsIcon.java | 6 +- .../web/room/sidebar/icon/UserSpeaksIcon.java | 7 +- .../sidebar/icon/activity/CamActivityIcon.java | 5 +- .../sidebar/icon/activity/MicActivityIcon.java | 5 +- .../sidebar/icon/activity/RoomActivityIcon.java | 10 +- .../room/sidebar/icon/right/AudioRightIcon.java | 5 +- .../sidebar/icon/right/ExclusiveRightIcon.java | 5 +- .../sidebar/icon/right/ModeratorRightIcon.java | 5 +- .../sidebar/icon/right/PresenterRightIcon.java | 9 +- .../sidebar/icon/right/RemoteControlRightIcon.java | 7 +- .../web/room/sidebar/icon/right/RoomRightIcon.java | 15 ++- .../sidebar/icon/right/ScreenShareRightIcon.java | 7 +- .../room/sidebar/icon/right/VideoRightIcon.java | 7 +- .../sidebar/icon/right/WhiteboardRightIcon.java | 7 +- .../apache/openmeetings/web/room/video-manager.js | 8 +- .../java/org/apache/openmeetings/web/room/video.js | 6 +- .../openmeetings/web/user/chat/ChatPanel.java | 7 +- 30 files changed, 220 insertions(+), 190 deletions(-) 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 a8223b4..7e47050 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 @@ -250,17 +250,19 @@ public class WebSocketHelper { , BiConsumer<IWebSocketConnection, Client> consumer , Predicate<Client> check) { - Application app = (Application)getApp(); - WebSocketSettings settings = WebSocketSettings.Holder.get(app); - IWebSocketConnectionRegistry reg = settings.getConnectionRegistry(); - Executor executor = settings.getWebSocketPushMessageExecutor(); - for (Client c : func.apply(app)) { - if (check == null || check.test(c)) { - final IWebSocketConnection wc = reg.getConnection(app, c.getSessionId(), new PageIdKey(c.getPageId())); - if (wc != null && wc.isOpen()) { - executor.run(() -> consumer.accept(wc, c)); + new Thread(() -> { + Application app = (Application)getApp(); + WebSocketSettings settings = WebSocketSettings.Holder.get(app); + IWebSocketConnectionRegistry reg = settings.getConnectionRegistry(); + Executor executor = settings.getWebSocketPushMessageExecutor(); + for (Client c : func.apply(app)) { + if (check == null || check.test(c)) { + final IWebSocketConnection wc = reg.getConnection(app, c.getSessionId(), new PageIdKey(c.getPageId())); + if (wc != null && wc.isOpen()) { + executor.run(() -> consumer.accept(wc, c)); + } } } - } + }).start(); } } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java index d870642..2854de5 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java @@ -27,6 +27,8 @@ import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; +import com.github.openjson.JSONObject; + public abstract class BasePanel extends Panel { private static final long serialVersionUID = 1L; public static final String EVT_CLICK = "click"; @@ -82,4 +84,13 @@ public abstract class BasePanel extends Panel { */ public void onNewMessageClose(IPartialPageRequestHandler handler) { } + + /** + * Handler for WebSocket messages + * + * @param handler - handler to perform update + * @param o - message to process + */ + protected void process(IPartialPageRequestHandler handler, JSONObject o) { + } } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java index 18e32a3..b0ce22e 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java @@ -156,15 +156,21 @@ public class MainPanel extends Panel { } log.debug("WebSocketBehavior:: pingTimer is attached"); pingTimer.restart(handler); - } - final JSONObject m; - try { - m = new JSONObject(msg.getText()); - if (KURENTO_TYPE.equals(m.getString("type"))) { - kHandler.onMessage(uid, m); + } else { + final JSONObject m; + try { + m = new JSONObject(msg.getText()); + if (KURENTO_TYPE.equals(m.optString("type"))) { + kHandler.onMessage(uid, m); + } else { + BasePanel p = getCurrentPanel(); + if (p != null) { + p.process(handler, m); + } + } + } catch (Exception e) { + //no-op } - } catch (Exception e) { - //no-op } } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js index a6536e0..1745c0c 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js @@ -52,6 +52,10 @@ var OmUtil = (function() { self.confirmDlg = _confirmDlg; self.tmpl = _tmpl; + self.sendMessage = function(m) { + const msg = JSON.stringify(m || {}); + Wicket.WebSocket.send(msg); + }; return self; })(); Wicket.BrowserInfo.collectExtraInfo = function(info) { diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html index d6c38c8..5b66475 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html @@ -85,5 +85,8 @@ </div> </div> </div> + <script type="text/javascript"> + OmUtil.sendMessage({area: 'room', type: 'room', action: 'roomEnter'}); + </script> </wicket:panel> </html> 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 724b6f9..1f1a920 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 @@ -70,7 +70,6 @@ import org.apache.openmeetings.web.room.wb.WbPanel; import org.apache.openmeetings.web.util.ExtendedClientProperties; import org.apache.wicket.AttributeModifier; import org.apache.wicket.Component; -import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; @@ -78,7 +77,6 @@ import org.apache.wicket.event.IEvent; import org.apache.wicket.extensions.ajax.AjaxDownloadBehavior; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; -import org.apache.wicket.markup.head.OnDomReadyHeaderItem; import org.apache.wicket.markup.head.PriorityHeaderItem; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.protocol.ws.api.BaseWebSocketBehavior; @@ -116,68 +114,6 @@ public class RoomPanel extends BasePanel { private final Room r; private final boolean interview; private final WebMarkupContainer room = new WebMarkupContainer("roomContainer"); - private final AbstractDefaultAjaxBehavior roomEnter = new AbstractDefaultAjaxBehavior() { - private static final long serialVersionUID = 1L; - - @Override - protected void respond(AjaxRequestTarget target) { - WebSession ws = WebSession.get(); - ExtendedClientProperties cp = ws.getExtendedProperties(); - getBean(ConferenceLogDao.class).add( - ConferenceLog.Type.roomEnter - , getUserId(), "0", r.getId() - , cp.getRemoteAddress() - , "" + r.getId()); - Client _c = getClient(); - JSONObject options = VideoSettings.getInitJson(cp, r.getId(), _c.getSid()) - .put("uid", _c.getUid()) - .put("rights", _c.toJson(true).getJSONArray("rights")) - .put("interview", interview) - .put("showMicStatus", !r.getHiddenElements().contains(RoomElement.MicrophoneStatus)) - .put("exclusiveTitle", getString("1386")); - if (!Strings.isEmpty(r.getRedirectURL()) && (ws.getSoapLogin() != null || ws.getInvitation() != null)) { - options.put("reloadUrl", r.getRedirectURL()); - } - StringBuilder sb = new StringBuilder("Room.init(").append(options.toString(new NullStringer())).append(");") - .append(wb.getInitScript()) - .append("Room.setSize();") - .append(getQuickPollJs()); - target.appendJavaScript(sb); - WebSocketHelper.sendRoom(new RoomMessage(r.getId(), _c, RoomMessage.Type.roomEnter)); - // play video from other participants - initVideos(target); - getMainPanel().getChat().roomEnter(r, target); - if (r.isFilesOpened()) { - sidebar.setFilesActive(target); - } - if (Room.Type.presentation != r.getType()) { - List<Client> mods = cm.listByRoom(r.getId(), c -> c.hasRight(Room.Right.moderator)); - if (mods.isEmpty()) { - waitApplyModeration.open(target); - } - } - wb.update(target); - } - - private void initVideos(AjaxRequestTarget target) { - StringBuilder sb = new StringBuilder(); - boolean hasStreams = false; - Client _c = getClient(); - for (Client c: cm.listByRoom(getRoom().getId())) { - for (String uid : c.getStreams()) { - JSONObject jo = videoJson(c, c.getSid(), uid); - sb.append(String.format("VideoManager.play(%s);", jo)); - hasStreams = true; - } - } - if (interview && recordingUser == null && hasStreams && _c.hasRight(Right.moderator)) { - sb.append("WbArea.setRecStartEnabled(true);"); - } - if (!Strings.isEmpty(sb)) { - target.appendJavaScript(sb); - } - } - }; private RedirectMessageDialog roomClosed; private MessageDialog clientKicked, waitForModerator, waitApplyModeration; @@ -277,7 +213,6 @@ public class RoomPanel extends BasePanel { }; room.add(wbArea.add(wb)); } - room.add(roomEnter); room.add(sidebar = new RoomSidebar("sidebar", this)); add(roomClosed = new RedirectMessageDialog("room-closed", "1098", r.isClosed(), r.getRedirectURL())); if (r.isClosed()) { @@ -737,9 +672,6 @@ public class RoomPanel extends BasePanel { super.renderHead(response); response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(interview ? INTERVIEWWB_JS_REFERENCE : WB_JS_REFERENCE))); response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(RoomPanel.class, "room.js")))); - if (room.isVisible()) { - response.render(OnDomReadyHeaderItem.forScript(roomEnter.getCallbackScript())); - } } public void requestRight(Right right, IPartialPageRequestHandler handler) { @@ -816,6 +748,76 @@ public class RoomPanel extends BasePanel { WebSocketHelper.sendRoom(new TextRoomMessage(getRoom().getId(), getClient(), RoomMessage.Type.rightUpdated, client.getUid())); } + @Override + protected void process(IPartialPageRequestHandler handler, JSONObject o) { + if (room.isVisible() && "room".equals(o.optString("area"))) { + final String type = o.optString("type"); + if ("room".equals(type)) { + if ("roomEnter".equals(o.optString("action"))) { + onRoomEnter(handler); + } + } + } + } + + private void onRoomEnter(IPartialPageRequestHandler handler) { + WebSession ws = WebSession.get(); + ExtendedClientProperties cp = ws.getExtendedProperties(); + getBean(ConferenceLogDao.class).add( + ConferenceLog.Type.roomEnter + , getUserId(), "0", r.getId() + , cp.getRemoteAddress() + , "" + r.getId()); + Client _c = getClient(); + JSONObject options = VideoSettings.getInitJson(cp, r.getId(), _c.getSid()) + .put("uid", _c.getUid()) + .put("rights", _c.toJson(true).getJSONArray("rights")) + .put("interview", interview) + .put("showMicStatus", !r.getHiddenElements().contains(RoomElement.MicrophoneStatus)) + .put("exclusiveTitle", getString("1386")); + if (!Strings.isEmpty(r.getRedirectURL()) && (ws.getSoapLogin() != null || ws.getInvitation() != null)) { + options.put("reloadUrl", r.getRedirectURL()); + } + StringBuilder sb = new StringBuilder("Room.init(").append(options.toString(new NullStringer())).append(");") + .append(wb.getInitScript()) + .append("Room.setSize();") + .append(getQuickPollJs()); + handler.appendJavaScript(sb); + WebSocketHelper.sendRoom(new RoomMessage(r.getId(), _c, RoomMessage.Type.roomEnter)); + // play video from other participants + initVideos(handler); + getMainPanel().getChat().roomEnter(r, handler); + if (r.isFilesOpened()) { + sidebar.setFilesActive(handler); + } + if (Room.Type.presentation != r.getType()) { + List<Client> mods = cm.listByRoom(r.getId(), c -> c.hasRight(Room.Right.moderator)); + if (mods.isEmpty()) { + waitApplyModeration.open(handler); + } + } + wb.update(handler); + } + + private void initVideos(IPartialPageRequestHandler handler) { + StringBuilder sb = new StringBuilder(); + boolean hasStreams = false; + Client _c = getClient(); + for (Client c: cm.listByRoom(getRoom().getId())) { + for (String uid : c.getStreams()) { + JSONObject jo = videoJson(c, c.getSid(), uid); + sb.append(String.format("VideoManager.play(%s);", jo)); + hasStreams = true; + } + } + if (interview && recordingUser == null && hasStreams && _c.hasRight(Right.moderator)) { + sb.append("WbArea.setRecStartEnabled(true);"); + } + if (!Strings.isEmpty(sb)) { + handler.appendJavaScript(sb); + } + } + public Room getRoom() { return r; } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ClientIconsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ClientIconsPanel.java index 8cb8633..00779d8 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ClientIconsPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ClientIconsPanel.java @@ -18,7 +18,6 @@ */ package org.apache.openmeetings.web.room.sidebar; -import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.sidebar.icon.right.AudioRightIcon; import org.apache.openmeetings.web.room.sidebar.icon.right.ExclusiveRightIcon; import org.apache.openmeetings.web.room.sidebar.icon.right.ModeratorRightIcon; @@ -41,18 +40,18 @@ public class ClientIconsPanel extends Panel { private final VideoRightIcon rightVideo; private final ExclusiveRightIcon rightExclsv; - public ClientIconsPanel(String id, String uid, RoomPanel room) { + public ClientIconsPanel(String id, String uid) { super(id); setOutputMarkupId(true); setOutputMarkupPlaceholderTag(true); - add(rightModer = new ModeratorRightIcon("right-moder", uid, room)); - add(rightPresenter = new PresenterRightIcon("right-presenter", uid, room)); - add(rightWb = new WhiteboardRightIcon("right-wb", uid, room)); - add(rightScreen = new ScreenShareRightIcon("right-screen-share", uid, room)); - add(rightRemote = new RemoteControlRightIcon("right-remote-control", uid, room)); - add(rightAudio = new AudioRightIcon("right-audio", uid, room)); - add(rightVideo = new VideoRightIcon("right-video", uid, room)); - add(rightExclsv = new ExclusiveRightIcon("right-exclsv", uid, room)); + add(rightModer = new ModeratorRightIcon("right-moder", uid)); + add(rightPresenter = new PresenterRightIcon("right-presenter", uid)); + add(rightWb = new WhiteboardRightIcon("right-wb", uid)); + add(rightScreen = new ScreenShareRightIcon("right-screen-share", uid)); + add(rightRemote = new RemoteControlRightIcon("right-remote-control", uid)); + add(rightAudio = new AudioRightIcon("right-audio", uid)); + add(rightVideo = new VideoRightIcon("right-video", uid)); + add(rightExclsv = new ExclusiveRightIcon("right-exclsv", uid)); } @Override diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java index 7b586a6..9bcb491 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java @@ -51,20 +51,20 @@ public class RoomClientPanel extends Panel { item.setMarkupId(String.format("user%s", c.getUid())); item.add(AttributeModifier.append("style", String.format("background-image: url(profile/%s);", c.getUserId()))); item.add(AttributeModifier.append("data-userid", c.getUserId())); - add(new RefreshIcon("refresh", uid, room)); + add(new RefreshIcon("refresh", uid)); final String name = getName(c); add(new Label("name", name)); - add(new UserSpeaksIcon("user-speaks", uid, room)); + add(new UserSpeaksIcon("user-speaks", uid)); item.add(AttributeModifier.replace(ATTR_TITLE, name)); WebMarkupContainer actions = new WebMarkupContainer("actions"); - actions.add(new KickIcon("kick", uid, room)); + actions.add(new KickIcon("kick", uid)); actions.add(new WebMarkupContainer("privateChat").setVisible(!room.getRoom().isHidden(RoomElement.Chat) && !getUserId().equals(c.getUserId()))); actions.setVisible(room.getClient().hasRight(Right.moderator)); if (c.getUid().equals(room.getClient().getUid())) { - actions.add(new SelfIconsPanel("icons", uid, room, false)); + actions.add(new SelfIconsPanel("icons", uid, false)); item.add(AttributeModifier.append(ATTR_CLASS, "current")); } else { - actions.add(new ClientIconsPanel("icons", uid, room)); + actions.add(new ClientIconsPanel("icons", uid)); } add(actions); } 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 d59018b..3559413 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 @@ -237,7 +237,7 @@ public class RoomSidebar extends Panel { public RoomSidebar(String id, final RoomPanel room) { super(id); this.room = room; - selfRights = new SelfIconsPanel("icons", room.getUid(), room, true); + selfRights = new SelfIconsPanel("icons", room.getUid(), true); } @Override @@ -288,7 +288,7 @@ public class RoomSidebar extends Panel { } private void updateShowFiles(IPartialPageRequestHandler handler) { - if (room.isInterview()) { + if (room.isInterview() || room.getRoom() == null) { return; } showFiles = !room.getRoom().isHidden(RoomElement.Files) && room.getClient().hasRight(Right.presenter); diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.java index cadcfd3..daea549 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.java @@ -18,7 +18,6 @@ */ package org.apache.openmeetings.web.room.sidebar; -import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.sidebar.icon.SettingsIcon; import org.apache.openmeetings.web.room.sidebar.icon.activity.CamActivityIcon; import org.apache.openmeetings.web.room.sidebar.icon.activity.MicActivityIcon; @@ -31,12 +30,12 @@ public class SelfIconsPanel extends ClientIconsPanel { private final MicActivityIcon mic; private final boolean header; - public SelfIconsPanel(String id, String uid, RoomPanel room, boolean header) { - super(id, uid, room); + public SelfIconsPanel(String id, String uid, boolean header) { + super(id, uid); this.header = header; - add(settings = new SettingsIcon("settings", uid, room) - , cam = new CamActivityIcon("cam", uid, room) - , mic = new MicActivityIcon("mic", uid, room)); + add(settings = new SettingsIcon("settings", uid) + , cam = new CamActivityIcon("cam", uid) + , mic = new MicActivityIcon("mic", uid)); } @Override diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java index 0dd3191..5d7637f 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java @@ -26,6 +26,8 @@ import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT; import static org.apache.openmeetings.web.util.CallbackFunctionHelper.addOnClick; import org.apache.openmeetings.db.entity.basic.Client; +import org.apache.openmeetings.db.entity.room.Room; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.ClientManager; import org.apache.openmeetings.web.pages.BasePage; import org.apache.openmeetings.web.room.RoomPanel; @@ -37,17 +39,16 @@ public abstract class ClientIcon extends WebMarkupContainer { private static final long serialVersionUID = 1L; protected static final String ICON_CLASS = "ui-icon "; protected static final String CLS_CLICKABLE = "clickable "; - protected final RoomPanel room; protected final boolean self; protected final String uid; protected String mainCssClass; protected final StringBuilder cssClass = new StringBuilder(ICON_CLASS); - public ClientIcon(String id, String uid, RoomPanel room) { + public ClientIcon(String id, String uid) { super(id); - this.room = room; this.uid = uid; - self = room.getClient().getUid().equals(uid); + Client rc = getRoomClient(); + self = rc == null ? false : rc.getUid().equals(uid); setOutputMarkupId(true); setOutputMarkupPlaceholderTag(true); } @@ -93,4 +94,28 @@ public abstract class ClientIcon extends WebMarkupContainer { protected Client getClient() { return getBean(ClientManager.class).get(uid); } + + protected boolean hasRight(Right right) { + Client c = getClient(); + return c == null ? false : c.hasRight(right); + } + + protected boolean roomHasRight(Right right) { + Client rc = getRoomClient(); + return rc == null ? false : rc.hasRight(right); + } + + protected Client getRoomClient() { + RoomPanel rp = getRoomPanel(); + return rp == null ? null : rp.getClient(); + } + + protected RoomPanel getRoomPanel() { + return findParent(RoomPanel.class); + } + + protected Room getRoom() { + RoomPanel rp = getRoomPanel(); + return rp == null ? null : rp.getRoom(); + } } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java index 74ef4dc..94a5b44 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java @@ -21,14 +21,13 @@ package org.apache.openmeetings.web.room.sidebar.icon; import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_ACTION; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.RoomPanel.Action; public class KickIcon extends ClientIcon { private static final long serialVersionUID = 1L; - public KickIcon(String id, String uid, RoomPanel room) { - super(id, uid, room); + public KickIcon(String id, String uid) { + super(id, uid); mainCssClass = "kick "; } @@ -39,7 +38,7 @@ public class KickIcon extends ClientIcon { @Override protected boolean isClickable() { - return !self && room.getClient().hasRight(Right.moderator) && !getClient().hasRight(Right.superModerator); + return !self && roomHasRight(Right.moderator) && !hasRight(Right.superModerator); } @Override diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java index 66e5c3d..13a4b06 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java @@ -24,13 +24,12 @@ import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT; import org.apache.openmeetings.db.entity.basic.Client; import org.apache.openmeetings.db.entity.basic.Client.Activity; import org.apache.openmeetings.web.pages.BasePage; -import org.apache.openmeetings.web.room.RoomPanel; public class RefreshIcon extends ClientIcon { private static final long serialVersionUID = 1L; - public RefreshIcon(String id, String uid, RoomPanel room) { - super(id, uid, room); + public RefreshIcon(String id, String uid) { + super(id, uid); mainCssClass = "restart "; } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java index d19d81f..87219e9 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java @@ -18,13 +18,11 @@ */ package org.apache.openmeetings.web.room.sidebar.icon; -import org.apache.openmeetings.web.room.RoomPanel; - public class SettingsIcon extends ClientIcon { private static final long serialVersionUID = 1L; - public SettingsIcon(String id, String uid, RoomPanel room) { - super(id, uid, room); + public SettingsIcon(String id, String uid) { + super(id, uid); mainCssClass = "settings "; } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/UserSpeaksIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/UserSpeaksIcon.java index 9c4aa74..52cdd92 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/UserSpeaksIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/UserSpeaksIcon.java @@ -20,18 +20,17 @@ package org.apache.openmeetings.web.room.sidebar.icon; import org.apache.openmeetings.db.entity.basic.Client.Activity; import org.apache.openmeetings.db.entity.room.Room; -import org.apache.openmeetings.web.room.RoomPanel; public class UserSpeaksIcon extends ClientIcon { private static final long serialVersionUID = 1L; - public UserSpeaksIcon(String id, String uid, RoomPanel room) { - super(id, uid, room); + public UserSpeaksIcon(String id, String uid) { + super(id, uid); mainCssClass = "audio-activity "; } private boolean isActive() { - return getClient().hasActivity(Activity.broadcastA) && room.getClient().hasRight(Room.Right.exclusive); + return getClient().hasActivity(Activity.broadcastA) && roomHasRight(Room.Right.exclusive); } @Override diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java index 2f1f5fb..029bee5 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java @@ -21,13 +21,12 @@ package org.apache.openmeetings.web.room.sidebar.icon.activity; import org.apache.openmeetings.db.entity.basic.Client; import org.apache.openmeetings.db.entity.basic.Client.Activity; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; public class CamActivityIcon extends RoomActivityIcon { private static final long serialVersionUID = 1L; - public CamActivityIcon(String id, String uid, RoomPanel room) { - super(id, uid, Activity.broadcastV, room); + public CamActivityIcon(String id, String uid) { + super(id, uid, Activity.broadcastV); mainCssClass = "activity cam "; } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java index 6ae2cbb..890749d 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java @@ -20,13 +20,12 @@ package org.apache.openmeetings.web.room.sidebar.icon.activity; import org.apache.openmeetings.db.entity.basic.Client.Activity; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; public class MicActivityIcon extends RoomActivityIcon { private static final long serialVersionUID = 1L; - public MicActivityIcon(String id, String uid, RoomPanel room) { - super(id, uid, Activity.broadcastA, room); + public MicActivityIcon(String id, String uid) { + super(id, uid, Activity.broadcastA); mainCssClass = "activity mic bumper "; } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java index e8b772e..c5815e1 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java @@ -24,7 +24,6 @@ import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.activityAllow import org.apache.openmeetings.db.entity.basic.Client.Activity; import org.apache.openmeetings.db.entity.basic.Client.Pod; import org.apache.openmeetings.db.entity.room.Room; -import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.sidebar.icon.ClientIcon; public abstract class RoomActivityIcon extends ClientIcon { @@ -33,8 +32,8 @@ public abstract class RoomActivityIcon extends ClientIcon { private static final String CLS_DISABLED = "disabled"; protected final Activity activity; - public RoomActivityIcon(String id, String uid, Activity activity, RoomPanel room) { - super(id, uid, room); + public RoomActivityIcon(String id, String uid, Activity activity) { + super(id, uid); this.activity = activity; } @@ -44,8 +43,9 @@ public abstract class RoomActivityIcon extends ClientIcon { } protected boolean visible() { - return Room.Type.interview != room.getRoom().getType() - && activityAllowed(getClient(), activity, room.getRoom()); + Room r = getRoom(); + return Room.Type.interview != r.getType() + && activityAllowed(getClient(), activity, r); } @Override diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java index f34d17c..9af1cad 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java @@ -19,13 +19,12 @@ package org.apache.openmeetings.web.room.sidebar.icon.right; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; public class AudioRightIcon extends RoomRightIcon { private static final long serialVersionUID = 1L; - public AudioRightIcon(String id, String uid, RoomPanel room) { - super(id, uid, Right.audio, room); + public AudioRightIcon(String id, String uid) { + super(id, uid, Right.audio); mainCssClass = "right audio bumper "; } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java index 02cab2c..25ef75b 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java @@ -19,13 +19,12 @@ package org.apache.openmeetings.web.room.sidebar.icon.right; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; public class ExclusiveRightIcon extends RoomRightIcon { private static final long serialVersionUID = 1L; - public ExclusiveRightIcon(String id, String uid, RoomPanel room) { - super(id, uid, Right.exclusive, room); + public ExclusiveRightIcon(String id, String uid) { + super(id, uid, Right.exclusive); mainCssClass = "exclsv-audio "; } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java index 29f7fad..a3b4956 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java @@ -19,13 +19,12 @@ package org.apache.openmeetings.web.room.sidebar.icon.right; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; public class ModeratorRightIcon extends RoomRightIcon { private static final long serialVersionUID = 1L; - public ModeratorRightIcon(String id, String uid, RoomPanel room) { - super(id, uid, Right.moderator, room); + public ModeratorRightIcon(String id, String uid) { + super(id, uid, Right.moderator); mainCssClass = "right moderator bumper "; } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java index 748aa36..811a305 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java @@ -21,20 +21,19 @@ package org.apache.openmeetings.web.room.sidebar.icon.right; 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.web.room.RoomPanel; public class PresenterRightIcon extends RoomRightIcon { private static final long serialVersionUID = 1L; - public PresenterRightIcon(String id, String uid, RoomPanel room) { - super(id, uid, Right.presenter, room); + public PresenterRightIcon(String id, String uid) { + super(id, uid, Right.presenter); mainCssClass = "right presenter bumper "; } @Override protected String getTitle() { String title; - if (getClient().hasRight(right)) { + if (hasRight(right)) { title = self ? "right.presenter.allowed.self" : "right.presenter.remove"; } else { title = self ? "right.presenter.request.self" : "right.presenter.request"; @@ -44,7 +43,7 @@ public class PresenterRightIcon extends RoomRightIcon { @Override protected boolean visible() { - Room r = room.getRoom(); + Room r = getRoom(); return Room.Type.interview != r.getType() && !r.isHidden(RoomElement.Whiteboard) && super.visible(); } } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java index 978d9a5..44c21fa 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java @@ -19,13 +19,12 @@ package org.apache.openmeetings.web.room.sidebar.icon.right; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; public class RemoteControlRightIcon extends RoomRightIcon { private static final long serialVersionUID = 1L; - public RemoteControlRightIcon(String id, String uid, RoomPanel room) { - super(id, uid, Right.remoteControl, room); + public RemoteControlRightIcon(String id, String uid) { + super(id, uid, Right.remoteControl); mainCssClass = "right remote-control bumper "; } @@ -36,6 +35,6 @@ public class RemoteControlRightIcon extends RoomRightIcon { @Override protected boolean visible() { - return room.screenShareAllowed() && super.visible(); + return getRoomPanel().screenShareAllowed() && super.visible(); } } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java index d0e2dc2..473fd2d 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java @@ -21,7 +21,6 @@ package org.apache.openmeetings.web.room.sidebar.icon.right; import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_TOGGLE_RIGHT; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.sidebar.icon.ClientIcon; public abstract class RoomRightIcon extends ClientIcon { @@ -29,18 +28,18 @@ public abstract class RoomRightIcon extends ClientIcon { private static final String CLS_GRANTED = "granted "; protected final Right right; - public RoomRightIcon(String id, String uid, Right right, RoomPanel room) { - super(id, uid, room); + public RoomRightIcon(String id, String uid, Right right) { + super(id, uid); this.right = right; } @Override protected boolean isClickable() { - return (self && !hasRight()) || !self && room.getClient().hasRight(Right.moderator); + return (self && !hasRight()) || !self && hasRight(Right.moderator); } protected boolean hasRight() { - return getClient().hasRight(right); + return hasRight(right); } @Override @@ -49,9 +48,9 @@ public abstract class RoomRightIcon extends ClientIcon { } protected boolean visible() { - return !getClient().hasRight(Right.superModerator) && ( - (self && !hasRight() && room.getRoom().isAllowUserQuestions()) - || (!self && room.getClient().hasRight(Right.moderator)) + return !hasRight(Right.superModerator) && ( + (self && !hasRight() && getRoom().isAllowUserQuestions()) + || (!self && hasRight(Right.moderator)) ); } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java index 90fffe7..7cdf982 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java @@ -19,13 +19,12 @@ package org.apache.openmeetings.web.room.sidebar.icon.right; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; public class ScreenShareRightIcon extends RoomRightIcon { private static final long serialVersionUID = 1L; - public ScreenShareRightIcon(String id, String uid, RoomPanel room) { - super(id, uid, Right.share, room); + public ScreenShareRightIcon(String id, String uid) { + super(id, uid, Right.share); mainCssClass = "right screen-share "; } @@ -36,6 +35,6 @@ public class ScreenShareRightIcon extends RoomRightIcon { @Override protected boolean visible() { - return room.screenShareAllowed() && super.visible(); + return getRoomPanel().screenShareAllowed() && super.visible(); } } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java index 7b78592..c63c687 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java @@ -19,13 +19,12 @@ package org.apache.openmeetings.web.room.sidebar.icon.right; import org.apache.openmeetings.db.entity.room.Room.Right; -import org.apache.openmeetings.web.room.RoomPanel; public class VideoRightIcon extends RoomRightIcon { private static final long serialVersionUID = 1L; - public VideoRightIcon(String id, String uid, RoomPanel room) { - super(id, uid, Right.video, room); + public VideoRightIcon(String id, String uid) { + super(id, uid, Right.video); mainCssClass = "right camera "; } @@ -36,6 +35,6 @@ public class VideoRightIcon extends RoomRightIcon { @Override protected boolean visible() { - return !room.getRoom().isAudioOnly() && super.visible(); + return !getRoom().isAudioOnly() && super.visible(); } } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java index 4422264..a8e946b 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java @@ -22,13 +22,12 @@ import org.apache.openmeetings.db.entity.basic.Client; import org.apache.openmeetings.db.entity.room.Room; import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.db.entity.room.Room.RoomElement; -import org.apache.openmeetings.web.room.RoomPanel; public class WhiteboardRightIcon extends RoomRightIcon { private static final long serialVersionUID = 1L; - public WhiteboardRightIcon(String id, String uid, RoomPanel room) { - super(id, uid, Right.whiteBoard, room); + public WhiteboardRightIcon(String id, String uid) { + super(id, uid, Right.whiteBoard); mainCssClass = "right wb bumper "; } @@ -51,7 +50,7 @@ public class WhiteboardRightIcon extends RoomRightIcon { @Override protected boolean visible() { - Room r = room.getRoom(); + Room r = getRoom(); return Room.Type.interview != r.getType() && !r.isHidden(RoomElement.Whiteboard) && super.visible(); } } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js index 25e8410..fd05ab1 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js @@ -129,7 +129,7 @@ var VideoManager = (function() { , av = VideoUtil.hasAudio(cl) || VideoUtil.hasVideo(cl) , v = $('#' + _id); if (av && v.length !== 1 && !!cl.self) { - self.sendMessage({ + OmUtil.sendMessage({ id: 'joinRoom' //TODO stream uid , type: 'kurento' }); @@ -273,12 +273,6 @@ var VideoManager = (function() { self.mute = _mute; self.clickExclusive = _clickExclusive; self.exclusive = _exclusive; - self.sendMessage = function(m) { - m.type = 'kurento'; - const msg = JSON.stringify(m); - console.log('Senging message: ' + msg); - Wicket.WebSocket.send(msg); - }; self.destroy = function() { Wicket.Event.unsubscribe("/websocket/message", _onWsMessage); } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js index 395ac81..af9bba7 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js @@ -277,8 +277,9 @@ var Video = (function() { self.getPeer = function() { return rtcPeer; }; self.onIceCandidate = function(candidate, wp) { console.log("Local candidate" + JSON.stringify(candidate)); - VideoManager.sendMessage({ + OmUtil.sendMessage({ id: 'onIceCandidate' + , type: 'kurento' , candidate: candidate , uid: c.uid }); @@ -288,8 +289,9 @@ var Video = (function() { return console.error("sdp offer error"); } console.log('Invoking SDP offer callback function'); - VideoManager.sendMessage({ + OmUtil.sendMessage({ id : "receiveVideoFrom" + , type: 'kurento' , sender: c.uid , sdpOffer: offerSdp }); diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java index a1b4683..98eecd5 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java @@ -22,7 +22,6 @@ import static org.apache.openmeetings.core.util.WebSocketHelper.ID_ROOM_PREFIX; import org.apache.openmeetings.db.entity.room.Room; import org.apache.openmeetings.db.entity.room.Room.RoomElement; -import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; import org.apache.wicket.markup.head.IHeaderResponse; @@ -42,9 +41,9 @@ public class ChatPanel extends Panel { add(chat = new Chat("chat")); } - public void roomEnter(Room r, AjaxRequestTarget target) { + public void roomEnter(Room r, IPartialPageRequestHandler handler) { if (r.isHidden(RoomElement.Chat)) { - toggle(target, false); + toggle(handler, false); return; } StringBuilder sb = new StringBuilder("$(function() {"); @@ -56,7 +55,7 @@ public class ChatPanel extends Panel { .append("Chat.").append(r.isChatOpened() ? "setOpened" : "close").append("();"); chat.processGlobal(sb); sb.append("});"); - target.appendJavaScript(sb); + handler.appendJavaScript(sb); } public void roomExit(Room r, IPartialPageRequestHandler handler) { -- To stop receiving notification emails like this one, please contact solo...@apache.org.