You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2022/12/11 16:03:53 UTC
[openmeetings] branch master updated: [OPENMEETINGS-131] basic push-to-talk
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new 5d59add0e [OPENMEETINGS-131] basic push-to-talk
5d59add0e is described below
commit 5d59add0e21eeacac593aec10ef0897ecaabe4a8
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sun Dec 11 23:03:42 2022 +0700
[OPENMEETINGS-131] basic push-to-talk
---
.../src/main/front/room/src/video-manager.js | 20 ++++++++--
openmeetings-web/src/main/front/room/src/video.js | 19 ++++++++++
.../src/main/front/settings/src/video-util.js | 44 +++++++++++-----------
.../web/app/Application.properties.xml | 1 +
.../web/app/Application_ar.properties.xml | 1 +
.../web/app/Application_bg.properties.xml | 1 +
.../web/app/Application_bn.properties.xml | 1 +
.../web/app/Application_ca.properties.xml | 1 +
.../web/app/Application_cs.properties.xml | 1 +
.../web/app/Application_da.properties.xml | 1 +
.../web/app/Application_de.properties.xml | 1 +
.../web/app/Application_el.properties.xml | 1 +
.../web/app/Application_es.properties.xml | 1 +
.../web/app/Application_fa.properties.xml | 1 +
.../web/app/Application_fi.properties.xml | 1 +
.../web/app/Application_fr.properties.xml | 1 +
.../web/app/Application_gl.properties.xml | 1 +
.../web/app/Application_he.properties.xml | 1 +
.../web/app/Application_hi.properties.xml | 1 +
.../web/app/Application_hu.properties.xml | 1 +
.../web/app/Application_id.properties.xml | 1 +
.../web/app/Application_it.properties.xml | 1 +
.../web/app/Application_ja.properties.xml | 1 +
.../web/app/Application_ko.properties.xml | 1 +
.../web/app/Application_ku.properties.xml | 1 +
.../web/app/Application_lo.properties.xml | 1 +
.../web/app/Application_nl.properties.xml | 1 +
.../web/app/Application_pl.properties.xml | 1 +
.../web/app/Application_pt.properties.xml | 1 +
.../web/app/Application_pt_BR.properties.xml | 1 +
.../web/app/Application_ru.properties.xml | 1 +
.../web/app/Application_sk.properties.xml | 1 +
.../web/app/Application_sv.properties.xml | 1 +
.../web/app/Application_ta.properties.xml | 1 +
.../web/app/Application_th.properties.xml | 1 +
.../web/app/Application_tk.properties.xml | 1 +
.../web/app/Application_tr.properties.xml | 1 +
.../web/app/Application_uk.properties.xml | 1 +
.../web/app/Application_ur.properties.xml | 1 +
.../web/app/Application_zh_CN.properties.xml | 1 +
.../web/app/Application_zh_TW.properties.xml | 1 +
.../apache/openmeetings/web/room/RoomPanel.html | 2 +-
openmeetings-web/src/main/webapp/css/raw-room.css | 3 ++
43 files changed, 100 insertions(+), 26 deletions(-)
diff --git a/openmeetings-web/src/main/front/room/src/video-manager.js b/openmeetings-web/src/main/front/room/src/video-manager.js
index d8254fcc6..b8df5cce5 100644
--- a/openmeetings-web/src/main/front/room/src/video-manager.js
+++ b/openmeetings-web/src/main/front/room/src/video-manager.js
@@ -44,7 +44,7 @@ function _onReceive(msg) {
function _onKMessage(m) {
switch (m.id) {
case 'clientLeave':
- $(VID_SEL + '[data-client-uid="' + m.uid + '"]').each(function() {
+ $(`${VID_SEL}[data-client-uid="${m.uid}"]`).each(function() {
VideoMgrUtil.closeV($(this));
});
if (share.data('cuid') === m.uid) {
@@ -113,6 +113,8 @@ function _init() {
share = $('.room-block .room-container').find('.btn.shared');
VideoMgrUtil.init(share);
inited = true;
+ $(window).on('keydown.push-to-talk', {enable: true}, _onPtt);
+ $(window).on('keyup.push-to-talk', {enable: false}, _onPtt);
}
function _update(c) {
if (!inited) {
@@ -141,7 +143,7 @@ function _update(c) {
$(this).data().setRights(c.rights);
});
}
- $('[data-client-uid="' + c.cuid + '"]').each(function() {
+ $(`[data-client-uid="${c.cuid}"]`).each(function() {
const sd = $(this).data().stream();
if (!streamMap[sd.uid]) {
//not-inited/invalid video window
@@ -185,10 +187,10 @@ function _play(streams, iceServers) {
});
}
function _find(uid) {
- return $(VID_SEL + '[data-client-uid="' + uid + '"][data-client-type="WEBCAM"]');
+ return $(`${VID_SEL}[data-client-uid="${uid}"][data-client-type="WEBCAM"]`);
}
function _userSpeaks(uid, active) {
- const u = $('#user' + uid + ' .audio-activity')
+ const u = $(`#user${uid} .audio-activity`)
, v = _find(uid).parent();
if (active) {
u.addClass('speaking');
@@ -224,6 +226,14 @@ function _toggleActivity(activity) {
, activity: activity
});
}
+function _onPtt(e) {
+ if ((e.ctrlKey || e.metaKey) && 'Space' === e.code) {
+ const v = _find(Room.getOptions().uid);
+ if (v.length > 0 && v.data()) {
+ v.data().pushToTalk(e.data.enable);
+ }
+ }
+}
module.exports = {
init: _init
@@ -234,6 +244,8 @@ module.exports = {
, muteOthers: _muteOthers
, toggleActivity: _toggleActivity
, destroy: function() {
+ $(window).off('keydown.push-to-talk');
+ $(window).off('keyup.push-to-talk');
Wicket.Event.unsubscribe('/websocket/message', _onWsMessage);
}
};
diff --git a/openmeetings-web/src/main/front/room/src/video.js b/openmeetings-web/src/main/front/room/src/video.js
index 55375c44f..6f0a9582b 100644
--- a/openmeetings-web/src/main/front/room/src/video.js
+++ b/openmeetings-web/src/main/front/room/src/video.js
@@ -97,6 +97,9 @@ module.exports = class Video {
stream.getVideoTracks().forEach(track => track.enabled = cnts.videoEnabled);
stream.getAudioTracks().forEach(track => track.enabled = cnts.audioEnabled);
state.localStream = stream;
+ if (__pttEnabled(state)) {
+ OmUtil.alert('warning', $('#user-video').data('ptt-info'), 10000);
+ }
let _stream = stream;
const data = {};
if (stream.getAudioTracks().length !== 0) {
@@ -658,9 +661,25 @@ module.exports = class Video {
__initUI(_msg.instanceUid);
_refresh(_msg);
}
+ function __pttEnabled(state) {
+ return sd && sd.self && state && state.localStream
+ && VideoUtil.hasActivity(sd, VideoUtil.MIC_ACTIVITY) && !sd.micEnabled;
+ }
this.update = _update;
this.refresh = _refresh;
+ this.pushToTalk = (enable) => {
+ const state = __getState();
+ if (__pttEnabled(state)) {
+ state.localStream.getAudioTracks().forEach(track => track.enabled = enable);
+ const classes = document.querySelector('#room-sidebar-tab-users .header .om-icon.activity.mic.clickable').classList;
+ if (enable) {
+ classes.add('push-to-talk');
+ } else {
+ classes.remove('push-to-talk');
+ }
+ }
+ };
this.mute = function(_mute) {
vol.mute(_mute);
};
diff --git a/openmeetings-web/src/main/front/settings/src/video-util.js b/openmeetings-web/src/main/front/settings/src/video-util.js
index 1d6518b08..7ca532edb 100644
--- a/openmeetings-web/src/main/front/settings/src/video-util.js
+++ b/openmeetings-web/src/main/front/settings/src/video-util.js
@@ -17,6 +17,9 @@ function _isSharing(sd) {
function _isRecording(sd) {
return !!sd && 'SCREEN' === sd.type && sd.activities.includes(REC_ACTIVITY);
}
+function _hasActivity(sd, act) {
+ return !!sd && sd.activities.includes(act);
+}
function _hasMic(sd) {
if (!sd) {
return true;
@@ -228,29 +231,27 @@ function _setPos(v, pos) {
}
}
function _askPermission(callback) {
- const perm = $('#ask-permission');
- if (undefined === perm.dialog('instance')) {
- perm.data('callbacks', []).dialog({
- appendTo: '.room-block .room-container'
- , dialogClass: "ask-video-play-permission"
- , autoOpen: false
- , buttons: [
- {
- text: perm.data('btn-ok')
- , click: function() {
- while (perm.data('callbacks').length > 0) {
- perm.data('callbacks').pop()();
- }
- $(this).dialog('close');
- }
- }
- ]
+ const data = $('.sidebar').data('bs.confirmation');
+ if (typeof(data) === 'object') {
+ data.config.buttons[0].onClick = function() {callback();};
+ } else {
+ const perm = $('#ask-permission');
+ $('.sidebar').confirmation({
+ title: perm.attr('title')
+ , placement: Settings.isRtl ? 'right' : 'left'
+ , singleton: true
+ , rootSelector: '.sidebar'
+ , html: true
+ , content: perm.html()
+ , buttons: [{
+ class: 'btn btn-sm btn-warning'
+ , label: perm.data('btn-ok')
+ , value: perm.data('btn-ok')
+ , onClick: function() {callback();}
+ }]
});
}
- if (!perm.dialog('isOpen')) {
- perm.dialog('open');
- }
- perm.data('callbacks').push(callback);
+ $('.sidebar').confirmation('show');
}
function _disconnect(node) {
try {
@@ -309,6 +310,7 @@ module.exports = {
, hasMic: _hasMic
, hasCam: _hasCam
, hasVideo: _hasVideo
+ , hasActivity: _hasActivity
, getRects: _getRects
, getPos: _getPos
, container: _container
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
index 6dad69b01..7ab5e50a2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
index 73a8b47e2..a990ce8bc 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
@@ -887,6 +887,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.type.YES_NO"><![CDATA[نعم / لا]]></entry>
<entry key="profile.invitation"><![CDATA[رسالة دعوة]]></entry>
<entry key="profile.invitations"><![CDATA[الدعوات]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[تسجيلات المجموعة]]></entry>
<entry key="register.privacy.accept"><![CDATA[بالنقر على "${register}" ، فإنك توافق على ${link} الخاص بنا.]]></entry>
<entry key="register.privacy.statement"><![CDATA[بيان الخصوصية]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
index 5d406f23d..6d5908b37 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Да/Не]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
index 44728ed8d..e08f05bbb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
index ce149dcd3..8c06aa11d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Sí/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
index e658962a1..665801242 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Ano/Ne]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
index c8c3fb7c2..99dffcd36 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Ja/Nej]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
index 3497ea6da..4600b0921 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
@@ -893,6 +893,7 @@ Bitte <tt>openmeetings.log</tt> prüfen und die OpenMeetings-Entwickeler kontakt
<entry key="poll.type.YES_NO"><![CDATA[Ja/Nein]]></entry>
<entry key="profile.invitation"><![CDATA[Einladung]]></entry>
<entry key="profile.invitations"><![CDATA[Einladungen]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Gruppen-Aufnahmen]]></entry>
<entry key="register.privacy.accept"><![CDATA[Mit Klick auf "${register}" stimmen Sie unseren ${link} zu.]]></entry>
<entry key="register.privacy.statement"><![CDATA[Datenschutzerklärung]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
index 77a2ac02f..c74655c17 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Ναι/Όχι]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
index ed6372daa..820a72a5d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
@@ -889,6 +889,7 @@ por favor revise <tt> openmeetings.log </tt> y contacte a los desarrolladores de
<entry key="poll.type.YES_NO"><![CDATA[Sí/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitación]]></entry>
<entry key="profile.invitations"><![CDATA[Invitaciones]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Grabaciones de grupo (u organización)]]></entry>
<entry key="register.privacy.accept"><![CDATA[Haciendo clic en "${register}", declara su conformidad con nuestra ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[declaración de privacidad]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
index 08e090ca7..a7c6732ba 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
@@ -884,6 +884,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[خير/بله]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[ضبط های گروهی]]></entry>
<entry key="register.privacy.accept"><![CDATA[با کلیک بر روی "${register}" ، با ${link} ما موافقت می کنید.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
index 5edbc610a..bae83bf9c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Kyllä/Ei]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
index 1e5df2207..22f946df5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
@@ -889,6 +889,7 @@ allez sur <tt>openmeetings.log</tt> et contactez les développeurs d'OpenMeeting
<entry key="poll.type.YES_NO"><![CDATA[Oui/Non]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Enregistrements de groupe]]></entry>
<entry key="register.privacy.accept"><![CDATA[En cliquant sur "${register}", vous acceptez notre ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[déclaration de confidentialité]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
index e32212cb1..07b4a23a6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Sí/Non]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
index 4d9fa9607..485520eba 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
index 11b5d6681..5260769c7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
index f52f7e787..330535c04 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
@@ -876,6 +876,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Igen/Nem]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
index a890ea838..ace2b48b6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Ya/Tidak]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
index bcae392f0..6c422d26d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
@@ -889,6 +889,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Si/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invito]]></entry>
<entry key="profile.invitations"><![CDATA[Inviti]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
index afedeb029..72d1b8510 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
@@ -888,6 +888,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[はい/いいえ]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[グループの録画]]></entry>
<entry key="register.privacy.accept"><![CDATA[私は、「${register}」をクリックすることにより、 ${link} に同意します。]]></entry>
<entry key="register.privacy.statement"><![CDATA[プライバシーに関する声明]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
index c67b78ba7..eacc1c6d2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[네/아니오]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
index dc5f6916b..27941f874 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
index 2baf885a9..98d54be26 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
@@ -887,6 +887,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
index 81c8d45af..a29873bf2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Ja/Nee]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
index 5a6d0813b..7a5002a75 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
@@ -887,6 +887,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Tak/Nie]]></entry>
<entry key="profile.invitation"><![CDATA[Zaproszenie]]></entry>
<entry key="profile.invitations"><![CDATA[Zaproszenia]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Nagrania grupy]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
index 5eee6215d..aed665167 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Sim/Não]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
index b8bb38dd2..225669fd0 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
@@ -887,6 +887,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Sim/Não]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Convites]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
index 9daf63c4b..fd800b432 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
@@ -888,6 +888,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.type.YES_NO"><![CDATA[Да/Нет]]></entry>
<entry key="profile.invitation"><![CDATA[Приглашение]]></entry>
<entry key="profile.invitations"><![CDATA[Приглашения]]></entry>
+ <entry key="ptt.info"><![CDATA[Ваш микрофон отключен. Вы можете удерживать Ctrl+Пробел (Cmd+Пробел), чтобы временно включить звук (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Записи группы]]></entry>
<entry key="register.privacy.accept"><![CDATA[Нажимая на кнопку "${register}", Вы соглашаетесь с нашим ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[соглашением о конфиденциальности]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
index 3357b44de..41a7997a2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Áno/Nie]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
index d6aa104a0..2e4009400 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
@@ -894,6 +894,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Ja/Nej]]></entry>
<entry key="profile.invitation"><![CDATA[Inbjudan]]></entry>
<entry key="profile.invitations"><![CDATA[Inbjudningar]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Gruppinspelningar]]></entry>
<entry key="register.privacy.accept"><![CDATA[Genom att klicka "${register}", accepterar du våra ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[dataskyddspolicy]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
index f936034cb..1a9ecbd65 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
@@ -898,6 +898,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
index 5f5842bac..490b0bf64 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[ใช่/ไม่]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
index 3e05a2ba7..67b84b02d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
index 7117eaa37..6bb027963 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Evet/Hayır]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
index e0aab27be..cf61a133f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
@@ -887,6 +887,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Так/Ні]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
index 6dad69b01..7ab5e50a2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
index 6637dfd11..90bfac2dd 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
@@ -888,6 +888,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[是/否]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
index 136fb65f5..c14357c32 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="poll.type.YES_NO"><![CDATA[是/否]]></entry>
<entry key="profile.invitation"><![CDATA[Invitation]]></entry>
<entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+ <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
<entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
index 2980961d1..707891dff 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
@@ -95,7 +95,7 @@
</div>
</div>
<div hidden="hidden">
- <div id="user-video" class="video-container">
+ <div id="user-video" class="video-container" wicket:message="data-ptt-info:ptt.info">
<div class="video">
<canvas width="10" class="level-meter" wicket:message="title:767"></canvas>
<div class="om-icon mute-others clickable" wicket:message="title:video.muteothers"></div>
diff --git a/openmeetings-web/src/main/webapp/css/raw-room.css b/openmeetings-web/src/main/webapp/css/raw-room.css
index 5ed43f0ba..9e3289d0f 100644
--- a/openmeetings-web/src/main/webapp/css/raw-room.css
+++ b/openmeetings-web/src/main/webapp/css/raw-room.css
@@ -357,6 +357,9 @@ html[dir="rtl"] .room-block .sb-wb .sidebar {
content: '\f131';
color: var(--bs-warning);
}
+.activity.mic.om-icon.push-to-talk::before {
+ color: var(--bs-info);
+}
.room-block .sb-wb .sidebar .user-list .user.entry.current {
font-weight: bold;
background-color: var(--bs-light);