From 4aa8eefb512af3a028bf78a655a54dd218a98ae4 Mon Sep 17 00:00:00 2001 From: Ulas Kalayci Date: Tue, 21 Apr 2026 00:04:29 +0200 Subject: [PATCH] feat(calendar): show reset link for user-modified ICS events in event popup --- public/pages/calendar.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/public/pages/calendar.js b/public/pages/calendar.js index 193a054..5f3d690 100644 --- a/public/pages/calendar.js +++ b/public/pages/calendar.js @@ -689,6 +689,26 @@ function showEventPopup(ev, anchor) { document.body.appendChild(popup); if (window.lucide) lucide.createIcons(); + if (ev.external_source === 'ics' && ev.user_modified) { + const resetLink = document.createElement('a'); + resetLink.href = '#'; + resetLink.className = 'event-popup__reset-link'; + resetLink.textContent = t('calendar.ics.reset'); + resetLink.style.cssText = 'display:block;text-align:center;font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--space-2);cursor:pointer;text-decoration:underline;'; + resetLink.addEventListener('click', async (e) => { + e.preventDefault(); + try { + await api.post(`/calendar/${ev.id}/reset`, {}); + popup.remove(); + await reloadForView(); + window.oikos?.showToast(t('calendar.ics.reset'), 'success'); + } catch (err) { + window.oikos?.showToast(err.message, 'danger'); + } + }); + popup.querySelector('.event-popup__actions').before(resetLink); + } + // Positionierung const rect = anchor.getBoundingClientRect(); const top = Math.min(rect.bottom + 8, window.innerHeight - 280);