Skip to content

Commit

Permalink
Fetch all breakout rooms users and decorate BreakoutRoom class to dis…
Browse files Browse the repository at this point in the history
…play their the number of a breakout room users.
  • Loading branch information
GhaziTriki committed Mar 16, 2016
1 parent 6a559b0 commit 07d3028
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 14 deletions.
Expand Up @@ -62,7 +62,9 @@ class JsonMessageSenderActor(val service: MessageSender)
} }


private def handleUpdateBreakoutUsers(msg: UpdateBreakoutUsersOutMessage) { private def handleUpdateBreakoutUsers(msg: UpdateBreakoutUsersOutMessage) {
val payload = new UpdateBreakoutUsersPayload(msg.meetingId, msg.breakoutId, msg.numberOfUsers) val users = new java.util.ArrayList[BreakoutUserPayload]()
msg.users.foreach(x => users.add(new BreakoutUserPayload(x.id, x.name)))
val payload = new UpdateBreakoutUsersPayload(msg.meetingId, msg.breakoutId, users)
val request = new UpdateBreakoutUsers(payload) val request = new UpdateBreakoutUsers(payload)
service.send(MessagingConstants.FROM_MEETING_CHANNEL, request.toJson()) service.send(MessagingConstants.FROM_MEETING_CHANNEL, request.toJson())
} }
Expand Down
Expand Up @@ -37,7 +37,7 @@ case class BreakoutRoomOutPayload(breakoutId: String, name: String, parentId: St
case class BreakoutRoomJoinURLOutMessage(meetingId: String, recorded: Boolean, breakoutId: String, userId: String, joinURL: String) extends IOutMessage case class BreakoutRoomJoinURLOutMessage(meetingId: String, recorded: Boolean, breakoutId: String, userId: String, joinURL: String) extends IOutMessage
case class BreakoutRoomStartedOutMessage(meetingId: String, recorded: Boolean, breakout: BreakoutRoomBody) extends IOutMessage case class BreakoutRoomStartedOutMessage(meetingId: String, recorded: Boolean, breakout: BreakoutRoomBody) extends IOutMessage
case class BreakoutRoomBody(name: String, breakoutId: String) case class BreakoutRoomBody(name: String, breakoutId: String)
case class UpdateBreakoutUsersOutMessage(meetingId: String, recorded: Boolean, breakoutId: String, numberOfUsers: Integer) extends IOutMessage case class UpdateBreakoutUsersOutMessage(meetingId: String, recorded: Boolean, breakoutId: String, users: Vector[BreakoutUser]) extends IOutMessage
case class MeetingTimeRemainingUpdate(meetingId: String, recorded: Boolean, timeRemaining: Int) extends IOutMessage case class MeetingTimeRemainingUpdate(meetingId: String, recorded: Boolean, timeRemaining: Int) extends IOutMessage
case class BreakoutRoomsTimeRemainingUpdateOutMessage(meetingId: String, recorded: Boolean, timeRemaining: Int) extends IOutMessage case class BreakoutRoomsTimeRemainingUpdateOutMessage(meetingId: String, recorded: Boolean, timeRemaining: Int) extends IOutMessage
case class BreakoutRoomEndedOutMessage(meetingId: String, breakoutId: String) extends IOutMessage case class BreakoutRoomEndedOutMessage(meetingId: String, breakoutId: String) extends IOutMessage
Expand Down
Expand Up @@ -90,7 +90,7 @@ trait BreakoutRoomApp extends SystemConfiguration {


def handleBreakoutRoomUsersUpdate(msg: BreakoutRoomUsersUpdate) { def handleBreakoutRoomUsersUpdate(msg: BreakoutRoomUsersUpdate) {
breakoutModel.updateBreakoutUsers(msg.breakoutId, msg.users) foreach { room => breakoutModel.updateBreakoutUsers(msg.breakoutId, msg.users) foreach { room =>
outGW.send(new UpdateBreakoutUsersOutMessage(mProps.meetingID, mProps.recorded, msg.breakoutId, room.users.length)) outGW.send(new UpdateBreakoutUsersOutMessage(mProps.meetingID, mProps.recorded, msg.breakoutId, room.users))
} }
} }


Expand Down
Expand Up @@ -177,7 +177,7 @@ object MeetingMessageToJsonConverter {
payload.put("meetingId", msg.meetingId) payload.put("meetingId", msg.meetingId)
payload.put("breakoutId", msg.breakoutId) payload.put("breakoutId", msg.breakoutId)
payload.put("recorded", msg.recorded) payload.put("recorded", msg.recorded)
payload.put("numberOfUsers", msg.numberOfUsers) payload.put("users", msg.users.toArray)


val header = Util.buildHeader(UpdateBreakoutUsers.NAME, None) val header = Util.buildHeader(UpdateBreakoutUsers.NAME, None)
Util.buildJson(header, payload) Util.buildJson(header, payload)
Expand Down
@@ -1,15 +1,16 @@
package org.bigbluebutton.messages.payload; package org.bigbluebutton.messages.payload;


import java.util.ArrayList;

public class UpdateBreakoutUsersPayload { public class UpdateBreakoutUsersPayload {


public final Integer numberOfUsers; public final ArrayList<BreakoutUserPayload> users;
public final String breakoutId; public final String breakoutId;
public final String meetingId; public final String meetingId;


public UpdateBreakoutUsersPayload(String meetingId, String breakoutId, public UpdateBreakoutUsersPayload(String meetingId, String breakoutId, ArrayList<BreakoutUserPayload> users) {
Integer numberOfUsers) {
this.meetingId = meetingId; this.meetingId = meetingId;
this.breakoutId = breakoutId; this.breakoutId = breakoutId;
this.numberOfUsers = numberOfUsers; this.users = users;
} }
} }
Expand Up @@ -585,7 +585,7 @@ private void processUpdateBreakoutUsers(UpdateBreakoutUsers msg) {
Map<String, Object> args = new HashMap<String, Object>(); Map<String, Object> args = new HashMap<String, Object>();
args.put("meetingId", msg.payload.meetingId); args.put("meetingId", msg.payload.meetingId);
args.put("breakoutId", msg.payload.breakoutId); args.put("breakoutId", msg.payload.breakoutId);
args.put("numberOfUsers", msg.payload.numberOfUsers); args.put("users", msg.payload.users);


Map<String, Object> message = new HashMap<String, Object>(); Map<String, Object> message = new HashMap<String, Object>();
Gson gson = new Gson(); Gson gson = new Gson();
Expand Down
Expand Up @@ -18,6 +18,8 @@
*/ */
package org.bigbluebutton.main.model.users { package org.bigbluebutton.main.model.users {


import mx.collections.ArrayCollection;

[Bindable] [Bindable]
public class BreakoutRoom { public class BreakoutRoom {
public static const NONE:String = "none"; public static const NONE:String = "none";
Expand All @@ -30,9 +32,18 @@ package org.bigbluebutton.main.model.users {


public var name:String; public var name:String;


public var numberOfUsers:int; public var users:ArrayCollection;


// Can be one of three following values self, none, other // Can be one of three following values self, none, other
public var listenStatus:String = NONE; public var listenStatus:String = NONE;

public function BreakoutRoom() {
users = new ArrayCollection();
}

public function get numberOfUsers():int {
return users.length;
}

} }
} }
Expand Up @@ -536,10 +536,10 @@ package org.bigbluebutton.main.model.users {
breakoutRooms.refresh(); breakoutRooms.refresh();
} }


public function updateBreakoutRoomUsers(breakoutId:String, users:int):void { public function updateBreakoutRoomUsers(breakoutId:String, users:Array):void {
var room:Object = getBreakoutRoom(breakoutId); var room:Object = getBreakoutRoom(breakoutId);
if (room != null) { if (room != null) {
BreakoutRoom(room).numberOfUsers = users; BreakoutRoom(room).users = new ArrayCollection(users);
} }
} }


Expand Down
Expand Up @@ -620,9 +620,9 @@ package org.bigbluebutton.modules.users.services


private function handleUpdateBreakoutUsers(msg:Object):void{ private function handleUpdateBreakoutUsers(msg:Object):void{
var map:Object = JSON.parse(msg.msg); var map:Object = JSON.parse(msg.msg);
UserManager.getInstance().getConference().updateBreakoutRoomUsers(map.breakoutId, map.numberOfUsers); UserManager.getInstance().getConference().updateBreakoutRoomUsers(map.breakoutId, map.users);
} }

private function handleTimeRemainingUpdate(msg:Object):void { private function handleTimeRemainingUpdate(msg:Object):void {
var map:Object = JSON.parse(msg.msg); var map:Object = JSON.parse(msg.msg);
var e:BreakoutRoomEvent = new BreakoutRoomEvent(BreakoutRoomEvent.UPDATE_REMAINING_TIME_BREAKOUT); var e:BreakoutRoomEvent = new BreakoutRoomEvent(BreakoutRoomEvent.UPDATE_REMAINING_TIME_BREAKOUT);
Expand Down

0 comments on commit 07d3028

Please sign in to comment.