From c42ec1d49353530f34a8b999f548561c0f13895a Mon Sep 17 00:00:00 2001 From: nobohan Date: Mon, 6 Sep 2021 15:37:54 +0200 Subject: [PATCH] rdv: plages de disponibilites: remove new events before it was saved --- .../public/vuejs/MyCalendarRange/App.vue | 24 +++++++++++++++---- .../public/vuejs/MyCalendarRange/store.js | 15 +++++++++--- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue index 1c0e7c4b4..8572ff4fa 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue @@ -133,7 +133,7 @@ export default { newCalendarRanges: state => state.newCalendarRanges, updateCalendarRanges: state => state.updateCalendarRanges, deleteCalendarRanges: state => state.deleteCalendarRanges, - dirty: state => state.newCalendarRanges.length > 0 || state.updateCalendarRanges.length > 0 || state.deleteCalendarRanges.length > 0 + dirty: state => state.newCalendarRanges.length > 0 || state.updateCalendarRanges.length > 0 || state.deleteCalendarRanges.length > 0 }), showMyCalendarWidget: { set(value) { @@ -269,13 +269,29 @@ export default { this.$store.state.deleteCalendarRanges.map(cr => { deleteCalendarRange(cr.id).then((_r) => this.resetCalendar());; }) - this.$store.dispatch('deleteUpdateCalendarRanges', payload); + this.$store.dispatch('clearDeleteCalendarRanges', payload); } }, onDelete(payload) { - payload.setProp('color', '#dddddd'); - this.$store.dispatch('deleteRange', payload); + if (payload.extendedProps.hasOwnProperty("calendarRangeId")) { + payload.setProp('color', '#dddddd'); + this.$store.dispatch('deleteRange', payload); + } else { + let newEvents = this.calendarEvents.new.events; + let filterEvents = newEvents.filter((e) => + e.start !== payload.startStr && e.end !== payload.endStr + ); + this.calendarEvents.new = { + events: filterEvents, + color: "#3788d8" + }; + + this.$store.dispatch('removeNewCalendarRanges', payload); + + this.updateEventsSource(); + } + }, isSameDay(date1, date2) { return date1.getFullYear() === date2.getFullYear() && diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js index 63130e06f..7db701a0d 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store.js @@ -38,8 +38,14 @@ const store = createStore({ clearUpdateCalendarRanges(state) { state.updateCalendarRanges = []; }, - deleteUpdateCalendarRanges(state) { + 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; } }, actions: { @@ -61,8 +67,11 @@ const store = createStore({ clearUpdateCalendarRanges({ commit }, payload) { commit('clearUpdateCalendarRanges', payload); }, - deleteUpdateCalendarRanges({ commit }, payload) { - commit('deleteUpdateCalendarRanges', payload); + clearDeleteCalendarRanges({ commit }, payload) { + commit('clearDeleteCalendarRanges', payload); + }, + removeNewCalendarRanges({ commit }, payload) { + commit('removeNewCalendarRanges', payload); } } });