Commit Graph

17431 Commits

Author SHA1 Message Date
Gustavo Trott
82774b9a08
Merge pull request #21509 from gustavotrott/gql-annotations-diff
refactor (graphql-server): Preserves the entire history of annotation changes (type `pres_annotation_history_curr`)
2024-10-25 12:01:31 -03:00
Paulo Lanzarin
f55bd7b114
chore(audio): add I/O device data to audio logs (#21502)
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
2024-10-24 21:19:21 -04:00
Gustavo Trott
63bf4f35bc
fix (LAD/cluster): Enable LearningDashboard cookie support across different subdomains (#21518)
* 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>
2024-10-24 21:17:05 -04:00
transifex-integration[bot]
6e8b02204b
Translate en.json in fa_IR (#21524)
100% translated source file: 'en.json'
on 'fa_IR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-10-24 21:14:44 -04:00
KDSBrowne
d11ab481f9
fix(whiteboard): Mobile whiteboard tool access with auto hiding (#21486)
* update units from pt to px

* hide mobile toolbars when interacting with whiteboard

* remove animation condition | add prop type
2024-10-24 10:33:27 -03:00
Ramón Souza
0b8484609d
Merge pull request #21451 from Tainan404/fix-presentation-toast
Fix: Presentation uploader toast not appearing sometimes when converting notes from breakouts
2024-10-24 10:32:52 -03:00
transifex-integration[bot]
6fe3806844
Translate en.json in el_GR (#21508)
100% translated source file: 'en.json'
on 'el_GR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-10-24 05:04:36 -04:00
Gustavo Trott
392953f08e Improve insert of annotations to send it in batch 2024-10-23 17:32:38 -03:00
Ramón Souza
b56caaae9a
adjust userlist item margin (#21507) 2024-10-23 15:25:59 -04:00
transifex-integration[bot]
36d14eddc8
Translate en.json in ja (#21505)
100% translated source file: 'en.json'
on 'ja'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-10-23 10:24:53 -04:00
germanocaumo
bc324f480e
feat(recording): adds custom userdata recording permission (#21497)
* 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>
2024-10-23 10:47:48 -03:00
Ramón Souza
d876c45784
Merge pull request #21422 from germanocaumo/learning-dashboard-links
feat(learning-dashboard): Learn more and feedback phrases and links
2024-10-23 10:22:10 -03:00
Ramón Souza
c79637f21b
Merge pull request #21409 from Arthurk12/layout_media_only
feat(layout): new hidden layout type: `MEDIA_ONLY`
2024-10-23 09:12:22 -03:00
Arthur B. Grossi
4aab1b21d8
feat(layout): add userdata bbb_hide_controls (#21410)
* 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
2024-10-23 09:06:44 -03:00
Arthur B. Grossi
5f6b8bc698
feat: add bbb_hide_notifications (#21415)
* 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.
2024-10-22 17:43:00 -03:00
Ramón Souza
8daeafeb0d
Merge pull request #21480 from Arthurk12/bbb/30/21463
feat: introduces join parameter to flag user as `bot`
2024-10-22 17:32:13 -03:00
Ramón Souza
7af165801a
Merge pull request #21487 from JoVictorNunes/chat-patch-1017
fix(chat): Several fixes, UI improvements, et al.
2024-10-22 16:23:44 -03:00
Arthur B. Grossi
da847e6bb2
feat(plugins): set away and set speaker level ui commands (#21336)
* 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
2024-10-22 14:30:01 -04:00
transifex-integration[bot]
773f9af561
Translate en.json in el_GR (#21501)
100% translated source file: 'en.json'
on 'el_GR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-10-22 14:16:18 -04:00
João Victor
5275e4e1a8 fix(chat): Missing message background color if all toolbar features are disabled 2024-10-22 14:13:08 -03:00
Ramón Souza
a95701c192
revert settings change 2024-10-22 13:53:33 -03:00
germanocaumo
5920181882
fix(plugins): layout content pile hook improvements (#20636)
* 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
2024-10-22 12:53:08 -04:00
transifex-integration[bot]
cc963b5b62
Translate en.json in gl (#21498)
100% translated source file: 'en.json'
on 'gl'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-10-22 12:04:38 -04:00
Anton Georgiev
0cb406a846
Merge pull request #21478 from germanocaumo/bbb-breakout-room-permissions
feat: allow parent room moderators to kick other users in breakouts
2024-10-22 12:01:37 -04:00
Anton Georgiev
5788731745
Merge pull request #21211 from Arthurk12/sdk/issue/112
fix(plugins): unmount extensible areas
2024-10-22 10:14:24 -04:00
Anton Georgiev
78550a07dc
Merge pull request #21489 from prlanzarin/u30/fix/audio-overlapping-join
fix(audio): clear input device IDs if getUserMedia fails, +
2024-10-22 10:11:58 -04:00
Átila
a017cc239e
fix(dark-logo): darkreader changes are propagated to the user list (#21421) 2024-10-22 10:22:42 -03:00
KDSBrowne
8705ae52a9
only show hide toolbar to presenter and users with access to wb (#21484) 2024-10-22 09:26:08 -03:00
Arthurk12
7d9c6ee691 Merge remote-tracking branch 'bigbluebutton/v3.0.x-release' into sdk/issue/112 2024-10-21 16:29:00 -03:00
prlanzarin
c2161b9a14 fix(audio): clear input device IDs if getUserMedia fails
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.
2024-10-21 19:22:54 +00:00
prlanzarin
d0ad8afe64 fix(audio): prevent overlapping sessions from gUM-induced timeouts
`getUserMedia` is called by each audio bridge if it hasn't been
triggered during pre-flight screens. This ties gUM to the bridge's
negotiation timers and audio-manager's activation tracking, leading to
two issues:
  - A gUM prompt left unanswered for over 30 seconds can cause an
    incorrect 1010 (negotiation timeout) audio error.
  - If `retryThroughRelay: true`, and a joinAudio timeout occurs due to an
    unanswered gUM prompt, but the user responds while the system retries
    the connection, it can create overlapping audio sessions, resulting in
    mute state inconsistencies when `muteOnStart: true`.

This commit addresses these issues by moving gUM handling to the
audio-manager before any bridge action. This removes gUM from the
negotiation timeout trackers, ensuring that gUM errors are treated as
browser API errors (as expected).

Additionally, audio activation tracking in audio-manager has been updated
to exclude gUM times. Initially, gUM was included to catch unintended
browser-related gUM timeouts (e.g., Chrome bugs), but this skewed the
metric intended for tracking *negotiation times*. With this change,
`secondsToActivateAudio` will now focus solely on negotiation.
2024-10-21 19:19:49 +00:00
João Victor
e4d6720b68 fix: Adjust useSticyScroll hook dependency arrays 2024-10-21 15:15:01 -03:00
Guilherme Pereira Leme
060aa384c3
feat(plugin): Add possible way of updating a component without changing it completely (#21476) 2024-10-21 15:11:10 -03:00
João Victor
7584c63ee6 fix(chat): Add Math.ceil when calculating the page of the message 2024-10-21 15:06:56 -03:00
André Castro
5c85b0a4d4
Fix/mobile breakouts: Clicking one user would select another user (#21351) 2024-10-21 14:51:43 -03:00
Arthurk12
a9f33ab460 chore: updtae SDK version to 0.0.65
Updates SDK to v0.0.65
2024-10-21 12:11:55 -03:00
prlanzarin
a07e319e90 fix(audio): check error codes before retrying on start failure
The check for whether an error code is deemed "retryable" in
sfu-audio-bridge's joinAudio code is reversed - which may cause
unwarranted audio retries on join failures.
Since only one of the retry points is broken, this is a rare issue.
For end users, the visible behavior is a duplicate error alert
since non-retryable errors are likely to fail again in subsequent
attempts

Fix the check to properly skip audio retries if the error is not
retryable.
2024-10-21 14:43:12 +00:00
Guilherme Pereira Leme
873b590e91
chore(html5): Add stack trace to better investigate error in webcam background (#21444)
* [add-stack-trace] - Add stack trace to better investigate error

* Update bigbluebutton-html5/imports/ui/components/video-preview/component.jsx

---------

Co-authored-by: Tiago Jacobs <tiago.jacobs@gmail.com>
2024-10-21 09:44:51 -04:00
dependabot[bot]
72e57392f3
build(deps): bump the npm_and_yarn group across 5 directories with 4 updates (#21426)
Bumps the npm_and_yarn group with 3 updates in the /bbb-graphql-actions directory: [cookie](https://github.com/jshttp/cookie), [express](https://github.com/expressjs/express) and [path-to-regexp](https://github.com/pillarjs/path-to-regexp).
Bumps the npm_and_yarn group with 2 updates in the /bbb-graphql-client-test directory: [cookie](https://github.com/jshttp/cookie) and [express](https://github.com/expressjs/express).
Bumps the npm_and_yarn group with 2 updates in the /bbb-learning-dashboard directory: [cookie](https://github.com/jshttp/cookie) and [express](https://github.com/expressjs/express).
Bumps the npm_and_yarn group with 3 updates in the /bigbluebutton-html5 directory: [cookie](https://github.com/jshttp/cookie), [express](https://github.com/expressjs/express) and [postcss](https://github.com/postcss/postcss).
Bumps the npm_and_yarn group with 2 updates in the /docs directory: [cookie](https://github.com/jshttp/cookie) and [express](https://github.com/expressjs/express).


Updates `cookie` from 0.6.0 to 0.7.1
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1)

Updates `express` from 5.0.0 to 5.0.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/v5.0.0...5.0.1)

Updates `path-to-regexp` from 8.1.0 to 8.2.0
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v8.1.0...v8.2.0)

Updates `cookie` from 0.6.0 to 0.7.1
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1)

Updates `express` from 4.21.0 to 4.21.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/v5.0.0...5.0.1)

Updates `cookie` from 0.6.0 to 0.7.1
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1)

Updates `express` from 4.21.0 to 4.21.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/v5.0.0...5.0.1)

Updates `cookie` from 0.6.0 to 0.7.1
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1)

Updates `express` from 4.21.0 to 4.21.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/v5.0.0...5.0.1)

Updates `postcss` from 8.4.45 to 8.4.47
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.45...8.4.47)

Updates `cookie` from 0.6.0 to 0.7.1
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1)

Updates `express` from 4.21.0 to 4.21.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/v5.0.0...5.0.1)

---
updated-dependencies:
- dependency-name: cookie
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: express
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: path-to-regexp
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: cookie
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: express
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: cookie
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: express
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: cookie
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: express
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: postcss
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: cookie
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: express
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 08:57:28 -04:00
Anton Georgiev
064102daea
fix: Adjust string for session ending (#21402) 2024-10-21 08:34:06 -03:00
Arthurk12
27bfefd6ee feat(whiteboard): exclude bot from multi-user 2024-10-18 17:17:18 -03:00
Max Franke
740ff53fb5 feat(streaming): bot's default avatar
Set a default avatar to bot. Add the defaults methods to handle
the new feature.
2024-10-18 17:08:39 -03:00
hiroshisuga
36c9819d24
[3.0.0 transcription] Add locales as much as possible (#21376)
* Update en.json

* Update settings.yml

* Create transcriptionLocale.ts

* Update component.tsx

* Update component.tsx

* Revert IN -> ID

Because it will be fixed in the main repository

* let -> const message

British -> GB

* Refactor audio captions messages and locales to fix issues reported by typescript code validation

---------

Co-authored-by: Ramón Souza <contato@ramonsouza.com>
2024-10-18 15:22:04 -03:00
Arthurk12
22c2a371b0 feat(bot): increase bot transparency
This commit removes some actions and interactions that a bot user should
not be part:
  - No actions available when clicking over bot user in the user-list
  - Remove bot from exported user-list
  - Remove bot from available users to be assigned to breakouts
2024-10-18 15:15:49 -03:00
João Victor
6eb11f41b0 fix(chat): A few fixes
- Sort reactions by least recent and then by reaction count.
- Wrong condition for checking if a user is moderator was preventing moderators rom reacting to messages if locking public chat was activated.
- Wrong condition for checking if a user is moderator was preventing moderators from editing messages if locking public chat was activated.
- Display message time for all messages.
2024-10-18 14:37:29 -03:00
João Victor
dce4336ecc fix(chat): Start background animation just after scroll animation 2024-10-18 14:37:29 -03:00
João Victor
9d518ac2b7 fix(chat): Move message highlight request listeners to page component, reducing the number of listeners 2024-10-18 14:37:28 -03:00
João Victor
a60f32c49a fix(chat): Change background color animation duration to 1s 2024-10-18 14:37:28 -03:00
João Victor
fb5341a5eb fix(chat): Typescript error 2024-10-18 14:37:28 -03:00
João Victor
8d37029c85 fix(chat): Smoothen scrolling animation on message reply click 2024-10-18 14:37:28 -03:00