You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by vd...@apache.org on 2013/06/28 10:35:26 UTC

svn commit: r1497678 - in /openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms: RoomForm.java RoomsPanel.html

Author: vdegtyarev
Date: Fri Jun 28 08:35:25 2013
New Revision: 1497678

URL: http://svn.apache.org/r1497678
Log:
OPENMEETINGS-673: "Users in this room" is added

Modified:
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java?rev=1497678&r1=1497677&r2=1497678&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java Fri Jun 28 08:35:25 2013
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.web.admin.rooms;
 
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getSid;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 import java.util.ArrayList;
@@ -31,11 +32,14 @@ import org.apache.openmeetings.data.conf
 import org.apache.openmeetings.data.conference.dao.RoomModeratorsDao;
 import org.apache.openmeetings.data.user.OrganisationManager;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
+import org.apache.openmeetings.persistence.beans.room.Client;
 import org.apache.openmeetings.persistence.beans.room.Room;
 import org.apache.openmeetings.persistence.beans.room.RoomModerator;
 import org.apache.openmeetings.persistence.beans.room.RoomOrganisation;
 import org.apache.openmeetings.persistence.beans.room.RoomType;
 import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.openmeetings.remote.UserService;
+import org.apache.openmeetings.session.SessionManager;
 import org.apache.openmeetings.web.admin.AdminCommonUserForm;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
@@ -70,8 +74,11 @@ public class RoomForm extends AdminCommo
 	private final TextField<String> confno;
 	private final CheckBox sipEnabled;
 	final WebMarkupContainer moderatorContainer;
+	final WebMarkupContainer clientsContainer;
 	final ListView<RoomModerator> moderators;
-	List<RoomModerator> result = null;
+	final ListView<Client> clients;
+	List<RoomModerator> moderatorsInRoom = null;
+	List<Client> clientsInRoom = null;
 	public RoomForm(String id, WebMarkupContainer roomList, final Room room) {
 		super(id, new CompoundPropertyModel<Room>(room));
 		this.roomList = roomList;
@@ -140,7 +147,41 @@ public class RoomForm extends AdminCommo
 		add(new CheckBox("filesOpened"));
 		add(new CheckBox("autoVideoSelect"));	
 		
-		moderators =	new ListView<RoomModerator>("moderators", result) {
+		// Users in this Room 
+		clientsContainer = new WebMarkupContainer("clientsContainer");
+		clients = new ListView<Client>("clients", clientsInRoom){
+			private static final long serialVersionUID = 8542589945574690054L;
+
+			@Override
+			protected void populateItem(final ListItem<Client> item) {
+				Client client = item.getModelObject();
+				item.add(new Label("clientId", "" + client.getId()))
+					.add(new Label("clientLogin", "" + client.getUsername()))
+					.add(new WebMarkupContainer("clientDelete").add(new AjaxEventBehavior("onclick"){
+
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+						super.updateAjaxAttributes(attributes);
+						attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));
+					}
+					
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						Client c = item.getModelObject();
+						getBean(UserService.class).kickUserByStreamId(getSid(), c.getStreamid()
+								, c.getServer() == null ? 0 : c.getServer().getId());
+						
+						updatClients(target);
+					}
+				}));
+			}
+		};
+		add(clientsContainer.add(clients.setOutputMarkupId(true)).setOutputMarkupId(true));
+		
+		// Moderators
+		moderators =	new ListView<RoomModerator>("moderators", moderatorsInRoom) {
 			private static final long serialVersionUID = -7935197812421549677L;
 
 			@Override
@@ -202,13 +243,19 @@ public class RoomForm extends AdminCommo
 		OmAjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);
 	}
 
-	public void updateModerators(AjaxRequestTarget target) {
+	void updateModerators(AjaxRequestTarget target) {
 		long roomId = (getModelObject().getRooms_id() != null ? getModelObject().getRooms_id() : 0);  
 		RoomModeratorsDao moderatorsDao = getBean(RoomModeratorsDao.class);
-		final List<RoomModerator> result = moderatorsDao.getRoomModeratorByRoomId(roomId);
-		moderators.setDefaultModelObject(result);
+		final List<RoomModerator> moderatorsInRoom = moderatorsDao.getRoomModeratorByRoomId(roomId);
+		moderators.setDefaultModelObject(moderatorsInRoom);
 		target.add(moderatorContainer);
 	}
+	void updatClients(AjaxRequestTarget target) {
+		long roomId = (getModelObject().getRooms_id() != null ? getModelObject().getRooms_id() : 0);  
+		final List<Client> clientsInRoom = Application.getBean(SessionManager.class).getClientListByRoom(roomId);
+		clients.setDefaultModelObject(clientsInRoom);
+		target.add(clientsContainer);
+	}
 	
 	@Override
 	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
@@ -269,6 +316,7 @@ public class RoomForm extends AdminCommo
 		confno.setEnabled(sipEnabled.getModelObject());
 		target.add(confno);
 		updateModerators(target);
+		updatClients(target);
 		target.appendJavaScript("omRoomPanelInit();");
 	}
 
@@ -278,7 +326,7 @@ public class RoomForm extends AdminCommo
 		long roomId = getModelObject().getRooms_id();
 		RoomModeratorsDao moderatorsDao = getBean(RoomModeratorsDao.class);
 		List<RoomModerator> moderators = moderatorsDao.getRoomModeratorByRoomId(roomId);
-		result = (result == null) ? new ArrayList<RoomModerator>() : result;
+		moderatorsInRoom = (moderatorsInRoom == null) ? new ArrayList<RoomModerator>() : moderatorsInRoom;
 		for (User u : usersToAdd) {
 			boolean found = false;
 			for ( RoomModerator rm : moderators) {
@@ -294,7 +342,7 @@ public class RoomForm extends AdminCommo
 				rModerator.setStarttime(new Date());
 				rModerator.setDeleted(false);
 				rModerator.setRoomId(roomId);
-				result.add(rModerator);
+				moderatorsInRoom.add(rModerator);
 				moderatorsDao.addRoomModeratorByUserId(u, false, roomId);
 			}
 		}

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html?rev=1497678&r1=1497677&r2=1497678&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html Fri Jun 28 08:35:25 2013
@@ -191,6 +191,27 @@
 						
 						<!-- Users in this Room -->
 						<fieldset>
+							<legend><wicket:ommessage key="587" /></legend>
+							<table class="adminListTable">
+								<thead>
+									<tr>
+										<th class="three_column_layout_column1"><wicket:ommessage key="588" /></th>
+										<th class="three_column_layout_column2"><wicket:ommessage key="589" /></th>
+										<th class="three_column_layout_column3"><wicket:ommessage key="590" /></th>
+									</tr>	
+								</thead>
+							</table>
+							<div class="tableWrapperSmall" id="adminTableSmall">
+								<table class="adminListTable">
+									<tbody wicket:id="clientsContainer">		
+							    		<tr wicket:id="clients">
+											<td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><span wicket:id="clientId"></span></div></td>
+											<td class="three_column_layout_column2"><div class="three_column_layout_divcolumn2"><span wicket:id="clientLogin"></span></div></td>
+											<td class="three_column_layout_column3"><div class="formCancelButton" wicket:id="clientDelete" wicket:ommessage="title:604"><input/></div></td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
 						</fieldset>
 						
 						<!-- Default moderators -->