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 -->