KI-AGENT: Ergänze wiederholende Termine für Kalender und Plantafel

This commit is contained in:
2026-05-19 12:27:17 +02:00
parent ea392af094
commit 58c47fa8f7
7 changed files with 254 additions and 142 deletions

View File

@@ -5,6 +5,7 @@ import interactionPlugin from "@fullcalendar/interaction"
import resourceTimelinePlugin from "@fullcalendar/resource-timeline"
import { parseDate } from "@internationalized/date"
import { useDraggable } from "@vueuse/core"
import { expandRecurringEvent } from "~/utils/eventRecurrence"
const router = useRouter()
const auth = useAuthStore()
@@ -534,7 +535,7 @@ function buildResources({ profiles, inventoryitems }) {
function buildEvents({ rawEvents, projectsById }) {
const mappedEvents = rawEvents
.filter((event) => !event.archived)
.map((event) => {
.flatMap((event) => {
const resourceIds = [
...(profiles.value
.filter((profile) => (event.profiles || []).includes(profile.id))
@@ -542,20 +543,26 @@ function buildEvents({ rawEvents, projectsById }) {
...(event.inventoryitems || []).map((itemId) => `I-${itemId}`)
]
return {
title: resolveDisplayedEventTitle(event, projectsById),
start: event.startDate,
end: event.endDate,
resourceIds,
color: event.color || null,
state: event.state || "Final",
backgroundColor: resolveRenderedEventColor(event),
borderColor: resolveRenderedEventColor(event),
textColor: "#ffffff",
classNames: event.state === "Entwurf" ? ["planning-board-draft-event"] : [],
entrytype: "event",
eventId: event.id
}
return expandRecurringEvent(
event,
`${visibleRange.value.from}T00:00:00`,
`${visibleRange.value.to}T23:59:59`,
(occurrenceStart, occurrenceEnd, occurrenceIndex) => ({
title: resolveDisplayedEventTitle(event, projectsById),
start: occurrenceStart.toISOString(),
end: occurrenceEnd ? occurrenceEnd.toISOString() : null,
resourceIds,
color: event.color || null,
state: event.state || "Final",
backgroundColor: resolveRenderedEventColor(event),
borderColor: resolveRenderedEventColor(event),
textColor: "#ffffff",
classNames: event.state === "Entwurf" ? ["planning-board-draft-event"] : [],
entrytype: "event",
eventId: event.id,
occurrenceIndex
})
)
})
.filter((event) => event.resourceIds.length > 0)