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 {


Reply via email to