diff --git a/public/css/Cis4/CoreCalendarEvents.css b/public/css/Cis4/CoreCalendarEvents.css index d2d067b43..a3f132a4d 100644 --- a/public/css/Cis4/CoreCalendarEvents.css +++ b/public/css/Cis4/CoreCalendarEvents.css @@ -108,7 +108,8 @@ display: none; } -.weekPageContainer .calendar-event-collisions +.weekPageContainer .calendar-event-collisions, +.rangePageContainer .calendar-event-collisions { display: grid; grid-template-columns: auto 1fr; diff --git a/public/css/Tempus_print.css b/public/css/Tempus_print.css index 33d4c526e..dc552ec8d 100644 --- a/public/css/Tempus_print.css +++ b/public/css/Tempus_print.css @@ -77,7 +77,31 @@ header, .fhc-calendar-mode-range .main-header:not(.main-header-empty), .fhc-calendar-mode-range .fhc-calendar-base-grid-line { - border-top: solid !important; - border-top-color: black !important; - border-top-width: 1px !important; + border-top: solid 1px black !important; +} + +.fhc-calendar-mode-range .main-header:not(.main-header-empty) { + padding-top: .25rem !important; +} + +.fhc-calendar-mode-range .fhc-calendar-base-grid-line { + grid-auto-rows: max-content !important; + overflow: hidden !important; +} + +.fhc-calendar-mode-range .fhc-calendar-base-grid-line-event { + break-inside: avoid !important; + margin: 1px !important; + page-break-inside: avoid !important; + z-index: auto !important; +} + +.fhc-calendar-mode-range .fhc-calendar-base-grid-line-event > .rangePageContainer { + background-color: var(--event-bg, var(--event-default-bg)) !important; + break-inside: avoid !important; + page-break-inside: avoid !important; +} + +.fhc-calendar-mode-range .fhc-calendar-base-grid-line-event > .rangePageContainer * { + background-color: transparent !important; } diff --git a/public/js/api/factory/tempus/kalender.js b/public/js/api/factory/tempus/kalender.js index 046aec385..c1ba84a6a 100644 --- a/public/js/api/factory/tempus/kalender.js +++ b/public/js/api/factory/tempus/kalender.js @@ -22,7 +22,7 @@ export default { params: { lehreinheit_id, start_date, end_date } }; }, - getPlanLecturer(start_date, end_date) + getPlanLecturer(start_date, end_date, collisionCheck = true, maxDailyEventLimit = null) { return { method: 'get', diff --git a/public/js/components/Calendar/Tempus.js b/public/js/components/Calendar/Tempus.js index e53f57e32..610dd090d 100644 --- a/public/js/components/Calendar/Tempus.js +++ b/public/js/components/Calendar/Tempus.js @@ -93,6 +93,10 @@ export default { type: Number, default: 1 }, + waitForAllPromises: { + type: Boolean, + default: true, + }, parkedEvents: { type: Object, default: () => new Set(), @@ -125,6 +129,10 @@ export default { type: Boolean, default: true, }, + canToggleCollisionCheck: { + type: Boolean, + default: true, + }, rangeViewPreviewLink: { type: String, default: null, @@ -224,10 +232,6 @@ export default { visibleEvents() { let list = this.events; - // Start with the first week and then keep events overlapping a grid line - // that is visible inside the slider viewport, including a one-day buffer - // before and after the visible dates. - console.log('visibleDates', this.visibleDates); if ( this.isRangeVirtualScrollEnabled && this.currentMode === 'range' @@ -374,7 +378,9 @@ export default { const { events, lv, reset } = useEventLoader( rangeInterval, props.getPromiseFunc, - () => props.cacheMultiplier + () => props.cacheMultiplier, + undefined, + props.waitForAllPromises, ); Vue.watch(lv, (newValue) => { @@ -482,7 +488,10 @@ export default { > Reservierung -