Erledigte (vergangene) Ankuendigungen in der Mieteransicht automatisch ausblenden, im WG-Kalender bleiben sie sichtbar

This commit is contained in:
Giuseppe Lombardo 2026-08-13 19:17:48 +00:00
parent 52d3d55505
commit c19aafeda1

View File

@ -3544,15 +3544,27 @@
} }
} }
// Eine Ankündigung gilt als "erledigt", sobald ihr Termin (eventDate)
// verstrichen ist — Ankündigungen ohne Termin haben kein automatisches
// "erledigt"-Signal und bleiben bestehen, bis der Vermieter sie löscht.
function isAnnouncementPast(a) {
return !!a.eventDate && stripTime(new Date(a.eventDate)) < stripTime(new Date());
}
function renderAnnouncements(announcements) { function renderAnnouncements(announcements) {
const isLandlord = currentUser.role === 'LANDLORD' || currentUser.role === 'ADMIN'; const isLandlord = currentUser.role === 'LANDLORD' || currentUser.role === 'ADMIN';
// Für Mieter verschwinden erledigte (vergangene) Ankündigungen automatisch
// aus dieser Liste — im WG-Kalender bleiben sie weiterhin sichtbar.
// Der Vermieter sieht auch vergangene Ankündigungen, um sie ggf. löschen
// zu können.
const visibleAnnouncements = isLandlord ? announcements : announcements.filter(a => !isAnnouncementPast(a));
const list = document.getElementById('announcementList'); const list = document.getElementById('announcementList');
list.innerHTML = ''; list.innerHTML = '';
if (!announcements.length) { if (!visibleAnnouncements.length) {
list.appendChild(el('div', 'empty-state', 'Keine Ankündigungen.')); list.appendChild(el('div', 'empty-state', 'Keine Ankündigungen.'));
return; return;
} }
announcements.forEach(a => { visibleAnnouncements.forEach(a => {
const row = el('div', 'ticket-row'); const row = el('div', 'ticket-row');
const left = el('div'); const left = el('div');
left.appendChild(el('div', 'title', a.title)); left.appendChild(el('div', 'title', a.title));