mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-30 13:09:34 +00:00
Update calendar.js
This commit is contained in:
parent
37e31bac5b
commit
1405e8821c
@ -1,18 +1,20 @@
|
|||||||
/* global cloneObject */
|
/* global Module */
|
||||||
|
|
||||||
/* Magic Mirror
|
/* Magic Mirror
|
||||||
* Module: Calendar
|
* Module: Calendar
|
||||||
*
|
*
|
||||||
* By Michael Teeuw https://michaelteeuw.nl
|
* By Michael Teeuw http://michaelteeuw.nl
|
||||||
* MIT Licensed.
|
* MIT Licensed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Module.register("calendar", {
|
Module.register("calendar", {
|
||||||
|
|
||||||
// Define module defaults
|
// Define module defaults
|
||||||
defaults: {
|
defaults: {
|
||||||
maximumEntries: 10, // Total Maximum Entries
|
maximumEntries: 10, // Total Maximum Entries
|
||||||
maximumNumberOfDays: 365,
|
maximumNumberOfDays: 365,
|
||||||
displaySymbol: true,
|
displaySymbol: true,
|
||||||
defaultSymbol: "calendar", // Fontawesome Symbol see https://fontawesome.com/cheatsheet?from=io
|
defaultSymbol: "calendar", // Fontawesome Symbol see http://fontawesome.io/cheatsheet/
|
||||||
showLocation: false,
|
showLocation: false,
|
||||||
displayRepeatingCountTitle: false,
|
displayRepeatingCountTitle: false,
|
||||||
defaultRepeatingCountTitle: "",
|
defaultRepeatingCountTitle: "",
|
||||||
@ -38,8 +40,8 @@ Module.register("calendar", {
|
|||||||
calendars: [
|
calendars: [
|
||||||
{
|
{
|
||||||
symbol: "calendar",
|
symbol: "calendar",
|
||||||
url: "https://www.calendarlabs.com/templates/ical/US-Holidays.ics"
|
url: "http://www.calendarlabs.com/templates/ical/US-Holidays.ics",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
titleReplace: {
|
titleReplace: {
|
||||||
"De verjaardag van ": "",
|
"De verjaardag van ": "",
|
||||||
@ -84,7 +86,7 @@ Module.register("calendar", {
|
|||||||
var calendarConfig = {
|
var calendarConfig = {
|
||||||
maximumEntries: calendar.maximumEntries,
|
maximumEntries: calendar.maximumEntries,
|
||||||
maximumNumberOfDays: calendar.maximumNumberOfDays,
|
maximumNumberOfDays: calendar.maximumNumberOfDays,
|
||||||
broadcastPastEvents: calendar.broadcastPastEvents
|
broadcastPastEvents: calendar.broadcastPastEvents,
|
||||||
};
|
};
|
||||||
if (calendar.symbolClass === "undefined" || calendar.symbolClass === null) {
|
if (calendar.symbolClass === "undefined" || calendar.symbolClass === null) {
|
||||||
calendarConfig.symbolClass = "";
|
calendarConfig.symbolClass = "";
|
||||||
@ -97,7 +99,7 @@ Module.register("calendar", {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// we check user and password here for backwards compatibility with old configs
|
// we check user and password here for backwards compatibility with old configs
|
||||||
if (calendar.user && calendar.pass) {
|
if(calendar.user && calendar.pass) {
|
||||||
Log.warn("Deprecation warning: Please update your calendar authentication configuration.");
|
Log.warn("Deprecation warning: Please update your calendar authentication configuration.");
|
||||||
Log.warn("https://github.com/MichMich/MagicMirror/tree/v2.1.2/modules/default/calendar#calendar-authentication-options");
|
Log.warn("https://github.com/MichMich/MagicMirror/tree/v2.1.2/modules/default/calendar#calendar-authentication-options");
|
||||||
calendar.auth = {
|
calendar.auth = {
|
||||||
@ -111,7 +113,7 @@ Module.register("calendar", {
|
|||||||
// Trigger ADD_CALENDAR every fetchInterval to make sure there is always a calendar
|
// Trigger ADD_CALENDAR every fetchInterval to make sure there is always a calendar
|
||||||
// fetcher running on the server side.
|
// fetcher running on the server side.
|
||||||
var self = this;
|
var self = this;
|
||||||
setInterval(function () {
|
setInterval(function() {
|
||||||
self.addCalendar(calendar.url, calendar.auth, calendarConfig);
|
self.addCalendar(calendar.url, calendar.auth, calendarConfig);
|
||||||
}, self.config.fetchInterval);
|
}, self.config.fetchInterval);
|
||||||
}
|
}
|
||||||
@ -122,6 +124,9 @@ Module.register("calendar", {
|
|||||||
|
|
||||||
// Override socket notification handler.
|
// Override socket notification handler.
|
||||||
socketNotificationReceived: function (notification, payload) {
|
socketNotificationReceived: function (notification, payload) {
|
||||||
|
if (this.identifier != payload.id)
|
||||||
|
{return;}
|
||||||
|
|
||||||
if (notification === "CALENDAR_EVENTS") {
|
if (notification === "CALENDAR_EVENTS") {
|
||||||
if (this.hasCalendarURL(payload.url)) {
|
if (this.hasCalendarURL(payload.url)) {
|
||||||
this.calendarData[payload.url] = payload.events;
|
this.calendarData[payload.url] = payload.events;
|
||||||
@ -143,12 +148,13 @@ Module.register("calendar", {
|
|||||||
|
|
||||||
// Override dom generator.
|
// Override dom generator.
|
||||||
getDom: function () {
|
getDom: function () {
|
||||||
|
|
||||||
var events = this.createEventList();
|
var events = this.createEventList();
|
||||||
var wrapper = document.createElement("table");
|
var wrapper = document.createElement("table");
|
||||||
wrapper.className = this.config.tableClass;
|
wrapper.className = this.config.tableClass;
|
||||||
|
|
||||||
if (events.length === 0) {
|
if (events.length === 0) {
|
||||||
wrapper.innerHTML = this.loaded ? this.translate("EMPTY") : this.translate("LOADING");
|
wrapper.innerHTML = (this.loaded) ? this.translate("EMPTY") : this.translate("LOADING");
|
||||||
wrapper.className = this.config.tableClass + " dimmed";
|
wrapper.className = this.config.tableClass + " dimmed";
|
||||||
return wrapper;
|
return wrapper;
|
||||||
}
|
}
|
||||||
@ -167,8 +173,8 @@ Module.register("calendar", {
|
|||||||
for (var e in events) {
|
for (var e in events) {
|
||||||
var event = events[e];
|
var event = events[e];
|
||||||
var dateAsString = moment(event.startDate, "x").format(this.config.dateFormat);
|
var dateAsString = moment(event.startDate, "x").format(this.config.dateFormat);
|
||||||
if (this.config.timeFormat === "dateheaders") {
|
if(this.config.timeFormat === "dateheaders"){
|
||||||
if (lastSeenDate !== dateAsString) {
|
if(lastSeenDate !== dateAsString){
|
||||||
var dateRow = document.createElement("tr");
|
var dateRow = document.createElement("tr");
|
||||||
dateRow.className = "normal";
|
dateRow.className = "normal";
|
||||||
var dateCell = document.createElement("td");
|
var dateCell = document.createElement("td");
|
||||||
@ -179,10 +185,9 @@ Module.register("calendar", {
|
|||||||
dateRow.appendChild(dateCell);
|
dateRow.appendChild(dateCell);
|
||||||
wrapper.appendChild(dateRow);
|
wrapper.appendChild(dateRow);
|
||||||
|
|
||||||
if (e >= startFade) {
|
if (e >= startFade) { //fading
|
||||||
//fading
|
|
||||||
currentFadeStep = e - startFade;
|
currentFadeStep = e - startFade;
|
||||||
dateRow.style.opacity = 1 - (1 / fadeSteps) * currentFadeStep;
|
dateRow.style.opacity = 1 - (1 / fadeSteps * currentFadeStep);
|
||||||
}
|
}
|
||||||
|
|
||||||
lastSeenDate = dateAsString;
|
lastSeenDate = dateAsString;
|
||||||
@ -208,20 +213,20 @@ Module.register("calendar", {
|
|||||||
symbolWrapper.className = "symbol align-right " + symbolClass;
|
symbolWrapper.className = "symbol align-right " + symbolClass;
|
||||||
|
|
||||||
var symbols = this.symbolsForUrl(event.url);
|
var symbols = this.symbolsForUrl(event.url);
|
||||||
if (typeof symbols === "string") {
|
if(typeof symbols === "string") {
|
||||||
symbols = [symbols];
|
symbols = [symbols];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < symbols.length; i++) {
|
for(var i = 0; i < symbols.length; i++) {
|
||||||
var symbol = document.createElement("span");
|
var symbol = document.createElement("span");
|
||||||
symbol.className = "fa fa-fw fa-" + symbols[i];
|
symbol.className = "fa fa-fw fa-" + symbols[i];
|
||||||
if (i > 0) {
|
if(i > 0){
|
||||||
symbol.style.paddingLeft = "5px";
|
symbol.style.paddingLeft = "5px";
|
||||||
}
|
}
|
||||||
symbolWrapper.appendChild(symbol);
|
symbolWrapper.appendChild(symbol);
|
||||||
}
|
}
|
||||||
eventWrapper.appendChild(symbolWrapper);
|
eventWrapper.appendChild(symbolWrapper);
|
||||||
} else if (this.config.timeFormat === "dateheaders") {
|
} else if(this.config.timeFormat === "dateheaders"){
|
||||||
var blankCell = document.createElement("td");
|
var blankCell = document.createElement("td");
|
||||||
blankCell.innerHTML = " ";
|
blankCell.innerHTML = " ";
|
||||||
eventWrapper.appendChild(blankCell);
|
eventWrapper.appendChild(blankCell);
|
||||||
@ -231,6 +236,7 @@ Module.register("calendar", {
|
|||||||
repeatingCountTitle = "";
|
repeatingCountTitle = "";
|
||||||
|
|
||||||
if (this.config.displayRepeatingCountTitle && event.firstYear !== undefined) {
|
if (this.config.displayRepeatingCountTitle && event.firstYear !== undefined) {
|
||||||
|
|
||||||
repeatingCountTitle = this.countTitleForUrl(event.url);
|
repeatingCountTitle = this.countTitleForUrl(event.url);
|
||||||
|
|
||||||
if (repeatingCountTitle !== "") {
|
if (repeatingCountTitle !== "") {
|
||||||
@ -251,15 +257,17 @@ Module.register("calendar", {
|
|||||||
titleWrapper.className = "title " + titleClass;
|
titleWrapper.className = "title " + titleClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
var timeWrapper;
|
if(this.config.timeFormat === "dateheaders"){
|
||||||
|
|
||||||
if (this.config.timeFormat === "dateheaders") {
|
|
||||||
if (event.fullDayEvent) {
|
if (event.fullDayEvent) {
|
||||||
titleWrapper.colSpan = "2";
|
titleWrapper.colSpan = "2";
|
||||||
titleWrapper.align = "left";
|
titleWrapper.align = "left";
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
timeWrapper = document.createElement("td");
|
|
||||||
timeWrapper.className = "time light " + this.timeClassForUrl(event.url);
|
var timeClass = this.timeClassForUrl(event.url);
|
||||||
|
var timeWrapper = document.createElement("td");
|
||||||
|
timeWrapper.className = "time light " + timeClass;
|
||||||
timeWrapper.align = "left";
|
timeWrapper.align = "left";
|
||||||
timeWrapper.style.paddingLeft = "2px";
|
timeWrapper.style.paddingLeft = "2px";
|
||||||
timeWrapper.innerHTML = moment(event.startDate, "x").format("LT");
|
timeWrapper.innerHTML = moment(event.startDate, "x").format("LT");
|
||||||
@ -269,7 +277,7 @@ Module.register("calendar", {
|
|||||||
|
|
||||||
eventWrapper.appendChild(titleWrapper);
|
eventWrapper.appendChild(titleWrapper);
|
||||||
} else {
|
} else {
|
||||||
timeWrapper = document.createElement("td");
|
var timeWrapper = document.createElement("td");
|
||||||
|
|
||||||
eventWrapper.appendChild(titleWrapper);
|
eventWrapper.appendChild(titleWrapper);
|
||||||
//console.log(event.today);
|
//console.log(event.today);
|
||||||
@ -301,7 +309,7 @@ Module.register("calendar", {
|
|||||||
* Note: this needs to be put in its own function, as the whole thing repeats again verbatim
|
* Note: this needs to be put in its own function, as the whole thing repeats again verbatim
|
||||||
*/
|
*/
|
||||||
if (this.config.timeFormat === "absolute") {
|
if (this.config.timeFormat === "absolute") {
|
||||||
if (this.config.urgency > 1 && event.startDate - now < this.config.urgency * oneDay) {
|
if ((this.config.urgency > 1) && (event.startDate - now < (this.config.urgency * oneDay))) {
|
||||||
// This event falls within the config.urgency period that the user has set
|
// This event falls within the config.urgency period that the user has set
|
||||||
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").from(moment().format("YYYYMMDD")));
|
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").from(moment().format("YYYYMMDD")));
|
||||||
} else {
|
} else {
|
||||||
@ -311,9 +319,9 @@ Module.register("calendar", {
|
|||||||
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").from(moment().format("YYYYMMDD")));
|
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").from(moment().format("YYYYMMDD")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.config.showEnd) {
|
if(this.config.showEnd){
|
||||||
timeWrapper.innerHTML += "-";
|
timeWrapper.innerHTML += "-" ;
|
||||||
timeWrapper.innerHTML += this.capFirst(moment(event.endDate, "x").format(this.config.fullDayEventDateFormat));
|
timeWrapper.innerHTML += this.capFirst(moment(event.endDate , "x").format(this.config.fullDayEventDateFormat));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (event.startDate >= new Date()) {
|
if (event.startDate >= new Date()) {
|
||||||
@ -323,7 +331,7 @@ Module.register("calendar", {
|
|||||||
// If event is within 6 hour, display 'in xxx' time format or moment.fromNow()
|
// If event is within 6 hour, display 'in xxx' time format or moment.fromNow()
|
||||||
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").fromNow());
|
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").fromNow());
|
||||||
} else {
|
} else {
|
||||||
if (this.config.timeFormat === "absolute" && !this.config.nextDaysRelative) {
|
if(this.config.timeFormat === "absolute" && !this.config.nextDaysRelative) {
|
||||||
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").format(this.config.dateFormat));
|
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").format(this.config.dateFormat));
|
||||||
} else {
|
} else {
|
||||||
// Otherwise just say 'Today/Tomorrow at such-n-such time'
|
// Otherwise just say 'Today/Tomorrow at such-n-such time'
|
||||||
@ -339,7 +347,7 @@ Module.register("calendar", {
|
|||||||
* Note: this needs to be put in its own function, as the whole thing repeats again verbatim
|
* Note: this needs to be put in its own function, as the whole thing repeats again verbatim
|
||||||
*/
|
*/
|
||||||
if (this.config.timeFormat === "absolute") {
|
if (this.config.timeFormat === "absolute") {
|
||||||
if (this.config.urgency > 1 && event.startDate - now < this.config.urgency * oneDay) {
|
if ((this.config.urgency > 1) && (event.startDate - now < (this.config.urgency * oneDay))) {
|
||||||
// This event falls within the config.urgency period that the user has set
|
// This event falls within the config.urgency period that the user has set
|
||||||
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").fromNow());
|
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").fromNow());
|
||||||
} else {
|
} else {
|
||||||
@ -360,11 +368,13 @@ Module.register("calendar", {
|
|||||||
if (this.config.showEnd) {
|
if (this.config.showEnd) {
|
||||||
timeWrapper.innerHTML += "-";
|
timeWrapper.innerHTML += "-";
|
||||||
timeWrapper.innerHTML += this.capFirst(moment(event.endDate, "x").format(this.config.dateEndFormat));
|
timeWrapper.innerHTML += this.capFirst(moment(event.endDate, "x").format(this.config.dateEndFormat));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//timeWrapper.innerHTML += ' - '+ moment(event.startDate,'x').format('lll');
|
//timeWrapper.innerHTML += ' - '+ moment(event.startDate,'x').format('lll');
|
||||||
//console.log(event);
|
//console.log(event);
|
||||||
timeWrapper.className = "time light " + this.timeClassForUrl(event.url);
|
var timeClass = this.timeClassForUrl(event.url);
|
||||||
|
timeWrapper.className = "time light " + timeClass;
|
||||||
eventWrapper.appendChild(timeWrapper);
|
eventWrapper.appendChild(timeWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -373,7 +383,7 @@ Module.register("calendar", {
|
|||||||
// Create fade effect.
|
// Create fade effect.
|
||||||
if (e >= startFade) {
|
if (e >= startFade) {
|
||||||
currentFadeStep = e - startFade;
|
currentFadeStep = e - startFade;
|
||||||
eventWrapper.style.opacity = 1 - (1 / fadeSteps) * currentFadeStep;
|
eventWrapper.style.opacity = 1 - (1 / fadeSteps * currentFadeStep);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.config.showLocation) {
|
if (this.config.showLocation) {
|
||||||
@ -396,7 +406,7 @@ Module.register("calendar", {
|
|||||||
|
|
||||||
if (e >= startFade) {
|
if (e >= startFade) {
|
||||||
currentFadeStep = e - startFade;
|
currentFadeStep = e - startFade;
|
||||||
locationRow.style.opacity = 1 - (1 / fadeSteps) * currentFadeStep;
|
locationRow.style.opacity = 1 - (1 / fadeSteps * currentFadeStep);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -413,16 +423,19 @@ Module.register("calendar", {
|
|||||||
* @param {number} timeFormat Specifies either 12 or 24 hour time format
|
* @param {number} timeFormat Specifies either 12 or 24 hour time format
|
||||||
* @returns {moment.LocaleSpecification}
|
* @returns {moment.LocaleSpecification}
|
||||||
*/
|
*/
|
||||||
getLocaleSpecification: function (timeFormat) {
|
getLocaleSpecification: function(timeFormat) {
|
||||||
switch (timeFormat) {
|
switch (timeFormat) {
|
||||||
case 12: {
|
case 12: {
|
||||||
return { longDateFormat: { LT: "h:mm A" } };
|
return { longDateFormat: {LT: "h:mm A"} };
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
case 24: {
|
case 24: {
|
||||||
return { longDateFormat: { LT: "HH:mm" } };
|
return { longDateFormat: {LT: "HH:mm"} };
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
return { longDateFormat: { LT: moment.localeData().longDateFormat("LT") } };
|
return { longDateFormat: {LT: moment.localeData().longDateFormat("LT")} };
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -459,37 +472,37 @@ Module.register("calendar", {
|
|||||||
var calendar = this.calendarData[c];
|
var calendar = this.calendarData[c];
|
||||||
for (var e in calendar) {
|
for (var e in calendar) {
|
||||||
var event = JSON.parse(JSON.stringify(calendar[e])); // clone object
|
var event = JSON.parse(JSON.stringify(calendar[e])); // clone object
|
||||||
if (event.endDate < now) {
|
if(event.endDate < now) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (this.config.hidePrivate) {
|
if(this.config.hidePrivate) {
|
||||||
if (event.class === "PRIVATE") {
|
if(event.class === "PRIVATE") {
|
||||||
// do not add the current event, skip it
|
// do not add the current event, skip it
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.config.hideOngoing) {
|
if(this.config.hideOngoing) {
|
||||||
if (event.startDate < now) {
|
if(event.startDate < now) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.listContainsEvent(events, event)) {
|
if(this.listContainsEvent(events,event)){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
event.url = c;
|
event.url = c;
|
||||||
event.today = event.startDate >= today && event.startDate < today + 24 * 60 * 60 * 1000;
|
event.today = event.startDate >= today && event.startDate < (today + 24 * 60 * 60 * 1000);
|
||||||
|
|
||||||
/* if sliceMultiDayEvents is set to true, multiday events (events exceeding at least one midnight) are sliced into days,
|
/* if sliceMultiDayEvents is set to true, multiday events (events exceeding at least one midnight) are sliced into days,
|
||||||
* otherwise, esp. in dateheaders mode it is not clear how long these events are.
|
* otherwise, esp. in dateheaders mode it is not clear how long these events are.
|
||||||
*/
|
*/
|
||||||
var maxCount = Math.ceil((event.endDate - 1 - moment(event.startDate, "x").endOf("day").format("x")) / (1000 * 60 * 60 * 24)) + 1;
|
var maxCount = Math.ceil(((event.endDate - 1) - moment(event.startDate, "x").endOf("day").format("x"))/(1000*60*60*24)) + 1;
|
||||||
if (this.config.sliceMultiDayEvents && maxCount > 1) {
|
if (this.config.sliceMultiDayEvents && maxCount > 1) {
|
||||||
var splitEvents = [];
|
var splitEvents = [];
|
||||||
var midnight = moment(event.startDate, "x").clone().startOf("day").add(1, "day").format("x");
|
var midnight = moment(event.startDate, "x").clone().startOf("day").add(1, "day").format("x");
|
||||||
var count = 1;
|
var count = 1;
|
||||||
while (event.endDate > midnight) {
|
while (event.endDate > midnight) {
|
||||||
var thisEvent = JSON.parse(JSON.stringify(event)); // clone object
|
var thisEvent = JSON.parse(JSON.stringify(event)); // clone object
|
||||||
thisEvent.today = thisEvent.startDate >= today && thisEvent.startDate < today + 24 * 60 * 60 * 1000;
|
thisEvent.today = thisEvent.startDate >= today && thisEvent.startDate < (today + 24 * 60 * 60 * 1000);
|
||||||
thisEvent.endDate = midnight;
|
thisEvent.endDate = midnight;
|
||||||
thisEvent.title += " (" + count + "/" + maxCount + ")";
|
thisEvent.title += " (" + count + "/" + maxCount + ")";
|
||||||
splitEvents.push(thisEvent);
|
splitEvents.push(thisEvent);
|
||||||
@ -499,11 +512,11 @@ Module.register("calendar", {
|
|||||||
midnight = moment(midnight, "x").add(1, "day").format("x"); // next day
|
midnight = moment(midnight, "x").add(1, "day").format("x"); // next day
|
||||||
}
|
}
|
||||||
// Last day
|
// Last day
|
||||||
event.title += " (" + count + "/" + maxCount + ")";
|
event.title += " ("+count+"/"+maxCount+")";
|
||||||
splitEvents.push(event);
|
splitEvents.push(event);
|
||||||
|
|
||||||
for (event of splitEvents) {
|
for (event of splitEvents) {
|
||||||
if (event.endDate > now && event.endDate <= future) {
|
if ((event.endDate > now) && (event.endDate <= future)) {
|
||||||
events.push(event);
|
events.push(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -519,9 +532,9 @@ Module.register("calendar", {
|
|||||||
return events.slice(0, this.config.maximumEntries);
|
return events.slice(0, this.config.maximumEntries);
|
||||||
},
|
},
|
||||||
|
|
||||||
listContainsEvent: function (eventList, event) {
|
listContainsEvent: function(eventList, event){
|
||||||
for (var evt of eventList) {
|
for(var evt of eventList){
|
||||||
if (evt.title === event.title && parseInt(evt.startDate) === parseInt(event.startDate)) {
|
if(evt.title === event.title && parseInt(evt.startDate) === parseInt(event.startDate)){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -544,7 +557,8 @@ Module.register("calendar", {
|
|||||||
titleClass: calendarConfig.titleClass,
|
titleClass: calendarConfig.titleClass,
|
||||||
timeClass: calendarConfig.timeClass,
|
timeClass: calendarConfig.timeClass,
|
||||||
auth: auth,
|
auth: auth,
|
||||||
broadcastPastEvents: calendarConfig.broadcastPastEvents || this.config.broadcastPastEvents
|
broadcastPastEvents: calendarConfig.broadcastPastEvents || this.config.broadcastPastEvents,
|
||||||
|
id: this.identifier,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -671,9 +685,8 @@ Module.register("calendar", {
|
|||||||
|
|
||||||
for (var i = 0; i < words.length; i++) {
|
for (var i = 0; i < words.length; i++) {
|
||||||
var word = words[i];
|
var word = words[i];
|
||||||
if (currentLine.length + word.length < (typeof maxLength === "number" ? maxLength : 25) - 1) {
|
if (currentLine.length + word.length < (typeof maxLength === "number" ? maxLength : 25) - 1) { // max - 1 to account for a space
|
||||||
// max - 1 to account for a space
|
currentLine += (word + " ");
|
||||||
currentLine += word + " ";
|
|
||||||
} else {
|
} else {
|
||||||
line++;
|
line++;
|
||||||
if (line > maxTitleLines - 1) {
|
if (line > maxTitleLines - 1) {
|
||||||
@ -684,9 +697,9 @@ Module.register("calendar", {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (currentLine.length > 0) {
|
if (currentLine.length > 0) {
|
||||||
temp += currentLine + "<br>" + word + " ";
|
temp += (currentLine + "<br>" + word + " ");
|
||||||
} else {
|
} else {
|
||||||
temp += word + "<br>";
|
temp += (word + "<br>");
|
||||||
}
|
}
|
||||||
currentLine = "";
|
currentLine = "";
|
||||||
}
|
}
|
||||||
@ -754,10 +767,11 @@ Module.register("calendar", {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
eventList.sort(function (a, b) {
|
eventList.sort(function(a,b) {
|
||||||
return a.startDate - b.startDate;
|
return a.startDate - b.startDate;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.sendNotification("CALENDAR_EVENTS", eventList);
|
this.sendNotification("CALENDAR_EVENTS", eventList);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user