From 4e86de7fc2ff64b9b1cd691dd76ea0899b80ad4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mona=20Sch=C3=BCch?= Date: Tue, 26 Apr 2016 22:34:12 +0200 Subject: [PATCH] calendar events repeating count title for birthdayd etc --- modules/default/calendar/README.md | 15 +++++ modules/default/calendar/calendar.js | 39 +++++++++++- modules/default/calendar/calendarfetcher.js | 3 +- nohup.out | 68 +++++++++++++++++++++ 4 files changed, 122 insertions(+), 3 deletions(-) create mode 100644 nohup.out diff --git a/modules/default/calendar/README.md b/modules/default/calendar/README.md index cfe4e2b8..00378263 100644 --- a/modules/default/calendar/README.md +++ b/modules/default/calendar/README.md @@ -112,6 +112,14 @@ The following properties can be configured: + + displayRepeatingCountTitle + Show count title for yearly repeating events (e.g. "X. Birthday", "X. Anniversary")
+ +
Possible values: true or false +
Default value: false + + @@ -154,5 +162,12 @@ config: {
Possible values: See Font Awsome website. + + repeatingCountTitle + The count title for yearly repating events in this calendar.
+
Example:
+ 'Birthday' + + diff --git a/modules/default/calendar/calendar.js b/modules/default/calendar/calendar.js index 5e315586..8bad8277 100644 --- a/modules/default/calendar/calendar.js +++ b/modules/default/calendar/calendar.js @@ -15,6 +15,8 @@ Module.register("calendar",{ maximumNumberOfDays: 365, displaySymbol: true, defaultSymbol: "calendar", // Fontawsome Symbol see http://fontawesome.io/cheatsheet/ + displayRepeatingCountTitle: false, + defaultRepeatingCountTitle: '', maxTitleLength: 25, fetchInterval: 5 * 60 * 1000, // Update every 5 minutes. animationSpeed: 2000, @@ -113,8 +115,24 @@ Module.register("calendar",{ eventWrapper.appendChild(symbolWrapper); } - var titleWrapper = document.createElement("td"); - titleWrapper.innerHTML = this.titleTransform(event.title); + var titleWrapper = document.createElement("td"), + repeatingCountTitle = ''; + + + if (this.config.displayRepeatingCountTitle) { + + repeatingCountTitle = this.countTitleForUrl(event.url) + + if(repeatingCountTitle != '') { + + var thisYear = new Date().getFullYear(), + yearDiff = thisYear - event.firstYear; + + repeatingCountTitle = ', '+ yearDiff + '. ' + repeatingCountTitle; + } + } + + titleWrapper.innerHTML = this.titleTransform(event.title) + repeatingCountTitle; titleWrapper.className = "title bright"; eventWrapper.appendChild(titleWrapper); @@ -239,6 +257,23 @@ Module.register("calendar",{ return this.config.defaultSymbol; }, + /* countTitleForUrl(url) + * Retrieves the name for a specific url. + * + * argument url sting - Url to look for. + * + * return string - The Symbol + */ + countTitleForUrl: function(url) { + for (var c in this.config.calendars) { + var calendar = this.config.calendars[c]; + if (calendar.url === url && typeof calendar.repeatingCountTitle === "string") { + return calendar.repeatingCountTitle; + } + } + + return this.config.defaultRepeatingCountTitle; + }, /* shorten(string, maxLength) * Shortens a sting if it's longer than maxLenthg. diff --git a/modules/default/calendar/calendarfetcher.js b/modules/default/calendar/calendarfetcher.js index ac558e2f..4675f4c0 100644 --- a/modules/default/calendar/calendarfetcher.js +++ b/modules/default/calendar/calendarfetcher.js @@ -84,7 +84,8 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe title: (typeof event.summary.val !== "undefined") ? event.summary.val : event.summary, startDate: startDate.format("x"), endDate: endDate.format("x"), - fullDayEvent: isFullDayEvent(event) + fullDayEvent: isFullDayEvent(event), + firstYear: event.start.getFullYear() }); } } diff --git a/nohup.out b/nohup.out new file mode 100644 index 00000000..6a8c47df --- /dev/null +++ b/nohup.out @@ -0,0 +1,68 @@ + +> magicmirror@2.0.0 start /home/pi/MagicMirror +> electron js/electron.js + +Loading config ... +Loading module helpers ... +No helper found for module: alert. +No helper found for module: clock. +Initializing new module helper ... +No helper found for module: compliments. +No helper found for module: currentweather. +No helper found for module: weatherforecast. +Initializing new module helper ... +All module helpers loaded. +Starting server op port 8080 ... +Server started ... +Connecting socket for: calendar +Starting node helper for: calendar +Connecting socket for: newsfeed +Starting module: newsfeed +Sockets connected & modules started ... +A JavaScript error occurred in the main process +Uncaught Exception: +Error: listen EADDRINUSE :::8080 + at Object.exports._errnoException (util.js:890:11) + at exports._exceptionWithHostPort (util.js:913:20) + at Server._listen2 (net.js:1234:14) + at listen (net.js:1270:10) + at Server.listen (net.js:1366:5) + at new Server (/home/pi/MagicMirror/js/server.js:17:9) + at /home/pi/MagicMirror/js/app.js:112:17 + at loadConfig (/home/pi/MagicMirror/js/app.js:33:4) + at start (/home/pi/MagicMirror/js/app.js:98:3) + at Object. (/home/pi/MagicMirror/js/electron.js:64:6) +Launching application. + +> magicmirror@2.0.0 start /home/pi/MagicMirror +> electron js/electron.js + +Loading config ... +Loading module helpers ... +No helper found for module: clock. +Initializing new module helper ... +No helper found for module: currentweather. +No helper found for module: weatherforecast. +No helper found for module: voice. +Initializing new module helper ... +All module helpers loaded. +Starting server op port 8080 ... +Server started ... +Connecting socket for: custom-calendar +Starting node helper for: custom-calendar +Connecting socket for: MMM-Wunderlist +Sockets connected & modules started ... +A JavaScript error occurred in the main process +Uncaught Exception: +Error: listen EADDRINUSE :::8080 + at Object.exports._errnoException (util.js:890:11) + at exports._exceptionWithHostPort (util.js:913:20) + at Server._listen2 (net.js:1234:14) + at listen (net.js:1270:10) + at Server.listen (net.js:1366:5) + at new Server (/home/pi/MagicMirror/js/server.js:17:9) + at /home/pi/MagicMirror/js/app.js:112:17 + at loadConfig (/home/pi/MagicMirror/js/app.js:33:4) + at start (/home/pi/MagicMirror/js/app.js:98:3) + at Object. (/home/pi/MagicMirror/js/electron.js:64:6) +Launching application.