mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 11:50:00 +00:00
Prevent getModules() selectors from returning duplicate entries.
This commit is contained in:
parent
1f558d46a4
commit
c81db752f6
@ -2,6 +2,11 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## Unpublished
|
||||
|
||||
### Fixed
|
||||
- Prevent `getModules()` selectors from returning duplicate entries.
|
||||
|
||||
## [2.0.3] - 2016-07-12
|
||||
### Added
|
||||
- Add max newsitems parameter to the newsfeed module.
|
||||
|
45
js/main.js
45
js/main.js
@ -1,4 +1,5 @@
|
||||
/* global Log, Loader, Module, config, defaults */
|
||||
/* jshint -W020 */
|
||||
|
||||
/* Magic Mirror
|
||||
* Main System
|
||||
@ -225,25 +226,24 @@ var MM = (function() {
|
||||
* return array - Filtered collection of modules.
|
||||
*/
|
||||
var withClass = function(className) {
|
||||
var newModules = [];
|
||||
|
||||
var searchClasses = className;
|
||||
if (typeof className === "string") {
|
||||
searchClasses = className.split(" ");
|
||||
}
|
||||
|
||||
for (var m in modules) {
|
||||
var module = modules[m];
|
||||
var newModules = modules.filter(function(module) {
|
||||
var classes = module.data.classes.toLowerCase().split(" ");
|
||||
|
||||
for (var c in searchClasses) {
|
||||
var searchClass = searchClasses[c];
|
||||
if (classes.indexOf(searchClass.toLowerCase()) !== -1) {
|
||||
newModules.push(module);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
setSelectionMethodsForModules(newModules);
|
||||
return newModules;
|
||||
};
|
||||
@ -256,29 +256,24 @@ var MM = (function() {
|
||||
* return array - Filtered collection of modules.
|
||||
*/
|
||||
var exceptWithClass = function(className) {
|
||||
var newModules = [];
|
||||
|
||||
var searchClasses = className;
|
||||
if (typeof className === "string") {
|
||||
searchClasses = className.split(" ");
|
||||
}
|
||||
|
||||
for (var m in modules) {
|
||||
var module = modules[m];
|
||||
var newModules = modules.filter(function(module) {
|
||||
var classes = module.data.classes.toLowerCase().split(" ");
|
||||
var foundClass = false;
|
||||
|
||||
for (var c in searchClasses) {
|
||||
var searchClass = searchClasses[c];
|
||||
if (classes.indexOf(searchClass.toLowerCase()) !== -1) {
|
||||
foundClass = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!foundClass) {
|
||||
newModules.push(module);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
setSelectionMethodsForModules(newModules);
|
||||
return newModules;
|
||||
};
|
||||
@ -291,14 +286,9 @@ var MM = (function() {
|
||||
* return array - Filtered collection of modules.
|
||||
*/
|
||||
var exceptModule = function(module) {
|
||||
var newModules = [];
|
||||
|
||||
for (var m in modules) {
|
||||
var mod = modules[m];
|
||||
if (mod.identifier !== module.identifier) {
|
||||
newModules.push(mod);
|
||||
}
|
||||
}
|
||||
var newModules = modules.filter(function(mod) {
|
||||
return mod.identifier !== module.identifier;
|
||||
});
|
||||
|
||||
setSelectionMethodsForModules(newModules);
|
||||
return newModules;
|
||||
@ -310,10 +300,9 @@ var MM = (function() {
|
||||
* argument callback function - The function to execute with the module as an argument.
|
||||
*/
|
||||
var enumerate = function(callback) {
|
||||
for (var m in modules) {
|
||||
var module = modules[m];
|
||||
modules.map(function(module) {
|
||||
callback(module);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
if (typeof modules.withClass === "undefined") { Object.defineProperty(modules, "withClass", {value: withClass, enumerable: false}); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user