From 789ab0b7780dbf85dc652c1e777d0b4131104631 Mon Sep 17 00:00:00 2001 From: Dan Garner Date: Tue, 27 Feb 2024 17:51:42 +0000 Subject: [PATCH] Widget: calendar widget event filtering only ever return events 5 days in the past. fixes xibosignage/xibo#3350 --- lib/Widget/IcsProvider.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/Widget/IcsProvider.php b/lib/Widget/IcsProvider.php index 6c818365a5..9b93726423 100644 --- a/lib/Widget/IcsProvider.php +++ b/lib/Widget/IcsProvider.php @@ -1,6 +1,6 @@ ($dataProvider->getProperty('replaceWindowsTimeZoneIds', 0) == 1), 'defaultSpan' => 1, - 'filterDaysBefore' => 5 ]; // What event range are we interested in? @@ -99,8 +98,10 @@ public function fetchData(DataProviderInterface $dataProvider): WidgetProviderIn $this->getLog()->debug('fetchData: final range, start=' . $rangeStart->toAtomString() . ', end=' . $rangeEnd->toAtomString()); - // Get the difference between now and the end range. - $iCalConfig['filterDaysAfter'] = $startOfDay->diffInDays($rangeEnd) + 2; + // Set up fuzzy filtering supported by the ICal library. This is included for performance. + // https://github.com/u01jmg3/ics-parser?tab=readme-ov-file#variables + $iCalConfig['filterDaysBefore'] = $rangeStart->diffInDays(Carbon::now(), false) + 2; + $iCalConfig['filterDaysAfter'] = $rangeEnd->diffInDays(Carbon::now()) + 2; $this->getLog()->debug('Range start: ' . $rangeStart->toDateTimeString() . ', range end: ' . $rangeEnd->toDateTimeString()