diff --git a/src/resources/js/meet/app.js b/src/resources/js/meet/app.js --- a/src/resources/js/meet/app.js +++ b/src/resources/js/meet/app.js @@ -1012,8 +1012,8 @@ + '' + '' + '
' - + '' - + '' + + '' + + '' + '
' + '' ) diff --git a/src/resources/vue/Meet/Room.vue b/src/resources/vue/Meet/Room.vue --- a/src/resources/vue/Meet/Room.vue +++ b/src/resources/vue/Meet/Room.vue @@ -3,20 +3,20 @@ @@ -269,7 +269,11 @@ 429: 'Too many requests. Please, wait.', 500: 'Failed to connect to the room. Server error.' }, - session: {} + session: {}, + audioActive: false, + videoActive: false, + handRaised: false, + screenShareActive: false } }, mounted() { @@ -503,10 +507,6 @@ $('#app').addClass('meet') $('#meet-setup').addClass('hidden') $('#meet-session-toolbar,#meet-session-layout').removeClass('hidden') - - if (!this.canShareScreen) { - this.setMenuItem('screen', false, true) - } } this.session.onError = () => { this.roomState = 500 @@ -615,15 +615,6 @@ roomOptions() { $('#room-options-dialog').modal() }, - setMenuItem(type, state, disabled) { - let button = $('#meet-session-menu').find('.link-' + type) - - button[state ? 'removeClass' : 'addClass']('text-danger') - - if (disabled !== undefined) { - button.prop('disabled', disabled) - } - }, setupMedia() { let dialog = $('#media-setup-dialog') @@ -644,23 +635,23 @@ this.microphone = setup.audioSource this.camera = setup.videoSource - this.setMenuItem('audio', setup.audioActive) - this.setMenuItem('video', setup.videoActive) + this.audioActive = setup.audioActive + this.videoActive = setup.videoActive }, onError: error => { - this.setMenuItem('audio', false, true) - this.setMenuItem('video', false, true) + this.audioActive = false + this.videoActive = false } }) }, setupCameraChange() { this.meet.setupSetVideoDevice(this.camera).then(enabled => { - this.setMenuItem('video', enabled) + this.videoActive = enabled }) }, setupMicrophoneChange() { this.meet.setupSetAudioDevice(this.microphone).then(enabled => { - this.setMenuItem('audio', enabled) + this.audioActive = enabled }) }, switchChannel(e) { @@ -672,8 +663,7 @@ switchChat() { let chat = $('#meet-chat') let enabled = chat.is('.open') - - this.setMenuItem('chat', !enabled) + chat.toggleClass('open') if (!enabled) { @@ -701,21 +691,20 @@ } }, switchHand() { - let enabled = $('#meet-session-menu').find('.link-hand').is('.text-danger') - this.updateSelf({ hand: enabled }, () => { this.setMenuItem('hand', enabled) }) + this.updateSelf({ hand: !this.handRaised }) }, switchSound() { const enabled = this.meet.switchAudio() - this.setMenuItem('audio', enabled) + this.audioActive = enabled }, switchVideo() { const enabled = this.meet.switchVideo() - this.setMenuItem('video', enabled) + this.videoActive = enabled }, switchScreen() { const switchScreenAction = () => { this.meet.switchScreen((enabled, error) => { - this.setMenuItem('screen', enabled) + this.screenShareActive = enabled if (!enabled && !error) { // Closing a screen sharing connection invalidates the token delete this.session.shareToken @@ -723,7 +712,7 @@ }) } - if (this.session.shareToken || !$('#meet-session-menu').find('.link-screen').is('.text-danger')) { + if (this.session.shareToken || this.screenShareActive) { switchScreenAction() } else { axios.post('/api/v4/openvidu/rooms/' + this.room + '/connections') @@ -753,9 +742,10 @@ const isPublisher = this.isPublisher() - this.setMenuItem('video', isPublisher ? data.videoActive : false) - this.setMenuItem('audio', isPublisher ? data.audioActive : false) - this.setMenuItem('hand', data.hand) + this.videoActive = isPublisher ? data.videoActive : false + this.audioActive = isPublisher ? data.audioActive : false + + this.handRaised = data.hand } } }