From 5ceddc747df01ca4dc66f43b3a877fd077e5d023 Mon Sep 17 00:00:00 2001 From: Julie Lenaerts Date: Wed, 11 May 2022 21:27:47 +0200 Subject: [PATCH] start copy dates --- .../Controller/CalendarController.php | 2 +- .../Controller/CalendarRangeAPIController.php | 10 +- .../public/vuejs/MyCalendarRange/App.vue | 155 ++++++--------- .../public/vuejs/MyCalendarRange/i18n.js | 1 + .../public/vuejs/MyCalendarRange/store.js | 180 +++++++++--------- 5 files changed, 158 insertions(+), 190 deletions(-) diff --git a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php index 3efae86e9..f87c89e96 100644 --- a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php +++ b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php @@ -374,7 +374,7 @@ class CalendarController extends AbstractController 'professionalsId' => $professionalsId, 'date' => $entity->getStartDate()->format('Y-m-d'), 'durationTime' => $durationTimeInMinutes, - 'location' => $entity->getLocation()->getId(), + 'location' => $entity->getLocation() ? $entity->getLocation()->getId() : null, 'comment' => $entity->getComment()->getComment(), ]; diff --git a/src/Bundle/ChillCalendarBundle/Controller/CalendarRangeAPIController.php b/src/Bundle/ChillCalendarBundle/Controller/CalendarRangeAPIController.php index b8e3710b2..8f1ae2ef6 100644 --- a/src/Bundle/ChillCalendarBundle/Controller/CalendarRangeAPIController.php +++ b/src/Bundle/ChillCalendarBundle/Controller/CalendarRangeAPIController.php @@ -48,11 +48,19 @@ class CalendarRangeAPIController extends ApiController ->setParameter('endDate', $endDate) ->setParameter('user', $user); } + + if($request->query->has('start') && !$request->query->has('end')) { + $startDate = $request->query->get('start'); + $sql = $sql . ' AND c.startDate > :startDate + INTERVAL "1 DAY"'; + dump($sql); + $query = $em ->createQuery($sql) + ->setParameter('startDate', $startDate) + ->setParameter('user', $user); + } } else { $query = $em->createQuery($sql); } $results = $query->getResult(); - dump($results); return $this->json(['count' => count($results), 'results' => $results], Response::HTTP_OK, [], ['groups' => ['read']]); //TODO use also the paginator, eg return $this->serializeCollection('get', $request, $_format, $paginator, $results); diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue index 4aead8e96..da5afec47 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue @@ -24,71 +24,24 @@ +

{{ $t('copy_range_from_to') }}

