Merge remote-tracking branch 'upstream/develop' into develop

This commit is contained in:
Christoph Hagedorn
2019-06-15 11:33:44 +02:00
93 changed files with 4887 additions and 3203 deletions

View File

@@ -48,7 +48,6 @@ var App = function() {
*
* argument callback function - The callback function.
*/
var loadConfig = function(callback) {
console.log("Loading config ...");
var defaults = require(__dirname + "/defaults.js");
@@ -67,7 +66,7 @@ var App = function() {
var config = Object.assign(defaults, c);
callback(config);
} catch (e) {
if (e.code == "ENOENT") {
if (e.code === "ENOENT") {
console.error(Utils.colors.error("WARNING! Could not find config file. Please create one. Starting with default configuration."));
} else if (e instanceof ReferenceError || e instanceof SyntaxError) {
console.error(Utils.colors.error("WARNING! Could not validate config file. Starting with default configuration. Please correct syntax errors at or above this line: " + e.stack));
@@ -96,7 +95,7 @@ var App = function() {
". Check README and CHANGELOG for more up-to-date ways of getting the same functionality.")
);
}
}
};
/* loadModule(module)
* Loads a specific module.
@@ -173,7 +172,7 @@ var App = function() {
};
/* cmpVersions(a,b)
* Compare two symantic version numbers and return the difference.
* Compare two semantic version numbers and return the difference.
*
* argument a string - Version number a.
* argument a string - Version number b.
@@ -197,7 +196,7 @@ var App = function() {
/* start(callback)
* This methods starts the core app.
* It loads the config, then it loads all modules.
* When it"s done it executs the callback with the config as argument.
* When it's done it executes the callback with the config as argument.
*
* argument callback function - The callback function.
*/
@@ -231,7 +230,6 @@ var App = function() {
if (typeof callback === "function") {
callback(config);
}
});
});
});

View File

@@ -21,7 +21,7 @@
var prototype = new this();
initializing = false;
// Make a copy of all prototype properies, to prevent reference issues.
// Make a copy of all prototype properties, to prevent reference issues.
for (var name in prototype) {
prototype[name] = cloneObject(prototype[name]);
}
@@ -29,8 +29,8 @@
// Copy the properties over onto the new prototype
for (var name in prop) {
// Check if we're overwriting an existing function
prototype[name] = typeof prop[name] == "function" &&
typeof _super[name] == "function" && fnTest.test(prop[name]) ? (function (name, fn) {
prototype[name] = typeof prop[name] === "function" &&
typeof _super[name] === "function" && fnTest.test(prop[name]) ? (function (name, fn) {
return function () {
var tmp = this._super;
@@ -43,7 +43,6 @@
var ret = fn.apply(this, arguments);
this._super = tmp;
return ret;
};
})(name, prop[name]) : prop[name];

View File

@@ -8,7 +8,7 @@
var Loader = (function() {
/* Create helper valiables */
/* Create helper variables */
var loadedModuleFiles = [];
var loadedFiles = [];
@@ -55,7 +55,7 @@ var Loader = (function() {
module.start();
}
// Notifiy core of loded modules.
// Notify core of loaded modules.
MM.modulesStarted(moduleObjects);
};
@@ -104,7 +104,6 @@ var Loader = (function() {
config: moduleData.config,
classes: (typeof moduleData.classes !== "undefined") ? moduleData.classes + " " + module : module
});
}
return moduleFiles;
@@ -138,7 +137,6 @@ var Loader = (function() {
afterLoad();
});
}
};
/* bootstrapModule(module, mObj)
@@ -164,7 +162,6 @@ var Loader = (function() {
});
});
});
};
/* loadFile(fileName)
@@ -210,7 +207,6 @@ var Loader = (function() {
document.getElementsByTagName("head")[0].appendChild(stylesheet);
break;
}
};
/* Public Methods */
@@ -261,5 +257,4 @@ var Loader = (function() {
loadFile(module.file(fileName), callback);
}
};
})();

View File

