* update(chat): add option to disable private chat
- Adds `public.chat.private` to settings.yml, defaults to true
- Adds `privateChat` to disabledFeatures
* backend validation for disabledFeatures=privateChat
* refactor(settings): remove chat.private from settings.yml
Will be kept only in disabledFeatures
---------
Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
I/O device IDs are logged in some specific logCodes, but they aren't too
useful on their own without the rest of the MediaDeviceInfo object. We
need that extra data (label, group) to be able to better investigate
incorrect device issues and NotFoundError occurrences.
Register full I/O device info whenever the client fetches them and add
those, unfiltered, to the following logCodes:
- audiomanager_error_getting_device
- audiomanager_error_device_not_found
- audiomanager_error_unknown
- audio_joined
- audio_ended
- audio_failure
- audiomanager_input_live_device_change_failure
- audiomanager_output_device_change_failure
* Enable LearningDashboard cookie support across different subdomains.
After a meeting ends, the client sets a cookie `ld-${meetingId}` with a token used to retrieve meeting data in JSON format. The Learning Dashboard needs access to this cookie to obtain the token.
The issue occurs in a Cluster setup where the Dashboard is hosted on a different subdomain, preventing it from accessing the cookie.
To resolve this, the client will set the cookie using the root domain (excluding the subdomain). This allows the cookie to be accessible from any subdomain.
* lint fixes
* Update bigbluebutton-html5/imports/ui/components/meeting-ended/service.ts
Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
---------
Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
* Add new timeout props for document conversion
* Add timeout config props to bbb
* Fix typo in pdfPageDownscaleExecTimeout property
* Specifiy time units in property names
* [fix-breakouts-plugin] - Fix plugin not loading and not running into breakouts.
* [fix-breakouts-plugin] - simplifying createMeeting logic - changes in review
* feat(recording): adds custom "bbb_record_permission" userdata
Adds two new userdata parameters:
- bbb_record_permission: if true, bypass the moderator/viewer role permission and allows the user to start/stop the recording
- bbb_record_permission_tooltip: a string to show in the tooltip when the user don't have permission, useful to explain why the user can't start recording
This enables integrations to have custom rules for specific users to have or not permission to record a meeting
* chore(docs): adds new recording userdata to docs
* refactor: clean unused code
* Update docs/docs/administration/customize.md
Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
---------
Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
* ci (tests): Replace retry method for ./bbb-install.sh
* ensures the variables are evaluated within the script block
* avoid exiting step when bbb-install.sh fails
* Improve error handling and logging (bbb-install.sh)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Add an delay to retry runnung bbb-install.sh (to avoid toomanyrequests: You have reached your pull rate limit)
* show output in screen
* Remove lock in case the timeout was during an apt install
* return timeout to 25mins
* set initial value of COMMAND_EXIT_CODE
* remove unnecessary sudo
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* feat(layout): add `hideTopRow` to nav bar context
Adds the `hideTopRow` property to the navbar in the layout context, allowing
the top row of the navigation bar to be hidden. Only the row with the
talking indicators and timer indicator will remain visible when this
option is used.
* feat(layout): add userdata `bbb_hide_controls`
Introduces the userdata join parameter `bbb_hide_controls`, which hides
the action bar and the top row of the navigation bar (including the close
sidebar button, room title, connectivity indicator, and leave meeting button)
while keeping the row with the talking indicator and timer indicator visible.
* fix(layout): has actions bar boolean expression
* feat(layout): add `hideNotificationToasts` to notifications bar
context
Adds the `hideNotificationToasts` property to the notifications bar
in the layout context, allowing the notification toasts to be
hidden when the property is set to `true`.
* feat(layout): add userdata `bbb_hide_notifications`
Introduces join userdata parameter `bbb_hide_notifications` that
prevents the rendering of all notification toasts in the client.
* fix(learning-dashboard): show all sessions of users with same internal ID
Store and show sessions of users that rejoin with the same internalID
fix(learning-dashboard): compatibility with old data
Adjust old data to new expected sessions format.
fix(learning-dashboard): csv join and left times
Missed update from new json format, join and left were incorrect.
* fix(learning-dashboard): remove line breaks and spaces off poll question in csv
* fix(learning-dashboard): Normalize locale strings and prevent crash when using invalid strings
Fixes#1795
---------
Co-authored-by: Lucas Fialho Zawacki <lfzawacki@gmail.com>
* feat(plugins): set away and set speaker level ui commands
Adds set away and set speaker level to plugins ui commands.
* fix(plugins): clear event listener in ui commands
Properly remove event listener in user status and conference ui
commands.
* chore: sync SDK version
Updates SDK to v0.0.62
* feat(plugins): adjust the set away command
Ensures the current away status is used to mute the microphone correctly
when the away status is set to true. Additionaly, adds a dependency array
for the pertinent values to be updated in the event listener callback.
* chore: update SDK version
Updates SDK to v0.0.65
* chore: update SDK version to 0.0.66
Updates SDK to v0.0.66
* fix(plugins): layout content pile hook improvements
The isOpen property of the content was not being updated when the minimize button was pressed, so plugins couldn't know if it was open or not.
Also, plugins were not receiving the initial state when subscribing to the hook, they only received subsequent changes.
+ fix duplicated external video event and user list event with wrong names.
* fix: eslint errors
* fix(layout): remove previous content from pile
Always remove previous content from pile when calling SET_PILE_CONTENT_FOR_PRESENTATION_AREA with open = false
Stored input device IDs are not cleaned up whenever getUserMedia fails
with `NotFoundError` (i.e.: device not found). This causes a couple of
issues whenever skipEchoIfPreviousDevice is enabled:
- An unnecessary error screen if the user retries audio from scratch
(it should just go straight to the audio settings modal)
- A retry loop if no other devices are present in the system
Guarantee that stored input device IDs are cleared up whenever
getUserMedia fails with error name `NotFoundError`. This both the retry
loop and the unnecessary error screen.