summaryrefslogtreecommitdiffstats
path: root/server/lib/eventhelper.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/eventhelper.js')
-rw-r--r--server/lib/eventhelper.js22
1 files changed, 9 insertions, 13 deletions
diff --git a/server/lib/eventhelper.js b/server/lib/eventhelper.js
index 46213e6..e5d54f3 100644
--- a/server/lib/eventhelper.js
+++ b/server/lib/eventhelper.js
@@ -20,15 +20,14 @@ class Schedule {
const splitStartTime = splitStart[1].split(':')
const rule = {
dtstart: new Date(event.start + 'Z'),
- until: new Date(event.start + 'Z'),
+ until: new Date(event.end + 'Z'),
interval: event.interval,
- byhour: splitStartTime[0],
- byminute: splitStartTime[1]
+ byhour: [splitStartTime[0]],
+ byminute: [splitStartTime[1]],
+ byweekday: event.dayMap.reduce((arr, v, i) => { if (v) arr.push(rruleWeekdays[i]); return arr }, []),
+ bymonth: event.monthMap.reduce((arr, v, i) => { if (v) arr.push(i + 1); return arr }, [])
}
- rule.byweekday = event.dayMap.reduce((arr, v, i) => { if (v) arr.push(rruleWeekdays[i]); return arr }, [])
- rule.bymonth = event.monthMap.reduce((arr, v, i) => { if (v) arr.push(i + 1); return arr }, [])
-
if (event.intervalType === 'month') rule.freq = RRule.MONTHLY
else if (event.intervalType === 'week') rule.freq = RRule.WEEKLY
else rule.freq = RRule.DAILY
@@ -56,13 +55,10 @@ class Schedule {
}
function isActive (event) {
- if (event.repetitive) {
- const schedule = new Schedule(event)
- return schedule.isActive(new Date())
- } else {
- const now = formatDate(new Date())
- return event.start <= now && now <= event.end
- }
+ const now = formatDate(new Date())
+ if (now < event.start || event.end < now) return false
+ if (event.repetitive) return (new Schedule(event)).isValid(now)
+ else return true
}
function formatDate (date) {