update: different colors for suggested rehersal and validated rehersal

This commit is contained in:
Nathan FONTEYNE 2026-08-11 11:44:42 +02:00
parent b056af78ac
commit a3d62200ce
10 changed files with 102 additions and 24 deletions

View file

@ -216,9 +216,10 @@ function renderCalendar() {
const rehearsal = rehearsalsByDate.get(isoDate(date));
if (rehearsal) {
cell.classList.add('has-rehearsal');
const isConfirmed = rehearsal.status === 'confirmed';
cell.classList.add('has-rehearsal', isConfirmed ? 'rehearsal-confirmed' : 'rehearsal-suggested');
const badge = document.createElement('span');
badge.title = 'Répétition proposée';
badge.title = isConfirmed ? 'Répétition confirmée' : 'Répétition proposée (en attente de votes)';
badge.textContent = '🎸';
badges.appendChild(badge);
}
@ -488,13 +489,29 @@ function rehearsalVoteActionsHtml(r) {
`;
}
function rehearsalVoterHtml(v, r) {
const isHost = r.hostUserId && v.userId === r.hostUserId;
const name = isHost ? `${v.name}` : v.name;
return `${avatarHtml({ name: v.name, avatarUrl: v.avatarUrl }, 'avatar-sm')}<span>${escapeHtml(name)}</span>`;
}
function rehearsalAcceptedByHtml(r) {
const accepted = r.votes.filter((v) => v.vote === 'accept');
if (!accepted.length) return '';
const refused = r.votes.filter((v) => v.vote === 'reject');
if (!accepted.length && !refused.length) return '';
return `
<div class="rehearsal-accepted-by">
${accepted.map((v) => `${avatarHtml({ name: v.name, avatarUrl: v.avatarUrl }, 'avatar-sm')}<span>${escapeHtml(v.name)}</span>`).join('')}
</div>
${accepted.length ? `
<div class="rehearsal-accepted-by">
<span class="note">Ont accepté :</span>
${accepted.map((v) => rehearsalVoterHtml(v, r)).join('')}
</div>
` : ''}
${refused.length ? `
<div class="rehearsal-accepted-by rehearsal-refused-by">
<span class="note">Ont refusé :</span>
${refused.map((v) => rehearsalVoterHtml(v, r)).join('')}
</div>
` : ''}
`;
}