diff --git a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php index a894099e4..fff20940a 100644 --- a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php +++ b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php @@ -69,7 +69,7 @@ class CalendarController extends AbstractController /** * Lists all Calendar entities. - * @Route("/{_locale}/calendar/", name="chill_calendar_calendar") + * @Route("/{_locale}/calendar/calendar/", name="chill_calendar_calendar_list") */ public function listAction(Request $request): Response { @@ -80,18 +80,17 @@ class CalendarController extends AbstractController if ($user instanceof User) { - // $calendar = $em->getRepository(Calendar::class) - // ->findByUser($user) - // ; - - // $view = 'ChillCalendarBundle:Calendar:listByUser.html.twig'; + $calendarItems = $em->getRepository(Calendar::class) + ->findByUser($user) + ; + $view = '@ChillCalendar/Calendar/listByUser.html.twig'; } elseif ($accompanyingPeriod instanceof AccompanyingPeriod) { $calendarItems = $em->getRepository(Calendar::class)->findBy( ['accompanyingPeriod' => $accompanyingPeriod], ['startDate' => 'DESC'] ); - $view = 'ChillCalendarBundle:Calendar:listByAccompanyingCourse.html.twig'; + $view = '@ChillCalendar/Calendar/listByAccompanyingCourse.html.twig'; } return $this->render($view, [ @@ -103,7 +102,7 @@ class CalendarController extends AbstractController /** * Create a new calendar item - * @Route("/{_locale}/calendar/new", name="chill_calendar_calendar_new") + * @Route("/{_locale}/calendar/calendar/new", name="chill_calendar_calendar_new") */ public function newAction(Request $request): Response { @@ -112,10 +111,10 @@ class CalendarController extends AbstractController [$user, $accompanyingPeriod] = $this->getEntity($request); if ($accompanyingPeriod instanceof AccompanyingPeriod) { - $view = 'ChillCalendarBundle:Calendar:newAccompanyingCourse.html.twig'; + $view = '@ChillCalendar/Calendar/newAccompanyingCourse.html.twig'; } // elseif ($user instanceof User) { - // $view = 'ChillCalendarBundle:Calendar:newUser.html.twig'; + // $view = '@ChillCalendar/Calendar/newUser.html.twig'; // } $entity = new Calendar(); @@ -142,7 +141,7 @@ class CalendarController extends AbstractController $params = $this->buildParamsToUrl($user, $accompanyingPeriod); - return $this->redirectToRoute('chill_calendar_calendar', $params); + return $this->redirectToRoute('chill_calendar_calendar_list', $params); } elseif ($form->isSubmitted() and !$form->isValid()) { $this->addFlash('error', $this->get('translator')->trans('This form contains errors')); } @@ -165,7 +164,7 @@ class CalendarController extends AbstractController /** * Show a calendar item - * @Route("/{_locale}/calendar/{id}/show", name="chill_calendar_calendar_show") + * @Route("/{_locale}/calendar/calendar/{id}/show", name="chill_calendar_calendar_show") */ public function showAction(Request $request, $id): Response { @@ -174,11 +173,11 @@ class CalendarController extends AbstractController [$user, $accompanyingPeriod] = $this->getEntity($request); if ($accompanyingPeriod instanceof AccompanyingPeriod) { - $view = 'ChillCalendarBundle:Calendar:showAccompanyingCourse.html.twig'; + $view = '@ChillCalendar/Calendar/showByAccompanyingCourse.html.twig'; } - // elseif ($person instanceof Person) { - // $view = 'ChillCalendarBundle:Calendar:showPerson.html.twig'; - // } + elseif ($user instanceof User) { + $view = '@ChillCalendar/Calendar/showByUser.html.twig'; + } $entity = $em->getRepository('ChillCalendarBundle:Calendar')->find($id); @@ -198,9 +197,9 @@ class CalendarController extends AbstractController } return $this->render($view, [ - //'person' => $person, 'accompanyingCourse' => $accompanyingPeriod, 'entity' => $entity, + 'user' => $user //'delete_form' => $deleteForm->createView(), ]); } @@ -209,7 +208,7 @@ class CalendarController extends AbstractController /** * Edit a calendar item - * @Route("/{_locale}/calendar/{id}/edit", name="chill_calendar_calendar_edit") + * @Route("/{_locale}/calendar/calendar/{id}/edit", name="chill_calendar_calendar_edit") */ public function editAction($id, Request $request): Response { @@ -218,11 +217,11 @@ class CalendarController extends AbstractController [$user, $accompanyingPeriod] = $this->getEntity($request); if ($accompanyingPeriod instanceof AccompanyingPeriod) { - $view = 'ChillCalendarBundle:Calendar:editAccompanyingCourse.html.twig'; + $view = '@ChillCalendar/Calendar/editByAccompanyingCourse.html.twig'; + } + elseif ($user instanceof User) { + $view = '@ChillCalendar/Calendar/editByUser.html.twig'; } - // elseif ($person instanceof Person) { - // $view = 'ChillCalendarBundle:Calendar:editPerson.html.twig'; - // } $entity = $em->getRepository('ChillCalendarBundle:Calendar')->find($id); @@ -241,7 +240,7 @@ class CalendarController extends AbstractController $this->addFlash('success', $this->get('translator')->trans('Success : calendar item updated!')); $params = $this->buildParamsToUrl($user, $accompanyingPeriod); - return $this->redirectToRoute('chill_calendar_calendar', $params); + return $this->redirectToRoute('chill_calendar_calendar_list', $params); } elseif ($form->isSubmitted() and !$form->isValid()) { $this->addFlash('error', $this->get('translator')->trans('This form contains errors')); } @@ -259,6 +258,7 @@ class CalendarController extends AbstractController 'form' => $form->createView(), 'delete_form' => $deleteForm->createView(), 'accompanyingCourse' => $accompanyingPeriod, + 'user' => $user, 'entity_json' => $entity_array ]); } @@ -274,11 +274,11 @@ class CalendarController extends AbstractController [$user, $accompanyingPeriod] = $this->getEntity($request); if ($accompanyingPeriod instanceof AccompanyingPeriod) { - $view = 'ChillCalendarBundle:Calendar:confirm_deleteAccompanyingCourse.html.twig'; + $view = '@ChillCalendar/Calendar/confirm_deleteByAccompanyingCourse.html.twig'; } - // elseif ($person instanceof Person) { - // $view = 'ChillCalendarBundle:Calendar:confirm_deletePerson.html.twig'; - // } + elseif ($user instanceof User) { + $view = '@ChillCalendar/Calendar/confirm_deleteByUser.html.twig'; + } /* @var $entity Calendar */ $entity = $em->getRepository('ChillCalendarBundle:Calendar')->find($id); @@ -306,7 +306,7 @@ class CalendarController extends AbstractController ->trans("The calendar item has been successfully removed.")); $params = $this->buildParamsToUrl($user, $accompanyingPeriod); - return $this->redirectToRoute('chill_calendar_calendar', $params); + return $this->redirectToRoute('chill_calendar_calendar_list', $params); } } @@ -324,9 +324,9 @@ class CalendarController extends AbstractController /** * Creates a form to delete a Calendar entity by id. */ - private function createDeleteForm(int $id, ?Person $person, ?AccompanyingPeriod $accompanyingPeriod): Form + private function createDeleteForm(int $id, ?User $user, ?AccompanyingPeriod $accompanyingPeriod): Form { - $params = $this->buildParamsToUrl($person, $accompanyingPeriod); + $params = $this->buildParamsToUrl($user, $accompanyingPeriod); $params['id'] = $id; return $this->createFormBuilder() @@ -350,7 +350,8 @@ class CalendarController extends AbstractController throw $this->createNotFoundException('User not found'); } - $this->denyAccessUnlessGranted('CHILL_PERSON_SEE', $user); + // TODO Add permission + // $this->denyAccessUnlessGranted('CHILL_PERSON_SEE', $user); } elseif ($request->query->has('accompanying_period_id')) { $accompanying_period_id = $request->get('accompanying_period_id'); $accompanyingPeriod = $em->getRepository(AccompanyingPeriod::class)->find($accompanying_period_id); diff --git a/src/Bundle/ChillCalendarBundle/Controller/CalendarRangeAPIController.php b/src/Bundle/ChillCalendarBundle/Controller/CalendarRangeAPIController.php index be279ed36..672e9527c 100644 --- a/src/Bundle/ChillCalendarBundle/Controller/CalendarRangeAPIController.php +++ b/src/Bundle/ChillCalendarBundle/Controller/CalendarRangeAPIController.php @@ -18,16 +18,19 @@ class CalendarRangeAPIController extends ApiController */ public function availableRanges(Request $request, string $_format): JsonResponse { - if ($request->query->has('user')) { - $user = $request->query->get('user'); - } - $em = $this->getDoctrine()->getManager(); - $query = $em->createQuery( - 'SELECT c FROM ChillCalendarBundle:CalendarRange c - WHERE NOT EXISTS (SELECT cal.id FROM ChillCalendarBundle:Calendar cal WHERE cal.calendarRange = c.id)') - ; + $sql = 'SELECT c FROM ChillCalendarBundle:CalendarRange c + WHERE NOT EXISTS (SELECT cal.id FROM ChillCalendarBundle:Calendar cal WHERE cal.calendarRange = c.id)'; + + if ($request->query->has('user')) { + $user = $request->query->get('user'); + $sql = $sql . ' AND c.user = :user'; + $query = $em->createQuery($sql) + ->setParameter('user', $user); + } else { + $query = $em->createQuery($sql); + } $results = $query->getResult(); diff --git a/src/Bundle/ChillCalendarBundle/DependencyInjection/ChillCalendarExtension.php b/src/Bundle/ChillCalendarBundle/DependencyInjection/ChillCalendarExtension.php index 2927d4910..8660fac52 100644 --- a/src/Bundle/ChillCalendarBundle/DependencyInjection/ChillCalendarExtension.php +++ b/src/Bundle/ChillCalendarBundle/DependencyInjection/ChillCalendarExtension.php @@ -66,13 +66,16 @@ class ChillCalendarExtension extends Extension implements PrependExtensionInterf '_index' => [ 'methods' => [ Request::METHOD_GET => true, - Request::METHOD_HEAD => true + Request::METHOD_HEAD => true, ], ], '_entity' => [ 'methods' => [ Request::METHOD_GET => true, - Request::METHOD_HEAD => true + Request::METHOD_HEAD => true, + Request::METHOD_POST => true, + Request::METHOD_PATCH => true, + Request::METHOD_DELETE => true, ] ], ] diff --git a/src/Bundle/ChillCalendarBundle/Entity/Calendar.php b/src/Bundle/ChillCalendarBundle/Entity/Calendar.php index 0663ca08b..b3e5971bd 100644 --- a/src/Bundle/ChillCalendarBundle/Entity/Calendar.php +++ b/src/Bundle/ChillCalendarBundle/Entity/Calendar.php @@ -37,14 +37,16 @@ class Calendar * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") + * @Serializer\Groups({"calendar:read"}) */ private ?int $id; /** * @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\User") * @Groups({"read"}) + * @Serializer\Groups({"calendar:read"}) */ - private User $user; + private ?User $user = null; /** * @ORM\ManyToOne(targetEntity="Chill\PersonBundle\Entity\AccompanyingPeriod") @@ -64,6 +66,7 @@ class Calendar * cascade={"persist", "remove", "merge", "detach"}) * @ORM\JoinTable(name="chill_calendar.calendar_to_persons") * @Groups({"read"}) + * @Serializer\Groups({"calendar:read"}) */ private Collection $persons; @@ -74,6 +77,7 @@ class Calendar * cascade={"persist", "remove", "merge", "detach"}) * @ORM\JoinTable(name="chill_calendar.calendar_to_thirdparties") * @Groups({"read"}) + * @Serializer\Groups({"calendar:read"}) */ private Collection $professionals; @@ -89,6 +93,7 @@ class Calendar /** * @ORM\Embedded(class=CommentEmbeddable::class, columnPrefix="comment_") + * @Serializer\Groups({"calendar:read"}) */ private CommentEmbeddable $comment; @@ -96,20 +101,20 @@ class Calendar * @ORM\Column(type="datetimetz_immutable") * @Serializer\Groups({"calendar:read"}) */ - private \DateTimeImmutable $startDate; + private ?\DateTimeImmutable $startDate = null; /** * @ORM\Column(type="datetimetz_immutable") * @Serializer\Groups({"calendar:read"}) */ - private \DateTimeImmutable $endDate; + private ?\DateTimeImmutable $endDate = null; //TODO Lieu /** * @ORM\Column(type="string", length=255) */ - private string $status; + private ?string $status = null; /** * @ORM\ManyToOne(targetEntity="CancelReason") @@ -124,7 +129,7 @@ class Calendar /** * @ORM\ManyToOne(targetEntity="Chill\ActivityBundle\Entity\Activity") */ - private Activity $activity; + private ?Activity $activity = null; /** * @ORM\Column(type="boolean", nullable=true) diff --git a/src/Bundle/ChillCalendarBundle/Entity/CalendarRange.php b/src/Bundle/ChillCalendarBundle/Entity/CalendarRange.php index f9582c8c2..312e4bb41 100644 --- a/src/Bundle/ChillCalendarBundle/Entity/CalendarRange.php +++ b/src/Bundle/ChillCalendarBundle/Entity/CalendarRange.php @@ -25,21 +25,21 @@ class CalendarRange /** * @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\User") - * @Groups({"read"}) + * @groups({"read", "write"}) */ - private User $user; + private ?User $user = null; /** * @ORM\Column(type="datetimetz_immutable") - * @groups({"read"}) + * @groups({"read", "write"}) */ - private \DateTimeImmutable $startDate; + private ?\DateTimeImmutable $startDate = null; /** * @ORM\Column(type="datetimetz_immutable") - * @groups({"read"}) + * @groups({"read", "write"}) */ - private \DateTimeImmutable $endDate; + private ?\DateTimeImmutable $endDate = null; /** * @ORM\OneToMany(targetEntity=Calendar::class, diff --git a/src/Bundle/ChillCalendarBundle/Menu/AccompanyingCourseMenuBuilder.php b/src/Bundle/ChillCalendarBundle/Menu/AccompanyingCourseMenuBuilder.php index 2e06d9d2e..244d7db78 100644 --- a/src/Bundle/ChillCalendarBundle/Menu/AccompanyingCourseMenuBuilder.php +++ b/src/Bundle/ChillCalendarBundle/Menu/AccompanyingCourseMenuBuilder.php @@ -37,7 +37,7 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface if (AccompanyingPeriod::STEP_DRAFT !== $period->getStep()) { $menu->addChild($this->translator->trans('Calendar'), [ - 'route' => 'chill_calendar_calendar', + 'route' => 'chill_calendar_calendar_list', 'routeParameters' => [ 'accompanying_period_id' => $period->getId(), ]]) diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/chill/scss/calendar.scss b/src/Bundle/ChillCalendarBundle/Resources/public/chill/scss/calendar.scss index b224125f1..a2c0c4b89 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/chill/scss/calendar.scss +++ b/src/Bundle/ChillCalendarBundle/Resources/public/chill/scss/calendar.scss @@ -7,4 +7,14 @@ div#calendarControls { div#fullCalendar{ +} + +span.calendarRangeItems { + display: flex; + flex-direction: row; + justify-content: space-between; + a { + text-decoration: none; + padding: 3px; + } } \ No newline at end of file diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue new file mode 100644 index 000000000..a30dd2000 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue @@ -0,0 +1,468 @@ + + + diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js new file mode 100644 index 000000000..2305b307b --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js @@ -0,0 +1,21 @@ +const appMessages = { + fr: { + edit_your_calendar_range: "Planifiez vos plages de disponibilités", + show_my_calendar: "Afficher mon calendrier", + show_weekends: "Afficher les week-ends", + copy_range_to_next_day: "Copier les plages du jour au jour suivant", + copy_range_from_day: "Copier les plages du ", + to_the_next_day: " au jour suivant", + copy_range_to_next_week: "Copier les plages de la semaine à la semaine suivante", + copy_range_how_to: "Créez les plages de disponibilités durant une journée et copiez-les facilement au jour suivant avec ce bouton. Si les week-ends sont cachés, le jour suivant un vendredi sera le lundi.", + new_range_to_save: "Nouvelles plages à enregistrer", + update_range_to_save: "Plages à modifier", + delete_range_to_save: "Plages à supprimer", + by: "Par", + main_user_concerned: "Utilisateur concerné" + } +} + +export { + appMessages +}; diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/index.js b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/index.js new file mode 100644 index 000000000..a10a16601 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/index.js @@ -0,0 +1,16 @@ +import { createApp } from 'vue'; +import { _createI18n } from 'ChillMainAssets/vuejs/_js/i18n' +import { appMessages } from './i18n' +import store from './store' + +import App from './App.vue'; + +const i18n = _createI18n(appMessages); + +const app = createApp({ + template: ``, +}) +.use(store) +.use(i18n) +.component('app', App) +.mount('#myCalendar'); diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js new file mode 100644 index 000000000..997f95b11 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js @@ -0,0 +1,89 @@ +import 'es6-promise/auto'; +import { createStore } from 'vuex'; +import { postCalendarRange, patchCalendarRange, deleteCalendarRange } from '../_api/api'; + +const debug = process.env.NODE_ENV !== 'production'; + +const store = createStore({ + strict: debug, + state: { + newCalendarRanges: [], + updateCalendarRanges: [], + deleteCalendarRanges: [] + }, + mutations: { + updateRange(state, payload) { + state.updateCalendarRanges.push({ + id: payload.event.extendedProps.calendarRangeId, + start: payload.event.start, + end: payload.event.end + }); + }, + addRange(state, payload) { + state.newCalendarRanges.push({ + start: payload.start, + end: payload.end + }); + }, + deleteRange(state, payload) { + state.deleteCalendarRanges.push({ + id: payload.extendedProps.calendarRangeId, + start: payload.start, + end: payload.end + }); + }, + clearNewCalendarRanges(state) { + state.newCalendarRanges = []; + }, + clearUpdateCalendarRanges(state) { + state.updateCalendarRanges = []; + }, + clearDeleteCalendarRanges(state) { + state.deleteCalendarRanges = []; + }, + removeNewCalendarRanges(state, payload) { + let filteredCollection = state.newCalendarRanges.filter( + (e) => e.start.toString() !== payload.start.toString() && e.end.toString() !== payload.end.toString() + ) + state.newCalendarRanges = filteredCollection; + }, + removeFromDeleteRange(state, payload) { + let filteredCollection = state.deleteCalendarRanges.filter( + (e) => e.start.toString() !== payload.start.toString() && e.end.toString() !== payload.end.toString() + ) + state.deleteCalendarRanges = filteredCollection; + }, + }, + actions: { + createRange({ commit }, payload) { + console.log('### action createRange', payload); + commit('addRange', payload); + }, + updateRange({ commit }, payload) { + console.log('### action updateRange', payload); + commit('updateRange', payload); + }, + deleteRange({ commit }, payload) { + console.log('### action deleteRange', payload); + commit('deleteRange', payload); + }, + clearNewCalendarRanges({ commit }, payload) { + commit('clearNewCalendarRanges', payload); + }, + clearUpdateCalendarRanges({ commit }, payload) { + commit('clearUpdateCalendarRanges', payload); + }, + clearDeleteCalendarRanges({ commit }, payload) { + commit('clearDeleteCalendarRanges', payload); + }, + removeNewCalendarRanges({ commit }, payload) { + commit('removeNewCalendarRanges', payload); + }, + removeFromDeleteRange({ commit }, payload) { + commit('removeFromDeleteRange', payload); + }, + } +}); + + +export default store; diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/_api/api.js b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/_api/api.js new file mode 100644 index 000000000..7aad8ace2 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/_api/api.js @@ -0,0 +1,100 @@ +/* +* Endpoint chill_api_single_calendar_range +* method GET, get Calendar ranges +* @returns {Promise} a promise containing all Calendar ranges objects +*/ +const fetchCalendarRanges = () => { + const url = `/api/1.0/calendar/calendar-range-available.json`; + return fetch(url) + .then(response => { + if (response.ok) { return response.json(); } + throw Error('Error with request resource response'); + }); +}; + +const fetchCalendarRangesByUser = (userId) => { + const url = `/api/1.0/calendar/calendar-range-available.json?user=${userId}`; + return fetch(url) + .then(response => { + if (response.ok) { return response.json(); } + throw Error('Error with request resource response'); + }); +}; + +/* +* Endpoint chill_api_single_calendar +* method GET, get Calendar events, can be filtered by mainUser +* @returns {Promise} a promise containing all Calendar objects +*/ +const fetchCalendar = (mainUserId) => { + const url = `/api/1.0/calendar/calendar.json?main_user=${mainUserId}&item_per_page=1000`; + return fetch(url) + .then(response => { + if (response.ok) { return response.json(); } + throw Error('Error with request resource response'); + }); +}; + + +/* +* Endpoint chill_api_single_calendar_range__entity_create +* method POST, post CalendarRange entity +*/ +const postCalendarRange = (body) => { + const url = `/api/1.0/calendar/calendar-range.json?`; + return fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json;charset=utf-8' + }, + body: JSON.stringify(body) + }).then(response => { + if (response.ok) { return response.json(); } + throw Error('Error with request resource response'); + }); +}; + +/* +* Endpoint chill_api_single_calendar_range__entity +* method PATCH, patch CalendarRange entity +*/ +const patchCalendarRange = (id, body) => { + console.log(body) + const url = `/api/1.0/calendar/calendar-range/${id}.json`; + return fetch(url, { + method: 'PATCH', + headers: { + 'Content-Type': 'application/json;charset=utf-8' + }, + body: JSON.stringify(body) + }).then(response => { + if (response.ok) { return response.json(); } + throw Error('Error with request resource response'); + }); +}; + +/* +* Endpoint chill_api_single_calendar_range__entity +* method DELETE, delete CalendarRange entity +*/ +const deleteCalendarRange = (id) => { + const url = `/api/1.0/calendar/calendar-range/${id}.json`; + return fetch(url, { + method: 'DELETE', + headers: { + 'Content-Type': 'application/json;charset=utf-8' + }, + }).then(response => { + if (response.ok) { return response.json(); } + throw Error('Error with request resource response'); + }); +}; + +export { + fetchCalendarRanges, + fetchCalendar, + fetchCalendarRangesByUser, + postCalendarRange, + patchCalendarRange, + deleteCalendarRange +}; diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/_components/CalendarUserSelector/CalendarUserSelector.vue b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/_components/CalendarUserSelector/CalendarUserSelector.vue index 758b7bae8..da9a9eaf8 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/_components/CalendarUserSelector/CalendarUserSelector.vue +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/_components/CalendarUserSelector/CalendarUserSelector.vue @@ -1,5 +1,5 @@