Add module 'updatenotification'.

This commit is contained in:
Michael Teeuw 2016-10-15 13:08:46 +02:00
parent e721d2204b
commit a66a4f62bd
10 changed files with 167 additions and 3 deletions

View File

@ -20,6 +20,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Calendar module now broadcasts the event list to all other modules using the notification system. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/calendar) for more information. - Calendar module now broadcasts the event list to all other modules using the notification system. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/calendar) for more information.
- Possibility to use the the calendar feed as the source for the weather (currentweather & weatherforecast) location data. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/weatherforecast) for more information. - Possibility to use the the calendar feed as the source for the weather (currentweather & weatherforecast) location data. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/weatherforecast) for more information.
- Added option to show rain amount in the weatherforecast default module - Added option to show rain amount in the weatherforecast default module
- Add module `updatenotification` to get an update whenever a new version is availabe. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/updatenotification) for more information.
### Updated ### Updated
- Modified translations for Frysk. - Modified translations for Frysk.

View File

@ -16,6 +16,10 @@ var config = {
{ {
module: 'alert', module: 'alert',
}, },
{
module: "updatenotification",
position: "top_center"
},
{ {
module: 'clock', module: 'clock',
position: 'top_left' position: 'top_left'

View File

@ -17,6 +17,10 @@ var defaults = {
units: "metric", units: "metric",
modules: [ modules: [
{
module: "updatenotification",
position: "top_center"
},
{ {
module: "helloworld", module: "helloworld",
position: "upper_third", position: "upper_third",

View File

@ -15,7 +15,8 @@ var defaultModules = [
"currentweather", "currentweather",
"helloworld", "helloworld",
"newsfeed", "newsfeed",
"weatherforecast" "weatherforecast",
"updatenotification"
]; ];
/*************** DO NOT EDIT THE LINE BELOW ***************/ /*************** DO NOT EDIT THE LINE BELOW ***************/

View File

@ -0,0 +1,42 @@
# Module: Update Notification
The `updatenotification` module is one of the default modules of the MagicMirror.
This will display a message whenever a new version of the MagicMirror application is available.
## Using the module
To use this module, add it to the modules array in the `config/config.js` file:
````javascript
modules: [
{
module: 'updatenotification',
position: 'top_center', // This can be any of the regions.
config: {
// The config property is optional.
// See 'Configuration options' for more information.
}
}
]
````
## Configuration options
The following properties can be configured:
<table width="100%">
<!-- why, markdown... -->
<thead>
<tr>
<th>Option</th>
<th width="100%">Description</th>
</tr>
<thead>
<tbody>
<tr>
<td><code>updateInterval</code></td>
<td>How often do you want to check for a new version? This value represents the interval in milliseconds.<br>
<br><b>Possible values:</b> Any value above <code>60000</code> (1 minute);
<br><b>Default value:</b> <code>600000</code> (10 minutes);
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,45 @@
var simpleGit = require("simple-git")(__dirname + "/../..");
var NodeHelper = require("node_helper");
module.exports = NodeHelper.create({
config: {},
updateTimer: null,
start: function () {
},
socketNotificationReceived: function (notification, payload) {
if (notification === "CONFIG") {
this.config = payload;
this.preformFetch();
}
},
preformFetch() {
var self = this;
simpleGit.fetch().status(function(err, data) {
if (!err) {
self.sendSocketNotification("STATUS", data);
}
});
this.scheduleNextFetch(this.config.updateInterval);
},
scheduleNextFetch: function(delay) {
if (delay < 60 * 1000) {
delay = 60 * 1000
}
console.log(delay);
var self = this;
clearTimeout(this.updateTimer);
this.updateTimer = setTimeout(function() {
self.preformFetch();
}, delay);
}
});

View File

@ -0,0 +1,58 @@
Module.register("updatenotification", {
defaults: {
updateInterval: 10 * 60 * 1000, // every 10 minutes
},
status: false,
start: function () {
Log.log("Start updatenotification");
var self = this;
},
notificationReceived: function(notification, payload, sender) {
if (notification === "DOM_OBJECTS_CREATED") {
this.sendSocketNotification("CONFIG", this.config);
}
},
socketNotificationReceived: function (notification, payload) {
if (notification === "STATUS") {
this.status = payload;
this.updateDom(1000);
}
},
// Override dom generator.
getDom: function () {
var wrapper = document.createElement("div");
if (this.status && this.status.behind > 0) {
var message = document.createElement("div");
message.className = "small bright";
var icon = document.createElement("i");
icon.className = "fa fa-exclamation-circle";
icon.innerHTML = "&nbsp;";
message.appendChild(icon);
var text = document.createElement("span");
text.innerHTML = this.translate("UPDATE_NOTIFICATION");
message.appendChild(text);
wrapper.appendChild(message);
var subtext = document.createElement("div");
subtext.innerHTML = this.translate("UPDATE_INFO")
.replace("COMMIT_COUNT", this.status.behind + " " + ((this.status.behind == 1)? 'commit' : 'commits'))
.replace("BRANCH_NAME", this.status.current);
subtext.className = "xsmall dimmed";
wrapper.appendChild(subtext);
}
return wrapper;
}
});

View File

@ -45,6 +45,7 @@
"moment": "latest", "moment": "latest",
"request": "^2.74.0", "request": "^2.74.0",
"rrule": "latest", "rrule": "latest",
"simple-git": "^1.54.0",
"snyk": "^1.14.1", "snyk": "^1.14.1",
"socket.io": "^1.4.6", "socket.io": "^1.4.6",
"valid-url": "latest", "valid-url": "latest",

View File

@ -24,5 +24,9 @@
"W": "W", "W": "W",
"WNW": "WNW", "WNW": "WNW",
"NW": "NW", "NW": "NW",
"NNW": "NNW" "NNW": "NNW",
/* UPDATE INFO */
"UPDATE_NOTIFICATION": "MagicMirror² update available.",
"UPDATE_INFO": "The current installation is COMMIT_COUNT behind on the BRANCH_NAME branch."
} }

View File

@ -25,5 +25,9 @@
"W": "W", "W": "W",
"WNW": "WNW", "WNW": "WNW",
"NW": "NW", "NW": "NW",
"NNW": "NNW" "NNW": "NNW",
/* UPDATE INFO */
"UPDATE_NOTIFICATION": "MagicMirror² update beschikbaar.",
"UPDATE_INFO": "De huidige installatie loopt COMMIT_COUNT achter op de BRANCH_NAME branch."
} }