Merge pull request #14712 from antobinary/merge-25

chore: Merge 2.5.x into 'develop'
This commit is contained in:
Anton Georgiev 2022-03-31 11:34:23 -04:00 committed by GitHub
commit 6fa921fbae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 16786 additions and 115 deletions

View File

@ -11,7 +11,7 @@ stages:
# define which docker image to use for builds # define which docker image to use for builds
default: 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. # 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 # 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 { GroupChatMsg } from '/imports/api/group-chat-msg';
import Logger from '/imports/startup/server/logger'; 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) { export default function clearGroupChatMsg(meetingId, chatId) {
const CHAT_CONFIG = Meteor.settings.public.chat; const CHAT_CONFIG = Meteor.settings.public.chat;
@ -25,7 +25,7 @@ export default function clearGroupChatMsg(meetingId, chatId) {
}, },
message: CHAT_CLEAR_MESSAGE, message: CHAT_CLEAR_MESSAGE,
}; };
addGroupChatMsg(meetingId, PUBLIC_GROUP_CHAT_ID, clearMsg); addSystemMsg(meetingId, PUBLIC_GROUP_CHAT_ID, clearMsg);
} }
} catch (err) { } catch (err) {
Logger.error(`Error on clearing GroupChat (${meetingId}, ${chatId}). ${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 DebugWindow from '/imports/ui/components/debug-window/component';
import { ACTIONS, PANELS } from '../../ui/components/layout/enums'; import { ACTIONS, PANELS } from '../../ui/components/layout/enums';
import { isChatEnabled } from '/imports/ui/services/features'; import { isChatEnabled } from '/imports/ui/services/features';
import MediaService from '/imports/ui/components/media/service';
const CHAT_CONFIG = Meteor.settings.public.chat; const CHAT_CONFIG = Meteor.settings.public.chat;
const PUBLIC_CHAT_ID = CHAT_CONFIG.public_id; const PUBLIC_CHAT_ID = CHAT_CONFIG.public_id;
@ -96,6 +97,8 @@ class Base extends Component {
value: usersVideo.length, value: usersVideo.length,
}); });
MediaService.setSwapLayout(layoutContextDispatch);
const { const {
userID: localUserId, userID: localUserId,
} = Auth; } = 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 WaitingNotifierContainer from '/imports/ui/components/waiting-users/alert/container';
import LockNotifier from '/imports/ui/components/lock-viewers/notify/container'; import LockNotifier from '/imports/ui/components/lock-viewers/notify/container';
import StatusNotifier from '/imports/ui/components/status-notifier/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 ManyWebcamsNotifier from '/imports/ui/components/video-provider/many-users-notify/container';
import UploaderContainer from '/imports/ui/components/presentation/presentation-uploader/container'; import UploaderContainer from '/imports/ui/components/presentation/presentation-uploader/container';
import CaptionsSpeechContainer from '/imports/ui/components/captions/speech/container'; import CaptionsSpeechContainer from '/imports/ui/components/captions/speech/container';
@ -173,7 +172,6 @@ class App extends Component {
value: !hidePresentation, value: !hidePresentation,
}); });
MediaService.setSwapLayout(layoutContextDispatch);
Modal.setAppElement('#app'); Modal.setAppElement('#app');
const fontSize = isMobile() ? MOBILE_FONT_SIZE : DESKTOP_FONT_SIZE; const fontSize = isMobile() ? MOBILE_FONT_SIZE : DESKTOP_FONT_SIZE;

View File

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

View File

@ -172,27 +172,14 @@ class Presentation extends PureComponent {
politeSRAlert(intl.formatMessage(intlMessages.slideContentChanged, { 0: currentSlide.num })); politeSRAlert(intl.formatMessage(intlMessages.slideContentChanged, { 0: currentSlide.num }));
} }
if (prevProps?.slidePosition && slidePosition) { if (currentPresentation) {
const { width: prevWidth, height: prevHeight } = prevProps.slidePosition; const downloadableOn = !prevProps?.currentPresentation?.downloadable
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
&& currentPresentation.downloadable; && currentPresentation.downloadable;
const shouldCloseToast = !(currentPresentation.downloadable && !userIsPresenter); const shouldCloseToast = !(currentPresentation.downloadable && !userIsPresenter);
if ( if (
prevProps.currentPresentation.name !== currentPresentation.name prevProps?.currentPresentation?.name !== currentPresentation.name
|| (downloadableOn && !userIsPresenter) || (downloadableOn && !userIsPresenter)
) { ) {
if (this.currentPresentationToastId) { if (this.currentPresentationToastId) {
@ -209,7 +196,7 @@ class Presentation extends PureComponent {
} }
} }
const downloadableOff = prevProps.currentPresentation.downloadable const downloadableOff = prevProps?.currentPresentation?.downloadable
&& !currentPresentation.downloadable; && !currentPresentation.downloadable;
if (this.currentPresentationToastId && downloadableOff) { if (this.currentPresentationToastId && downloadableOff) {
@ -218,6 +205,21 @@ class Presentation extends PureComponent {
render: this.renderCurrentPresentationToast(), 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) { if (layoutSwapped && restoreOnUpdate && !userIsPresenter && currentSlide) {
const slideChanged = currentSlide.id !== prevProps.currentSlide.id; 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 { UsersContext } from '/imports/ui/components/components-data/users-context/context';
import Service from '/imports/ui/components/user-list/service'; import Service from '/imports/ui/components/user-list/service';
import Auth from '/imports/ui/services/auth'; 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 UserMessagesContainer = () => {
const usingChatContext = useContext(ChatContext); const usingChatContext = useContext(ChatContext);
@ -19,4 +23,10 @@ const UserMessagesContainer = () => {
return <UserMessages {...{ activeChats, roving }} />; 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 { .actionToast {
background-color: ${colorWhite}; background-color: ${colorWhite};
display: flex;
padding: ${smPaddingX};
border-radius: ${borderRadius};
i.close { i.close {
left: none !important; 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! # 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 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 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 rm -rf mute-and-unmute-sounds-master