From 91a691c5f8a531834fe79f7cc43a09c366481e3e Mon Sep 17 00:00:00 2001 From: Ivymaster Date: Mon, 22 Jun 2026 15:49:16 +0200 Subject: [PATCH] Minor mod --- public/js/components/Tempus/Tempus.js | 133 +++++++++++++------------- 1 file changed, 67 insertions(+), 66 deletions(-) diff --git a/public/js/components/Tempus/Tempus.js b/public/js/components/Tempus/Tempus.js index 21aa83e39..9d0cc2764 100644 --- a/public/js/components/Tempus/Tempus.js +++ b/public/js/components/Tempus/Tempus.js @@ -423,72 +423,7 @@ export default { if (response) { response[0].then((result) => { - if (!this.currentlyUpdatedEvent) return; - - document.querySelectorAll(".updated-event").forEach((el) => { - el.classList.remove("updated-event"); - }); - document.querySelectorAll(".updated-event-long").forEach((el) => { - el.classList.remove("updated-event-long"); - }); - document.querySelectorAll(".deemphasized-event").forEach((el) => { - el.classList.remove("deemphasized-event"); - }); - document - .querySelectorAll(".deemphasized-event-long") - .forEach((el) => { - el.classList.remove("deemphasized-event-long"); - }); - - setTimeout(() => { - const eventEl = document.querySelector( - `[data-group-id="event-group-${this.currentlyUpdatedEvent.eindeutige_gruppen_id}"]`, - ); - if (!eventEl) return; - - const calendar = document.querySelector(".fhc-calendar-base-grid"); - const eventRect = eventEl.getBoundingClientRect(); - - const offset = 300; - - const isInsideScrolledView = - eventEl.offsetLeft < calendar.scrollLeft + calendar.clientWidth && - eventEl.offsetLeft + eventEl.offsetWidth > calendar.scrollLeft && - eventEl.offsetTop < calendar.scrollTop + calendar.clientHeight && - eventEl.offsetTop + eventEl.offsetHeight > calendar.scrollTop; - - const rect = eventEl.getBoundingClientRect(); - if (!isInsideScrolledView) { - eventEl.scrollIntoView({ - behavior: "smooth", - inline: "center", - block: "nearest", - }); - } - - let timeout = 0; - let emphasizeUpdateClassName = isInsideScrolledView - ? "updated-event" - : "updated-event-long"; - let deemphasizedUpdateClassName = isInsideScrolledView - ? "deemphasized-event" - : "deemphasized-event-long"; - - if (!isInsideScrolledView) timeout = 500; - - setTimeout(() => { - eventEl.classList.add(emphasizeUpdateClassName); - document - .querySelectorAll(".fhc-calendar-base-grid-line-event") - .forEach((el) => { - if (el !== eventEl) { - el.classList.add(deemphasizedUpdateClassName); - } - }); - }, timeout); - - this.currentlyUpdatedEvent = null; - }, 100); + this.scrollToAndEmphasizeUpdatedEvent(); }); } @@ -923,6 +858,72 @@ export default { areFormButtonsDisplayed: false, }; }, + scrollToAndEmphasizeUpdatedEvent() { + if (!this.currentlyUpdatedEvent) return; + + document.querySelectorAll(".updated-event").forEach((el) => { + el.classList.remove("updated-event"); + }); + document.querySelectorAll(".updated-event-long").forEach((el) => { + el.classList.remove("updated-event-long"); + }); + document.querySelectorAll(".deemphasized-event").forEach((el) => { + el.classList.remove("deemphasized-event"); + }); + document.querySelectorAll(".deemphasized-event-long").forEach((el) => { + el.classList.remove("deemphasized-event-long"); + }); + + setTimeout(() => { + const eventEl = document.querySelector( + `[data-group-id="event-group-${this.currentlyUpdatedEvent.eindeutige_gruppen_id}"]`, + ); + if (!eventEl) return; + + const calendar = document.querySelector(".fhc-calendar-base-grid"); + const eventRect = eventEl.getBoundingClientRect(); + + const offset = 300; + + const isInsideScrolledView = + eventEl.offsetLeft < calendar.scrollLeft + calendar.clientWidth && + eventEl.offsetLeft + eventEl.offsetWidth > calendar.scrollLeft && + eventEl.offsetTop < calendar.scrollTop + calendar.clientHeight && + eventEl.offsetTop + eventEl.offsetHeight > calendar.scrollTop; + + const rect = eventEl.getBoundingClientRect(); + if (!isInsideScrolledView) { + eventEl.scrollIntoView({ + behavior: "smooth", + inline: "center", + block: "nearest", + }); + } + + let timeout = 0; + let emphasizeUpdateClassName = isInsideScrolledView + ? "updated-event" + : "updated-event-long"; + let deemphasizedUpdateClassName = isInsideScrolledView + ? "deemphasized-event" + : "deemphasized-event-long"; + + if (!isInsideScrolledView) timeout = 500; + + setTimeout(() => { + eventEl.classList.add(emphasizeUpdateClassName); + document + .querySelectorAll(".fhc-calendar-base-grid-line-event") + .forEach((el) => { + if (el !== eventEl) { + el.classList.add(deemphasizedUpdateClassName); + } + }); + }, timeout); + + this.currentlyUpdatedEvent = null; + }, 100); + }, }, watch: { lecturers: {