Add a setting for the default state of the breakout "Propagate the current lock settings" checkbox
Is your feature request related to a problem? Please describe.
Every other checkbox in the create-breakout panel has a settings.yml key that
controls whether it starts checked. inheritLockSettings is the one exception —
it is hardcoded to false and cannot be changed by an administrator.
bigbluebutton-html5/imports/ui/components/breakout-room/create-breakout-room/sidebar-create-breakout/component.tsx:338-348
const [freeJoin, setFreeJoin] = useState(allowUserChooseRoomByDefault);
const [captureSlides, setCaptureSlides] = useState(captureWhiteboardByDefault);
const [captureNotes, setCaptureNotes] = useState(captureSharedNotesByDefault);
const [record, setRecord] = useState(recordRoomByDefault || false);
const [inviteMods, setInviteMods] = useState(inviteModsByDefault);
const [inheritLockSettings, setInheritLockSettings] = useState(false); // <- hardcodedDeployments that always want breakouts to inherit the main room's lock settings have no way to make that the default, so the moderator must remember to tick the box on every breakout creation.
Describe the solution you'd like
A new key in public.app.breakouts, following the existing *ByDefault naming.
Suggested name: inheritLockSettingsByDefault
Suggested spot: bigbluebutton-html5/private/config/settings.yml, inserted
after sendInvitationToAssignedModeratorsByDefault (currently line 181) so the
five "pre-check" keys stay grouped above the numeric ones.
Suggested label (comment wording matches the sibling keys and the UI string
app.createBreakoutRoom.inheritLockSettings = "Propagate the current lock settings"):
# Pre-check the "send invitation to assigned moderators" option
sendInvitationToAssignedModeratorsByDefault: false
# Pre-check the "Propagate the current lock settings" option
inheritLockSettingsByDefault: false
# Minimum number of breakout rooms that can be created
breakoutRoomMinimum: 2Default stays false, so existing behaviour is unchanged.
Client side is two edits in the same component — destructure it alongside the others (around line 320) and use it as the initial state:
sendInvitationToAssignedModeratorsByDefault: inviteModsByDefault,
inheritLockSettingsByDefault,
} = BREAKOUT_SETTINGS;
...
const [inheritLockSettings, setInheritLockSettings] = useState(inheritLockSettingsByDefault);Please also add a test
There is already a spec for this checkbox that can be extended rather than written from scratch:
bigbluebutton-tests/playwright/breakout/breakout.spec.ts—test('Inherit lock settings checkbox is visible and unchecked by default', ...)bigbluebutton-tests/playwright/breakout/create.ts—inheritLockSettingsCheckboxIsVisible(), which already assertsexpect(checkbox).not.toBeChecked()
Keep that test as-is (it now also proves the new default is false) and add a
companion that exercises the setting via clientSettingsOverrides, which the
harness already supports and which needs no server config change:
test('Inherit lock settings checkbox is pre-checked when inheritLockSettingsByDefault is true',
async ({ browser, context, page }, testInfo) => {
const create = new Create(browser, context);
await create.initModPage(page, {
testInfo,
clientSettingsOverrides: {
public: { app: { breakouts: { inheritLockSettingsByDefault: true } } },
},
});
await create.inheritLockSettingsCheckboxIsChecked();
});with a helper mirroring the existing one but asserting toBeChecked(). The
checkbox is reachable at e.inheritLockSettingsCheckbox behind
e.breakoutRoomSidebarButton then e.moreOptionsToggle.
Source: bigbluebutton/bigbluebutton