- +
- +
-
- - + @@ -154,6 +107,8 @@ export default { data() { return { errorMsg: [], + copyFrom: null, + copyTo: null, modal: { showModal: false, modalDialogClass: "modal-dialog-scrollable modal-m" @@ -295,10 +250,7 @@ export default { const startDate = this.$refs.fullCalendar.getApi().view.currentStart.toISOString() const endDate = this.$refs.fullCalendar.getApi().view.currentEnd.toISOString() - console.log('startDate', startDate, 'endDate', endDate) fetchCalendarRangesByUser(this.userId, startDate, endDate).then(calendarRanges => new Promise((resolve, reject) => { - console.log('calendarRanges', calendarRanges.results); - let events = calendarRanges.results.map(i => ({ start: i.startDate.datetime, @@ -404,7 +356,6 @@ export default { }).then((_r) => this.resetCalendar()); }, onEventClick(payload) { - // console.log(payload); if (payload.event.extendedProps.myCalendar) { this.myCalendarClickedEvent = { id: payload.event.extendedProps.calendarId, @@ -448,52 +399,60 @@ export default { isFriday(date) { return date.getDay() === 5 }, - copyDay(_payload) { - // console.log(this.calendarEvents.new); - if (this.calendarEvents.new.events.length > 0) { - // Create the copied events - let increment = !this.calendarOptions.weekends && this.isFriday(this.lastNewDate) ? 24*60*60*1000*3 : 24*60*60*1000; - let events = this.calendarEvents.new.events.filter( - i => this.isSameDay(new Date(i.start), this.lastNewDate)).map( - i => { - let startDate = new Date(new Date(i.start).getTime() + increment); - let endDate = new Date(new Date(i.end).getTime() + increment); - return ({ - start: startDate.toISOString(), - end: endDate.toISOString() - }) - } - ); - let copiedEvents = { - events: events, - color: "#3788d8" - }; - // console.log(copiedEvents); + copyDay() { + const fromDate = new Date(this.copyFrom).toISOString(); + const toDate = new Date(this.copyTo).toISOString(); - // Add to the calendar - let newEvents = this.calendarEvents.new.events; - newEvents.push(...copiedEvents.events); - this.calendarEvents.new = { - events: newEvents, - color: "#3788d8" - }; - this.updateEventsSource(); + fetchCalendarRangesByUser(this.userId, fromDate) + .then((ranges) => { + console.log(ranges.results); + // ranges.results.foreach() + }) - // Set the last new date - this.lastNewDate = new Date(copiedEvents.events[copiedEvents.events.length - 1].start); + // if (this.calendarEvents.new.events.length > 0) { + // // Create the copied events + // let increment = !this.calendarOptions.weekends && this.isFriday(this.lastNewDate) ? 24*60*60*1000*3 : 24*60*60*1000; + // let events = this.calendarEvents.new.events.filter( + // i => this.isSameDay(new Date(i.start), this.lastNewDate)).map( + // i => { + // let startDate = new Date(new Date(i.start).getTime() + increment); + // let endDate = new Date(new Date(i.end).getTime() + increment); + // return ({ + // start: startDate.toISOString(), + // end: endDate.toISOString() + // }) + // } + // ); + // let copiedEvents = { + // events: events, + // color: "#3788d8" + // }; + // // console.log(copiedEvents); - // Dispatch in store for saving - for (let i = 0; i < copiedEvents.events.length; i++) { - let eventObj = { - start: new Date(copiedEvents.events[i].start), - end: new Date(copiedEvents.events[i].end) - } - this.$store.dispatch('createRange', eventObj); - } + // // Add to the calendar + // let newEvents = this.calendarEvents.new.events; + // newEvents.push(...copiedEvents.events); + // this.calendarEvents.new = { + // events: newEvents, + // color: "#3788d8" + // }; + // this.updateEventsSource(); - } else { - console.log('no new events to copy-paste!') - } + // // Set the last new date + // this.lastNewDate = new Date(copiedEvents.events[copiedEvents.events.length - 1].start); + + // // Dispatch in store for saving + // for (let i = 0; i < copiedEvents.events.length; i++) { + // let eventObj = { + // start: new Date(copiedEvents.events[i].start), + // end: new Date(copiedEvents.events[i].end) + // } + // this.$store.dispatch('createRange', eventObj); + // } + + // } else { + // console.log('no new events to copy-paste!') + // } }, renderEventDate() { let start = this.myCalendarClickedEvent.start; diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js index 486e6f6cd..383fff19f 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js @@ -20,6 +20,7 @@ const appMessages = { day: "Jour", week: "Semaine", month: "Mois", + today: "Aujourd'hui", } } diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js index 48a5d3ea9..c4fd7b4c4 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js @@ -7,103 +7,103 @@ const debug = process.env.NODE_ENV !== 'production'; const store = createStore({ strict: debug, state: { - newCalendarRanges: [], - updateCalendarRanges: [], - deleteCalendarRanges: [], - currentCalendarRanges: [], + // newCalendarRanges: [], + // updateCalendarRanges: [], + // deleteCalendarRanges: [], + // currentCalendarRanges: [], }, mutations: { - setCurrentCalendarRanges(state, payload) { - state.currentCalendarRanges = payload - }, - 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; - }, - addCalendarRange(state, payload) { - state.currentCalendarRanges.push(payload); - } + // setCurrentCalendarRanges(state, payload) { + // state.currentCalendarRanges = payload + // }, + // 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; + // }, + // addCalendarRange(state, payload) { + // state.currentCalendarRanges.push(payload); + // } }, actions: { - setCurrentCalendarRanges({ commit }) { - // console.log('userId', window.userId); - fetchCalendarRangesByUser(window.userId) - .then((ranges) => { - // console.log('ranges', ranges.results); - commit('setCurrentCalendarRanges', ranges.results); - }) - }, - addCalendarRange({ commit }, payload) { - commit('addCalendarRange', payload) - }, - 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); - }, + // setCurrentCalendarRanges({ commit }) { + // // console.log('userId', window.userId); + // fetchCalendarRangesByUser(window.userId) + // .then((ranges) => { + // // console.log('ranges', ranges.results); + // commit('setCurrentCalendarRanges', ranges.results); + // }) + // }, + // addCalendarRange({ commit }, payload) { + // commit('addCalendarRange', payload) + // }, + // 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); + // }, } }); -store.dispatch('setCurrentCalendarRanges'); +// store.dispatch('setCurrentCalendarRanges'); export default store;