Merge branch 'v2.5.x-release' of github.com:bigbluebutton/bigbluebutton into merge-25

This commit is contained in:
Anton Georgiev 2022-03-31 15:32:14 +00:00
commit 2a131086a7
10 changed files with 16786 additions and 115 deletions

View File

@ -11,7 +11,7 @@ stages:
# define which docker image to use for builds
default:
image: gitlab.senfcall.de:5050/senfcall-public/docker-bbb-build:v2022-03-29-bbb-25-meteor-261
image: gitlab.senfcall.de:5050/senfcall-public/docker-bbb-build:v2022-03-30
# This stage uses git to find out since when each package has been unmodified.
# it then checks an API endpoint on the package server to find out for which of

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
import { GroupChatMsg } from '/imports/api/group-chat-msg';
import Logger from '/imports/startup/server/logger';
import addGroupChatMsg from '/imports/api/group-chat-msg/server/modifiers/addGroupChatMsg';
import addSystemMsg from '/imports/api/group-chat-msg/server/modifiers/addSystemMsg';
export default function clearGroupChatMsg(meetingId, chatId) {
const CHAT_CONFIG = Meteor.settings.public.chat;
@ -25,7 +25,7 @@ export default function clearGroupChatMsg(meetingId, chatId) {
},
message: CHAT_CLEAR_MESSAGE,
};
addGroupChatMsg(meetingId, PUBLIC_GROUP_CHAT_ID, clearMsg);
addSystemMsg(meetingId, PUBLIC_GROUP_CHAT_ID, clearMsg);
}
} catch (err) {
Logger.error(`Error on clearing GroupChat (${meetingId}, ${chatId}). ${err}`);

View File

@ -25,6 +25,7 @@ import VideoService from '/imports/ui/components/video-provider/service';
import DebugWindow from '/imports/ui/components/debug-window/component';
import { ACTIONS, PANELS } from '../../ui/components/layout/enums';
import { isChatEnabled } from '/imports/ui/services/features';
import MediaService from '/imports/ui/components/media/service';
const CHAT_CONFIG = Meteor.settings.public.chat;
const PUBLIC_CHAT_ID = CHAT_CONFIG.public_id;
@ -96,6 +97,8 @@ class Base extends Component {
value: usersVideo.length,
});
MediaService.setSwapLayout(layoutContextDispatch);
const {
userID: localUserId,
} = Auth;

View File

@ -21,7 +21,6 @@ import BannerBarContainer from '/imports/ui/components/banner-bar/container';
import WaitingNotifierContainer from '/imports/ui/components/waiting-users/alert/container';
import LockNotifier from '/imports/ui/components/lock-viewers/notify/container';
import StatusNotifier from '/imports/ui/components/status-notifier/container';
import MediaService from '/imports/ui/components/media/service';
import ManyWebcamsNotifier from '/imports/ui/components/video-provider/many-users-notify/container';
import UploaderContainer from '/imports/ui/components/presentation/presentation-uploader/container';
import CaptionsSpeechContainer from '/imports/ui/components/captions/speech/container';
@ -173,7 +172,6 @@ class App extends Component {
value: !hidePresentation,
});
MediaService.setSwapLayout(layoutContextDispatch);
Modal.setAppElement('#app');
const fontSize = isMobile() ? MOBILE_FONT_SIZE : DESKTOP_FONT_SIZE;

View File

@ -27,7 +27,6 @@ import {
borderSizeSmall,
toastIconMd,
toastIconSm,
smPaddingY,
jumboPaddingY,
} from '/imports/ui/stylesheets/styled-components/general';
import { smallOnly } from '/imports/ui/stylesheets/styled-components/breakpoints';
@ -180,7 +179,6 @@ const Toast = styled.div`
const ToastifyContainer = styled(Toastify)`
z-index: 9998;
position: fixed;
padding: ${smPaddingY};
min-width: 20rem !important;
max-width: 23rem !important;
box-sizing: border-box;

View File

