Initial back-end wiring for breakout slides capture

This commit is contained in:
Daniel Petri Rocha 2022-09-04 22:34:04 +02:00
parent 8aa0d1b0e7
commit 16b3d43f19
13 changed files with 37 additions and 9 deletions

View File

@ -70,7 +70,8 @@ trait CreateBreakoutRoomsCmdMsgHdlr extends RightsManagementTrait {
liveMeeting.props.password.moderatorPass,
liveMeeting.props.password.viewerPass,
presId, presSlide, msg.body.record,
liveMeeting.props.breakoutProps.privateChatEnabled
liveMeeting.props.breakoutProps.privateChatEnabled,
liveMeeting.props.breakoutProps.bringBackSlidesEnabled
)
val event = buildCreateBreakoutRoomSysCmdMsg(liveMeeting.props.meetingProp.intId, roomDetail)

View File

@ -25,7 +25,8 @@ case class BreakoutProps(
freeJoin: Boolean,
breakoutRooms: Vector[String],
record: Boolean,
privateChatEnabled: Boolean
privateChatEnabled: Boolean,
bringBackSlidesEnabled: Boolean
)
case class PasswordProp(moderatorPass: String, viewerPass: String, learningDashboardAccessToken: String)

View File

@ -58,7 +58,8 @@ case class BreakoutRoomDetail(
sourcePresentationId: String,
sourcePresentationSlide: Int,
record: Boolean,
privateChatEnabled: Boolean
privateChatEnabled: Boolean,
bringBackSlidesEnabled: Boolean
)
/**

View File

@ -76,6 +76,7 @@ public class ApiParams {
public static final String BREAKOUT_ROOMS_ENABLED = "breakoutRoomsEnabled";
public static final String BREAKOUT_ROOMS_RECORD = "breakoutRoomsRecord";
public static final String BREAKOUT_ROOMS_PRIVATE_CHAT_ENABLED = "breakoutRoomsPrivateChatEnabled";
public static final String BREAKOUT_ROOMS_BRING_BACK_SLIDES_ENABLED = "breakoutRoomsBringBackSlidesEnabled";
public static final String LOCK_SETTINGS_DISABLE_CAM = "lockSettingsDisableCam";
public static final String LOCK_SETTINGS_DISABLE_MIC = "lockSettingsDisableMic";

View File

@ -104,6 +104,7 @@ public class ParamsProcessorUtil {
private boolean defaultBreakoutRoomsEnabled = true;
private boolean defaultBreakoutRoomsRecord;
private boolean defaultBreakoutRoomsBringBackSlidesEnabled = true;
private boolean defaultbreakoutRoomsPrivateChatEnabled;
private boolean defaultLockSettingsDisableCam;
@ -273,7 +274,13 @@ public class ParamsProcessorUtil {
breakoutRoomsPrivateChatEnabled = Boolean.parseBoolean(breakoutRoomsPrivateChatEnabledParam);
}
return new BreakoutRoomsParams(breakoutRoomsRecord, breakoutRoomsPrivateChatEnabled);
Boolean breakoutRoomsBringBackSlidesEnabled = defaultBreakoutRoomsBringBackSlidesEnabled;
String breakoutRoomsBringBackSlidesEnabledParam = params.get(ApiParams.BREAKOUT_ROOMS_BRING_BACK_SLIDES_ENABLED);
if (!StringUtils.isEmpty(breakoutRoomsBringBackSlidesEnabledParam)) {
breakoutRoomsBringBackSlidesEnabled = Boolean.parseBoolean(breakoutRoomsBringBackSlidesEnabledParam);
}
return new BreakoutRoomsParams(breakoutRoomsRecord, breakoutRoomsPrivateChatEnabled, breakoutRoomsBringBackSlidesEnabled);
}
private LockSettingsParams processLockSettingsParams(Map<String, String> params) {
@ -1305,6 +1312,10 @@ public class ParamsProcessorUtil {
this.defaultBreakoutRoomsRecord = breakoutRoomsRecord;
}
public void setBreakoutRoomsBringBackSlidesEnabled(Boolean breakoutRoomsBringBackSlidesEnabled) {
this.defaultBreakoutRoomsBringBackSlidesEnabled = breakoutRoomsBringBackSlidesEnabled;
}
public void setBreakoutRoomsPrivateChatEnabled(Boolean breakoutRoomsPrivateChatEnabled) {
this.defaultbreakoutRoomsPrivateChatEnabled = breakoutRoomsPrivateChatEnabled;
}

View File

@ -3,9 +3,11 @@ package org.bigbluebutton.api.domain;
public class BreakoutRoomsParams {
public final Boolean record;
public final Boolean privateChatEnabled;
public final Boolean bringBackSlidesEnabled;
public BreakoutRoomsParams(Boolean record, Boolean privateChatEnabled) {
public BreakoutRoomsParams(Boolean record, Boolean privateChatEnabled, Boolean bringBackSlidesEnabled) {
this.record = record;
this.privateChatEnabled = privateChatEnabled;
this.bringBackSlidesEnabled = bringBackSlidesEnabled;
}
}

View File

@ -19,6 +19,8 @@ public class CreateBreakoutRoom implements IMessage {
public final Integer sourcePresentationSlide;
public final Boolean record;
public final Boolean privateChatEnabled;
public final Boolean bringBackSlidesEnabled; // Upload annotated breakout slides to main room
// after breakout room end
public CreateBreakoutRoom(String meetingId,
String parentMeetingId,
@ -35,7 +37,8 @@ public class CreateBreakoutRoom implements IMessage {
String sourcePresentationId,
Integer sourcePresentationSlide,
Boolean record,
Boolean privateChatEnabled) {
Boolean privateChatEnabled,
Boolean bringBackSlidesEnabled) {
this.meetingId = meetingId;
this.parentMeetingId = parentMeetingId;
this.name = name;
@ -52,5 +55,6 @@ public class CreateBreakoutRoom implements IMessage {
this.sourcePresentationSlide = sourcePresentationSlide;
this.record = record;
this.privateChatEnabled = privateChatEnabled;
this.bringBackSlidesEnabled = bringBackSlidesEnabled;
}
}

View File

@ -185,7 +185,8 @@ class BbbWebApiGWApp(
freeJoin = freeJoin.booleanValue(),
breakoutRooms = Vector(),
record = breakoutParams.record.booleanValue(),
privateChatEnabled = breakoutParams.privateChatEnabled.booleanValue()
privateChatEnabled = breakoutParams.privateChatEnabled.booleanValue(),
bringBackSlidesEnabled = breakoutParams.bringBackSlidesEnabled.booleanValue()
)
val welcomeProp = WelcomeProp(welcomeMsgTemplate = welcomeMsgTemplate, welcomeMsg = welcomeMsg,

View File

@ -102,7 +102,8 @@ class OldMeetingMsgHdlrActor(val olgMsgGW: OldMessageReceivedGW)
msg.body.room.sourcePresentationId,
msg.body.room.sourcePresentationSlide,
msg.body.room.record,
msg.body.room.privateChatEnabled
msg.body.room.privateChatEnabled,
msg.body.room.bringBackSlidesEnabled
))
}

View File

@ -74,6 +74,7 @@ export default function addMeeting(meeting) {
parentId: String,
record: Boolean,
privateChatEnabled: Boolean,
bringBackSlidesEnabled: Boolean,
},
meetingProp: {
intId: String,

View File

@ -1023,6 +1023,7 @@
"app.createBreakoutRoom.addRoomTime": "Increase breakout room time to",
"app.createBreakoutRoom.addParticipantLabel": "+ Add participant",
"app.createBreakoutRoom.freeJoin": "Allow users to choose a breakout room to join",
"app.createBreakoutRoom.capture": "Capture presentations when breakout rooms end",
"app.createBreakoutRoom.leastOneWarnBreakout": "You must place at least one user in a breakout room.",
"app.createBreakoutRoom.minimumDurationWarnBreakout": "Minimum duration for a breakout room is {0} minutes.",
"app.createBreakoutRoom.modalDesc": "Tip: You can drag-and-drop a user's name to assign them to a specific breakout room.",

View File

@ -391,6 +391,7 @@ checkBBBServerEvery=10
# Default settings for breakout rooms
breakoutRoomsRecord=false
breakoutRoomsPrivateChatEnabled=true
breakoutRoomsBringBackSlidesEnabled=true
# Default Lock Settings
lockSettingsDisableCam=false
@ -419,6 +420,7 @@ endWhenNoModeratorDelayInMinutes=1
# List of features to disable (comma-separated)
# Available options: breakoutRooms, captions, chat, externalVideos, layouts, learningDashboard, polls, screenshare,
# sharedNotes, virtualBackgrounds, downloadPresentationWithAnnotations, importPresentationWithAnnotationsFromBreakoutRooms
#disabledFeatures=
# Notify users that recording is on

View File

@ -1002,6 +1002,7 @@ class ApiController {
breakoutRooms {
record meeting.breakoutRoomsParams.record
privateChatEnabled meeting.breakoutRoomsParams.privateChatEnabled
bringBackSlidesEnabled meeting.breakoutRoomsParams.bringBackSlidesEnabled
}
}
customdata (