diff --git a/.gitignore b/.gitignore index fbe259c4..708870ec 100644 --- a/.gitignore +++ b/.gitignore @@ -3,11 +3,5 @@ !/modules/node_helper !/modules/node_helper/** -/modules/* -!/modules/calendar -!/modules/clock -!/modules/compliments -!/modules/currentweather -!/modules/helloworld -!/modules/newsfeed -!/modules/weatherforecast +/modules/** +!/modules/default/** diff --git a/README.md b/README.md index e952ca02..3df3738a 100644 --- a/README.md +++ b/README.md @@ -24,13 +24,13 @@ Things that still have to be implemented or changed. ##Modules ### Default modules: -- [**Clock**](modules/clock) -- [**Calendar**](modules/calendar) -- [**Current Weather**](modules/currentweather) -- [**Weather Forecast**](modules/weatherforecast) -- [**News Feed**](modules/newsfeed) -- [**Compliments**](modules/compliments) -- [**Hello World**](modules/helloworld) +- [**Clock**](modules/default/clock) +- [**Calendar**](modules/default/calendar) +- [**Current Weather**](modules/default/currentweather) +- [**Weather Forecast**](modules/default/weatherforecast) +- [**News Feed**](modules/default/newsfeed) +- [**Compliments**](modules/default/compliments) +- [**Hello World**](modules/default/helloworld) ### 3rd Party Modules: diff --git a/index.html b/index.html index 70b73040..18eb65e9 100644 --- a/index.html +++ b/index.html @@ -31,6 +31,7 @@ + diff --git a/js/electron.js b/js/electron.js index fc05c10e..74192f6c 100755 --- a/js/electron.js +++ b/js/electron.js @@ -6,7 +6,7 @@ const fs = require('fs'); const Server = require(__dirname + '/server.js'); const spawn = require('child_process').spawn; const electron = require('electron'); - +const defaultModules = require(__dirname + '/../modules/default/defaultmodules.js'); // Config var config = {}; @@ -56,8 +56,18 @@ function loadConfig (callback) { } } -function loadModule(moduleName) { - var helperPath = __dirname + '/../modules/' + moduleName + '/node_helper.js'; +function loadModule(module) { + + var elements = module.split('/'); + var moduleName = elements[elements.length - 1]; + var moduleFolder = __dirname + '/../modules/' + module; + + if (defaultModules.indexOf(moduleName) !== -1) { + moduleFolder = __dirname + '/../modules/default/' + module; + } + + var helperPath = moduleFolder + '/node_helper.js'; + var loadModule = true; try { fs.accessSync(helperPath, fs.R_OK); diff --git a/js/loader.js b/js/loader.js index a35c013c..0c6f661c 100644 --- a/js/loader.js +++ b/js/loader.js @@ -79,12 +79,20 @@ var Loader = (function() { var moduleData = modules[m]; var module = moduleData.module; + var elements = module.split('/'); + var moduleName = elements[elements.length - 1]; + var moduleFolder = config.paths.modules + '/' + module; + + if (defaultModules.indexOf(moduleName) !== -1) { + moduleFolder = config.paths.modules + '/default/' + module; + } + moduleFiles.push({ index: m, identifier: 'module_' + m + '_' + module, - name: module, - path: config.paths.modules + '/' + module, - file: module + '.js', + name: moduleName, + path: moduleFolder + '/' , + file: moduleName + '.js', position: moduleData.position, header: moduleData.header, config: moduleData.config, diff --git a/modules/calendar/README.md b/modules/default/calendar/README.md similarity index 100% rename from modules/calendar/README.md rename to modules/default/calendar/README.md diff --git a/modules/calendar/calendar.css b/modules/default/calendar/calendar.css similarity index 100% rename from modules/calendar/calendar.css rename to modules/default/calendar/calendar.css diff --git a/modules/calendar/calendar.js b/modules/default/calendar/calendar.js similarity index 100% rename from modules/calendar/calendar.js rename to modules/default/calendar/calendar.js diff --git a/modules/calendar/node_helper.js b/modules/default/calendar/node_helper.js similarity index 100% rename from modules/calendar/node_helper.js rename to modules/default/calendar/node_helper.js diff --git a/modules/clock/README.md b/modules/default/clock/README.md similarity index 100% rename from modules/clock/README.md rename to modules/default/clock/README.md diff --git a/modules/clock/clock.js b/modules/default/clock/clock.js similarity index 100% rename from modules/clock/clock.js rename to modules/default/clock/clock.js diff --git a/modules/compliments/README.md b/modules/default/compliments/README.md similarity index 100% rename from modules/compliments/README.md rename to modules/default/compliments/README.md diff --git a/modules/compliments/compliments.js b/modules/default/compliments/compliments.js similarity index 100% rename from modules/compliments/compliments.js rename to modules/default/compliments/compliments.js diff --git a/modules/currentweather/README.md b/modules/default/currentweather/README.md similarity index 100% rename from modules/currentweather/README.md rename to modules/default/currentweather/README.md diff --git a/modules/currentweather/currentweather.css b/modules/default/currentweather/currentweather.css similarity index 100% rename from modules/currentweather/currentweather.css rename to modules/default/currentweather/currentweather.css diff --git a/modules/currentweather/currentweather.js b/modules/default/currentweather/currentweather.js similarity index 100% rename from modules/currentweather/currentweather.js rename to modules/default/currentweather/currentweather.js diff --git a/modules/default/defaultmodules.js b/modules/default/defaultmodules.js new file mode 100644 index 00000000..a6b81c88 --- /dev/null +++ b/modules/default/defaultmodules.js @@ -0,0 +1,22 @@ +/* Magic Mirror + * Default Modules List + * + * By Michael Teeuw http://michaelteeuw.nl + * MIT Licensed. + */ + +// Modules listed below can be loaded without the 'default/' prefix. Omitting the default folder name. + +var defaultModules = [ + 'calendar', + 'clock', + 'compliments', + 'currentweather', + 'helloworld', + 'newsfeed', + 'weatherforecast' +]; + + +/*************** DO NOT EDIT THE LINE BELOW ***************/ +if (typeof module !== 'undefined') {module.exports = defaultModules;} \ No newline at end of file diff --git a/modules/helloworld/README.md b/modules/default/helloworld/README.md similarity index 100% rename from modules/helloworld/README.md rename to modules/default/helloworld/README.md diff --git a/modules/helloworld/helloworld.js b/modules/default/helloworld/helloworld.js similarity index 100% rename from modules/helloworld/helloworld.js rename to modules/default/helloworld/helloworld.js diff --git a/modules/newsfeed/README.md b/modules/default/newsfeed/README.md similarity index 100% rename from modules/newsfeed/README.md rename to modules/default/newsfeed/README.md diff --git a/modules/newsfeed/fetcher.js b/modules/default/newsfeed/fetcher.js similarity index 100% rename from modules/newsfeed/fetcher.js rename to modules/default/newsfeed/fetcher.js diff --git a/modules/newsfeed/newsfeed.js b/modules/default/newsfeed/newsfeed.js similarity index 100% rename from modules/newsfeed/newsfeed.js rename to modules/default/newsfeed/newsfeed.js diff --git a/modules/newsfeed/newsfetcher.js b/modules/default/newsfeed/newsfetcher.js similarity index 100% rename from modules/newsfeed/newsfetcher.js rename to modules/default/newsfeed/newsfetcher.js diff --git a/modules/newsfeed/node_helper.js b/modules/default/newsfeed/node_helper.js similarity index 100% rename from modules/newsfeed/node_helper.js rename to modules/default/newsfeed/node_helper.js diff --git a/modules/weatherforecast/README.md b/modules/default/weatherforecast/README.md similarity index 100% rename from modules/weatherforecast/README.md rename to modules/default/weatherforecast/README.md diff --git a/modules/weatherforecast/weatherforecast.css b/modules/default/weatherforecast/weatherforecast.css similarity index 100% rename from modules/weatherforecast/weatherforecast.css rename to modules/default/weatherforecast/weatherforecast.css diff --git a/modules/weatherforecast/weatherforecast.js b/modules/default/weatherforecast/weatherforecast.js similarity index 100% rename from modules/weatherforecast/weatherforecast.js rename to modules/default/weatherforecast/weatherforecast.js