KI-AGENT: Leite Termine nach dem Speichern zurück zur Plantafel

This commit is contained in:
2026-05-19 12:31:39 +02:00
parent 58c47fa8f7
commit 941f1d819b
2 changed files with 46 additions and 5 deletions

View File

@@ -378,6 +378,21 @@ const getEntityModalCreateQuery = (datapoint) => {
return datapoint.entityModalCreateQuery || {} return datapoint.entityModalCreateQuery || {}
} }
const getPostSaveRoute = () => {
if (type !== "events") return null
if (route.query.returnTo === "plantafel") {
return {
path: "/organisation/plantafel",
query: {
date: route.query.returnDate || undefined,
view: route.query.returnView || undefined
}
}
}
return null
}
const createItem = async () => { const createItem = async () => {
let ret = null let ret = null
@@ -386,7 +401,14 @@ const createItem = async () => {
ret = await useEntities(type).create(item.value, true) ret = await useEntities(type).create(item.value, true)
} else { } else {
ret = await useEntities(type).create(item.value)//dataStore.createNewItem(type,item.value) const postSaveRoute = getPostSaveRoute()
if (postSaveRoute) {
ret = await useEntities(type).create(item.value, true)
await router.push(postSaveRoute)
} else {
ret = await useEntities(type).create(item.value)//dataStore.createNewItem(type,item.value)
}
} }
emit('returnData', ret) emit('returnData', ret)
@@ -401,7 +423,14 @@ const updateItem = async () => {
emit('returnData', ret) emit('returnData', ret)
modal.close() modal.close()
} else { } else {
ret = await useEntities(type).update(item.value.id, item.value) const postSaveRoute = getPostSaveRoute()
if (postSaveRoute) {
ret = await useEntities(type).update(item.value.id, item.value, true)
await router.push(postSaveRoute)
} else {
ret = await useEntities(type).update(item.value.id, item.value)
}
emit('returnData', ret) emit('returnData', ret)
} }
} }

View File

@@ -8,6 +8,7 @@ import { useDraggable } from "@vueuse/core"
import { expandRecurringEvent } from "~/utils/eventRecurrence" import { expandRecurringEvent } from "~/utils/eventRecurrence"
const router = useRouter() const router = useRouter()
const route = useRoute()
const auth = useAuthStore() const auth = useAuthStore()
const profileStore = useProfileStore() const profileStore = useProfileStore()
const toast = useToast() const toast = useToast()
@@ -15,12 +16,16 @@ const { $api, $dayjs } = useNuxtApp()
const { create: createEvent } = useEntities("events") const { create: createEvent } = useEntities("events")
const { list: listStaffTimeSpans, createEntry, update: updateStaffTimeEntry } = useStaffTime() const { list: listStaffTimeSpans, createEntry, update: updateStaffTimeEntry } = useStaffTime()
const allowedCalendarViews = ["resourceTimelineDay", "resourceTimelineWeek", "resourceTimelineMonth"]
const initialRouteDate = /^\d{4}-\d{2}-\d{2}$/.test(String(route.query.date || "")) ? String(route.query.date) : null
const initialRouteView = allowedCalendarViews.includes(String(route.query.view || "")) ? String(route.query.view) : null
const loading = ref(true) const loading = ref(true)
const savingAbsence = ref(false) const savingAbsence = ref(false)
const selectedType = ref("all") const selectedType = ref("all")
const calendarRef = ref(null) const calendarRef = ref(null)
const calendarView = ref("resourceTimelineWeek") const calendarView = ref(initialRouteView || "resourceTimelineWeek")
const calendarCurrentDate = ref($dayjs().format("YYYY-MM-DD")) const calendarCurrentDate = ref(initialRouteDate || $dayjs().format("YYYY-MM-DD"))
const calendarTitle = ref("") const calendarTitle = ref("")
const visibleRange = ref({ const visibleRange = ref({
from: $dayjs().startOf("month").format("YYYY-MM-DD"), from: $dayjs().startOf("month").format("YYYY-MM-DD"),
@@ -370,7 +375,14 @@ const calendarOptions = computed(() => ({
return return
} }
router.push(`/standardEntity/events/edit/${info.event.extendedProps.eventId}`) router.push({
path: `/standardEntity/events/edit/${info.event.extendedProps.eventId}`,
query: {
returnTo: "plantafel",
returnDate: calendarCurrentDate.value,
returnView: calendarView.value
}
})
}, },
datesSet(info) { datesSet(info) {
const nextFrom = $dayjs(info.start).format("YYYY-MM-DD") const nextFrom = $dayjs(info.start).format("YYYY-MM-DD")