Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
919ff6a
grid-aware resize snapping in camera dock
ramonlsouza Jul 13, 2026
ae97e55
fix clear timeout
ramonlsouza Jul 15, 2026
7065b5a
fix resize when camera is on left or right of presentation
ramonlsouza Jul 16, 2026
9ccf337
test: add BlockNote shared notes e2e tests (backport of #25165)
imdt-claudiop Jul 17, 2026
b097789
chore(client): fix children PropType in PresentationDownloadDropdownW…
hiroshisuga Jul 20, 2026
19bd7e5
Merge pull request #25444 from imdt-claudiop/backport-25165-to-v3.0
ramonlsouza Jul 20, 2026
d47ee9c
build(deps): bump axios from 1.16.0 to 1.18.0 in /bbb-export-annotations
dependabot[bot] Jul 20, 2026
30ca215
Merge pull request #25468 from bigbluebutton/dependabot/npm_and_yarn/…
antobinary Jul 20, 2026
f14cadf
fix(docs): use valid font-weight for Open Sans SemiBold @font-face (#…
antobinary Jul 20, 2026
2f03533
build(deps): bump axios in /bbb-shared-notes-server (#25470)
dependabot[bot] Jul 20, 2026
087090c
Docs: Clarify voiceBridge range (#25464)
samuelwei Jul 20, 2026
75da805
docs: Documentation catchup on 3.0 new features/configs since 3.0.28 …
antobinary Jul 21, 2026
8749458
build(deps): bump axios in /bigbluebutton-tests/playwright (#25474)
dependabot[bot] Jul 21, 2026
a41965a
build(deps): bump ch.qos.logback:logback-core in /bbb-recording-imex …
dependabot[bot] Jul 21, 2026
c963ec3
build(deps): bump linkify-it from 5.0.1 to 5.0.2 in /bigbluebutton-ht…
dependabot[bot] Jul 21, 2026
def2124
add anon row check in learning dashboard csv test
ramonlsouza Jul 22, 2026
2cbff28
build(deps): bump fast-uri from 3.1.2 to 3.1.4 in /docs (#25486)
dependabot[bot] Jul 22, 2026
637b9b7
build(deps): bump svgo from 3.3.3 to 3.3.4 in /docs (#25489)
dependabot[bot] Jul 22, 2026
a000f44
build(deps): bump shell-quote from 1.8.4 to 1.10.0 in /docs (#25485)
dependabot[bot] Jul 22, 2026
f176b84
build(deps): bump body-parser from 1.20.5 to 1.20.6 in /docs (#25484)
dependabot[bot] Jul 22, 2026
aac5577
build(deps-dev): bump brace-expansion in /bbb-shared-notes-server (#2…
dependabot[bot] Jul 22, 2026
ebf75d6
fix(learning-dashboard): omit anonymous CSV row when no anonymous pol…
ramonlsouza Jul 22, 2026
f95ae6e
Merge pull request #25435 from ramonlsouza/i-25425
ramonlsouza Jul 22, 2026
ee28529
build(deps-dev): bump fast-uri in /bigbluebutton-html5 (#25499)
dependabot[bot] Jul 22, 2026
c4cfd30
docs: add missing create params (#25082)
antobinary Jul 23, 2026
b5f1470
Merge pull request #25496 from ramonlsouza/issue-25447
antobinary Jul 23, 2026
224714f
Merge pull request #25410 from ramonlsouza/cam-size-up
antobinary Jul 23, 2026
23809e8
fix(bbb-web): fall back to meeting logoutURL on API error redirects
antobinary Jul 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import org.bigbluebutton.core.running.LiveMeeting
import org.bigbluebutton.core.util.RandomStringGenerator

import java.io.File
import java.net.URI

trait MakePresentationDownloadReqMsgHdlr extends RightsManagementTrait {
this: PresentationPodHdlrs =>
Expand Down Expand Up @@ -173,16 +172,18 @@ trait MakePresentationDownloadReqMsgHdlr extends RightsManagementTrait {
bus.outGW.send(buildStoreAnnotationsInRedisSysMsg(annotations, liveMeeting))
} else {
// Return existing uploaded file directly
val convertedFileName = new URI(null, null, currentPres.get.filenameConverted, null).getRawPath
val originalFilename = new URI(null, null, currentPres.get.name, null).getRawPath
val convertedFileName = currentPres.get.filenameConverted
val originalFilename = currentPres.get.name
val originalFileExt = originalFilename.split("\\.").last
val convertedFileExt = if (convertedFileName != "") convertedFileName.split("\\.").last else ""

val convertedFileURI = if (convertedFileName != "") List("presentation", "download", meetingId,
s"${presId}?presFilename=${presId}.${convertedFileExt}&filename=$convertedFileName").mkString("", File.separator, "")
val convertedFileURI = if (convertedFileName != "") PresentationDownloadUrlBuilder.buildFileUri(
meetingId, presId, convertedFileExt, convertedFileName
)
else ""
val originalFileURI = List("presentation", "download", meetingId,
s"${presId}?presFilename=${presId}.${originalFileExt}&filename=$originalFilename").mkString("", File.separator, "")
val originalFileURI = PresentationDownloadUrlBuilder.buildFileUri(
meetingId, presId, originalFileExt, originalFilename
)

val event = buildNewPresFileAvailable("", originalFileURI, convertedFileURI, presId,
m.body.fileStateType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ import org.bigbluebutton.core.models.PresentationInPod
import org.bigbluebutton.core.running.LiveMeeting
import org.bigbluebutton.core2.message.senders.MsgBuilder

import java.io.File
import java.net.URI
import java.time.{Instant, Duration}

trait PresentationConversionCompletedSysPubMsgHdlr {
Expand Down Expand Up @@ -61,9 +59,9 @@ trait PresentationConversionCompletedSysPubMsgHdlr {

PresPresentationDAO.updatePages(presWithConvertedName)
if (pres.downloadable) {
val originalFilename = new URI(null, null, pres.name, null).getRawPath
val originalFileURI = List("presentation", "download", meetingId,
s"${pres.id}?presFilename=${pres.id}.${originalDownloadableExtension}&filename=$originalFilename").mkString("", File.separator, "")
val originalFileURI = PresentationDownloadUrlBuilder.buildFileUri(
meetingId, pres.id, originalDownloadableExtension, pres.name
)
PresPresentationDAO.updateDownloadUri(pres.id, originalFileURI)
}
if(pres.current) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.bigbluebutton.core.apps.presentationpod

import java.net.URLEncoder
import java.nio.charset.StandardCharsets

object PresentationDownloadUrlBuilder {
private def encodeQueryValue(value: String): String = {
URLEncoder.encode(value, StandardCharsets.UTF_8).replace("+", "%20")
}

def buildFileUri(
meetingId: String,
presentationId: String,
fileExtension: String,
downloadFilename: String
): String = {
val storedFilename = encodeQueryValue(s"${presentationId}.${fileExtension}")
val encodedDownloadFilename = encodeQueryValue(downloadFilename)

s"presentation/download/${meetingId}/${presentationId}" +
s"?presFilename=${storedFilename}&filename=${encodedDownloadFilename}"
}
}
64 changes: 52 additions & 12 deletions bbb-export-annotations/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion bbb-export-annotations/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"dependencies": {
"@svgdotjs/svg.js": "^3.2.4",
"axios": "^1.16.0",
"axios": "^1.18.0",
"form-data": "^4.0.4",
"opentype.js": "^1.3.4",
"perfect-freehand": "^1.2.2",
Expand Down
4 changes: 3 additions & 1 deletion bbb-learning-dashboard/src/services/UserService.js
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,9 @@ export function makeUserCSVData(users, polls, intl) {
// Add the anonymous answers
anonymousRecord += `,"${pollValues[i].anonymousAnswers.join('\r\n')}"`;
}
userRecords.Anonymous = anonymousRecord;
if (pollValues.some((poll) => poll.anonymous)) {
userRecords.Anonymous = anonymousRecord;
}

return [
header,
Expand Down
2 changes: 1 addition & 1 deletion bbb-recording-imex/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.5.33</version>
<version>1.5.34</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
Expand Down
14 changes: 7 additions & 7 deletions bbb-shared-notes-server/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion bbb-shared-notes-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"@hocuspocus/server": "^4.0.0",
"@types/express": "^5.0.6",
"@types/node": "^22.19.15",
"axios": "^1.15.2",
"axios": "^1.18.0",
"claude": "^0.1.2",
"express": "^5.2.1",
"express-rate-limit": "^8.5.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,7 @@ function BlockNoteApp(props: BlockNoteAppProps): React.ReactElement {
ref={toolbarRef}
role="toolbar"
className="bn-toolbar-row"
data-test="blockNoteToolbar"
onKeyDown={(e) => { if (e.key === 'Escape') editor.focus(); }}
>
<FormattingToolbar>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import Styled from './styles';

const propTypes = {
children: PropTypes.shape({}).isRequired,
children: PropTypes.node.isRequired,
};
function PresentationDownloadDropdownWrapper({ children }) {
return (
Expand Down
Loading
Loading