From b1b6462ebdb182064bcefa8229f3e664f86c28ca Mon Sep 17 00:00:00 2001 From: Kevin Petit Date: Sat, 16 May 2020 18:54:27 +0200 Subject: [PATCH] Fix announcement display --- .../src/components/Index/MessageBlock.vue | 6 ++--- frontend/src/mixin.js | 9 ++++--- frontend/src/pages/Index.vue | 24 +++++++++---------- frontend/src/pages/Service.vue | 17 ++++++------- 4 files changed, 29 insertions(+), 27 deletions(-) diff --git a/frontend/src/components/Index/MessageBlock.vue b/frontend/src/components/Index/MessageBlock.vue index 5fd9ce57..96c98225 100644 --- a/frontend/src/components/Index/MessageBlock.vue +++ b/frontend/src/components/Index/MessageBlock.vue @@ -1,13 +1,13 @@ diff --git a/frontend/src/mixin.js b/frontend/src/mixin.js index d1a285b6..7e69ae90 100644 --- a/frontend/src/mixin.js +++ b/frontend/src/mixin.js @@ -1,5 +1,5 @@ import Vue from "vue"; -const { zonedTimeToUtc, utcToZonedTime, startOfToday, lastDayOfMonth, subSeconds, parse, getUnixTime, fromUnixTime, differenceInSeconds, formatDistance } = require('date-fns') +const { zonedTimeToUtc, utcToZonedTime, startOfToday, lastDayOfMonth, subSeconds, parse, getUnixTime, fromUnixTime, differenceInSeconds, formatDistance, isWithinInterval } = require('date-fns') import formatDistanceToNow from 'date-fns/formatDistanceToNow' import format from 'date-fns/format' import parseISO from 'date-fns/parseISO' @@ -60,8 +60,8 @@ export default Vue.mixin({ fromUnix(val) { return fromUnixTime(val) }, - isBetween(t1, t2) { - return differenceInSeconds(parseISO(t1), parseISO(t2)) >= 0 + isBetween(t, start, end) { + return isWithinInterval(t, {start: parseISO(start), end: parseISO(end)}) }, hour() { return 3600 @@ -69,6 +69,9 @@ export default Vue.mixin({ day() { return 3600 * 24 }, + maxDate() { + return new Date(8640000000000000) + }, copy(txt) { this.$copyText(txt).then(function (e) { alert('Copied: \n'+txt) diff --git a/frontend/src/pages/Index.vue b/frontend/src/pages/Index.vue index f551a7c9..b1610fea 100644 --- a/frontend/src/pages/Index.vue +++ b/frontend/src/pages/Index.vue @@ -3,8 +3,8 @@
-
-
+ -
- -
- -
- +
+
-
+ +
+ +
+
@@ -60,7 +60,7 @@ export default { }, computed: { messages() { - return this.$store.getters.messages + return this.$store.getters.messages.filter(m => this.inRange(m) && m.service === 0) }, groups() { return this.$store.getters.groupsInOrder @@ -80,9 +80,7 @@ export default { }, methods: { inRange(message) { - const start = this.isBetween(new Date(), message.start_on) - const end = this.isBetween(message.end_on, new Date()) - return start && end + return this.isBetween(this.now(), message.start_on, message.start_on === message.end_on ? this.maxDate().toISOString() : message.end_on) } } } diff --git a/frontend/src/pages/Service.vue b/frontend/src/pages/Service.vue index a3d71e7d..c32f2aa8 100644 --- a/frontend/src/pages/Service.vue +++ b/frontend/src/pages/Service.vue @@ -16,8 +16,8 @@ -
- +
+
@@ -348,7 +348,10 @@ export default { name: this.service.name, ...this.convertToChartData(this.data) }] - } + }, + messagesInRange() { + return this.$store.getters.serviceMessages(this.service.id).filter(m => this.inRange(m)) + }, }, watch: { service: function(n, o) { @@ -412,11 +415,9 @@ export default { } return [{data: arr}] }, - messageInRange(message) { - const start = this.isBetween(new Date(), message.start_on) - const end = this.isBetween(message.end_on, new Date()) - return start && end - }, + inRange(message) { + return this.isBetween(this.now(), message.start_on, message.start_on === message.end_on ? this.maxDate().toISOString() : message.end_on) + }, async getService() { await this.chartHits() await this.serviceFailures()