mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-30 13:09:34 +00:00
Add module 'updatenotification'.
This commit is contained in:
parent
e721d2204b
commit
a66a4f62bd
@ -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.
|
||||||
|
@ -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'
|
||||||
|
@ -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",
|
||||||
|
@ -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 ***************/
|
||||||
|
42
modules/default/updatenotification/README.md
Normal file
42
modules/default/updatenotification/README.md
Normal 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>
|
45
modules/default/updatenotification/node_helper.js
Normal file
45
modules/default/updatenotification/node_helper.js
Normal 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
58
modules/default/updatenotification/updatenotification.js
Normal file
58
modules/default/updatenotification/updatenotification.js
Normal 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 = " ";
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
});
|
@ -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",
|
||||||
|
@ -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."
|
||||||
}
|
}
|
||||||
|
@ -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."
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user