diff --git a/js/electron.js b/js/electron.js old mode 100755 new mode 100644 diff --git a/modules/default/alert/classie.js b/modules/default/alert/classie.js old mode 100755 new mode 100644 diff --git a/modules/default/alert/modernizr.custom.js b/modules/default/alert/modernizr.custom.js old mode 100755 new mode 100644 diff --git a/modules/default/alert/ns-default.css b/modules/default/alert/ns-default.css old mode 100755 new mode 100644 diff --git a/modules/default/calendar/README.md b/modules/default/calendar/README.md index 00378263..05d12de8 100644 --- a/modules/default/calendar/README.md +++ b/modules/default/calendar/README.md @@ -115,11 +115,25 @@ 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 - + + + timeFormat + Display event times as absolute dates, or relative time
+
Possible values: absolute or relative +
Default value: relative + + + + 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: 0 (disabled) + + diff --git a/modules/default/calendar/calendar.js b/modules/default/calendar/calendar.js index 2d494499..f5c2d3f6 100644 --- a/modules/default/calendar/calendar.js +++ b/modules/default/calendar/calendar.js @@ -14,13 +14,15 @@ Module.register("calendar",{ maximumEntries: 10, // Total Maximum Entries maximumNumberOfDays: 365, displaySymbol: true, - defaultSymbol: "calendar", // Fontawsome Symbol see http://fontawesome.io/cheatsheet/ + defaultSymbol: "calendar", // Fontawesome Symbol see http://fontawesome.io/cheatsheet/ displayRepeatingCountTitle: false, defaultRepeatingCountTitle: '', maxTitleLength: 25, fetchInterval: 5 * 60 * 1000, // Update every 5 minutes. animationSpeed: 2000, fade: true, + urgency: 7, + timeFormat: "relative", fadePoint: 0.25, // Start on 1/4th of the list. calendars: [ { @@ -139,21 +141,64 @@ Module.register("calendar",{ var timeWrapper = document.createElement("td"); //console.log(event.today); var now = new Date(); + // Define second, minute, hour, and day variables + var one_second = 1000; // 1,000 milliseconds + var one_minute = one_second * 60; + var one_hour = one_minute * 60; + var one_day = one_hour * 24; if (event.fullDayEvent) { if (event.today) { timeWrapper.innerHTML = this.translate("TODAY"); - } else if (event.startDate - now < 24 * 60 * 60 * 1000 && event.startDate - now > 0) { + } else if (event.startDate - now < one_day && event.startDate - now > 0) { timeWrapper.innerHTML = this.translate("TOMORROW"); } else { - timeWrapper.innerHTML = moment(event.startDate,"x").fromNow(); + /* Check to see if the user displays absolute or relative dates with their events + * Also check to see if an event is happening within an 'urgency' time frameElement + * For example, if the user set an .urgency of 7 days, those events that fall within that + * time frame will be displayed with 'in xxx' time format or moment.fromNow() + * + * 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.urgency > 1) && (event.startDate - now < (this.config.urgency * one_day))) { + // This event falls within the config.urgency period that the user has set + timeWrapper.innerHTML = moment(event.startDate, "x").fromNow(); + } else { + timeWrapper.innerHTML = moment(event.startDate, "x").format("MMM Do"); + } + } else { + timeWrapper.innerHTML = moment(event.startDate, "x").fromNow(); + } } } else { if (event.startDate >= 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(); + if (event.startDate - now < 2 * one_day) { + // This event is within the next 48 hours (2 days) + if (event.startDate - now < 6 * one_hour) { + // If event is within 6 hour, display 'in xxx' time format or moment.fromNow() + timeWrapper.innerHTML = moment(event.startDate, "x").fromNow(); + } else { + // Otherwise just say 'Today/Tomorrow at such-n-such time' + timeWrapper.innerHTML = moment(event.startDate, "x").calendar(); + } } else { - timeWrapper.innerHTML = moment(event.startDate,"x").calendar(); + /* Check to see if the user displays absolute or relative dates with their events + * Also check to see if an event is happening within an 'urgency' time frameElement + * For example, if the user set an .urgency of 7 days, those events that fall within that + * time frame will be displayed with 'in xxx' time format or moment.fromNow() + * + * 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.urgency > 1) && (event.startDate - now < (this.config.urgency * one_day))) { + // This event falls within the config.urgency period that the user has set + timeWrapper.innerHTML = moment(event.startDate, "x").fromNow(); + } else { + timeWrapper.innerHTML = moment(event.startDate, "x").format("MMM Do"); + } + } else { + timeWrapper.innerHTML = moment(event.startDate, "x").fromNow(); + } } } else { timeWrapper.innerHTML = this.translate("RUNNING") + ' ' + moment(event.endDate,"x").fromNow(true); @@ -311,3 +356,4 @@ Module.register("calendar",{ return title; } }); + diff --git a/modules/default/calendar/vendor/ical.js/ical.js b/modules/default/calendar/vendor/ical.js/ical.js old mode 100755 new mode 100644 diff --git a/modules/default/calendar/vendor/ical.js/test/test.js b/modules/default/calendar/vendor/ical.js/test/test.js old mode 100755 new mode 100644 diff --git a/modules/default/calendar/vendor/ical.js/test/test7.ics b/modules/default/calendar/vendor/ical.js/test/test7.ics old mode 100755 new mode 100644 diff --git a/vendor/weather-icons/weather-icons.css b/vendor/weather-icons/weather-icons.css old mode 100755 new mode 100644 diff --git a/vendor/weather-icons/weathericons-regular-webfont.eot b/vendor/weather-icons/weathericons-regular-webfont.eot old mode 100755 new mode 100644 diff --git a/vendor/weather-icons/weathericons-regular-webfont.svg b/vendor/weather-icons/weathericons-regular-webfont.svg old mode 100755 new mode 100644 diff --git a/vendor/weather-icons/weathericons-regular-webfont.ttf b/vendor/weather-icons/weathericons-regular-webfont.ttf old mode 100755 new mode 100644 diff --git a/vendor/weather-icons/weathericons-regular-webfont.woff b/vendor/weather-icons/weathericons-regular-webfont.woff old mode 100755 new mode 100644