diff --git a/static/galene.css b/static/galene.css index 4273bba..8c92efa 100644 --- a/static/galene.css +++ b/static/galene.css @@ -1194,10 +1194,36 @@ header .collapse:hover { font-weight: 900; } +#users > div::after { + font-family: 'Font Awesome 6 Free'; + color: gray; + margin-left: auto; + font-weight: 900; +} + #users > div.user-status-raisehand::before { content: "\f256"; } +#users > div.user-status-camera::after { + content: "\f03d"; +} + +#users > div.user-status-camera.user-status-screenshare::after { + content: "\f03d \f390"; +} + +#users > div.user-status-microphone::after { + content: "\f130"; +} + +#users > div.user-status-microphone.user-status-screenshare::after { + content: "\f130 \f390"; +} +#users > div.user-status-screenshare::after { + content: "\f390"; +} + .close-icon { font: normal 1em/1 Arial, sans-serif; display: inline-block; diff --git a/static/galene.js b/static/galene.js index 709cb6b..e0ba09f 100644 --- a/static/galene.js +++ b/static/galene.js @@ -2167,6 +2167,26 @@ function setUserStatus(id, elt, userinfo) { elt.classList.add('user-status-raisehand'); else elt.classList.remove('user-status-raisehand'); + + console.log(userinfo.streams); + + let camera = userinfo.streams['camera']; + if(camera && camera['video']) { + elt.classList.add('user-status-camera'); + elt.classList.remove('user-status-microphone'); + } else if(camera && camera['audio']) { + elt.classList.remove('user-status-camera'); + elt.classList.add('user-status-microphone'); + } else { + elt.classList.remove('user-status-camera'); + elt.classList.remove('user-status-microphone'); + } + + let screenshare = userinfo.streams['screenshare']; + if(screenshare && screenshare['video']) + elt.classList.add('user-status-screenshare'); + else + elt.classList.remove('user-status-screenshare'); } /**