From e1ccc8aba55c02e444d088cd9c5a19d8a7e418a0 Mon Sep 17 00:00:00 2001 From: nobohan Date: Sun, 5 Sep 2021 11:06:39 +0200 Subject: [PATCH] =?UTF-8?q?rdv:=20edition=20plage=20de=20disponibilit?= =?UTF-8?q?=C3=A9s:=20copy=20events=20to=20next=20day=20(WIP)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../public/vuejs/MyCalendarRange/App.vue | 65 ++++++++++++++++++- .../public/vuejs/MyCalendarRange/i18n.js | 5 ++ 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue index 320b5a978..48d07a74c 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue @@ -16,6 +16,18 @@ @click.prevent="onClickSave"> {{ $t('action.save')}} +
+ + +
+
+ + +
+ @@ -68,6 +80,17 @@ export default { } } }, + computed: { + showMyCalendarWidget: { + set(value) { + this.toggleMyCalendar(value); + this.updateEventsSource(); + }, + get() { + return this.showMyCalendar; + } + } + }, methods: { init() { this.fetchData() @@ -143,12 +166,50 @@ export default { payload.event.setProp('color', '#3788d8'); this.$store.dispatch('updateRange', payload); }, - onClickSave(payload){ + onClickSave(payload) { this.$store.dispatch('saveRanges', payload); }, - onDelete(payload){ + onDelete(payload) { payload.setProp('color', '#dddddd'); this.$store.dispatch('deleteRange', payload); + }, + copyDay(payload) { + console.log(payload); + // TODO get current day, or get current new events + console.log(this.calendarEvents.new); + if (this.calendarEvents.new.events) { + // TODO copy all events of the **LAST** day and create a array of events for the next day + // TODO if showWeekends, copy on the next day always, else, skip weekends + let events = this.calendarEvents.new.events.map(i => { + let startDate = new Date(new Date(i.start).getTime() + 24*60*60*1000); + let endDate = new Date(new Date(i.end).getTime() + 24*60*60*1000); + return ({ + start: startDate.toISOString(), + end: endDate.toISOString() + }) + } + + ); + let copiedEvents = { + events: events, + color: "#3788d8" + }; + console.log(copiedEvents) + //TODO in a loop : this.$store.dispatch('createRange', payload); + + let newEvents = this.calendarEvents.new.events; + newEvents.push(...copiedEvents.events); + this.calendarEvents.new = { + events: newEvents, + color: "#3788d8" + }; + + console.log(this.calendarEvents.new.events) + this.updateEventsSource(); + } else { + console.log('no new events to copy-paste!') + } + } }, mounted() { diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js index 2f3f698ce..2d7513327 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/i18n.js @@ -1,5 +1,10 @@ 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_to_next_week: "Copier les plages de la semaine à la semaine suivante" } }