@ -172,27 +172,14 @@ class Presentation extends PureComponent {
politeSRAlert(intl.formatMessage(intlMessages.slideContentChanged, { 0: currentSlide.num }));
}
if (prevProps?.slidePosition && slidePosition) {
const { width: prevWidth, height: prevHeight } = prevProps.slidePosition;
const { width: currWidth, height: currHeight } = slidePosition;
if (prevWidth !== currWidth || prevHeight !== currHeight) {
layoutContextDispatch({
type: ACTIONS.SET_PRESENTATION_CURRENT_SLIDE_SIZE,
value: {
width: currWidth,
height: currHeight,
},
});
}
const downloadableOn = !prevProps.currentPresentation.downloadable
if (currentPresentation) {
const downloadableOn = !prevProps?.currentPresentation?.downloadable
&& currentPresentation.downloadable;
const shouldCloseToast = !(currentPresentation.downloadable && !userIsPresenter);
if (
prevProps.currentPresentation.name !== currentPresentation.name
prevProps?.currentPresentation?.name !== currentPresentation.name
|| (downloadableOn && !userIsPresenter)
) {
if (this.currentPresentationToastId) {
@ -209,7 +196,7 @@ class Presentation extends PureComponent {
}
}
const downloadableOff = prevProps.currentPresentation.downloadable
const downloadableOff = prevProps?.currentPresentation?.downloadable
&& !currentPresentation.downloadable;
if (this.currentPresentationToastId && downloadableOff) {
@ -218,6 +205,21 @@ class Presentation extends PureComponent {
render: this.renderCurrentPresentationToast(),
});
}
}
if (prevProps?.slidePosition && slidePosition) {
const { width: prevWidth, height: prevHeight } = prevProps.slidePosition;
const { width: currWidth, height: currHeight } = slidePosition;
if (prevWidth !== currWidth || prevHeight !== currHeight) {
layoutContextDispatch({
type: ACTIONS.SET_PRESENTATION_CURRENT_SLIDE_SIZE,
value: {
width: currWidth,
height: currHeight,
},
});
}
if (layoutSwapped && restoreOnUpdate && !userIsPresenter && currentSlide) {
const slideChanged = currentSlide.id !== prevProps.currentSlide.id;

View File

@ -5,6 +5,10 @@ import { GroupChatContext } from '/imports/ui/components/components-data/group-c
import { UsersContext } from '/imports/ui/components/components-data/users-context/context';
import Service from '/imports/ui/components/user-list/service';
import Auth from '/imports/ui/services/auth';
import { withTracker } from 'meteor/react-meteor-data';
import Storage from '/imports/ui/services/storage/session';
const CLOSED_CHAT_LIST_KEY = 'closedChatList';
const UserMessagesContainer = () => {
const usingChatContext = useContext(ChatContext);
@ -19,4 +23,10 @@ const UserMessagesContainer = () => {
return <UserMessages {...{ activeChats, roving }} />;
};
export default UserMessagesContainer;
export default withTracker(() => {
// Here just to add reactivity to this component.
// We need to rerender this component whenever this
// Storage variable changes.
Storage.getItem(CLOSED_CHAT_LIST_KEY);
return {};
})(UserMessagesContainer);

View File

@ -143,6 +143,9 @@ const GlobalStyle = createGlobalStyle`
.actionToast {
background-color: ${colorWhite};
display: flex;
padding: ${smPaddingX};
border-radius: ${borderRadius};
i.close {
left: none !important;

View File

@ -39,7 +39,6 @@ tar xvfz sounds.tar.gz -C $DESTDIR/opt/freeswitch/share/freeswitch
#
# Overwrite "your are now muted"/"you are now unmuted" with short audio sounds. Thanks senfcall.de!
#
apt-get install -y sox
rm -f mute-and-unmute-sounds-master.zip
wget https://gitlab.senfcall.de/senfcall-public/mute-and-unmute-sounds/-/archive/master/mute-and-unmute-sounds-master.zip
rm -rf mute-and-unmute-sounds-master