Putzplan-Kalender: Erledigungsstatus je Aufgabe sichtbar machen

Kalender-Badges zeigen jetzt Offen/Erledigt/Bestätigt/Verpasst per Icon
und Farbe, statt nur Bereich und zuständige Person.
This commit is contained in:
Giuseppe Lombardo 2026-08-13 13:09:49 +00:00
parent fdf98a70e5
commit c385947e80

View File

@ -321,7 +321,10 @@
line-height: 1.4; line-height: 1.4;
white-space: normal; white-space: normal;
} }
.calendar-badge-task { background: var(--green-bg, #E4F3EA); color: var(--green, #2f8f5b); } .calendar-badge-task-pending { background: var(--yellow-bg, #FDF3DC); color: var(--yellow, #B4780A); }
.calendar-badge-task-completed { background: #DCEAFB; color: #2062B4; }
.calendar-badge-task-verified { background: var(--green-bg, #E4F3EA); color: var(--green, #2f8f5b); }
.calendar-badge-task-missed { background: #FBE0DE; color: #C23B2E; }
.calendar-badge-absence { background: var(--yellow-bg, #FDF3DC); color: var(--yellow, #B4780A); } .calendar-badge-absence { background: var(--yellow-bg, #FDF3DC); color: var(--yellow, #B4780A); }
.inventory-thumb { .inventory-thumb {
@ -792,7 +795,10 @@
<section id="cleaningCalendarSection"> <section id="cleaningCalendarSection">
<h2>Putzplan-Kalender &amp; Abwesenheiten</h2> <h2>Putzplan-Kalender &amp; Abwesenheiten</h2>
<p style="color:var(--text-muted); font-size:13px; margin-top:-8px;"> <p style="color:var(--text-muted); font-size:13px; margin-top:-8px;">
Zeigt für alle sichtbar, wer wann für welchen Bereich zuständig ist, sowie eingetragene Abwesenheiten (Urlaub, "kann nicht"). Zeigt für alle sichtbar, wer wann für welchen Bereich zuständig ist und ob die Aufgabe bereits erledigt wurde, sowie eingetragene Abwesenheiten (Urlaub, "kann nicht").
</p>
<p style="color:var(--text-muted); font-size:12px; margin-top:-8px;">
○ Offen &nbsp; ✓ Erledigt &nbsp; ✓✓ Bestätigt &nbsp; ✕ Verpasst
</p> </p>
<div class="invite-card" style="margin-bottom:16px;"> <div class="invite-card" style="margin-bottom:16px;">
<div id="absenceFormError" style="display:none" class="form-error"></div> <div id="absenceFormError" style="display:none" class="form-error"></div>
@ -2088,8 +2094,17 @@
cell.appendChild(el('div', 'calendar-day-num', String(d.getDate()))); cell.appendChild(el('div', 'calendar-day-num', String(d.getDate())));
calendarData.tasks.filter(t => sameDay(new Date(t.dueDate), d)).forEach(t => { calendarData.tasks.filter(t => sameDay(new Date(t.dueDate), d)).forEach(t => {
const label = `${t.area}${t.assignedUser ? ' · ' + t.assignedUser.fullName.split(' ')[0] : ''}`; const statusIcon = { PENDING: '○', COMPLETED: '✓', VERIFIED: '✓✓', MISSED: '✕' }[t.status] || '';
cell.appendChild(el('div', 'calendar-badge calendar-badge-task', label)); const statusClass = {
PENDING: 'calendar-badge-task-pending',
COMPLETED: 'calendar-badge-task-completed',
VERIFIED: 'calendar-badge-task-verified',
MISSED: 'calendar-badge-task-missed',
}[t.status] || 'calendar-badge-task-pending';
const label = `${statusIcon} ${t.area}${t.assignedUser ? ' · ' + t.assignedUser.fullName.split(' ')[0] : ''}`;
const badge = el('div', `calendar-badge ${statusClass}`, label);
badge.title = `${CLEANING_STATUS_LABEL[t.status] || t.status}`;
cell.appendChild(badge);
}); });
calendarData.absences.filter(a => d >= stripTime(new Date(a.startDate)) && d <= stripTime(new Date(a.endDate))).forEach(a => { calendarData.absences.filter(a => d >= stripTime(new Date(a.startDate)) && d <= stripTime(new Date(a.endDate))).forEach(a => {
cell.appendChild(el('div', 'calendar-badge calendar-badge-absence', `${a.user.fullName.split(' ')[0]} abwesend`)); cell.appendChild(el('div', 'calendar-badge calendar-badge-absence', `${a.user.fullName.split(' ')[0]} abwesend`));