@@ -292,7 +292,7 @@ var MM = (function() {
var moduleWrapper = document.getElementById(module.identifier);
if (moduleWrapper !== null) {
moduleWrapper.style.transition = "opacity " + speed / 1000 + "s";
// Restore the postition. See hideModule() for more info.
// Restore the position. See hideModule() for more info.
moduleWrapper.style.position = "static";
updateWrapperStates();
@@ -312,7 +312,7 @@ var MM = (function() {
/* updateWrapperStates()
* Checks for all positions if it has visible content.
* If not, if will hide the position to prevent unwanted margins.
* This method schould be called by the show and hide methods.
* This method should be called by the show and hide methods.
*
* Example:
* If the top_bar only contains the update notification. And no update is available,
@@ -320,7 +320,6 @@ var MM = (function() {
* an ugly top margin. By using this function, the top bar will be hidden if the
* update notification is not visible.
*/
var updateWrapperStates = function() {
var positions = ["top_bar", "top_left", "top_center", "top_right", "upper_third", "middle_center", "lower_third", "bottom_left", "bottom_center", "bottom_right", "bottom_bar", "fullscreen_above", "fullscreen_below"];
@@ -330,7 +329,7 @@ var MM = (function() {
var showWrapper = false;
Array.prototype.forEach.call(moduleWrappers, function(moduleWrapper) {
if (moduleWrapper.style.position == "" || moduleWrapper.style.position == "static") {
if (moduleWrapper.style.position === "" || moduleWrapper.style.position === "static") {
showWrapper = true;
}
});
@@ -479,7 +478,7 @@ var MM = (function() {
/* sendNotification(notification, payload, sender)
* Send a notification to all modules.
*
* argument notification string - The identifier of the noitication.
* argument notification string - The identifier of the notification.
* argument payload mixed - The payload of the notification.
* argument sender Module - The module that sent the notification.
*/
@@ -559,7 +558,7 @@ var MM = (function() {
})();
// Add polyfill for Object.assign.
if (typeof Object.assign != "function") {
if (typeof Object.assign !== "function") {
(function() {
Object.assign = function(target) {
"use strict";

View File

@@ -76,7 +76,7 @@ var Module = Class.extend({
/* getDom()
* This method generates the dom which needs to be displayed. This method is called by the Magic Mirror core.
* This method can to be subclassed if the module wants to display info on the mirror.
* Alternatively, the getTemplete method could be subclassed.
* Alternatively, the getTemplate method could be subclassed.
*
* return DomObject | Promise - The dom or a promise with the dom to display.
*/
@@ -92,7 +92,7 @@ var Module = Class.extend({
// the template is a filename
self.nunjucksEnvironment().render(template, templateData, function (err, res) {
if (err) {
Log.error(err)
Log.error(err);
}
div.innerHTML = res;
@@ -121,7 +121,7 @@ var Module = Class.extend({
/* getTemplate()
* This method returns the template for the module which is used by the default getDom implementation.
* This method needs to be subclassed if the module wants to use a tempate.
* This method needs to be subclassed if the module wants to use a template.
* It can either return a template sting, or a template filename.
* If the string ends with '.html' it's considered a file from within the module's folder.
*
@@ -138,7 +138,7 @@ var Module = Class.extend({
* return Object
*/
getTemplateData: function () {
return {}
return {};
},
/* notificationReceived(notification, payload, sender)
@@ -164,7 +164,7 @@ var Module = Class.extend({
* @returns Nunjucks Environment
*/
nunjucksEnvironment: function() {
if (this._nunjucksEnvironment != null) {
if (this._nunjucksEnvironment !== null) {
return this._nunjucksEnvironment;
}
@@ -175,7 +175,7 @@ var Module = Class.extend({
lstripBlocks: true
});
this._nunjucksEnvironment.addFilter("translate", function(str) {
return self.translate(str)
return self.translate(str);
});
return this._nunjucksEnvironment;
@@ -233,7 +233,7 @@ var Module = Class.extend({
},
/* socket()
* Returns a socket object. If it doesn"t exist, it"s created.
* Returns a socket object. If it doesn't exist, it"s created.
* It also registers the notification callback.
*/
socket: function () {
@@ -438,11 +438,10 @@ Module.create = function (name) {
var ModuleClass = Module.extend(clonedDefinition);
return new ModuleClass();
};
/* cmpVersions(a,b)
* Compare two symantic version numbers and return the difference.
* Compare two semantic version numbers and return the difference.
*
* argument a string - Version number a.
* argument a string - Version number b.

View File

@@ -26,8 +26,8 @@ var Server = function(config, callback) {
server.listen(port, config.address ? config.address : null);
if (config.ipWhitelist instanceof Array && config.ipWhitelist.length == 0) {
console.info(Utils.colors.warn("You're using a full whitelist configuration to allow for all IPs"))
if (config.ipWhitelist instanceof Array && config.ipWhitelist.length === 0) {
console.info(Utils.colors.warn("You're using a full whitelist configuration to allow for all IPs"));
}
app.use(function(req, res, next) {

View File

@@ -18,7 +18,7 @@ var Translator = (function() {
xhr.overrideMimeType("application/json");
xhr.open("GET", file, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == "200") {
if (xhr.readyState === 4 && xhr.status === 200) {
callback(JSON.parse(stripComments(xhr.responseText)));
}
};
@@ -159,6 +159,7 @@ var Translator = (function() {
return key;
},
/* load(module, file, isFallback, callback)
* Load a translation file (json) and remember the data.
*