From eb8b8c6939cbd98b18e7faace27f262b789eada4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Tue, 24 May 2022 22:45:43 +0200 Subject: [PATCH] calendar app: set mainUser and options for form --- .../Controller/CalendarController.php | 4 + .../ChillCalendarBundle/Form/CalendarType.php | 6 +- .../MSGraphRemoteCalendarConnector.php | 22 ++-- .../Resources/public/vuejs/Calendar/App.vue | 118 ++++++++++++------ .../Resources/public/vuejs/Calendar/i18n.js | 5 +- .../public/vuejs/Calendar/store/actions.js | 37 +++--- .../public/vuejs/Calendar/store/mutations.js | 10 ++ .../public/vuejs/Calendar/store/utils.js | 1 + .../Resources/public/lib/api/apiMethods.js | 2 +- .../public/vuejs/PickEntity/PickEntity.vue | 17 ++- 10 files changed, 149 insertions(+), 73 deletions(-) diff --git a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php index f64a7a6bc..db121ea82 100644 --- a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php +++ b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php @@ -139,6 +139,10 @@ class CalendarController extends AbstractController */ public function editAction(Calendar $entity, Request $request): Response { + if (!$this->remoteCalendarConnector->isReady()) { + return $this->remoteCalendarConnector->getMakeReadyResponse($request->getUri()); + } + $view = null; $em = $this->getDoctrine()->getManager(); diff --git a/src/Bundle/ChillCalendarBundle/Form/CalendarType.php b/src/Bundle/ChillCalendarBundle/Form/CalendarType.php index 65c7d1320..987862195 100644 --- a/src/Bundle/ChillCalendarBundle/Form/CalendarType.php +++ b/src/Bundle/ChillCalendarBundle/Form/CalendarType.php @@ -81,10 +81,8 @@ class CalendarType extends AbstractType 'expanded' => true, ]); - if ($options['data'] instanceof Calendar && $options['data']->getId() === null) { - $builder->add('mainUser', HiddenType::class); - $builder->get('mainUser')->addModelTransformer($this->idToUserDataTransformer); - } + $builder->add('mainUser', HiddenType::class); + $builder->get('mainUser')->addModelTransformer($this->idToUserDataTransformer); $builder->add('startDate', HiddenType::class); $builder->get('startDate') diff --git a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php index 7eb1b7c55..caca3cecb 100644 --- a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php +++ b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php @@ -99,16 +99,18 @@ class MSGraphRemoteCalendarConnector implements RemoteCalendarConnectorInterface $ids = array_map(function ($item) { return $item['id']; }, $bareEvents['value']); $existingIdsInRange = $this->calendarRangeRepository->findRemoteIdsPresent($ids); - return array_map( - function ($item) { - return $this->remoteEventConverter->convertToRemote($item); - }, - // filter all event to keep only the one not in range - array_filter( - $bareEvents['value'], - function ($item) use ($existingIdsInRange) { - return (!$existingIdsInRange[$item['id']]) ?? true; - } + return array_values( + array_map( + function ($item) { + return $this->remoteEventConverter->convertToRemote($item); + }, + // filter all event to keep only the one not in range + array_filter( + $bareEvents['value'], + function ($item) use ($existingIdsInRange) { + return (!$existingIdsInRange[$item['id']]) ?? true; + } + ) ) ); } catch (ClientExceptionInterface $e) { diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/App.vue b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/App.vue index 43d0020a9..d94718942 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/App.vue +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/App.vue @@ -1,8 +1,34 @@