Show text when event is still running.

This commit is contained in:
Michael Teeuw 2016-04-15 13:13:06 +02:00
parent 614e5e62af
commit 27a47d4e4a
4 changed files with 19 additions and 6 deletions

View File

@ -130,6 +130,12 @@ The following properties can be configured:
<br><b>Default value:</b> <code>'Today'</code> <br><b>Default value:</b> <code>'Today'</code>
</td> </td>
</tr> </tr>
<tr>
<td><code>runningText</code></td>
<td>Text to display when an event is still running.<br>
<br><b>Default value:</b> <code>'Ends in'</code>
</td>
</tr>
</tbody> </tbody>
</table> </table>

View File

@ -33,7 +33,8 @@ Module.register("calendar",{
emptyCalendarText: "No upcoming events.", emptyCalendarText: "No upcoming events.",
// TODO: It would be nice if there is a way to get this from the Moment.js locale. // TODO: It would be nice if there is a way to get this from the Moment.js locale.
todayText: "Today" todayText: "Today",
runningText: "Ends in"
}, },
// Define required scripts. // Define required scripts.
@ -119,7 +120,11 @@ Module.register("calendar",{
if (event.fullDayEvent) { if (event.fullDayEvent) {
timeWrapper.innerHTML = (event.today) ? this.config.todayText : moment(event.startDate,"x").fromNow(); timeWrapper.innerHTML = (event.today) ? this.config.todayText : moment(event.startDate,"x").fromNow();
} else { } else {
timeWrapper.innerHTML = moment(event.startDate,"x").fromNow(); if (event.startDate >= new Date()) {
timeWrapper.innerHTML = moment(event.startDate,"x").fromNow();
} else {
timeWrapper.innerHTML = this.config.runningText + ' ' + moment(event.endDate,"x").fromNow(true);
}
} }
// timeWrapper.innerHTML = moment(event.startDate,'x').format('lll'); // timeWrapper.innerHTML = moment(event.startDate,'x').format('lll');
timeWrapper.className = "time light"; timeWrapper.className = "time light";

View File

@ -58,6 +58,7 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
if (event.type === "VEVENT") { if (event.type === "VEVENT") {
var startDate = (event.start.length === 8) ? moment(event.start, "YYYYMMDD") : moment(new Date(event.start)); var startDate = (event.start.length === 8) ? moment(event.start, "YYYYMMDD") : moment(new Date(event.start));
var endDate = (event.end.length === 8) ? moment(event.end, "YYYYMMDD") : moment(new Date(event.end));
if (event.start.length === 8) { if (event.start.length === 8) {
startDate = startDate.startOf("day"); startDate = startDate.startOf("day");
} }
@ -88,8 +89,8 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
newEvents.push({ newEvents.push({
title: (typeof event.summary.val !== "undefined") ? event.summary.val : event.summary, title: (typeof event.summary.val !== "undefined") ? event.summary.val : event.summary,
startDate: startDate.format("x"), startDate: startDate.format("x"),
endDate: endDate.format("x"),
fullDayEvent: (event.start.length === 8) fullDayEvent: (event.start.length === 8)
}); });
} }
} else { } else {
@ -98,13 +99,13 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
var fullDayEvent = (event.start.length === 8); var fullDayEvent = (event.start.length === 8);
var title = (typeof event.summary.val !== "undefined") ? event.summary.val : event.summary; var title = (typeof event.summary.val !== "undefined") ? event.summary.val : event.summary;
if (!fullDayEvent && startDate < new Date()) { if (!fullDayEvent && endDate < new Date()) {
// it's not a fullday event, and it is in the past. So skip. // it's not a fullday event, and it is in the past. So skip.
console.log("It's not a fullday event, and it is in the past. So skip: " + title); console.log("It's not a fullday event, and it is in the past. So skip: " + title);
continue; continue;
} }
if (fullDayEvent && startDate < today) { if (fullDayEvent && endDate < today) {
// it's a fullday event, and it is before today. So skip. // it's a fullday event, and it is before today. So skip.
console.log("It's a fullday event, and it is before today. So skip: " + title); console.log("It's a fullday event, and it is before today. So skip: " + title);
continue; continue;
@ -120,6 +121,7 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
newEvents.push({ newEvents.push({
title: title, title: title,
startDate: startDate.format("x"), startDate: startDate.format("x"),
endDate: endDate.format("x"),
fullDayEvent: fullDayEvent fullDayEvent: fullDayEvent
}); });

View File

@ -8,7 +8,7 @@
var CalendarFetcher = require("./calendarfetcher.js"); var CalendarFetcher = require("./calendarfetcher.js");
var url = 'https://github.com/MichMich/MagicMirror/files/217285/reachcalendar.txt'; var url = 'http://p35-calendars.icloud.com/published/2/qsud2R2XlRhT3puEVfrzkeSd3X_QSfCMBmpgTsjVqOD2W_fyy0Y-5QskbvWw2jOQB_cPsmcjpGtcg1a3jBQ_QIS2H0XWSxjqCa8LX0dznpE';
var fetchInterval = 60 * 60 * 1000; var fetchInterval = 60 * 60 * 1000;
var maximumEntries = 10; var maximumEntries = 10;
var maximumNumberOfDays = 365; var maximumNumberOfDays = 365;