From 5df818a19c43f4d6237bff3402e665881c4f4d99 Mon Sep 17 00:00:00 2001 From: Andrew McOlash Date: Sun, 12 Mar 2017 11:36:40 -0500 Subject: [PATCH] Add in support to hide and exclude events based on a filter --- modules/default/calendar/README.md | 1 + modules/default/calendar/calendar.js | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/modules/default/calendar/README.md b/modules/default/calendar/README.md index bc2e9771..81981243 100644 --- a/modules/default/calendar/README.md +++ b/modules/default/calendar/README.md @@ -44,6 +44,7 @@ The following properties can be configured: | `urgency` | When using a timeFormat of `absolute`, the `urgency` setting allows you to display events within a specific time frame as `relative`. This allows events within a certain time frame to be displayed as relative (in xx days) while others are displayed as absolute dates

**Possible values:** a positive integer representing the number of days for which you want a relative date, for example `7` (for 7 days)

**Default value:** `7` | `broadcastEvents` | If this property is set to true, the calendar will broadcast all the events to all other modules with the notification message: `CALENDAR_EVENTS`. The event objects are stored in an array and contain the following fields: `title`, `startDate`, `endDate`, `fullDayEvent`, `location` and `geo`.

**Possible values:** `true`, `false`

**Default value:** `true` | `hidePrivate` | Hides private calendar events.

**Possible values:** `true` or `false`
**Default value:** `false` +| `excludedEvents` | An array of words / phrases from event titles that will be excluded from being shown.

**Example:** `['Birthday', 'Hide This Event']`
**Default value:** `[""]` ### Calendar configuration diff --git a/modules/default/calendar/calendar.js b/modules/default/calendar/calendar.js index 644fc1f6..7c075d1c 100644 --- a/modules/default/calendar/calendar.js +++ b/modules/default/calendar/calendar.js @@ -38,7 +38,10 @@ Module.register("calendar", { "De verjaardag van ": "", "'s birthday": "" }, - broadcastEvents: true + broadcastEvents: true, + excludedEvents: [ + "" + ] }, // Define required scripts. @@ -120,6 +123,19 @@ Module.register("calendar", { for (var e in events) { var event = events[e]; + var excluded = false; + for (var f in this.config.excludedEvents) { + var filter = this.config.excludedEvents[f]; + if (event.title.toLowerCase().includes(filter.toLowerCase())) { + excluded = true; + break; + } + } + + if (excluded) { + continue; + } + var eventWrapper = document.createElement("tr"); if (this.config.colored) {