in openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java [420:537]
public void onEvent(IEvent<?> event) {
if (!jsInited) {
return;
}
Client curClient = getClient();
if (curClient != null && event.getPayload() instanceof WebSocketPushPayload) {
WebSocketPushPayload wsEvent = (WebSocketPushPayload) event.getPayload();
if (wsEvent.getMessage() instanceof RoomMessage m) {
IPartialPageRequestHandler handler = wsEvent.getHandler();
switch (m.getType()) {
case POLL_CREATED:
menu.updatePoll(handler, m.getUserId());
break;
case POLL_UPDATED:
menu.updatePoll(handler, null);
break;
case RECORDING_TOGGLED:
menu.update(handler);
updateInterviewRecordingButtons(handler);
break;
case SHARING_TOGGLED:
menu.update(handler);
break;
case RIGHT_UPDATED:
onRightUpdated(curClient, (TextRoomMessage)m, handler);
break;
case ROOM_ENTER:
onRoomEnter(curClient, (TextRoomMessage)m, handler);
break;
case ROOM_EXIT:
onRoomExit((TextRoomMessage)m, handler);
break;
case ROOM_CLOSED:
handler.add(room.setVisible(false));
roomClosed.show(handler);
break;
case REQUEST_RIGHT_MODERATOR:
sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.REQ_RIGHT_MODERATOR), handler);
break;
case REQUEST_RIGHT_PRESENTER:
sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.REQ_RIGHT_PRESENTER), handler);
break;
case REQUEST_RIGHT_WB:
sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.REQ_RIGHT_WB), handler);
break;
case REQUEST_RIGHT_SHARE:
sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.REQ_RIGHT_SHARE), handler);
break;
case REQUEST_RIGHT_REMOTE:
sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.REQ_RIGHT_REMOTE), handler);
break;
case REQUEST_RIGHT_A:
sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.REQ_RIGHT_A), handler);
break;
case REQUEST_RIGHT_AV:
sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.REQ_RIGHT_AV), handler);
break;
case REQUEST_RIGHT_MUTE_OTHERS:
sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.REQ_RIGHT_MUTE_OTHERS), handler);
break;
case ACTIVITY_REMOVE:
sidebar.removeActivity(((TextRoomMessage)m).getText(), handler);
break;
case HAVE_QUESTION:
if (curClient.hasRight(Room.Right.MODERATOR) || getUserId().equals(m.getUserId())) {
sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.REQ_RIGHT_HAVE_QUESTION), handler);
}
break;
case KICK:
onKick(curClient, (TextRoomMessage)m, handler);
break;
case MUTE:
onMute(curClient, (TextRoomMessage)m, handler);
break;
case MUTE_OTHERS:
onMuteOthers((TextRoomMessage)m, handler);
break;
case QUICK_POLL_UPDATED:
menu.update(handler);
handler.appendJavaScript(getQuickPollJs());
break;
case KURENTO_STATUS:
menu.update(handler);
break;
case WB_RELOAD:
if (Room.Type.INTERVIEW != r.getType()) {
wb.reloadWb(handler);
}
break;
case MODERATOR_IN_ROOM:
if (!r.isModerated() || !r.isWaitModerator()) {
log.warn("Something weird: `moderatorInRoom` in wrong room {}", r);
} else if (!curClient.hasRight(Room.Right.MODERATOR)) {
boolean moderInRoom = Boolean.TRUE.equals(Boolean.valueOf(((TextRoomMessage)m).getText()));
log.warn("!! moderatorInRoom: {}", moderInRoom);
if (room.isVisible() != moderInRoom) {
handler.add(room.setVisible(moderInRoom));
getMainPanel().getChat().toggle(handler, moderInRoom && !r.isHidden(RoomElement.CHAT));
if (room.isVisible()) {
handler.appendJavaScript(roomEnter.getCallbackScript());
handler.add(waitModerator.setVisible(false));
} else {
handler.add(waitModerator.setVisible(true));
}
}
}
break;
case WB_PUT_FILE:
onWbPutFile((TextRoomMessage)m);
break;
case FILE_TREE_UPDATE:
onFileTreeUpdate(handler);
break;
}
}
}
super.onEvent(event);
}