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