Initial implementation to let slides be passed in the backend
This commit is contained in:
parent
f390049fea
commit
8b6cdc6edf
@ -18,8 +18,11 @@ object BreakoutModel {
|
||||
captureSlides: Boolean,
|
||||
captureNotesFilename: String,
|
||||
captureSlidesFilename: String,
|
||||
allPages: Boolean,
|
||||
presId: String,
|
||||
): BreakoutRoom2x = {
|
||||
new BreakoutRoom2x(id, externalId, name, parentId, sequence, shortName, isDefaultName, freeJoin, voiceConf, assignedUsers, Vector(), Vector(), None, false, captureNotes, captureSlides, captureNotesFilename, captureSlidesFilename)
|
||||
new BreakoutRoom2x(id, externalId, name, parentId, sequence, shortName, isDefaultName, freeJoin, voiceConf, assignedUsers, Vector(), Vector(), None, false,
|
||||
captureNotes, captureSlides, captureNotesFilename, captureSlidesFilename, allPages, presId)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -40,26 +40,30 @@ trait CreateBreakoutRoomsCmdMsgHdlr extends RightsManagementTrait {
|
||||
}
|
||||
|
||||
def processRequest(msg: CreateBreakoutRoomsCmdMsg, state: MeetingState2x): MeetingState2x = {
|
||||
|
||||
val presId = getPresentationId(state)
|
||||
val presSlide = getPresentationSlide(state)
|
||||
val presId = getPresentationId(state) // The current presentation
|
||||
val presSlide = getPresentationSlide(state) // The current slide
|
||||
val parentId = liveMeeting.props.meetingProp.intId
|
||||
var rooms = new collection.immutable.HashMap[String, BreakoutRoom2x]
|
||||
|
||||
var i = 0
|
||||
for (room <- msg.body.rooms) {
|
||||
val roomPresId = if (room.presId.isEmpty) presId else room.presId;
|
||||
|
||||
i += 1
|
||||
val (internalId, externalId) = BreakoutRoomsUtil.createMeetingIds(liveMeeting.props.meetingProp.intId, i)
|
||||
val voiceConf = BreakoutRoomsUtil.createVoiceConfId(liveMeeting.props.voiceProp.voiceConf, i)
|
||||
|
||||
val breakout = BreakoutModel.create(parentId, internalId, externalId, room.name, room.sequence, room.shortName,
|
||||
room.isDefaultName, room.freeJoin, voiceConf, room.users, msg.body.captureNotes,
|
||||
msg.body.captureSlides, room.captureNotesFilename, room.captureSlidesFilename)
|
||||
msg.body.captureSlides, room.captureNotesFilename, room.captureSlidesFilename,
|
||||
room.allPages, roomPresId)
|
||||
|
||||
rooms = rooms + (breakout.id -> breakout)
|
||||
}
|
||||
|
||||
for (breakout <- rooms.values.toVector) {
|
||||
val roomSlides = if (breakout.allPages) -1 else presSlide;
|
||||
|
||||
val roomDetail = new BreakoutRoomDetail(
|
||||
breakout.id, breakout.name,
|
||||
liveMeeting.props.meetingProp.intId,
|
||||
@ -72,7 +76,9 @@ trait CreateBreakoutRoomsCmdMsgHdlr extends RightsManagementTrait {
|
||||
msg.body.durationInMinutes * 60,
|
||||
liveMeeting.props.password.moderatorPass,
|
||||
liveMeeting.props.password.viewerPass,
|
||||
presId, presSlide, msg.body.record,
|
||||
breakout.presId,
|
||||
roomSlides,
|
||||
msg.body.record,
|
||||
liveMeeting.props.breakoutProps.privateChatEnabled,
|
||||
breakout.captureNotes,
|
||||
breakout.captureSlides,
|
||||
|
@ -19,6 +19,8 @@ case class BreakoutRoom2x(
|
||||
captureSlides: Boolean,
|
||||
captureNotesFilename: String,
|
||||
captureSlidesFilename: String,
|
||||
allPages: Boolean,
|
||||
presId: String,
|
||||
) {
|
||||
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ case class BreakoutRoomDetail(
|
||||
object CreateBreakoutRoomsCmdMsg { val NAME = "CreateBreakoutRoomsCmdMsg" }
|
||||
case class CreateBreakoutRoomsCmdMsg(header: BbbClientMsgHeader, body: CreateBreakoutRoomsCmdMsgBody) extends StandardMsg
|
||||
case class CreateBreakoutRoomsCmdMsgBody(meetingId: String, durationInMinutes: Int, record: Boolean, captureNotes: Boolean, captureSlides: Boolean, rooms: Vector[BreakoutRoomMsgBody], sendInviteToModerators: Boolean)
|
||||
case class BreakoutRoomMsgBody(name: String, sequence: Int, shortName: String, captureNotesFilename: String, captureSlidesFilename: String, isDefaultName: Boolean, freeJoin: Boolean, users: Vector[String])
|
||||
case class BreakoutRoomMsgBody(name: String, sequence: Int, shortName: String, captureNotesFilename: String, captureSlidesFilename: String, isDefaultName: Boolean, freeJoin: Boolean, users: Vector[String], allPages: Boolean, presId: String)
|
||||
|
||||
// Sent by user to request ending all the breakout rooms
|
||||
object EndAllBreakoutRoomsMsg { val NAME = "EndAllBreakoutRoomsMsg" }
|
||||
|
@ -94,6 +94,7 @@ public class PresentationUrlDownloadService {
|
||||
}, 5, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
// A negative presentationSlide indicates the entire presentation deck should be used.
|
||||
private void extractPage(final String sourceMeetingId, final String presentationId,
|
||||
final Integer presentationSlide, final String destinationMeetingId) {
|
||||
|
||||
@ -146,7 +147,7 @@ public class PresentationUrlDownloadService {
|
||||
+ newFilename;
|
||||
File newPresentation = new File(newFilePath);
|
||||
|
||||
if (sourcePresentationFile.getName().toLowerCase().endsWith("pdf")) {
|
||||
if (sourcePresentationFile.getName().toLowerCase().endsWith("pdf") && presentationSlide >= 0) {
|
||||
pageExtractor.extractPage(sourcePresentationFile, new File(
|
||||
newFilePath), presentationSlide);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user