in demo-website/src/meeting.js [452:490]
updateRoster() {
let rosterText = '';
for (const attendeeId in this.roster) {
rosterText +=
'<li class="list-group-item d-flex justify-content-between align-items-center">';
rosterText += this.roster[attendeeId].name;
let score = this.roster[attendeeId].score;
if (!score) {
score = 0;
}
score = Math.floor(score * 100);
if (score) {
rosterText += ` (${score})`
}
rosterText += '<span class="badge badge-pill ';
let status = '';
if (this.roster[attendeeId].signalStrength < 1) {
status = ' ';
rosterText += 'badge-warning';
} else if (this.roster[attendeeId].signalStrength === 0) {
status = ' ';
rosterText += 'badge-danger';
} else if (this.roster[attendeeId].muted) {
status = 'MUTED';
rosterText += 'badge-secondary';
} else if (this.roster[attendeeId].active) {
status = 'SPEAKING';
rosterText += 'badge-success';
} else if (this.roster[attendeeId].volume > 0) {
status = ' ';
rosterText += 'badge-success';
}
rosterText += `">${status}</span></li>`;
}
const roster = document.getElementById('roster');
if (roster.innerHTML !== rosterText) {
roster.innerHTML = rosterText;
}
}