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 2016/04/21 10:21:20 UTC
svn commit: r1740251 [2/2] - in /openmeetings/application:
branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/
branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/
branches/3.2.x/openm...
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java?rev=1740251&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java Thu Apr 21 08:21:20 2016
@@ -0,0 +1,71 @@
+/*
+ * 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.web.room.sidebar;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.behavior.AttributeAppender;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.panel.Panel;
+
+public class RoomClientPanel extends Panel {
+ private static final long serialVersionUID = 1L;
+
+ public RoomClientPanel(String id, ListItem<Client> item, final RoomPanel room) {
+ super(id);
+ setRenderBodyOnly(true);
+ Client c = item.getModelObject();
+ item.setMarkupId(String.format("user%s", c.getUid()));
+ String status = null, statusTitle = null;
+ if (c.hasRight(Right.moderator)) {
+ status = "status-mod";
+ statusTitle = "679";
+ } else if (c.hasRight(Right.whiteBoard)) {
+ status = "status-wb";
+ statusTitle = "678";
+ } else {
+ status = "status-user";
+ statusTitle = "677";
+ }
+ add(new WebMarkupContainer("status").add(AttributeAppender.append("class", status), AttributeAppender.replace("title", getString(statusTitle))));
+ User u = getBean(UserDao.class).get(c.getUserId());
+ add(new Label("name", u.getFirstname() + " " + u.getLastname()));
+ add(AttributeAppender.append("data-userid", c.getUserId()));
+ WebMarkupContainer actions = new WebMarkupContainer("actions");
+ actions.add(new WebMarkupContainer("privateChat").setVisible(!room.getRoom().isHidden(RoomElement.Chat) && !getUserId().equals(c.getUserId())));
+ if (room.getClient() != null) {
+ actions.setVisible(room.getClient().hasRight(Right.moderator));
+ if (c.getUid().equals(room.getClient().getUid())) {
+ item.add(AttributeAppender.append("class", "current"));
+ }
+ } else {
+ actions.setVisible(false);
+ }
+ add(actions);
+ }
+}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html?rev=1740251&r1=1740250&r2=1740251&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html Thu Apr 21 08:21:20 2016
@@ -25,23 +25,7 @@
<wicket:fragment wicket:id="user-panel">
<div class="user list">
<div wicket:id="user" class="user ui-corner-all ui-widget-content">
- <span wicket:id="status" class="ui-icon align-right"></span>
- <span class="ui-icon align-right clickable restart" wicket:message="title:610"></span>
- <div wicket:id="name" class="user name"></div>
- <span class="ui-icon align-right clickable audio-activity" wicket:message="title:372"></span>
- <div wicket:id="actions" class="user actions">
- <span class="ui-icon align-left clickable moderator-right" wicket:message="title:676"></span>
- <span class="ui-icon align-left clickable wb-right" wicket:message="title:611"></span>
- <span class="ui-icon align-left clickable screen-share-right" wicket:message="title:1067"></span>
- <span class="ui-icon align-left clickable remote-control-right" wicket:message="title:1078"></span>
- <span class="ui-icon align-left clickable audio-right" wicket:message="title:1604"></span>
- <span class="ui-icon align-left clickable camera-right" wicket:message="title:683"></span>
- <span class="ui-icon align-left clickable global-mute" wicket:message="title:1384"></span>
- <span class="ui-icon align-left clickable exclsv-audio" wicket:message="title:1424"></span>
- <span class="ui-icon align-left clickable kick" wicket:message="title:1213"></span>
- <span wicket:id="privateChat" class="ui-icon align-right clickable private-chat" wicket:message="title:1493" onclick="startPrivateChat($(this));"></span>
- <div class="clear"></div>
- </div>
+ <div wicket:id="user"></div>
</div>
</div>
</wicket:fragment>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1740251&r1=1740250&r2=1740251&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java Thu Apr 21 08:21:20 2016
@@ -18,26 +18,18 @@
*/
package org.apache.openmeetings.web.room.sidebar;
-import static org.apache.openmeetings.web.app.Application.getBean;
import static org.apache.openmeetings.web.app.Application.getRoomUsers;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.List;
-import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.room.Room.RoomElement;
-import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.web.app.Client;
import org.apache.openmeetings.web.app.Client.Right;
import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Fragment;
@@ -56,38 +48,12 @@ public class RoomSidebar extends Panel {
private final UploadDialog upload;
private final RoomFilePanel roomFiles;
private boolean showFiles;
- private final ListView<RoomClient> users = new ListView<RoomClient>("user", new ArrayList<RoomClient>()) {
+ private final ListView<Client> users = new ListView<Client>("user", new ArrayList<Client>()) {
private static final long serialVersionUID = 1L;
@Override
- protected void populateItem(ListItem<RoomClient> item) {
- RoomClient rc = item.getModelObject();
- item.setMarkupId(String.format("user%s", rc.c.getUid()));
- String status = null, statusTitle = null;
- if (rc.c.hasRight(Right.moderator)) {
- status = "status-mod";
- statusTitle = "679";
- } else if (rc.c.hasRight(Right.whiteBoard)) {
- status = "status-wb";
- statusTitle = "678";
- } else {
- status = "status-user";
- statusTitle = "677";
- }
- item.add(new WebMarkupContainer("status").add(AttributeAppender.append("class", status), AttributeAppender.replace("title", getString(statusTitle))));
- item.add(new Label("name", rc.u.getFirstname() + " " + rc.u.getLastname()));
- item.add(AttributeAppender.append("data-userid", rc.u.getId()));
- WebMarkupContainer actions = new WebMarkupContainer("actions");
- actions.add(new WebMarkupContainer("privateChat").setVisible(!room.getRoom().isHidden(RoomElement.Chat) && !getUserId().equals(rc.u.getId())));
- if (room.getClient() != null) {
- actions.setVisible(room.getClient().hasRight(Right.moderator));
- if (rc.c.getUid().equals(room.getClient().getUid())) {
- item.add(AttributeAppender.append("class", "current"));
- }
- } else {
- actions.setVisible(false);
- }
- item.add(actions);
+ protected void populateItem(ListItem<Client> item) {
+ item.add(new RoomClientPanel("user", item, room));
}
};
@@ -137,12 +103,19 @@ public class RoomSidebar extends Panel {
add(upload = new UploadDialog("upload", room, roomFiles));
}
+ private ListView<Client> updateUsers() {
+ //TODO do we need sort??
+ users.getList().clear();
+ users.getList().addAll(getRoomUsers(room.getRoom().getId()));
+ return users;
+ }
+
public class UserFragment extends Fragment {
private static final long serialVersionUID = 1L;
public UserFragment(String id, String markupId) {
super(id, markupId, RoomSidebar.this);
- add(users.setList(getUsers()));
+ add(updateUsers());
}
}
@@ -154,25 +127,6 @@ public class RoomSidebar extends Panel {
add(roomFiles);
}
}
-
- private List<RoomClient> getUsers() {
- List<RoomClient> list = new ArrayList<>();
- for (Client cl : getRoomUsers(room.getRoom().getId())) {
- list.add(new RoomClient(cl));
- }
- return list;
- }
-
- static class RoomClient implements Serializable {
- private static final long serialVersionUID = 1L;
- private final Client c;
- private final User u;
-
- RoomClient(Client c) {
- this.c = c;
- this.u = getBean(UserDao.class).get(c.getUserId());
- }
- }
private void updateShowFiles() {
showFiles = !room.getRoom().isHidden(RoomElement.Files) && room.getClient().hasRight(Right.whiteBoard);
@@ -180,7 +134,7 @@ public class RoomSidebar extends Panel {
public void updateUsers(IPartialPageRequestHandler handler) {
updateShowFiles();
- users.setList(getUsers());
+ updateUsers();
handler.add(tabs);
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css?rev=1740251&r1=1740250&r2=1740251&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css Thu Apr 21 08:21:20 2016
@@ -52,11 +52,11 @@
.room.menu.right .room.name {
font-weight: bold;
}
-.room.menu.right .room.demo {
-}
-.room.menu.right .room.recording {
+.room.menu.right .room.name.screen {
color: red;
}
+.room.menu.right .room.demo {
+}
.room.menu.right .icon {
width: 30px;
height: 30px;
@@ -171,6 +171,7 @@
}
.room.sidebar.left .user.list .user.current {
font-weight: bold;
+ background: #00FF00;
}
.ui-dialog.video, .ui-dialog.video .ui-dialog-titlebar, .ui-dialog.video .video.ui-dialog-content {
padding: 0;
Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java?rev=1740251&r1=1740250&r2=1740251&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java Thu Apr 21 08:21:20 2016
@@ -38,6 +38,7 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
+import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.db.dao.room.IInvitationManager;
import org.apache.openmeetings.db.dao.room.InvitationDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -54,13 +55,8 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.util.AuthLevelUtil;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
import org.apache.openmeetings.util.message.RoomMessage;
import org.apache.openmeetings.webservice.error.ServiceException;
-import org.apache.wicket.Application;
-import org.apache.wicket.protocol.ws.WebSocketSettings;
-import org.apache.wicket.protocol.ws.api.IWebSocketConnection;
-import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -92,6 +88,8 @@ public class RoomWebService {
private ISessionManager sessionManager;
@Autowired
private RoomDao roomDao;
+ @Autowired
+ private ScopeApplicationAdapter appAdapter;
/**
* Returns an Object of Type RoomsList which contains a list of
@@ -318,15 +316,7 @@ public class RoomWebService {
roomDao.update(room, userId);
- Application app = Application.get(OpenmeetingsVariables.wicketApplicationName);
- WebSocketSettings settings = WebSocketSettings.Holder.get(app);
- IWebSocketConnectionRegistry registry = settings.getConnectionRegistry();
- RoomMessage cm = new RoomMessage(room.getId(), userId, RoomMessage.Type.roomClosed);
- for (IWebSocketConnection wc : registry.getConnections(app)) {
- if (wc != null && wc.isOpen()) {
- wc.sendMessage(cm);
- }
- }
+ appAdapter.broadcastRoom(new RoomMessage(room.getId(), userId, RoomMessage.Type.roomClosed));
return new ServiceResult(1L, "Closed", Type.SUCCESS);
} else {