From 97596749c2dd2acc624c4b89492b53b91e5810cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Trkan?= Date: Sat, 18 Apr 2026 16:55:20 +0200 Subject: [PATCH 1/4] Add baikal compatible route for DAV --- src/Controller/DAVController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Controller/DAVController.php b/src/Controller/DAVController.php index abb1e5d..42bc8b5 100644 --- a/src/Controller/DAVController.php +++ b/src/Controller/DAVController.php @@ -313,6 +313,8 @@ private function initExceptionListener() } #[Route('/dav/{path}', name: 'dav', requirements: ['path' => '.*'])] + #[Route('/dav.php/{path}', name: 'dav-old', requirements: ['path' => '.*'])] + #[Route('/dav.php', name: 'dav-old2', requirements: ['path' => '.*'])] public function dav(Request $request, ?string $path, ?Profiler $profiler = null) { // We don't want the toolbar on the /dav/* routes From a30353f1d66f6c04bceecc96f04b640e588422ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Trkan?= Date: Sat, 18 Apr 2026 16:56:35 +0200 Subject: [PATCH 2/4] Add baikal compatible route for DAV --- src/Controller/DAVController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Controller/DAVController.php b/src/Controller/DAVController.php index 42bc8b5..5f36d06 100644 --- a/src/Controller/DAVController.php +++ b/src/Controller/DAVController.php @@ -314,7 +314,6 @@ private function initExceptionListener() #[Route('/dav/{path}', name: 'dav', requirements: ['path' => '.*'])] #[Route('/dav.php/{path}', name: 'dav-old', requirements: ['path' => '.*'])] - #[Route('/dav.php', name: 'dav-old2', requirements: ['path' => '.*'])] public function dav(Request $request, ?string $path, ?Profiler $profiler = null) { // We don't want the toolbar on the /dav/* routes From 2dc28ae1f60e869e38f4b894ac7963ec55418859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Trkan?= Date: Sat, 18 Apr 2026 19:39:53 +0200 Subject: [PATCH 3/4] Use database count instead of fetching all data --- src/Controller/Admin/DashboardController.php | 20 ++++++++++---------- templates/dashboard.html.twig | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Controller/Admin/DashboardController.php b/src/Controller/Admin/DashboardController.php index 84a25d4..ad23c2a 100644 --- a/src/Controller/Admin/DashboardController.php +++ b/src/Controller/Admin/DashboardController.php @@ -17,20 +17,20 @@ class DashboardController extends AbstractController #[Route('/dashboard', name: 'dashboard')] public function dashboard(ManagerRegistry $doctrine): Response { - $users = $doctrine->getRepository(User::class)->findAll(); - $calendars = $doctrine->getRepository(CalendarInstance::class)->findAll(); - $addressbooks = $doctrine->getRepository(AddressBook::class)->findAll(); - $events = $doctrine->getRepository(CalendarObject::class)->findAll(); - $contacts = $doctrine->getRepository(Card::class)->findAll(); + $usersCount = $doctrine->getRepository(User::class)->count([]); + $calendarsCount = $doctrine->getRepository(CalendarInstance::class)->count([]); + $addressbooksCount = $doctrine->getRepository(AddressBook::class)->count([]); + $eventsCount = $doctrine->getRepository(CalendarObject::class)->count([]); + $contactsCount = $doctrine->getRepository(Card::class)->count([]); $timezoneParameter = $this->getParameter('timezone'); return $this->render('dashboard.html.twig', [ - 'users' => $users, - 'calendars' => $calendars, - 'addressbooks' => $addressbooks, - 'events' => $events, - 'contacts' => $contacts, + 'users' => $usersCount, + 'calendars' => $calendarsCount, + 'addressbooks' => $addressbooksCount, + 'events' => $eventsCount, + 'contacts' => $contactsCount, 'timezone' => [ 'actual_default' => date_default_timezone_get(), 'not_set_in_app' => '' === $timezoneParameter, diff --git a/templates/dashboard.html.twig b/templates/dashboard.html.twig index 3ec0e13..d8b9e3e 100644 --- a/templates/dashboard.html.twig +++ b/templates/dashboard.html.twig @@ -57,19 +57,19 @@
  • - {{ "dashboard.users"|trans }} {{ users|length }} + {{ "dashboard.users"|trans }} {{ users }}
  • -
    {{ "dashboard.calendars"|trans }} {{ "dashboard.calendars.help"|trans }}
    {{ calendars|length }} +
    {{ "dashboard.calendars"|trans }} {{ "dashboard.calendars.help"|trans }}
    {{ calendars }}
  • - ↳ {{ "dashboard.events"|trans }} {{ events|length }} + ↳ {{ "dashboard.events"|trans }} {{ events }}
  • - {{ "dashboard.address_books"|trans }} {{ addressbooks|length }} + {{ "dashboard.address_books"|trans }} {{ addressbooks }}
  • - ↳ {{ "dashboard.contacts"|trans }} {{ contacts|length }} + ↳ {{ "dashboard.contacts"|trans }} {{ contacts }}
From b14c3031564fc5ca1aa066c849d398243f1a7a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Trkan?= Date: Sat, 18 Apr 2026 20:42:42 +0200 Subject: [PATCH 4/4] Add legacy DAV route for backward compatibility --- src/Controller/DAVController.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Controller/DAVController.php b/src/Controller/DAVController.php index 5f36d06..5c070fe 100644 --- a/src/Controller/DAVController.php +++ b/src/Controller/DAVController.php @@ -312,8 +312,20 @@ private function initExceptionListener() }); } + #[Route('/dav.php/{path?}', name: 'dav-old', requirements: ['path' => '.*'])] + public function davLegacy(Request $request, ?string $path): Response + { + return $this->redirect($this->generateUrl('dav', ['path' => $path ?? '']).$this->buildQueryString($request), 301); + } + + private function buildQueryString(Request $request): string + { + $qs = $request->getQueryString(); + + return $qs ? '?'.$qs : ''; + } + #[Route('/dav/{path}', name: 'dav', requirements: ['path' => '.*'])] - #[Route('/dav.php/{path}', name: 'dav-old', requirements: ['path' => '.*'])] public function dav(Request $request, ?string $path, ?Profiler $profiler = null) { // We don't want the toolbar on the /dav/* routes