From f77e6b1ed6bfa75e2a787feffa9bf118e0394922 Mon Sep 17 00:00:00 2001 From: lesion Date: Fri, 14 Jun 2019 23:27:56 +0200 Subject: [PATCH] start multidays intersection check --- pages/add/_edit.vue | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/pages/add/_edit.vue b/pages/add/_edit.vue index 176b551b..10273b9c 100644 --- a/pages/add/_edit.vue +++ b/pages/add/_edit.vue @@ -187,13 +187,25 @@ export default { events: state => state.events }), todayEvents () { - const date = moment(this.date) - return this.events.filter(e => - !e.multidate ? - date.isSame(moment(e.start_datetime), 'day') : - moment(e.start_datetime).isSame(date, 'day') || - moment(e.start_datetime).isBefore(date) && moment(e.end_datetime).isAfter(date) - ) + if (this.event.multidate) { + if (!this.date || !this.date.start) return + const date_start = moment(this.date.start) + const date_end = moment(this.date.end) + return this.events.filter(e => + !e.multidate ? + date_start.isSame(e.start_datetime, 'day') || + date_start.isBefore(e.start_datime) && date_end.isAfter(e.start_datetime) : + date_start.isSame(e.start_datetime, 'day') || date_start.isSame(e.end_datetime) || + date_start.isAfter(e.start_datetime) && date_start.isBefore(e.end_datetime)) + } else { + const date = moment(this.date) + return this.events.filter(e => + !e.multidate ? + date.isSame(moment(e.start_datetime), 'day') : + moment(e.start_datetime).isSame(date, 'day') || + moment(e.start_datetime).isBefore(date) && moment(e.end_datetime).isAfter(date) + ) + } }, ...mapGetters(['filteredEvents']), attributes () {