Fix: #162, Possible fix for: #197

This commit is contained in:
Michael Teeuw
2016-04-19 10:34:14 +02:00
parent a7948ee1da
commit 095f08d443
2 changed files with 33 additions and 3 deletions

View File

@@ -121,7 +121,13 @@ Module.register("calendar",{
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 {
if (event.startDate >= new Date()) { if (event.startDate >= new Date()) {
timeWrapper.innerHTML = moment(event.startDate,"x").fromNow(); var now = new Date();
if (event.startDate - now > 48 * 60 * 60 * 1000) {
// if the event is no longer than 2 days away, display the absolute time.
timeWrapper.innerHTML = moment(event.startDate,"x").fromNow();
} else {
timeWrapper.innerHTML = moment(event.startDate,"x").calendar();
}
} else { } else {
timeWrapper.innerHTML = this.config.runningText + ' ' + moment(event.endDate,"x").fromNow(true); timeWrapper.innerHTML = this.config.runningText + ' ' + moment(event.endDate,"x").fromNow(true);
} }

View File

@@ -96,13 +96,13 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
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"), endDate: endDate.format("x"),
fullDayEvent: (event.start.length === 8) fullDayEvent: isFullDayEvent(event)
}); });
} }
} else { } else {
// console.log("Single event ..."); // console.log("Single event ...");
// Single event. // Single event.
var fullDayEvent = (event.start.length === 8); var fullDayEvent = isFullDayEvent(event);
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 && endDate < new Date()) { if (!fullDayEvent && endDate < new Date()) {
@@ -154,6 +154,30 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
}, reloadInterval); }, reloadInterval);
}; };
/* isFullDayEvent(event)
* Checks if an event is a fullday event.
*
* argument event obejct - The event object to check.
*
* return bool - The event is a fullday event.
*/
var isFullDayEvent = function(event) {
if (event.start.length === 8) {
return true;
}
var start = event.start || 0;
var startDate = new Date(start);
var end = event.end || 0;
if (end - start === 24 * 60 * 60 * 1000 && startDate.getHours() === 0 && startDate.getMinutes() === 0) {
// Is 24 hours, and starts on the middle of the night.
return true;
}
return false;
};
/* public methods */ /* public methods */
/* startFetch() /* startFetch()