diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonInGW.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonInGW.scala index 01bd9100e3a9fc6f194b6cd5c9787c374d43554d..4a5e83e217549329a3eb0984ae4ef96c60d0d99e 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonInGW.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonInGW.scala @@ -2,8 +2,9 @@ package org.bigbluebutton.core import org.bigbluebutton.core.bus._ import org.bigbluebutton.core.api._ + import scala.collection.JavaConversions._ -import org.bigbluebutton.core.apps.Presentation +import org.bigbluebutton.core.apps.{ Presentation, SharedNotesOperation } import akka.actor.ActorSystem import org.bigbluebutton.common.messages.IBigBlueButtonMessage import org.bigbluebutton.common.messages.StartCustomPollRequestMessage diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala index 654ace846da3f475006cda857d11ecdf59c5f291..94d0c6c2b1bc783b3e0813fa451db5260346a52f 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala @@ -1,8 +1,8 @@ package org.bigbluebutton.core.api import org.bigbluebutton.common2.msgs.BreakoutUserVO -import org.bigbluebutton.core.api.SharedNotesOperation.SharedNotesOperation import org.bigbluebutton.core.apps.Presentation +import org.bigbluebutton.core.apps.SharedNotesOperation.SharedNotesOperation import spray.json.JsObject case class InMessageHeader(name: String) case class InHeaderAndJsonPayload(header: InMessageHeader, payload: JsObject) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala index c89e6df2c49a066d67fba00e8367b9eea8a63d97..f9c078b9265c06686182ecf6e43fc093b2bd627e 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala @@ -12,14 +12,6 @@ object Metadata extends Enumeration { val INACTIVITY_TIMELEFT = "inactivity-timeleft" } -object SharedNotesOperation extends Enumeration { - type SharedNotesOperation = Value - val PATCH = Value("PATCH") - val UNDO = Value("UNDO") - val REDO = Value("REDO") - val UNDEFINED = Value("UNDEFINED") -} - case class StatusCode(val code: Int, val text: String) object StatusCodes { // Borrowed from https://dev.twitter.com/overview/api/response-codes (ralam June 18, 2015) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesApp.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesApp.scala index cbd05172f2fea1d2b1e417bf8c7ce420c4c9a0ce..b80e4982241eaa432fc911713117c79a84252a2b 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesApp.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesApp.scala @@ -2,7 +2,15 @@ package org.bigbluebutton.core.apps import org.bigbluebutton.core.api._ import org.bigbluebutton.core.OutMessageGateway -import org.bigbluebutton.core.running.{ MeetingActor } +import org.bigbluebutton.core.running.MeetingActor + +object SharedNotesOperation extends Enumeration { + type SharedNotesOperation = Value + val PATCH = Value("PATCH") + val UNDO = Value("UNDO") + val REDO = Value("REDO") + val UNDEFINED = Value("UNDEFINED") +} trait SharedNotesApp { this: MeetingActor => diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesModel.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesModel.scala index 5c8074b604d4f3e8edb68b00ca001b314721ffea..d7c03fa4f2eec37ab41507a6a280a306b08aaad0 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesModel.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesModel.scala @@ -1,8 +1,9 @@ package org.bigbluebutton.core.apps import org.bigbluebutton.core.api._ -import org.bigbluebutton.core.api.SharedNotesOperation._ import name.fraser.neil.plaintext.diff_match_patch +import org.bigbluebutton.core.apps.SharedNotesOperation.SharedNotesOperation + import scala.collection.mutable.Stack import scala.collection.mutable.HashMap import scala.collection._ diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutApp2x.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutApp2x.scala new file mode 100755 index 0000000000000000000000000000000000000000..08a118774db702eeb4012d34eebb4406c85376f0 --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutApp2x.scala @@ -0,0 +1,17 @@ +package org.bigbluebutton.core.apps.breakout + +import org.bigbluebutton.core.running.MeetingActor + +trait BreakoutApp2x extends BreakoutRoomCreatedMsgHdlr + with BreakoutRoomEndedMsgHdlr + with BreakoutRoomsListMsgHdlr + with BreakoutRoomUsersUpdateMsgHdlr + with CreateBreakoutRoomsMsgHdlr + with EndAllBreakoutRoomsMsgHdlr + with RequestBreakoutJoinURLMsgHdlr + with SendBreakoutUsersUpdateMsgHdlr + with TransferUserToMeetingRequestHdlr { + + this: MeetingActor => + +} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomCreatedMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomCreatedMsgHdlr.scala similarity index 95% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomCreatedMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomCreatedMsgHdlr.scala index 8770cc643dc5478ebd4ad2a8cd89be8bc6ee8189..b6ae0af2af3e3d96219c8aeb36d557e2ffbfc138 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomCreatedMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomCreatedMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers.breakoutrooms +package org.bigbluebutton.core.apps.breakout import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomEndedMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomEndedMsgHdlr.scala similarity index 94% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomEndedMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomEndedMsgHdlr.scala index 775aa0784581583b105eadf13f3c1b98be667a2a..21764b6302f054f28c4362e9ef7fbc69eaeeb9fc 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomEndedMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomEndedMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers.breakoutrooms +package org.bigbluebutton.core.apps.breakout import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomUsersUpdateMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomUsersUpdateMsgHdlr.scala similarity index 95% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomUsersUpdateMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomUsersUpdateMsgHdlr.scala index 5c2ffb2dbee86adb79b61240fae05ae655004ceb..eba667e9be32e5b1fc35f9dc89478e3029087271 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomUsersUpdateMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomUsersUpdateMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers.breakoutrooms +package org.bigbluebutton.core.apps.breakout import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomsListMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomsListMsgHdlr.scala similarity index 95% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomsListMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomsListMsgHdlr.scala index e9dd2ff0853f29b2d022e4e8e9bd958490ad1d52..a2b73cb6460e2612561c8e11b64e9ecdd38bb17a 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/BreakoutRoomsListMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/BreakoutRoomsListMsgHdlr.scala @@ -1,9 +1,9 @@ -package org.bigbluebutton.core2.message.handlers.breakoutrooms +package org.bigbluebutton.core.apps.breakout import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway -import org.bigbluebutton.core.running.MeetingActor import org.bigbluebutton.core.models.BreakoutRooms +import org.bigbluebutton.core.running.MeetingActor trait BreakoutRoomsListMsgHdlr { this: MeetingActor => diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/CreateBreakoutRoomsMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/CreateBreakoutRoomsMsgHdlr.scala similarity index 93% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/CreateBreakoutRoomsMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/CreateBreakoutRoomsMsgHdlr.scala index 15278d4fa6bac329c1888e1628672a6c94e5577c..ba2ff5a93fd314e66c830f2e76bc775b0ff70f3e 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/CreateBreakoutRoomsMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/CreateBreakoutRoomsMsgHdlr.scala @@ -1,9 +1,8 @@ -package org.bigbluebutton.core2.message.handlers.breakoutrooms +package org.bigbluebutton.core.apps.breakout import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway -import org.bigbluebutton.core.api.BreakoutRoomOutPayload -import org.bigbluebutton.core.api.CreateBreakoutRoom +import org.bigbluebutton.core.api.{ BreakoutRoomOutPayload, CreateBreakoutRoom } import org.bigbluebutton.core.apps.BreakoutRoomsUtil import org.bigbluebutton.core.models.BreakoutRooms import org.bigbluebutton.core.running.MeetingActor diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/EndAllBreakoutRoomsMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/EndAllBreakoutRoomsMsgHdlr.scala similarity index 94% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/EndAllBreakoutRoomsMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/EndAllBreakoutRoomsMsgHdlr.scala index 4670545fdea9ff4a4da58610c2668aabd34782ce..88251f247a9177adfafaacc5492e4ae38a9c257d 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/EndAllBreakoutRoomsMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/EndAllBreakoutRoomsMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers.breakoutrooms +package org.bigbluebutton.core.apps.breakout import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/RequestBreakoutJoinURLMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/RequestBreakoutJoinURLMsgHdlr.scala similarity index 93% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/RequestBreakoutJoinURLMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/RequestBreakoutJoinURLMsgHdlr.scala index f79b62fb10c17de7ad86d86b3672f17153a3cae7..68bdfc83de824212967f53b3ad000d89e3f36048 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/RequestBreakoutJoinURLMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/RequestBreakoutJoinURLMsgHdlr.scala @@ -1,10 +1,9 @@ -package org.bigbluebutton.core2.message.handlers.breakoutrooms +package org.bigbluebutton.core.apps.breakout -import org.bigbluebutton.core.models.Users1x -import org.bigbluebutton.core.models.BreakoutRooms import org.bigbluebutton.common2.msgs._ -import org.bigbluebutton.core.apps.BreakoutRoomsUtil import org.bigbluebutton.core.OutMessageGateway +import org.bigbluebutton.core.apps.BreakoutRoomsUtil +import org.bigbluebutton.core.models.{ BreakoutRooms, Users1x } import org.bigbluebutton.core.running.MeetingActor trait RequestBreakoutJoinURLMsgHdlr { diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/SendBreakoutUsersUpdateMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/SendBreakoutUsersUpdateMsgHdlr.scala similarity index 93% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/SendBreakoutUsersUpdateMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/SendBreakoutUsersUpdateMsgHdlr.scala index 8c9253680f1264443a25751741823c473554407d..ce709782e5538ddd408d5192e0b8ebc6a73dada2 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/SendBreakoutUsersUpdateMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/SendBreakoutUsersUpdateMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers.breakoutrooms +package org.bigbluebutton.core.apps.breakout import org.bigbluebutton.common2.msgs.{ BreakoutUserVO, SendBreakoutUsersUpdateMsg } import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/TransferUserToMeetingRequestHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/TransferUserToMeetingRequestHdlr.scala similarity index 92% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/TransferUserToMeetingRequestHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/TransferUserToMeetingRequestHdlr.scala index dda8f445f510d0aa71d17c13408d60c267410c8b..c5dc1f6a57fe0dd9c93ce8bdcf9d89670498910d 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/breakoutrooms/TransferUserToMeetingRequestHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/TransferUserToMeetingRequestHdlr.scala @@ -1,9 +1,8 @@ -package org.bigbluebutton.core2.message.handlers.breakoutrooms +package org.bigbluebutton.core.apps.breakout import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway -import org.bigbluebutton.core.models.BreakoutRooms -import org.bigbluebutton.core.models.Users1x +import org.bigbluebutton.core.models.{ BreakoutRooms, Users1x } import org.bigbluebutton.core.running.MeetingActor trait TransferUserToMeetingRequestHdlr { diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/layout/BroadcastLayoutMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/BroadcastLayoutMsgHdlr.scala similarity index 71% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/layout/BroadcastLayoutMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/BroadcastLayoutMsgHdlr.scala index 51eef4df2b171f2d7f42617b0e5ca19085fca06f..5866c2d93427b87468132405a25eca5bae5d0675 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/layout/BroadcastLayoutMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/BroadcastLayoutMsgHdlr.scala @@ -1,25 +1,27 @@ -package org.bigbluebutton.core2.message.handlers.layout +package org.bigbluebutton.core.apps.layout import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway import org.bigbluebutton.core.models.Layouts -import org.bigbluebutton.core.running.MeetingActor import org.bigbluebutton.core2.MeetingStatus2x trait BroadcastLayoutMsgHdlr { - this: MeetingActor => + this: LayoutApp2x => val outGW: OutMessageGateway def handleBroadcastLayoutMsg(msg: BroadcastLayoutMsg): Unit = { - Layouts.setCurrentLayout(msg.body.layout) - val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, props.meetingProp.intId, msg.header.userId) + sendBroadcastLayoutEvtMsg(msg.header.userId) + } + + def sendBroadcastLayoutEvtMsg(fromUserId: String): Unit = { + val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, liveMeeting.props.meetingProp.intId, fromUserId) val envelope = BbbCoreEnvelope(BroadcastLayoutEvtMsg.NAME, routing) - val header = BbbClientMsgHeader(BroadcastLayoutEvtMsg.NAME, props.meetingProp.intId, msg.header.userId) + val header = BbbClientMsgHeader(BroadcastLayoutEvtMsg.NAME, liveMeeting.props.meetingProp.intId, fromUserId) - val body = BroadcastLayoutEvtMsgBody(msg.body.meetingId, props.recordProp.record, msg.body.requesterId, + val body = BroadcastLayoutEvtMsgBody( Layouts.getCurrentLayout(), MeetingStatus2x.getPermissions(liveMeeting.status).lockedLayout, Layouts.getLayoutSetter(), affectedUsers) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/GetCurrentLayoutReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/GetCurrentLayoutReqMsgHdlr.scala new file mode 100755 index 0000000000000000000000000000000000000000..db5167ba791b7a1d99c1b10d663526f602525deb --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/GetCurrentLayoutReqMsgHdlr.scala @@ -0,0 +1,34 @@ +package org.bigbluebutton.core.apps.layout + +import org.bigbluebutton.common2.msgs._ +import org.bigbluebutton.core2.MeetingStatus2x +import org.bigbluebutton.core.OutMessageGateway +import org.bigbluebutton.core.models.Layouts +import org.bigbluebutton.core.running.LiveMeeting + +trait GetCurrentLayoutReqMsgHdlr { + this: LayoutApp2x => + + val liveMeeting: LiveMeeting + val outGW: OutMessageGateway + + def handle(msg: GetCurrentLayoutReqMsg): Unit = { + + def broadcastEvent(msg: GetCurrentLayoutReqMsg): Unit = { + + val routing = Routing.addMsgToClientRouting(MessageTypes.DIRECT, liveMeeting.props.meetingProp.intId, msg.header.userId) + val envelope = BbbCoreEnvelope(GetCurrentLayoutRespMsg.NAME, routing) + val header = BbbClientMsgHeader(GetCurrentLayoutRespMsg.NAME, liveMeeting.props.meetingProp.intId, msg.header.userId) + + val body = GetCurrentLayoutRespMsgBody(Layouts.getCurrentLayout(), + MeetingStatus2x.getPermissions(liveMeeting.status).lockedLayout, + Layouts.getLayoutSetter()) + val event = GetCurrentLayoutRespMsg(header, body) + val msgEvent = BbbCommonEnvCoreMsg(envelope, event) + + outGW.send(msgEvent) + } + + broadcastEvent(msg) + } +} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/LayoutApp2x.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/LayoutApp2x.scala new file mode 100755 index 0000000000000000000000000000000000000000..fb2ab09d1e5d05b345cbcf863b485f9f85ea5275 --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/LayoutApp2x.scala @@ -0,0 +1,23 @@ +package org.bigbluebutton.core.apps.layout + +import org.bigbluebutton.core.models.{ Layouts, Roles, Users2x } +import org.bigbluebutton.core.running.MeetingActor + +trait LayoutApp2x + extends BroadcastLayoutMsgHdlr + with GetCurrentLayoutReqMsgHdlr + with LockLayoutMsgHdlr { + + this: MeetingActor => + + def affectedUsers(): Vector[String] = { + if (Layouts.doesLayoutApplyToViewersOnly()) { + val users = Users2x.findAll(liveMeeting.users2x) filter { u => + (!u.presenter && u.role != Roles.MODERATOR_ROLE) + } + users.map(u => u.intId) + } else { + Users2x.findAll(liveMeeting.users2x).map(u => u.intId) + } + } +} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/LockLayoutMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/LockLayoutMsgHdlr.scala new file mode 100755 index 0000000000000000000000000000000000000000..c7f5bc2f8d2f90a01eb91f133f24d072143275dd --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/layout/LockLayoutMsgHdlr.scala @@ -0,0 +1,37 @@ +package org.bigbluebutton.core.apps.layout + +import org.bigbluebutton.common2.msgs._ +import org.bigbluebutton.core.OutMessageGateway +import org.bigbluebutton.core.models.Layouts + +trait LockLayoutMsgHdlr { + this: LayoutApp2x => + + val outGW: OutMessageGateway + + def handleLockLayoutMsg(msg: LockLayoutMsg): Unit = { + + def broadcastEvent(msg: LockLayoutMsg): Unit = { + val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, liveMeeting.props.meetingProp.intId, msg.header.userId) + val envelope = BbbCoreEnvelope(LockLayoutEvtMsg.NAME, routing) + val header = BbbClientMsgHeader(LockLayoutEvtMsg.NAME, liveMeeting.props.meetingProp.intId, msg.header.userId) + + val body = LockLayoutEvtMsgBody(msg.header.userId, msg.body.lock, affectedUsers) + val event = LockLayoutEvtMsg(header, body) + val msgEvent = BbbCommonEnvCoreMsg(envelope, event) + + outGW.send(msgEvent) + } + + Layouts.applyToViewersOnly(msg.body.viewersOnly) + liveMeeting.lockLayout(msg.body.lock) + broadcastEvent(msg) + + for { + newLayout <- msg.body.layout + } yield { + Layouts.setCurrentLayout(newLayout) + sendBroadcastLayoutEvtMsg(msg.header.userId) + } + } +} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/GetCurrentPollReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/GetCurrentPollReqMsgHdlr.scala similarity index 96% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/GetCurrentPollReqMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/GetCurrentPollReqMsgHdlr.scala index f1c7f0fb1fee1ae05fd3bc52b65ee8df56b7900e..fdd41dbc900d8d727c77b2cb7fc065a1c16fed19 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/GetCurrentPollReqMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/GetCurrentPollReqMsgHdlr.scala @@ -1,10 +1,10 @@ -package org.bigbluebutton.core2.message.handlers +package org.bigbluebutton.core.apps.polls +import org.bigbluebutton.common2.domain.PollVO import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway import org.bigbluebutton.core.models.Polls import org.bigbluebutton.core.running.MeetingActor -import org.bigbluebutton.common2.domain.PollVO trait GetCurrentPollReqMsgHdlr { this: MeetingActor => diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/HidePollResultReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/HidePollResultReqMsgHdlr.scala similarity index 95% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/HidePollResultReqMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/HidePollResultReqMsgHdlr.scala index c193ab756852670c9e5ebf092affcf5e8ce10c5d..1ba25729fd76afdedc850cc9c047cf49a21a606f 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/HidePollResultReqMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/HidePollResultReqMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers +package org.bigbluebutton.core.apps.polls import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/PollApp2x.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/PollApp2x.scala new file mode 100755 index 0000000000000000000000000000000000000000..2125eb817acd83b1aa7acdccdb987b5f9861bbf3 --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/PollApp2x.scala @@ -0,0 +1,14 @@ +package org.bigbluebutton.core.apps.polls + +import org.bigbluebutton.core.running.{ MeetingActor } + +trait PollApp2x extends GetCurrentPollReqMsgHdlr + with HidePollResultReqMsgHdlr + with RespondToPollReqMsgHdlr + with ShowPollResultReqMsgHdlr + with StartCustomPollReqMsgHdlr + with StartPollReqMsgHdlr + with StopPollReqMsgHdlr { + + this: MeetingActor => +} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/RespondToPollReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/RespondToPollReqMsgHdlr.scala similarity index 96% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/RespondToPollReqMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/RespondToPollReqMsgHdlr.scala index 98fc5689258aaf0970f6f1ed77c6dc1c8605d448..b3b7d37e841beae08952b5a26fd9ed3a30362186 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/RespondToPollReqMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/RespondToPollReqMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers +package org.bigbluebutton.core.apps.polls import org.bigbluebutton.common2.domain.SimplePollResultOutVO import org.bigbluebutton.common2.msgs._ diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/ShowPollResultReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/ShowPollResultReqMsgHdlr.scala similarity index 97% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/ShowPollResultReqMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/ShowPollResultReqMsgHdlr.scala index 320b86ff6a7c4d98576a461dd52eb9be9fdf4486..3d60a7b4d88977813cffc5aa0701624cd8bc4fcf 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/ShowPollResultReqMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/ShowPollResultReqMsgHdlr.scala @@ -1,10 +1,10 @@ -package org.bigbluebutton.core2.message.handlers +package org.bigbluebutton.core.apps.polls +import org.bigbluebutton.common2.domain.{ AnnotationVO, SimplePollResultOutVO } import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway import org.bigbluebutton.core.models.Polls import org.bigbluebutton.core.running.MeetingActor -import org.bigbluebutton.common2.domain.{ AnnotationVO, SimplePollResultOutVO } trait ShowPollResultReqMsgHdlr { this: MeetingActor => diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/StartCustomPollReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/StartCustomPollReqMsgHdlr.scala similarity index 96% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/StartCustomPollReqMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/StartCustomPollReqMsgHdlr.scala index 82e66fec2cc94fdde9fb453b769e5f77f708ed3a..52c3da3ab15f08f1be203f4f5f9539262d22e2c0 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/StartCustomPollReqMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/StartCustomPollReqMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers +package org.bigbluebutton.core.apps.polls import org.bigbluebutton.common2.domain.SimplePollOutVO import org.bigbluebutton.common2.msgs._ diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/StartPollReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/StartPollReqMsgHdlr.scala similarity index 95% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/StartPollReqMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/StartPollReqMsgHdlr.scala index f7c0553c61de0d5affbc9a3e5ca938f2843e6fe6..f4730393772527f1c8f8106b170aec8282d158eb 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/StartPollReqMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/StartPollReqMsgHdlr.scala @@ -1,7 +1,7 @@ -package org.bigbluebutton.core2.message.handlers +package org.bigbluebutton.core.apps.polls -import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.common2.domain.SimplePollOutVO +import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway import org.bigbluebutton.core.models.Polls import org.bigbluebutton.core.running.MeetingActor diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/StopPollReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/StopPollReqMsgHdlr.scala similarity index 95% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/StopPollReqMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/StopPollReqMsgHdlr.scala index a746c7d749071906337a935a293429a9d96f05b8..19f5f318d7714a0304d0849bfae9f8353965f0c4 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/StopPollReqMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/polls/StopPollReqMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers +package org.bigbluebutton.core.apps.polls import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/presentation/poll/EjectUserFromMeetingHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/presentation/poll/EjectUserFromMeetingHdlr.scala deleted file mode 100755 index fff7a7389f08043958bcb1af9ef0396010063fd2..0000000000000000000000000000000000000000 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/presentation/poll/EjectUserFromMeetingHdlr.scala +++ /dev/null @@ -1,14 +0,0 @@ -package org.bigbluebutton.core.apps.presentation.poll - -import org.bigbluebutton.core.api._ -import org.bigbluebutton.core.models.{ UserState, Users2x } - -trait EjectUserFromMeetingHdlr { - this: PollApp2x => - - def handle(msg: EjectUserFromMeeting, userToEject: UserState) { - // Stop poll if one is running as presenter left. - log.warning("TODO: Stop poll when presenter is ejected") - //handleStopPollRequest(StopPollRequest(liveMeeting.props.meetingProp.intId, assignedBy)) - } -} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/presentation/poll/PollApp2x.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/presentation/poll/PollApp2x.scala deleted file mode 100755 index 8b62f16d91d6d35c4001c47bd3e36a4da088525b..0000000000000000000000000000000000000000 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/presentation/poll/PollApp2x.scala +++ /dev/null @@ -1,13 +0,0 @@ -package org.bigbluebutton.core.apps.presentation.poll - -import akka.actor.ActorContext -import akka.event.Logging -import org.bigbluebutton.core.OutMessageGateway -import org.bigbluebutton.core.running.LiveMeeting - -class PollApp2x(val liveMeeting: LiveMeeting, - val outGW: OutMessageGateway)(implicit val context: ActorContext) - extends EjectUserFromMeetingHdlr { - - val log = Logging(context.system, getClass) -} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserJoinedVoiceConfEvtMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfEvtMsgHdlr.scala similarity index 95% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserJoinedVoiceConfEvtMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfEvtMsgHdlr.scala index 8c726581eefe463c2c3eb72918af74f6d2107fc7..4c189ebe5b58a7ce27b782f75c1c05f999a17291 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserJoinedVoiceConfEvtMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfEvtMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers.users +package org.bigbluebutton.core.apps.voice import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserJoinedVoiceConfMessageHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfMessageHdlr.scala similarity index 89% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserJoinedVoiceConfMessageHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfMessageHdlr.scala index db6ffe7b469e2a42e1ecf99d2afd622e5790d904..9c17f501be53683e9d9b8a68371b057ac4917478 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserJoinedVoiceConfMessageHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfMessageHdlr.scala @@ -1,11 +1,7 @@ -package org.bigbluebutton.core2.message.handlers.users +package org.bigbluebutton.core.apps.voice import org.bigbluebutton.core.OutMessageGateway -import org.bigbluebutton.core.api._ -import org.bigbluebutton.core.models.{ Roles, Users1x } import org.bigbluebutton.core.running.MeetingActor -import org.bigbluebutton.core2.MeetingStatus2x -import org.bigbluebutton.common2.domain.VoiceUserVO trait UserJoinedVoiceConfMessageHdlr { this: MeetingActor => diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserLeftVoiceConfEvtMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserLeftVoiceConfEvtMsgHdlr.scala similarity index 93% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserLeftVoiceConfEvtMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserLeftVoiceConfEvtMsgHdlr.scala index 57991edec9b489c8c80961c8cc115ee8bed1f4a6..0ce1f7beb862ef341d44fdf57a853b505908eabd 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserLeftVoiceConfEvtMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserLeftVoiceConfEvtMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers.users +package org.bigbluebutton.core.apps.voice import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserMutedInVoiceConfEvtMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserMutedInVoiceConfEvtMsgHdlr.scala similarity index 92% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserMutedInVoiceConfEvtMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserMutedInVoiceConfEvtMsgHdlr.scala index 1b6e4bfd366ff8a40ce32f37cae9f92b8a94ddd0..834284a3c87c8d70307cfb4d38b59a44432751f6 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserMutedInVoiceConfEvtMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserMutedInVoiceConfEvtMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers.users +package org.bigbluebutton.core.apps.voice import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserTalkingInVoiceConfEvtMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserTalkingInVoiceConfEvtMsgHdlr.scala similarity index 92% rename from akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserTalkingInVoiceConfEvtMsgHdlr.scala rename to akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserTalkingInVoiceConfEvtMsgHdlr.scala index 17d4b9c9c37f98e211a87da45647e9c5788e6f33..bd4fa03ad26e38cbf9cb3b71db8da7f89aeb7607 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/users/UserTalkingInVoiceConfEvtMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserTalkingInVoiceConfEvtMsgHdlr.scala @@ -1,4 +1,4 @@ -package org.bigbluebutton.core2.message.handlers.users +package org.bigbluebutton.core.apps.voice import org.bigbluebutton.common2.msgs._ import org.bigbluebutton.core.OutMessageGateway diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/VoiceApp2x.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/VoiceApp2x.scala new file mode 100755 index 0000000000000000000000000000000000000000..49471d88817f5c9d81b84a4a00790b1e7e08f6ae --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/VoiceApp2x.scala @@ -0,0 +1,12 @@ +package org.bigbluebutton.core.apps.voice + +import org.bigbluebutton.core.running.MeetingActor + +trait VoiceApp2x extends UserJoinedVoiceConfEvtMsgHdlr + with UserJoinedVoiceConfMessageHdlr + with UserLeftVoiceConfEvtMsgHdlr + with UserMutedInVoiceConfEvtMsgHdlr + with UserTalkingInVoiceConfEvtMsgHdlr { + + this: MeetingActor => +} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala index fa811677d0e64f1882186a496ef64fcb94de4a72..d04aca35781a6576d9985a7a2f81088810c91efc 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala @@ -214,9 +214,9 @@ class ReceivedJsonMsgHandlerActor( } yield { send(m.header.meetingId, envelope, m) } - case GetCurrentLayoutMsg.NAME => + case GetCurrentLayoutReqMsg.NAME => for { - m <- deserialize[GetCurrentLayoutMsg](jsonNode) + m <- deserialize[GetCurrentLayoutReqMsg](jsonNode) } yield { send(m.header.meetingId, envelope, m) } diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala index f6faa4e0266a98692513e2efa356ae2a8ba7887b..b5d8c8e68f0148d2b47ac6a7f747791985d86c52 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala @@ -3,7 +3,6 @@ package org.bigbluebutton.core.running import java.io.{ PrintWriter, StringWriter } import akka.actor._ -import akka.actor.ActorLogging import akka.actor.SupervisorStrategy.Resume import org.bigbluebutton.common2.domain.DefaultProps import org.bigbluebutton.core._ @@ -12,7 +11,6 @@ import org.bigbluebutton.core.apps._ import org.bigbluebutton.core.apps.caption.CaptionApp2x import org.bigbluebutton.core.apps.deskshare.DeskshareApp2x import org.bigbluebutton.core.apps.presentation.PresentationApp2x -import org.bigbluebutton.core.apps.presentation.poll.PollApp2x import org.bigbluebutton.core.apps.users.UsersApp2x import org.bigbluebutton.core.bus._ import org.bigbluebutton.core.models.{ RegisteredUsers, Users1x } @@ -20,13 +18,15 @@ import org.bigbluebutton.core2.MeetingStatus2x import org.bigbluebutton.core2.message.handlers._ import org.bigbluebutton.core2.message.handlers.users._ import org.bigbluebutton.common2.msgs._ +import org.bigbluebutton.core.apps.breakout._ +import org.bigbluebutton.core.apps.layout.LayoutApp2x +import org.bigbluebutton.core.apps.polls._ +import org.bigbluebutton.core.apps.voice._ import scala.concurrent.duration._ import org.bigbluebutton.core.models.BreakoutRooms -import org.bigbluebutton.core2.message.handlers.breakoutrooms._ -import org.bigbluebutton.core2.message.handlers.guests.SetGuestPolicyMsgHdlr import org.bigbluebutton.core2.testdata.FakeTestData -import org.bigbluebutton.core2.message.handlers.layout._ +import org.bigbluebutton.core.apps.layout.LayoutApp2x object MeetingActor { def props(props: DefaultProps, @@ -40,15 +40,17 @@ class MeetingActor(val props: DefaultProps, val outGW: OutMessageGateway, val liveMeeting: LiveMeeting) extends BaseMeetingActor with GuestsApp + with LayoutApp2x + with VoiceApp2x + with PollApp2x + with BreakoutApp2x + with UsersApp with PresentationApp - with LayoutApp with ChatApp with WhiteboardApp with PollApp + with ChatApp with WhiteboardApp with PollApp with BreakoutRoomApp with SharedNotesApp with PermisssionCheck with UserBroadcastCamStartMsgHdlr - with UserJoinedVoiceConfEvtMsgHdlr - with UserLeftVoiceConfEvtMsgHdlr with UserJoinMeetingReqMsgHdlr - with StartPollReqMsgHdlr with UserBroadcastCamStopMsgHdlr with UserConnectedToGlobalAudioHdlr with UserDisconnectedFromGlobalAudioHdlr @@ -57,12 +59,6 @@ class MeetingActor(val props: DefaultProps, with IsMeetingMutedRequestHdlr with MuteUserRequestHdlr with EjectUserFromVoiceRequestHdlr - with StartCustomPollReqMsgHdlr - with StopPollReqMsgHdlr - with RespondToPollReqMsgHdlr - with GetCurrentPollReqMsgHdlr - with HidePollResultReqMsgHdlr - with ShowPollResultReqMsgHdlr with UserJoinedVoiceConfMessageHdlr with ValidateAuthTokenReqMsgHdlr with BreakoutRoomsListMsgHdlr @@ -75,10 +71,7 @@ class MeetingActor(val props: DefaultProps, with SendBreakoutUsersUpdateMsgHdlr with TransferUserToMeetingRequestHdlr with UserMutedInVoiceConfEvtMsgHdlr - with UserTalkingInVoiceConfEvtMsgHdlr - with GetCurrentLayoutMsgHdlr - with LockLayoutMsgHdlr - with BroadcastLayoutMsgHdlr { + with UserTalkingInVoiceConfEvtMsgHdlr { override val supervisorStrategy = OneForOneStrategy(maxNrOfRetries = 10, withinTimeRange = 1 minute) { case e: Exception => { @@ -104,7 +97,6 @@ class MeetingActor(val props: DefaultProps, val usersApp2x = new UsersApp2x(liveMeeting, outGW = outGW) val presentationApp2x = new PresentationApp2x(liveMeeting, outGW = outGW) - val pollApp2x = new PollApp2x(liveMeeting, outGW = outGW) val deskshareApp2x = new DeskshareApp2x(liveMeeting, outGW = outGW) val captionApp2x = new CaptionApp2x(liveMeeting, outGW = outGW) @@ -144,8 +136,6 @@ class MeetingActor(val props: DefaultProps, case msg: SendPrivateMessageRequest => handleSendPrivateMessageRequest(msg) case msg: UserConnectedToGlobalAudio => handleUserConnectedToGlobalAudio(msg) case msg: UserDisconnectedFromGlobalAudio => handleUserDisconnectedFromGlobalAudio(msg) - case msg: GetCurrentLayoutRequest => handleGetCurrentLayoutRequest(msg) - case msg: BroadcastLayoutRequest => handleBroadcastLayoutRequest(msg) case msg: InitializeMeeting => handleInitializeMeeting(msg) case msg: ClearPresentation => handleClearPresentation(msg) case msg: PresentationConversionUpdate => handlePresentationConversionUpdate(msg) @@ -236,7 +226,7 @@ class MeetingActor(val props: DefaultProps, case m: UserLeftVoiceConfEvtMsg => handle(m) case m: UserMutedInVoiceConfEvtMsg => handle(m) case m: UserTalkingInVoiceConfEvtMsg => handle(m) - case m: GetCurrentLayoutMsg => handleGetCurrentLayoutMsg(m) + case m: GetCurrentLayoutReqMsg => handle(m) case m: LockLayoutMsg => handleLockLayoutMsg(m) case m: BroadcastLayoutMsg => handleBroadcastLayoutMsg(m) case m: SetCurrentPresentationPubMsg => presentationApp2x.handleSetCurrentPresentationPubMsg(m) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/SetLockSettingsHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/SetLockSettingsHdlr.scala index 8d0e9c24891fadf20214d4cd5a89e29fda52454d..216fa1471cec278e7a55b07528ea4fba2bfe398e 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/SetLockSettingsHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/SetLockSettingsHdlr.scala @@ -20,7 +20,7 @@ trait SetLockSettingsHdlr { MeetingStatus2x.getPermissions(liveMeeting.status), Users.getUsers(liveMeeting.users).toArray)) */ - handleLockLayout(msg.settings.lockedLayout, msg.setByUser) + // handleLockLayout(msg.settings.lockedLayout, msg.setByUser) } } } diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/layout/GetCurrentLayoutMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/layout/GetCurrentLayoutMsgHdlr.scala deleted file mode 100755 index f7820f09fbf6c4d006f54a35df4b49417a2f851b..0000000000000000000000000000000000000000 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/layout/GetCurrentLayoutMsgHdlr.scala +++ /dev/null @@ -1,34 +0,0 @@ -package org.bigbluebutton.core2.message.handlers.layout - -import org.bigbluebutton.common2.msgs._ -import org.bigbluebutton.core.running.MeetingActor -import org.bigbluebutton.core2.MeetingStatus2x -import org.bigbluebutton.core.OutMessageGateway -import org.bigbluebutton.core.models.Layouts - -trait GetCurrentLayoutMsgHdlr { - this: MeetingActor => - - val outGW: OutMessageGateway - - def handleGetCurrentLayoutMsg(msg: GetCurrentLayoutMsg): Unit = { - - def broadcastEvent(msg: GetCurrentLayoutMsg): Unit = { - - val routing = Routing.addMsgToClientRouting(MessageTypes.DIRECT, props.meetingProp.intId, msg.header.userId) - val envelope = BbbCoreEnvelope(GetCurrentLayoutEvtMsg.NAME, routing) - val header = BbbClientMsgHeader(GetCurrentLayoutEvtMsg.NAME, props.meetingProp.intId, msg.header.userId) - - val body = GetCurrentLayoutEvtMsgBody(msg.body.meetingId, props.recordProp.record, msg.body.requesterId, - Layouts.getCurrentLayout(), - MeetingStatus2x.getPermissions(liveMeeting.status).lockedLayout, - Layouts.getLayoutSetter()) - val event = GetCurrentLayoutEvtMsg(header, body) - val msgEvent = BbbCommonEnvCoreMsg(envelope, event) - - outGW.send(msgEvent) - } - - broadcastEvent(msg) - } -} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/layout/LockLayoutMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/layout/LockLayoutMsgHdlr.scala deleted file mode 100755 index 6d7777300c74ebb7b85feec4cf33107242680054..0000000000000000000000000000000000000000 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/layout/LockLayoutMsgHdlr.scala +++ /dev/null @@ -1,57 +0,0 @@ -package org.bigbluebutton.core2.message.handlers.layout - -import org.bigbluebutton.common2.msgs._ -import org.bigbluebutton.core.OutMessageGateway -import org.bigbluebutton.core.models.Layouts -import org.bigbluebutton.core.running.MeetingActor -import org.bigbluebutton.core2.MeetingStatus2x - -trait LockLayoutMsgHdlr { - this: MeetingActor => - - val outGW: OutMessageGateway - - def handleLockLayoutMsg(msg: LockLayoutMsg): Unit = { - - def broadcastEvent(msg: LockLayoutMsg): Unit = { - - Layouts.applyToViewersOnly(msg.body.viewersOnly) - liveMeeting.lockLayout(msg.body.lock) - - val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, props.meetingProp.intId, msg.header.userId) - val envelope = BbbCoreEnvelope(LockLayoutEvtMsg.NAME, routing) - val header = BbbClientMsgHeader(LockLayoutEvtMsg.NAME, props.meetingProp.intId, msg.header.userId) - - val body = LockLayoutEvtMsgBody(msg.body.meetingId, props.recordProp.record, msg.body.setById, msg.body.lock, affectedUsers) - val event = LockLayoutEvtMsg(header, body) - val msgEvent = BbbCommonEnvCoreMsg(envelope, event) - - outGW.send(msgEvent) - - msg.body.layout foreach { l => - Layouts.setCurrentLayout(l) - broadcastSyncLayout(msg.body.meetingId, msg.body.setById) - } - - outGW.send(msgEvent) - } - - def broadcastSyncLayout(meetingId: String, setById: String) { - - val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, props.meetingProp.intId, msg.header.userId) - val envelope = BbbCoreEnvelope(BroadcastLayoutEvtMsg.NAME, routing) - val header = BbbClientMsgHeader(BroadcastLayoutEvtMsg.NAME, props.meetingProp.intId, msg.header.userId) - - val body = BroadcastLayoutEvtMsgBody(meetingId, props.recordProp.record, setById, - Layouts.getCurrentLayout(), - MeetingStatus2x.getPermissions(liveMeeting.status).lockedLayout, - Layouts.getLayoutSetter(), affectedUsers) - val event = BroadcastLayoutEvtMsg(header, body) - val msgEvent = BbbCommonEnvCoreMsg(envelope, event) - - outGW.send(msgEvent) - } - - broadcastEvent(msg) - } -} diff --git a/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/LayoutMsgs.scala b/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/LayoutMsgs.scala index 80117b0b074142614b348cb54d24bc179dff5b05..0309371e46739c3b4a2f1087af1af85eadea5261 100755 --- a/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/LayoutMsgs.scala +++ b/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/LayoutMsgs.scala @@ -1,36 +1,28 @@ package org.bigbluebutton.common2.msgs -import org.bigbluebutton.common2.domain.UserVO +// In messages +object GetCurrentLayoutReqMsg { val NAME = "GetCurrentLayoutReqMsg" } +case class GetCurrentLayoutReqMsg(header: BbbClientMsgHeader, body: GetCurrentLayoutReqMsgBody) extends BbbCoreMsg +case class GetCurrentLayoutReqMsgBody() +object LockLayoutMsg { val NAME = "LockLayoutMsg" } +case class LockLayoutMsg(header: BbbClientMsgHeader, body: LockLayoutMsgBody) extends BbbCoreMsg +case class LockLayoutMsgBody(lock: Boolean, viewersOnly: Boolean, layout: Option[String]) - // In messages - object GetCurrentLayoutMsg { val NAME = "GetCurrentLayoutMsg" } - case class GetCurrentLayoutMsg(header: BbbClientMsgHeader, body: GetCurrentLayoutMsgBody) extends BbbCoreMsg - case class GetCurrentLayoutMsgBody(meetingId: String, requesterId: String) +object BroadcastLayoutMsg { val NAME = "BroadcastLayoutMsg" } +case class BroadcastLayoutMsg(header: BbbClientMsgHeader, body: BroadcastLayoutMsgBody) extends BbbCoreMsg +case class BroadcastLayoutMsgBody(layout: String) - object LockLayoutMsg { val NAME = "LockLayoutMsg" } - case class LockLayoutMsg(header: BbbClientMsgHeader, body: LockLayoutMsgBody) extends BbbCoreMsg - case class LockLayoutMsgBody(meetingId: String, setById: String, lock: Boolean, viewersOnly: Boolean, - layout: Option[String]) +// Out messages +object GetCurrentLayoutRespMsg { val NAME = "GetCurrentLayoutRespMsg" } +case class GetCurrentLayoutRespMsg(header: BbbClientMsgHeader, body: GetCurrentLayoutRespMsgBody) extends BbbCoreMsg +case class GetCurrentLayoutRespMsgBody(layout: String, locked: Boolean, setByUserId: String) - object BroadcastLayoutMsg { val NAME = "BroadcastLayoutMsg" } - case class BroadcastLayoutMsg(header: BbbClientMsgHeader, body: BroadcastLayoutMsgBody) extends BbbCoreMsg - case class BroadcastLayoutMsgBody(meetingId: String, requesterId: String, layout: String) - - // Out messages - object GetCurrentLayoutEvtMsg { val NAME = "GetCurrentLayoutEvtMsg" } - case class GetCurrentLayoutEvtMsg(header: BbbClientMsgHeader, body: GetCurrentLayoutEvtMsgBody) extends BbbCoreMsg - case class GetCurrentLayoutEvtMsgBody(meetingId: String, recorded: Boolean, requesterId: String, layoutId: String, - locked: Boolean, setByUserId: String) - - object BroadcastLayoutEvtMsg { val NAME = "BroadcastLayoutEvtMsg" } - case class BroadcastLayoutEvtMsg(header: BbbClientMsgHeader, body: BroadcastLayoutEvtMsgBody) extends BbbCoreMsg - case class BroadcastLayoutEvtMsgBody(meetingId: String, recorded: Boolean, requesterId: String, - layoutId: String, locked: Boolean, setByUserId: String, applyTo: Vector[String]) - - object LockLayoutEvtMsg { val NAME = "LockLayoutEvtMsg" } - case class LockLayoutEvtMsg(header: BbbClientMsgHeader, body: LockLayoutEvtMsgBody) extends BbbCoreMsg - case class LockLayoutEvtMsgBody(meetingId: String, recorded: Boolean, setById: String, locked: Boolean, - applyTo: Vector[String]) +object BroadcastLayoutEvtMsg { val NAME = "BroadcastLayoutEvtMsg" } +case class BroadcastLayoutEvtMsg(header: BbbClientMsgHeader, body: BroadcastLayoutEvtMsgBody) extends BbbCoreMsg +case class BroadcastLayoutEvtMsgBody(layout: String, locked: Boolean, setByUserId: String, applyTo: Vector[String]) +object LockLayoutEvtMsg { val NAME = "LockLayoutEvtMsg" } +case class LockLayoutEvtMsg(header: BbbClientMsgHeader, body: LockLayoutEvtMsgBody) extends BbbCoreMsg +case class LockLayoutEvtMsgBody(setById: String, locked: Boolean, applyTo: Vector[String]) diff --git a/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/BroadcastLayoutMsgBody.as b/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/BroadcastLayoutMsgBody.as old mode 100644 new mode 100755 index b5c6639273dea881e4032f22106faf9d5b65a96a..91621aa7ec628bd09502a161a8018ea619979d39 --- a/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/BroadcastLayoutMsgBody.as +++ b/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/BroadcastLayoutMsgBody.as @@ -20,15 +20,9 @@ package org.bigbluebutton.core.connection.messages.layout { public class BroadcastLayoutMsgBody { - public var meetingId:String; - - public var requesterId:String; - public var layout:String; - public function BroadcastLayoutMsgBody(meetingId:String, requesterId:String, layout:String) { - this.meetingId = meetingId; - this.requesterId = requesterId; + public function BroadcastLayoutMsgBody(layout:String) { this.layout = layout; } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutMsg.as b/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutReqMsg.as old mode 100644 new mode 100755 similarity index 82% rename from bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutMsg.as rename to bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutReqMsg.as index 92f97bc667fe65aaeb07136e608cb03812432927..050c638ebe6226e35adae67da24cdc9626e4f024 --- a/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutMsg.as +++ b/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutReqMsg.as @@ -19,10 +19,10 @@ package org.bigbluebutton.core.connection.messages.layout { import org.bigbluebutton.core.connection.messages.BbbCommonMsg; - public class GetCurrentLayoutMsg extends BbbCommonMsg { - public var body:GetCurrentLayoutMsgBody; + public class GetCurrentLayoutReqMsg extends BbbCommonMsg { + public var body:GetCurrentLayoutReqMsgBody; - public function GetCurrentLayoutMsg(body:GetCurrentLayoutMsgBody) { + public function GetCurrentLayoutReqMsg(body:GetCurrentLayoutReqMsgBody) { super(); this.body = body; } diff --git a/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutMsgBody.as b/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutReqMsgBody.as old mode 100644 new mode 100755 similarity index 76% rename from bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutMsgBody.as rename to bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutReqMsgBody.as index 62f29088cdee17a18756e3fcfc1200df3502ce56..40ff04c0bc9c72dcea15b830eef86940870cbcf6 --- a/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutMsgBody.as +++ b/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/GetCurrentLayoutReqMsgBody.as @@ -18,15 +18,9 @@ */ package org.bigbluebutton.core.connection.messages.layout { - public class GetCurrentLayoutMsgBody { + public class GetCurrentLayoutReqMsgBody { - public var meetingId:String; - - public var requesterId:String; - - public function GetCurrentLayoutMsgBody(meetingId:String, requesterId:String) { - this.meetingId = meetingId; - this.requesterId = requesterId; + public function GetCurrentLayoutReqMsgBody() { } } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/LockLayoutMsgBody.as b/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/LockLayoutMsgBody.as old mode 100644 new mode 100755 index 6f1eb6c4aae1179e8f3eb60b8a0ca9caf83de499..cad0cc41a5e7f3734e2598aac97e1983b24ba4e9 --- a/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/LockLayoutMsgBody.as +++ b/bigbluebutton-client/src/org/bigbluebutton/core/connection/messages/layout/LockLayoutMsgBody.as @@ -20,19 +20,13 @@ package org.bigbluebutton.core.connection.messages.layout { public class LockLayoutMsgBody { - public var meetingId:String; - - public var setById:String; - public var lock:Boolean; public var viewersOnly:Boolean; public var layout:String; - public function LockLayoutMsgBody(meetingId:String, setById:String, lock:Boolean, viewersOnly:Boolean, layout:String) { - this.meetingId = meetingId; - this.setById = setById; + public function LockLayoutMsgBody(lock:Boolean, viewersOnly:Boolean, layout:String) { this.lock = lock; this.viewersOnly = viewersOnly; this.layout = layout; diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/MessageReceiver.as b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/MessageReceiver.as index 4463adccfcc4c84e88b3182b4f3f190ab39da41a..946c6de027432ab2162ec6280222fbd37f992d22 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/MessageReceiver.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/MessageReceiver.as @@ -31,13 +31,16 @@ package org.bigbluebutton.modules.layout.services { // trace("LAYOUT: received message " + messageName); switch (messageName) { - case "GetCurrentLayoutEvtMsg": - handleGetCurrentLayoutEvtMsg(message); + case "GetCurrentLayoutRespMsg": + handleGetCurrentLayoutRespMsg(message); break; case "BroadcastLayoutEvtMsg": handleBroadcastLayoutEvtMsg(message); + break; case "LockLayoutEvtMsg": handleLockLayoutEvtMsg(message); + break; + /* case "getCurrentLayoutResponse": handleGetCurrentLayoutResponse(message); break; @@ -47,40 +50,24 @@ package org.bigbluebutton.modules.layout.services { case "syncLayout": handleSyncLayout(message); break; + */ } } - private function handleGetCurrentLayoutEvtMsg(message:Object):void { + private function handleGetCurrentLayoutRespMsg(message:Object):void { _applyFirstLayoutTimer.addEventListener(TimerEvent.TIMER, function(e:TimerEvent):void { onReceivedFirstLayout(message.body); }); _applyFirstLayoutTimer.start(); } - private function handleBroadcastLayoutEvtMsg(message:Object):void { + private function handleLockLayoutEvtMsg(message:Object):void { if (message.body.hasOwnProperty("locked") && message.body.hasOwnProperty("setById")) lockLayout(message.body.locked, message.body.setById); } - private function handleLockLayoutEvtMsg(message:Object):void { - _dispatcher.dispatchEvent(new RemoteSyncLayoutEvent(message.body.layout)); - if (message.body.layout == "") - return; - - var layoutDefinition:LayoutDefinition = new LayoutDefinition(); - layoutDefinition.load(new XML(message.body.layout)); - var translatedName:String = ResourceUtil.getInstance().getString(layoutDefinition.name) - if (translatedName == "undefined") - translatedName = layoutDefinition.name; - // remove previously added [Remote] mark - var pattern:RegExp = /^\[.*\] /g; - translatedName = translatedName.replace(pattern, ""); - layoutDefinition.name = "[" + ResourceUtil.getInstance().getString('bbb.layout.combo.remote') + "] " + translatedName; - var redefineLayout:LayoutFromRemoteEvent = new LayoutFromRemoteEvent(); - redefineLayout.layout = layoutDefinition; - redefineLayout.remote = true; - - _dispatcher.dispatchEvent(redefineLayout); + private function handleBroadcastLayoutEvtMsg(message:Object):void { + handleSyncLayout(message.body); } /* @@ -98,9 +85,9 @@ package org.bigbluebutton.modules.layout.services { } private function onReceivedFirstLayout(message:Object):void { - LOGGER.debug("LayoutService: handling the first layout. locked = [{0}] layout = [{1}]", [message.locked, message.layoutId]); - trace("LayoutService: handling the first layout. locked = [" + message.locked + "] layout = [" + message.layoutId + "], moderator = [" + UsersUtil.amIModerator() + "]"); - if (message.layoutId == "") + LOGGER.debug("LayoutService: handling the first layout. locked = [{0}] layout = [{1}]", [message.locked, message.layout]); + trace("LayoutService: handling the first layout. locked = [" + message.locked + "] layout = [" + message.layout + "], moderator = [" + UsersUtil.amIModerator() + "]"); + if (message.layout == "") _dispatcher.dispatchEvent(new LayoutEvent(LayoutEvent.APPLY_DEFAULT_LAYOUT_EVENT)); else { handleSyncLayout(message); @@ -111,12 +98,14 @@ package org.bigbluebutton.modules.layout.services { } private function handleSyncLayout(message:Object):void { - _dispatcher.dispatchEvent(new RemoteSyncLayoutEvent(message.layoutId)); - if (message.layoutId == "") + // is this event needed? Doesn't seem to do anything becasue it only applies to the original layout and then it's changed right afterwards once the new one is loaded + _dispatcher.dispatchEvent(new RemoteSyncLayoutEvent(message.layout)); + + if (message.layout == "") return; var layoutDefinition:LayoutDefinition = new LayoutDefinition(); - layoutDefinition.load(new XML(message.layoutId)); + layoutDefinition.load(new XML(message.layout)); var translatedName:String = ResourceUtil.getInstance().getString(layoutDefinition.name) if (translatedName == "undefined") translatedName = layoutDefinition.name; diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/MessageSender.as b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/MessageSender.as old mode 100644 new mode 100755 index e474cf3bd87b6c4ca00d111f1e881458cec14388..1f3dd9d9f5fa66b1519f6999b91edf67cae71821 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/MessageSender.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/MessageSender.as @@ -5,8 +5,8 @@ package org.bigbluebutton.modules.layout.services { import org.bigbluebutton.core.UsersUtil; import org.bigbluebutton.core.connection.messages.layout.BroadcastLayoutMsg; import org.bigbluebutton.core.connection.messages.layout.BroadcastLayoutMsgBody; - import org.bigbluebutton.core.connection.messages.layout.GetCurrentLayoutMsg; - import org.bigbluebutton.core.connection.messages.layout.GetCurrentLayoutMsgBody; + import org.bigbluebutton.core.connection.messages.layout.GetCurrentLayoutReqMsg; + import org.bigbluebutton.core.connection.messages.layout.GetCurrentLayoutReqMsgBody; import org.bigbluebutton.core.connection.messages.layout.LockLayoutMsg; import org.bigbluebutton.core.connection.messages.layout.LockLayoutMsgBody; import org.bigbluebutton.core.managers.ConnectionManager; @@ -16,8 +16,8 @@ package org.bigbluebutton.modules.layout.services { private static const LOGGER:ILogger = getClassLogger(MessageSender); public function getCurrentLayout():void { - var body:GetCurrentLayoutMsgBody = new GetCurrentLayoutMsgBody(UsersUtil.getInternalMeetingID(), UsersUtil.getMyUserID()); - var message:GetCurrentLayoutMsg = new GetCurrentLayoutMsg(body); + var body:GetCurrentLayoutReqMsgBody = new GetCurrentLayoutReqMsgBody(); + var message:GetCurrentLayoutReqMsg = new GetCurrentLayoutReqMsg(body); var _nc:ConnectionManager = BBB.initConnectionManager(); _nc.sendMessage2x(function(result:String):void { // On successful result @@ -30,7 +30,7 @@ package org.bigbluebutton.modules.layout.services { } public function broadcastLayout(layout:LayoutDefinition):void { - var body:BroadcastLayoutMsgBody = new BroadcastLayoutMsgBody(UsersUtil.getInternalMeetingID(), UsersUtil.getMyUserID(), layout.toXml().toXMLString()); + var body:BroadcastLayoutMsgBody = new BroadcastLayoutMsgBody(layout.toXml().toXMLString()); var message:BroadcastLayoutMsg = new BroadcastLayoutMsg(body); var _nc:ConnectionManager = BBB.initConnectionManager(); @@ -44,7 +44,7 @@ package org.bigbluebutton.modules.layout.services { } public function lockLayout(lock:Boolean, viewersOnly:Boolean, layout:LayoutDefinition = null):void { - var body:LockLayoutMsgBody = new LockLayoutMsgBody(UsersUtil.getInternalMeetingID(), UsersUtil.getMyUserID(), lock, viewersOnly, layout != null ? layout.toXml().toXMLString() : null); + var body:LockLayoutMsgBody = new LockLayoutMsgBody(lock, viewersOnly, layout != null ? layout.toXml().toXMLString() : null); var message:LockLayoutMsg = new LockLayoutMsg(body); var _nc:ConnectionManager = BBB.initConnectionManager();