TT#47707 Conferencing: As a Customer, I want to mute/unmute all participants

- can mute all participants at the same time by clicking a single button (#71350)
- can unmute all participants at the same time by clicking a single button (#71352)

Change-Id: Iaf40499acc23baaef797db61b714932fb561e7a0
changes/32/35632/8
Carlo Venusino 6 years ago
parent 1ab39e4b7e
commit 8d94175edd

@ -165,8 +165,8 @@
this.fitMediaToParent();
}
},
toggleAudio(){
return this.$refs.media.muted = !this.$refs.media.muted;
toggleAudio(muted){
return this.$refs.media.muted = muted || !this.$refs.media.muted;
},
isMuted(){
return this.$refs.media.muted;

@ -40,7 +40,9 @@
v-if="!isJoining && isJoined"
/>
<csc-conference-participants
ref="confParticipants"
v-if="!isJoining && isJoined"
:is-muted="isMuted"
/>
</div>
@ -113,6 +115,31 @@
@click="toggleScreen()"
:disable="!hasConferenceId || isJoining"
/>
<q-btn
class="csc-conf-button"
:color="screenButtonColor"
icon="more_vert"
round
:disable="!hasConferenceId || isJoining"
>
<q-popover
ref="popover"
:disable="participantsList.length < 1">
<q-list
link
class="no-border"
>
<q-item
@click="toggleMuteAll"
>
<q-item-main
:label="muteLabel()"
/>
</q-item>
</q-list>
</q-popover>
</q-btn>
</div>
</div>
<csc-confirm-dialog
@ -141,12 +168,17 @@
QBtn,
QCard,
QCardMedia,
QIcon
QIcon,
QPopover,
QList,
QItem,
QItemMain
} from 'quasar-framework'
import CscConfirmDialog from "../CscConfirmationDialog";
export default {
data: function () {
return {
isMuted: false,
selectedMediaStream : null,
selectedParticipantName: null
}
@ -165,7 +197,11 @@
QBtn,
QCard,
QCardMedia,
QIcon
QIcon,
QPopover,
QList,
QItem,
QItemMain
},
computed: {
...mapState('conference',[
@ -255,6 +291,15 @@
this.$store.dispatch('conference/toggleScreen');
}
},
toggleMuteAll(){
this.$refs.popover.close();
this.isMuted = !this.isMuted;
},
muteLabel() {
return this.isMuted
? this.$t('conferencing.unmuteAll')
: this.$t('conferencing.muteAll');
},
async join(conferenceId) {
if(this.hasConferenceId) {
await this.$store.dispatch('conference/join', conferenceId);

@ -23,6 +23,7 @@
:has-remote-video="hasRemoteVideo(participantId)"
:remote-media-stream="remoteMediaStream"
:remote-media-streams="remoteMediaStreams"
:is-muted="isMuted"
/>
</div>
</div>
@ -48,6 +49,9 @@
CscConferenceRemoteParticipant,
CscConferenceLocalParticipant
},
props: [
'isMuted'
],
computed: {
...mapState('conference', [
'remoteMediaStreams'

@ -25,13 +25,13 @@
<q-icon
class="csc-conf-toggle-audio-icon"
name="volume_off"
v-if="isMuted"
v-if="isAudioMuted"
>
</q-icon>
<q-icon
class="csc-conf-toggle-audio-icon"
name="volume_up"
v-if="!isMuted"
v-if="!isAudioMuted"
>
</q-icon>
</div>
@ -78,8 +78,8 @@
},
data: function () {
return {
localMediaStream : null,
isMuted: false
isAudioMuted: JSON.parse(this.isMuted),
localMediaStream : null
}
},
props: [
@ -87,6 +87,7 @@
'remoteMediaStream',
'remoteMediaStreams',
'hasRemoteVideo',
'isMuted'
],
computed: {
...mapState('conference', [
@ -117,11 +118,11 @@
}
},
toggleAudio(){
this.$refs.popover.close()
this.isMuted = this.$refs.cscMedia.toggleAudio();
this.$refs.popover.close();
this.isAudioMuted = this.$refs.cscMedia.toggleAudio();
},
audioLabel() {
return this.isMuted
return this.isAudioMuted
? this.$t('conferencing.unmuteMicrophone')
: this.$t('conferencing.muteMicrophone');
}
@ -129,6 +130,10 @@
watch: {
remoteMediaStreams() {
this.assignStream();
},
isMuted(){
this.isAudioMuted = this.isMuted;
this.$refs.cscMedia.toggleAudio(this.isMuted);
}
}
}

@ -598,7 +598,9 @@
"exitDialogText": "Leave current conference now!",
"leaveButtonLabel": "Leave",
"muteMicrophone": "Mute",
"unmuteMicrophone": "Unmute"
"unmuteMicrophone": "Unmute",
"muteAll": "Mute all",
"unmuteAll": "Unmute all"
},
"userSettings": {
"changePassword": "Change password",

Loading…
Cancel
Save