Compare commits

..

1908 Commits

Author SHA1 Message Date
Michael Teeuw
3dbe8bfbbf Merge pull request #2143 from MichMich/develop
Release 2.13.0
2020-10-01 12:13:38 +02:00
Michael Teeuw
20d82bab78 Prepare 2.13.0 2020-10-01 11:55:18 +02:00
Michael Teeuw
60f6123b64 Merge pull request #2139 from sdetweil/develop
restore ical for 3rd party modules
2020-09-29 17:45:49 +02:00
Sam Detweiler
74887a58f6 remove regression on event duration 2020-09-29 10:33:51 -05:00
Sam Detweiler
76821d16fc restore ical for 3rd party modules 2020-09-24 10:13:25 -05:00
Michael Teeuw
233a6b5e90 Merge pull request #2137 from rejas/md
Update Changelog and Licsense file
2020-09-22 16:16:22 +02:00
Michael Teeuw
a1d9337c81 Merge pull request #2136 from sdetweil/develop
fix package.json
2020-09-22 16:16:08 +02:00
rejas
e3fec6c3e4 Update Changelog and License 2020-09-22 15:47:16 +02:00
Sam Detweiler
5de88b4cc1 remove added lodash 2020-09-22 08:40:40 -05:00
Sam Detweiler
af5e6655e0 fix pull 2020-09-22 08:38:15 -05:00
Sam Detweiler
a8716799c9 fix dependency versioning error 2020-09-22 08:33:21 -05:00
Michael Teeuw
1672027091 Merge pull request #2135 from sdetweil/develop
update to node-ical, handle MS timezones and timezones in general in cal entries
2020-09-22 14:55:27 +02:00
sam detweiler
934ac886cb Merge branch 'develop' into develop 2020-09-22 07:49:19 -05:00
sam detweiler
1b47c4d16f add package-lock 2020-09-22 07:31:02 -05:00
sam detweiler
e8fd906aa1 move calendar to node-ical for ms timezones and timezones in general 2020-09-22 07:25:48 -05:00
Michael Teeuw
57b6ea1297 Merge pull request #2134 from bugsounet/patch-1
New ConfigMerge code purpose
2020-09-22 10:54:35 +02:00
bugsounet
102ff15a99 Checking formatting...
All matched files use Prettier code style!
2020-09-22 00:26:24 +02:00
Cédric
19148cfc84 Update loader.js 2020-09-22 00:04:05 +02:00
Cédric
97c2bab58a apply ConfigMerge() if configDeepMerge: true 2020-09-21 23:21:43 +02:00
Cédric
1f473228ce New purpose for configMerge() 2020-09-21 23:17:41 +02:00
Cédric
340a8e4176 (test react for in my repo) 2020-09-21 22:36:54 +02:00
Michael Teeuw
67201a52cc Merge pull request #2016 from Travelbacon/develop
Changed "Gevoelstemperatuur" to "Voelt als". This is shorter and save…
2020-09-21 12:48:09 +02:00
Michael Teeuw
30e164fe0a Fix merge conflict. 2020-09-21 12:21:08 +02:00
Michael Teeuw
cfcb20a468 Merge pull request #2133 from rejas/dependencies
Cleanup dependencies
2020-09-21 12:18:37 +02:00
Joris
24eac7ef41 For the mergne 2020-09-20 20:57:20 +02:00
rejas
01c19efc0c Update CHANGELOG 2020-09-19 12:30:17 +02:00
rejas
e4f2a8a23b Update dependencies 2020-09-19 12:25:11 +02:00
rejas
89b33d2c62 Move lodash to devDependencies sicne its used only in testing 2020-09-19 10:50:06 +02:00
rejas
3ced35a2f8 Dont generally use latest versions of dependencies 2020-09-19 10:49:59 +02:00
Michael Teeuw
fd4576b234 Merge pull request #2081 from bryanzzhu/bryanzzhu-weather
adds current, hourly, and daily forecasts to the Weather module (OpenWeatherMap One Call API)
2020-09-18 12:28:20 +02:00
Michael Teeuw
812ad829c9 Merge pull request #2125 from MichMich/dependabot/npm_and_yarn/node-fetch-2.6.1
Bump node-fetch from 2.6.0 to 2.6.1
2020-09-18 12:27:57 +02:00
Michael Teeuw
207a9ba723 Merge branch 'develop' into bryanzzhu-weather 2020-09-18 12:15:44 +02:00
Michael Teeuw
f9bf17d701 Merge pull request #2105 from rejas/tests
Cleanup clock tests
2020-09-18 12:12:29 +02:00
dependabot[bot]
43b96ccd1e Bump node-fetch from 2.6.0 to 2.6.1
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-10 22:35:52 +00:00
rejas
14e8cdd9b2 Update Changelog 2020-09-02 13:42:35 +02:00
rejas
259068b860 Remove unused dependency, update eslint 2020-09-02 13:42:35 +02:00
rejas
a1a4192835 Fix clock test, remove now unneeded dependency 2020-09-02 13:42:35 +02:00
rejas
45f09dcc8c Add test for analog clock face 2020-09-02 13:42:35 +02:00
Michael Teeuw
15c3f11f4a Merge pull request #2121 from sdetweil/develop
fix full day recurring events not showing
2020-09-02 09:04:08 +02:00
Michael Teeuw
1a21027850 Fix Prettier issues. 2020-09-02 09:03:46 +02:00
Michael Teeuw
8427a9fc68 Merge pull request #2103 from rejas/issue_1985
Fix "undefined" in weather modules header.
2020-09-02 08:59:53 +02:00
Sam Detweiler
f09b89f975 fix , prettier not run 2020-09-01 15:13:42 -05:00
sam detweiler
7bec84f767 fix formatting, prettier did not run 2020-09-01 21:00:14 +01:00
sam detweiler
8f4cbcf817 Merge branch 'develop' of https://github.com/sdetweil/MagicMirror into develop 2020-09-01 14:41:09 +01:00
sam detweiler
c3382274a2 remove old master branch code 2020-09-01 14:40:07 +01:00
sam detweiler
493055f861 Merge branch 'develop' into develop 2020-09-01 08:15:24 -05:00
sam detweiler
11fbbd49f3 add changelog 2020-09-01 14:10:25 +01:00
sam detweiler
8ce37d53cd fix recurring full date events 2020-09-01 14:04:35 +01:00
sam detweiler
baa4012872 Merge pull request #98 from MichMich/master
catch up
2020-08-31 19:15:08 -05:00
rejas
16c5eba2be Update Changelog 2020-08-13 21:51:18 +02:00
rejas
ec08cb32aa Set visibility of header more explicitly 2020-08-13 21:51:18 +02:00
rejas
86fb1b938b Check for undefined header data in weather modules 2020-08-13 21:51:18 +02:00
rejas
5aa7097a6e Add test for displaying the header 2020-08-13 21:51:18 +02:00
rejas
fd3f520e95 Fix typos 2020-08-13 21:51:18 +02:00
rejas
49ff92892f Warn user if he uses the sample value in the config for the apiid 2020-08-13 21:51:18 +02:00
Michael Teeuw
904f5a2656 Merge pull request #2112 from rejas/issue_2109
Fix config check after merge of prettier
2020-08-13 21:44:08 +02:00
Michael Teeuw
bb105dd832 Merge pull request #2101 from rejas/jsdoc
Cleanup jsdoc comments
2020-08-13 21:43:27 +02:00
Michael Teeuw
fd934c0514 Merge pull request #2100 from Bee-Mar/develop
Added --dry-run to fetch call within updatednotification module
2020-08-13 21:42:38 +02:00
rejas
66609428a2 Remove thrown Errors and add some color to the ouput 2020-08-08 22:16:27 +02:00
rejas
0056e0bc6d Update CHANGELOG 2020-08-07 09:58:55 +02:00
rejas
056b66a764 Dont use the prettier based config for verifying the syntax 2020-08-07 09:57:06 +02:00
rejas
3438a5a374 Cleanup newsfeed jsdoc 2020-08-03 11:36:29 +02:00
rejas
9f3806dabf Update eslint jsdoc plugin 2020-08-03 11:20:11 +02:00
rejas
1d4d5cc4e7 Cleanup calendar jsdoc 2020-08-03 11:19:54 +02:00
Bryan Zhu
3901543697 readded processing for numEntries option that I accidentally took out 2020-08-02 00:22:19 -04:00
Bryan Zhu
a4d73e2a67 amended code according to pull request reviews 2020-08-01 17:39:58 -04:00
Bryan Zhu
f6854f58ff ran prettier on weather module code 2020-08-01 14:03:48 -04:00
Bryan Zhu
ad7f7d2890 Merge branch 'bryanzzhu-weather' of https://github.com/bryanzzhu/MagicMirror into bryanzzhu-weather 2020-08-01 13:33:21 -04:00
Bryan Zhu
498db63cac Merge branch 'develop' of https://github.com/MichMich/MagicMirror into develop 2020-08-01 13:32:29 -04:00
rejas
05659820d0 Minor cleanups 2020-08-01 17:06:56 +02:00
rejas
02779ef725 Cleanup main jsdoc 2020-08-01 17:06:46 +02:00
rejas
935c9b6a42 Cleanup loader jsdoc 2020-08-01 16:38:42 +02:00
rejas
522f7644a3 Add typedef for Module, use it in other jsdocs 2020-08-01 16:31:42 +02:00
Bryan Zhu
b1a67d1fc5 integrated onecall usage into existing types 2020-08-01 02:59:08 -04:00
rejas
0674c0aff6 Updated changelog 2020-07-30 13:00:02 +02:00
rejas
c8664d5952 Cleanup weatherprovider jsdoc 2020-07-30 12:58:35 +02:00
rejas
8ce1e2c956 Cleanup calendar jsdoc 2020-07-30 12:54:39 +02:00
rejas
90cca28e01 Cleanup clock jsdoc 2020-07-30 09:36:01 +02:00
rejas
e489b7101c Cleanup notificationFx jsdoc 2020-07-30 09:33:19 +02:00
rejas
eee64c8064 Cleanup clientonly jsdoc 2020-07-29 22:13:19 +02:00
Brandon Marlowe
a0d4e8dafc updated changelog 2020-07-28 23:55:39 -04:00
Brandon Marlowe
e6b94df06d Merge branch 'mmpm-integration' of github.com:Bee-Mar/MagicMirror into develop 2020-07-28 23:53:03 -04:00
Brandon Marlowe
6f1c7d6253 added --dry-run option to prevent updatenotification module from consuming fetch result 2020-07-28 23:51:38 -04:00
rejas
2d5a19b676 Cleanup module jsdoc 2020-07-28 17:29:21 +02:00
rejas
d1e8dded68 Cleanup class jsdoc 2020-07-28 17:29:16 +02:00
rejas
9888f66c84 Cleanup check_config jsdoc 2020-07-28 17:29:10 +02:00
rejas
5ec51d0ccc Cleanup app jsdoc 2020-07-28 16:49:02 +02:00
rejas
79f9331073 Cleanup translator jsdoc 2020-07-27 21:37:08 +02:00
rejas
43bcf4ab98 Run eslint over files, see what gets fixed automatically and clean up 2020-07-27 14:25:43 +02:00
rejas
f4eae72c48 Install eslint jsdoc plugin 2020-07-27 13:10:07 +02:00
Michael Teeuw
9d14d3e5b7 Merge pull request #2095 from rejas/issue_2072_take_2
Fix clock face-006
2020-07-20 19:27:55 +02:00
rejas
26d3141489 Fix face-006 too 2020-07-20 19:13:12 +02:00
Michael Teeuw
5c44f51d6d Merge pull request #2079 from rejas/issue_2023
Added config option to calendar-icons for recurring- and fullday-events
2020-07-19 20:41:22 +02:00
rejas
50f3f32ba8 Add tests for custom icons 2020-07-19 11:54:03 +02:00
rejas
8fa858ca8c Cleanup test descriptions 2020-07-18 22:16:44 +02:00
rejas
8b1d1671f7 Add test for changing the calendar symbol 2020-07-18 21:10:36 +02:00
rejas
73aa35ea2c Pass maximumEntries for each calender to fetcher
Fixes failing test
2020-07-18 17:51:21 +02:00
rejas
a391445e5f Add test setup for custom calendar configuration 2020-07-18 13:58:05 +02:00
rejas
530c5d416a Remove now unused test data 2020-07-18 11:32:01 +02:00
rejas
319a13c0ef Remove orphaned ical entry 2020-07-17 18:20:48 +02:00
rejas
ec2fedd797 Make sure default symbol is first from right-to-left 2020-07-17 18:00:27 +02:00
rejas
7489d19784 Merge calendar symbols 2020-07-17 18:00:27 +02:00
rejas
3b5a0e8d66 Added config option to calendar-icons for recurring- and fullday-events 2020-07-17 18:00:27 +02:00
Michael Teeuw
29ed63286c Merge pull request #2089 from rejas/newsfeed
Cleaned up newsfeed module code
2020-07-17 16:28:44 +02:00
Michael Teeuw
108da4b6d4 Merge pull request #2084 from easyas314/wxGov
Wx gov
2020-07-17 16:26:20 +02:00
Michael Teeuw
a00a1c64d1 Merge pull request #2083 from sthuber90/backward-browser-compatability
Backward browser compatability
2020-07-17 16:25:35 +02:00
Michael Teeuw
275825cfe1 Merge pull request #2082 from rejas/istanbul
Add test coverage tool Istanbul
2020-07-17 16:25:00 +02:00
Michael Teeuw
cd2fce56a6 Merge branch 'develop' into istanbul 2020-07-17 16:23:59 +02:00
Michael Teeuw
cab850fb35 Merge pull request #2080 from larryare/develop
Add lithuanian translation
2020-07-17 16:21:19 +02:00
Michael Teeuw
045dc600b0 Merge branch 'develop' into develop 2020-07-17 16:21:12 +02:00
Michael Teeuw
1b199c1682 Merge pull request #2077 from oemel09/fix-maxNumberOfDays-2018
Fixes getting only full day forecasts
2020-07-17 16:18:57 +02:00
Michael Teeuw
936fa637ec Merge pull request #2078 from cjbrunner/cbrunner/weatherforecast-openweather-onecall-api-support
weatherforecast OpenWeather onecall api support
2020-07-17 16:18:17 +02:00
rejas
b9ccb7a892 Add new test to see if coverage improves
it does :-)

  calendar.js                       |    8.97 |     9.57 |   11.54 |     8.7 | 63-413,446-659,690-693,699,733-771

->

  calendar.js                       |    9.97 |    10.64 |   11.54 |     9.7 | 63-413,446-659,699,733-771
2020-07-15 13:15:03 +02:00
rejas
95b33be3cf Update vendor dependencies 2020-07-15 12:14:48 +02:00
rejas
cde27b89c2 Update CHANGELOG 2020-07-14 07:51:19 +02:00
rejas
476e52e004 Use let/const and arrow functions 2020-07-12 13:21:36 +02:00
rejas
8dc88fe64b Remove unused helper function and its unit test 2020-07-12 10:32:16 +02:00
rejas
d00da790af Move configuration change warning into general translation 2020-07-12 08:25:07 +02:00
rejas
c61fac75e4 Rename Newsfeed Fetcher for clarity 2020-07-12 08:10:43 +02:00
easyas314
e949af6fd5 revert package.json 2020-07-11 16:13:31 -04:00
easyas314
c1e38b917e update CHANGELOG 2020-07-11 15:06:24 -04:00
easyas314
1244121216 change weathergov.js for multi-URL api 2020-07-11 15:01:16 -04:00
easyas314
46543daa13 Merge branch 'wxGov' of github.com:easyas314/MagicMirror into wxGov 2020-07-11 14:56:35 -04:00
Brad Simmons
6277384bf9 Merge pull request #3 from MichMich/develop
Merge MM/Develop
2020-07-11 14:54:22 -04:00
Stephan Huber
17549fed9c Update CHANGELOG.md 2020-07-11 08:25:01 +02:00
Stephan Huber
377e42affc fix display style for older browsers 2020-07-10 23:12:17 +02:00
Stephan Huber
0ac5d56865 must be const for backward compatibility 2020-07-10 23:03:36 +02:00
rejas
b59ee6ad7e Update dependencies 2020-07-09 22:43:08 +02:00
rejas
2d7c5a827f Cleanup test expectation 2020-07-09 20:44:52 +02:00
Veeck
85c32ef843 Use const in test requires 2020-07-09 20:30:43 +02:00
rejas
dc089d7db9 Remove stripCommentsFromJson code and test
Since we dont allow comments in the json anymore anyway
2020-07-09 20:30:26 +02:00
rejas
d570f910f8 Added test coverage with istanbul 2020-07-09 20:29:38 +02:00
Bryan Zhu
8f2731911b added changelog entry 2020-07-08 23:12:01 -04:00
Bryan Zhu
9d22420027 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into bryanzzhu-weather 2020-07-08 23:06:29 -04:00
larryare
029da3791b Update CHANGELOG.md
Added lithuanian language entry.
2020-07-08 23:57:57 +03:00
Laurynas Kerezius
caa51b1029 Add lithuanian language 2020-07-08 20:52:24 +00:00
Chris Brunner
2973a03d40 Prettier... 2020-07-08 10:11:12 -07:00
Chris Brunner
679d464f4c Update chagelog 2020-07-08 09:53:50 -07:00
Chris Brunner
93c0787efd Add support for OpenWeather onecall API 2020-07-08 09:48:03 -07:00
oemel09
a1708a1469 Fixes getting only full day forecasts 2020-07-08 10:19:49 +02:00
Michael Teeuw
862bf78e63 Merge pull request #2071 from chamakura/develop
Fixing double conversion of time between UTC and local timezone
2020-07-05 22:06:59 +02:00
Michael Teeuw
8c01df50a2 Merge pull request #2073 from rejas/issue_2072
Fix incorrect namespace links in svg clockfaces
2020-07-05 12:42:42 +02:00
rejas
921932920d Fix incorrect namespace links in svg clockfaces
Fixes #2072
2020-07-05 11:58:37 +02:00
chamakura
d021c9b4ae Removing debug log statements 2020-07-04 20:23:09 -07:00
chamakura
309a18e9c0 Fixing double conversion of time between UTC and local timezone 2020-07-04 20:12:34 -07:00
Michael Teeuw
73322c96a6 Merge pull request #2070 from rejas/fix_log_level
Fix log level
2020-07-04 22:10:16 +02:00
rejas
121e7db330 Add CHANGELOG entry 2020-07-04 22:03:13 +02:00
rejas
9f5e1b59fb Set logLevel after loading config 2020-07-04 22:02:39 +02:00
Michael Teeuw
3282ed4fea Add TODO 2020-07-04 21:49:14 +02:00
Michael Teeuw
c7d9192f18 Merge pull request #2060 from bryanzzhu/bryanzzhu-weather-patch
fixed minor typo (apiKey vs. appid) in weather.js
2020-07-04 21:47:52 +02:00
Michael Teeuw
bd0f707aed Add changelog. 2020-07-04 21:40:31 +02:00
Michael Teeuw
8b30634ebe Merge branch 'develop' into pr/bryanzzhu/2060 2020-07-04 21:38:29 +02:00
Michael Teeuw
ca8acb14f1 Merge pull request #2057 from wolfen351/wolfen351-patch-1
Correct calendar display - account for current timezone
2020-07-04 21:34:32 +02:00
Michael Teeuw
26b8f8d0d5 Merge branch 'develop' into pr/bryanzzhu/2060 2020-07-04 21:33:50 +02:00
Michael Teeuw
a066153556 Add updated changelog. 2020-07-04 21:26:22 +02:00
Michael Teeuw
2ee7131c28 Merge branch 'develop' into pr/wolfen351/2057 2020-07-04 21:24:48 +02:00
Michael Teeuw
cb1f65732e Merge branch 'develop' into pr/wolfen351/2057 2020-07-04 21:15:14 +02:00
Michael Teeuw
37237d9c10 Merge pull request #2066 from oemel09/fix-maxNumberOfDays-2018
Adjusts maxNumberOfDays depending on the endpoint
2020-07-03 22:02:26 +02:00
Michael Teeuw
92cc41dec6 Fix linting issue. 2020-07-03 21:53:18 +02:00
oemel09
246dc663c4 Applies suggestions from prettier, floor instead of ceil 2020-07-02 22:22:04 +02:00
oemel09
4ed3235590 Adds fix to changelog 2020-07-02 20:56:48 +02:00
oemel09
0939e405b4 Adjusts maxNumberOfDays depending on the endpoint 2020-07-02 20:54:20 +02:00
Bryan Zhu
584c51ef56 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into bryanzzhu-weather 2020-07-01 14:49:05 -04:00
Michael Teeuw
26ed05ba3a Prepare 2.13.0-develop 2020-07-01 20:07:12 +02:00
Michael Teeuw
018cb91526 Merge pull request #2064 from MichMich/develop
Release 2.12.0
2020-07-01 20:04:36 +02:00
Michael Teeuw
e16db2233f Fix contributor list. 2020-07-01 19:52:38 +02:00
Michael Teeuw
5d90a08011 Prepare release 2.12.0 2020-07-01 19:47:09 +02:00
Michael Teeuw
2d3849a671 Merge pull request #2061 from ZoneMR/patch-1
Fix #2030 - Clock can be off by a minute
2020-07-01 19:38:11 +02:00
Michael Teeuw
e0dcdc2110 Merge pull request #2063 from lyubomirv/develop
Updated the BG translation
2020-07-01 19:31:08 +02:00
Michael Teeuw
22fcee2a16 Merge branch 'develop' into pr/ZoneMR/2061 2020-07-01 19:29:41 +02:00
Michael Teeuw
8c0141367b Fix EOF issue. 2020-07-01 19:25:00 +02:00
Bryan Zhu
5bb72cfed8 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into bryanzzhu-weather 2020-07-01 08:38:46 -04:00
Michael Teeuw
6d829fa575 Merge pull request #2059 from bryanzzhu/bryanzzhu-currentweather
added config option to hide sunrise/sunset in Current Weather module
2020-07-01 13:16:48 +02:00
Bryan Zhu
85ed1b85ae added functional current, hourly, and daily forecasts via OpenWeatherMap One Call API 2020-07-01 05:08:04 -04:00
Lyubomir Vasilev
c9d0bd2d7f Updated the BG translation 2020-07-01 10:08:41 +03:00
ZoneMR
ea31d34649 Fix #2030 - Clock can be off by a minute
Set minute/second in our model based on the actual time from moment() rather than our own attempt to track the time - which can drift or fail to respond to time changes.

Also, schedule time refreshes to happen 50ms after the minute/second is expected to change - preventing premature fires and rapid re-firings of notifications due to accuracy limits in setTimeout
2020-06-30 19:51:25 +01:00
Bryan Zhu
1d2f929d3f Rename wdataHourly.njk to wdatahourly.njk 2020-06-30 13:21:50 -04:00
Bryan Zhu
ffbf0804d9 added default values for lat and lon 2020-06-30 12:41:14 -04:00
Bryan Zhu
ca0b89ecd3 backtracked apiKey change to appid 2020-06-30 12:36:23 -04:00
Bryan Zhu
dc9d6f6b79 fixed minor typo (apiKey vs. appid) 2020-06-30 12:29:00 -04:00
Bryan Zhu
f73520559e typo and bug fixes 2020-06-30 12:06:16 -04:00
Bryan Zhu
a4df38d963 fixed config parameter typo 2020-06-30 04:18:03 -04:00
Bryan Zhu
4a162543f6 added OpenWeatherMap One Call API function to default Weather module, added wDataHourly type 2020-06-30 02:40:41 -04:00
Bryan Zhu
7a3ea37798 added config option to hide sunrise/sunset in Current Weather module 2020-06-29 12:44:24 -04:00
Michael Teeuw
fdd389d6b7 Merge pull request #2058 from XBCreepinJesus/develop
UK Met Office DataHub weather provider
2020-06-28 13:40:17 +02:00
CreepinJesus
b91fccc0e3 Update metofficedatahub.js 2020-06-28 12:09:16 +01:00
CreepinJesus
d911b075ab Met Office DataHub weather provider 2020-06-28 11:13:44 +01:00
CreepinJesus
4339cdd8a4 Included check for Met Office DataHub provider.
The new Met Office provider also returns precipitation as a probability percentage.
2020-06-28 11:00:10 +01:00
CreepinJesus
dd32d3a492 New Met Office provider
This is a provider for the Met Office's new DataHub API (which will eventually replace their current DataPoint service).
2020-06-28 10:57:19 +01:00
wolfen351
d5caadd906 Correct calendar display - account for current timezone 2020-06-27 19:43:09 +12:00
Michael Teeuw
c4bc3e2687 Merge pull request #2054 from MichMich/revert-pr-2021
Revert PR #2021
2020-06-24 12:36:28 +02:00
Michael Teeuw
2c5909a138 Update CHANGELOG.md 2020-06-24 09:50:25 +02:00
Michael Teeuw
42c13fa584 Update compliments.js 2020-06-24 09:49:14 +02:00
Michael Teeuw
3b442d4bfc Merge pull request #2048 from rejas/issue_1926
Updated ical library to latest version
2020-06-22 18:19:18 +02:00
rejas
9831f81b6e Merge branch 'develop' into issue_1926 2020-06-20 20:43:09 +02:00
Michael Teeuw
d3282506c9 Merge pull request #2052 from chamakura/develop
Bug fix to correctly handle the logic for 'maxEntries' Issue #2050
2020-06-20 20:35:32 +02:00
chamakura
2afff6c432 Updating files to the latest versions from 'develop' branch 2020-06-20 11:18:37 -07:00
chamakura
be3616abe2 Bug fix to correctly handle the logic for 'maxEntries' Issue #2050 2020-06-20 11:01:37 -07:00
rejas
daa6f5051c Use object.entries to iterate over data 2020-06-20 09:01:35 +02:00
rejas
1e5bd98f02 Make calendar debuger use const stuff and add npm script for it 2020-06-20 08:45:46 +02:00
rejas
7e5bfa8dd2 Fix slice parameter type 2020-06-20 08:45:22 +02:00
rejas
53363b0618 Simplify return call to make a better diff 2020-06-20 08:45:03 +02:00
rejas
b2f71a2ce1 Update dependencies 2020-06-20 08:33:19 +02:00
rejas
5d4a575919 Undo switch to fetch, use request like ical did 2020-06-20 08:32:54 +02:00
rejas
7d521ed3ce More var -> let/const conversions 2020-06-18 21:54:51 +02:00
rejas
bb9ad3daa9 Use some const/let instead of var 2020-06-17 21:37:49 +02:00
rejas
442f270ee0 Update CHANGELOG 2020-06-17 21:24:50 +02:00
rejas
7ab74c6cc9 Remove old ical version 2020-06-17 21:17:35 +02:00
rejas
6d60baa2d6 Install latest ical version and use it 2020-06-17 21:17:26 +02:00
Michael Teeuw
6d3308621f Merge pull request #2017 from rejas/config_logger
Make logger a little more configurable
2020-06-14 14:33:06 +02:00
Michael Teeuw
fd49be1d9b Remove unreachable code. 2020-06-14 14:14:30 +02:00
Michael Teeuw
c40a5648dd Merge branch 'develop' into config_logger 2020-06-14 14:02:48 +02:00
Michael Teeuw
d9a8d2627a Merge pull request #2046 from rejas/issue_1928
Throw error when check_config fails
2020-06-14 14:00:19 +02:00
rejas
c7a88e2f12 Throw error when check_config fails 2020-06-14 11:04:11 +02:00
easyas314
9d2d170c2d add additional URLs per API 2020-06-13 11:58:06 -04:00
easyas314
df3aa22c59 current appears to be working 2020-06-04 23:35:32 -04:00
easyas314
a4aabfcdae add the lock file 2020-06-04 19:26:09 -04:00
easyas314
ce99e70bf9 tweak package; my wxgov.js 2020-06-04 19:25:13 -04:00
rejas
963b1aa6b1 Final cleanups I think 2020-06-02 15:05:31 +02:00
rejas
008ac2876b More console -> Logger conversions 2020-06-02 15:05:31 +02:00
rejas
2330b166f6 Totall forgot we need a changelog entry 2020-06-02 15:04:58 +02:00
rejas
23c0e01565 Use logger in node_helpers 2020-06-02 15:04:58 +02:00
Veeck
13073bc98d Lint stuff 2020-06-02 15:03:59 +02:00
Veeck
8c319903dd Cleanup outcommented logging 2020-06-02 15:03:59 +02:00
Veeck
2334cbd78a User logger in checkconfig script 2020-06-02 15:03:59 +02:00
rejas
0cae954f80 Use Log in loader too 2020-06-02 15:03:59 +02:00
rejas
c60446a015 Fix tests 2020-06-02 15:03:59 +02:00
Veeck
d0c6a4ee6d Make logger configurable 2020-06-02 15:03:59 +02:00
rejas
f2d03a511e User logger in node files 2020-06-02 15:03:59 +02:00
rejas
367233c318 Add console-stamp to node-logger 2020-06-02 15:03:59 +02:00
rejas
9461c1692a Add node/browser wrapper around logger 2020-06-02 15:03:59 +02:00
Michael Teeuw
3b32605b5e Merge pull request #2036 from DarthBrento/develop
Fix #1109 - multiple calendar instances with different config
2020-06-02 10:16:09 +02:00
Michael Teeuw
4d21f8d022 Merge branch 'develop' into develop 2020-06-02 09:17:43 +02:00
Michael Teeuw
aac67570d4 Merge pull request #2035 from Ekristoffe/develop
Fix for #2018
2020-06-02 09:17:03 +02:00
Michael Teeuw
5f2c465274 Merge pull request #2032 from radokristof/weather-module
[weather] Ability to hide sun details
2020-06-02 09:15:31 +02:00
Michael Teeuw
fdaa0bc876 Merge pull request #2031 from radokristof/calendar-module
[calendar] Use wrapEvents to also truncate the location
2020-06-02 09:13:42 +02:00
Kristof Rado
a692d6be09 Reworked titleTransform. 2020-06-01 22:25:07 +02:00
Kristof Rado
efbb9648c4 Introduce new function for location title shortening. 2020-06-01 20:23:59 +02:00
Kristof Rado
3d73153e59 Revert "Renamed function"
This reverts commit 6aa0a4a4
2020-06-01 20:19:03 +02:00
DarthBrento
8fa2256fb0 linted 2020-06-01 17:19:41 +02:00
DarthBrento
4fe974e7a8 Check identifier for type, too 2020-06-01 13:31:46 +02:00
DarthBrento
21f76a8f27 Attach identifier to socket notifications to allow multiple instances 2020-06-01 13:14:54 +02:00
DarthBrento
aeb287fa1d Attach identifier to socket notifications to allow multiple instances 2020-06-01 13:12:54 +02:00
DarthBrento
1405e8821c Update calendar.js 2020-06-01 00:38:05 +02:00
DarthBrento
37e31bac5b Update node_helper.js 2020-06-01 00:36:47 +02:00
DarthBrento
d31b696846 updated changelog 2020-06-01 00:24:13 +02:00
Chris
cc01c1f0db Update weatherforecast.js 2020-05-31 11:57:53 +09:00
Chris
4a7076e01c Prettier correction 2020-05-31 11:46:50 +09:00
Chris
d306bb25dc Update CHANGELOG.md 2020-05-31 00:20:42 +09:00
Chris
457c80fe76 Correct #2018
Weather forecast need the maxNumberOfDays as argument &cnt=**
The minimum is 1 and the maximum is 17.
2020-05-31 00:15:54 +09:00
Kristof Rado
bb972f8449 Updated CHANGELOG.md 2020-05-30 00:11:14 +02:00
Kristof Rado
e6ef64968b Disable Sunrise/Sunset in Config option 2020-05-30 00:06:20 +02:00
Kristof Rado
6f3b87cfd1 Merge branch 'develop' into weather-module 2020-05-29 23:56:09 +02:00
Kristof Rado
f449feb3f8 Updated CHANGELOG.md 2020-05-29 23:53:07 +02:00
Kristof Rado
b179c8e2b7 Merge branch 'develop' into calendar-module 2020-05-29 23:50:24 +02:00
Kristof Rado
6aa0a4a47f Renamed function 2020-05-29 23:50:01 +02:00
Kristof Rado
766140f483 Ability to hide sun details 2020-05-28 10:57:01 +02:00
Kristof Rado
52aa8b868a Truncate event title 2020-05-28 10:09:34 +02:00
Michael Teeuw
8a3a4d6fae Merge pull request #2027 from rejas/fix_travis_error
Fix travis error
2020-05-25 20:18:37 +02:00
Veeck
94f212a411 Fix travis error due to merge before prettier run 2020-05-25 20:00:59 +02:00
Michael Teeuw
4e1dce70a3 Merge pull request #2013 from rejas/prettier
Add Prettier for an even cleaner code-experience
2020-05-25 18:46:36 +02:00
Michael Teeuw
bbf48a0dd0 Merge pull request #2021 from ndom91/update-compliments-module-advice-api
Update Compliments Module - Add Advice API
2020-05-24 13:47:30 +02:00
ndo@ndo3
a35e8f3315 update: spaces -> tabs 2020-05-14 15:00:09 +02:00
ndo@ndo3
205de7233e add: advice api to compliments module 2020-05-14 14:56:38 +02:00
Veeck
abb5dc5739 Run prettier over ALL files once
No other changes done in this commit
2020-05-11 22:22:32 +02:00
Veeck
3a5a29efc0 Add pretty-quick 2020-05-11 21:59:45 +02:00
GeorgeTravelbacon
9d249406e3 Forgot CHANGELOG.MD 2020-05-10 17:07:34 +02:00
Joris
42d9e7a090 Changed "Gevoelstemperatuur" to "Voelt als". This is shorter and saves mirror space. 2020-05-10 15:18:24 +02:00
rejas
c202c0d705 Add prettier, configs and editorconfig 2020-05-07 14:09:22 +02:00
Michael Teeuw
8a1f9b7de6 Merge pull request #2012 from rejas/issue_2011
Use correct object in browser context
2020-05-07 09:02:17 +02:00
Veeck
18820c383d Use correct object in browser context 2020-05-06 22:19:07 +02:00
Michael Teeuw
b38b879ee3 Merge pull request #2010 from rejas/no_undef_and_more
Cleanup eslints no-undef warnings Part 2
2020-05-05 15:16:27 +02:00
Veeck
7fc7d626bc Add Module to globals, cleanup comments 2020-05-05 14:55:15 +02:00
Veeck
c8a0f1d0de Fix some more undefs that popped up out of nowhere 2020-05-05 14:54:49 +02:00
Michael Teeuw
c8aedc6f29 Merge pull request #1997 from andrezibaia/patch-1
Literal translation (not used in Portuguese)
2020-05-05 14:32:45 +02:00
Michael Teeuw
1e7ce8bb5c Merge pull request #2007 from rejas/no_undef
Cleanup eslints no-undef warnings
2020-05-05 14:31:41 +02:00
Veeck
5386ca1592 Merge branch 'develop' into no_undef 2020-05-05 14:20:24 +02:00
Michael Teeuw
08ed019426 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into develop 2020-05-05 14:18:14 +02:00
Michael Teeuw
55c6a5aa27 remove unused file 2020-05-05 14:17:46 +02:00
rejas
bd6bbf864a Update dependencies 2020-05-03 20:52:58 +02:00
rejas
703335c2f1 Update changelog 2020-05-03 20:50:52 +02:00
rejas
c04fa496bf Second round of undef fixes 2020-05-03 18:59:26 +02:00
rejas
b9d19cfcb4 First round of undef fixes 2020-05-03 12:40:48 +02:00
rejas
d8f093b226 Cleanup some globals 2020-05-02 10:33:24 +02:00
rejas
63a2d83d26 Start checking for undef 2020-05-02 10:32:53 +02:00
Michael Teeuw
7e42e98cb6 Merge pull request #2002 from rejas/https
Replace insecure links with https
2020-04-30 09:19:17 +02:00
rejas
93deebe923 Update changelog 2020-04-28 23:09:29 +02:00
rejas
1eecf4b2c7 Fix docs, grunt is removed 2020-04-28 23:07:14 +02:00
rejas
e7fc4ef1e7 Replace unsecure links with https ones 2020-04-28 23:05:28 +02:00
Michael Teeuw
3c54d4af15 Merge pull request #1996 from rejas/eslint_recommend
Update eslint config to use eslint:recommended
2020-04-23 10:23:40 +02:00
andrezibaia
ebfbf0e1f8 Literal translation (not used in Portuguese) 2020-04-23 04:41:05 +02:00
rejas
14aa4036e0 Some spelling and doc fixes 2020-04-22 22:09:31 +02:00
Veeck
0c60d54c3f Add eqeqeq rule to not confuse == with === 2020-04-21 15:13:06 +02:00
Veeck
e510d279a2 Cleanup some more header comments 2020-04-21 14:58:17 +02:00
Veeck
be6f1f9c4a Move eslint to dependencies, update some devdependcies 2020-04-21 14:41:34 +02:00
rejas
b1fb177e4b Undo "fix" in main.js that broke the tests 2020-04-21 12:38:29 +02:00
Veeck
ec187fe109 Update changelog and commen tags 2020-04-21 12:23:50 +02:00
Veeck
9ec329b7ae Final fixes for eslint:recommended 2020-04-21 12:23:50 +02:00
rejas
d08bd4e866 Fix lots of warnings 2020-04-21 12:23:50 +02:00
rejas
941d5d7cd9 Fix mixed tabs and whitespace errors 2020-04-21 12:23:50 +02:00
rejas
ef8d85773c Run automatic fix 2020-04-21 12:23:50 +02:00
rejas
e668d488b4 Use eslint:recommend 2020-04-21 12:23:50 +02:00
Michael Teeuw
d4eb5facfd Merge pull request #1992 from rejas/update_fonts
Update font package
2020-04-21 11:55:08 +02:00
Veeck
a1285b120b Remove some other prefixed styles since we are at it 2020-04-20 12:13:13 +02:00
Veeck
8650876e2b Remove yarn.locks 2020-04-20 12:10:58 +02:00
Veeck
81ab12c89c Update changelog 2020-04-20 12:10:58 +02:00
Veeck
4ddb8cec85 Update roboto fonts, remove ttf entries 2020-04-20 12:10:58 +02:00
Michael Teeuw
711c566498 Merge pull request #1995 from rejas/cleanup_alert
Cleanup default alert module
2020-04-20 12:06:18 +02:00
Veeck
cc5336900c Update dependencies 2020-04-20 11:34:24 +02:00
Veeck
291a8f5c1f Fix warnings for jsonlint 2020-04-20 11:34:16 +02:00
Veeck
8c0e98ed43 Ignore some other files when linting markdown too 2020-04-20 11:30:05 +02:00
Veeck
7a976c0239 Fix tests, use non-spread object extend version again 2020-04-20 11:24:03 +02:00
Veeck
fb557b9130 Update ignored files for eslint 2020-04-20 11:15:11 +02:00
Veeck
b56a930f60 Update changelog 2020-04-20 10:59:04 +02:00
Veeck
5819ef346b Rename stylesheet for clarity that its about the notificationFX 2020-04-20 10:58:27 +02:00
Veeck
b3dcc82c71 Remove old webkit prefix styles 2020-04-20 10:52:53 +02:00
Veeck
06e8308dc2 Replace old js files with modern code 2020-04-20 10:51:27 +02:00
Michael Teeuw
c8a9c9b84e Merge pull request #1991 from rejas/cleanup_config_check
Cleanup config check script
2020-04-19 09:10:41 +02:00
Veeck
e85b49c573 Update changelog 2020-04-19 08:22:48 +02:00
Veeck
c7c6dc4e67 Move config check into js folder, cleanup var usage 2020-04-19 07:55:56 +02:00
Michael Teeuw
172d668416 Merge pull request #1963 from AndreKoepke/feature/client_https
add https support for clientonly-mode
2020-04-15 09:57:53 +02:00
AndreKoepke
b651dc845b no single quotes 2020-04-14 14:10:29 +02:00
Michael Teeuw
c755f44153 Merge pull request #1981 from rejas/remove_grunt
Remove grunt, use non-grunt linters instead
2020-04-10 21:55:41 +02:00
rejas
ed28ce1874 Update changelog and lock 2020-04-10 16:12:51 +02:00
rejas
194af0e985 Run linter and npm audit 2020-04-10 15:09:08 +02:00
rejas
ab3015df6b Remove rest of grunt calls 2020-04-10 14:43:58 +02:00
rejas
f36df159e0 Replace grunt-jsonlint with jsonlint 2020-04-10 12:24:08 +02:00
rejas
61462cf57e Replace grunt-eslint with eslint 2020-04-10 07:48:28 +02:00
rejas
427d186c86 Replace grunt-markdownlint with markdownlint-cli 2020-04-10 07:48:28 +02:00
rejas
84e9c47a67 Replace grunt-stylelint with stylelint 2020-04-10 07:48:28 +02:00
rejas
18989d593a Replace grunt-yamllint with yaml-lint 2020-04-10 07:48:28 +02:00
Michael Teeuw
fc624359c5 Merge pull request #1980 from khassel/socketclient_fix
socketclient.js: add backward compatibility for old module code
2020-04-09 13:50:38 +02:00
Karsten Hassel
1914573634 fixed again ... 2020-04-07 20:26:09 +02:00
Karsten Hassel
1fd36458a6 update CHANGELOG.md 2020-04-07 19:42:16 +02:00
Karsten Hassel
37ee0e568f socketclient.js: add backward compatibility for old module code 2020-04-07 19:35:21 +02:00
Michael Teeuw
3f8363a5b2 Merge pull request #1976 from Legion2/develop
Added basename config
2020-04-06 21:55:10 +02:00
Leon Kiefer
e6c0011789 renamed basename to basePath 2020-04-06 21:29:55 +02:00
Leon Kiefer
eb37a495a2 changed headings in Changelog 2020-04-05 23:18:00 +02:00
Leon Kiefer
54542f7f07 added basename config
use basename in socket.io path fix #1973
2020-04-05 23:00:38 +02:00
AndreKoepke
8e38910dd8 Merge branch 'develop' into feature/client_https 2020-04-03 14:22:41 +02:00
Andre
31b3f778fc no single quotes 2020-04-03 12:37:33 +02:00
Michael Teeuw
ca3275757b Fix release date. 2020-04-01 15:40:14 +02:00
Michael Teeuw
501a314597 Start of 2.12.0-develop 2020-04-01 12:28:40 +02:00
Michael Teeuw
447c0bffdc Merge pull request #1968 from MichMich/develop
Release 2.11.0
2020-04-01 12:21:33 +02:00
Michael Teeuw
46df59d77a Prepare release 2.11.0 2020-04-01 11:52:39 +02:00
Michael Teeuw
8c85e240b7 Merge pull request #1967 from MichMich/rejas-date
Rejas date
2020-04-01 11:15:31 +02:00
Michael Teeuw
2464d01891 Fix date test. 2020-04-01 10:57:50 +02:00
Michael Teeuw
66642a19c5 Merge branch 'date' of https://github.com/rejas/MagicMirror into rejas-date 2020-04-01 10:08:33 +02:00
Michael Teeuw
f7f4e92e0a Merge branch 'develop' of https://github.com/MichMich/MagicMirror into develop 2020-04-01 09:58:55 +02:00
Michael Teeuw
2674bf22d8 Let's use sensible defaults. :) 2020-04-01 09:44:22 +02:00
Andre
351e0f3a0b add https support 2020-03-28 12:37:50 +01:00
rejas
ff7dc95e93 Implement suggestions from Michael 2020-03-28 09:24:30 +01:00
rejas
4e4d3418b3 LInt mockdate helper 2020-03-25 06:53:09 +01:00
rejas
3659b5b5c9 Update mockdate info 2020-03-25 06:40:23 +01:00
rejas
65e1b60fb7 Fix error when no compliments are set 2020-03-25 06:40:23 +01:00
rejas
e2427fe299 Try out a mockdate class 2020-03-25 06:40:23 +01:00
rejas
b08f882324 Add (failing) test for new date field 2020-03-25 06:40:23 +01:00
rejas
2a31ece0c6 Refactor code 2020-03-25 06:40:23 +01:00
rejas
cafa4211a6 Update changelog and add another birtday 2020-03-25 06:40:23 +01:00
rejas
82b50d3059 Add basic compliment on a specific day of the year 2020-03-25 06:39:24 +01:00
Michael Teeuw
39cb582e07 Merge pull request #1960 from effelle/develop
Update pt-br.json
2020-03-24 21:16:41 +01:00
Michael Teeuw
fe6645a420 Merge pull request #1955 from rejas/jshint
Remove jshint dependency
2020-03-24 21:16:12 +01:00
Michael Teeuw
a49816f4eb Merge pull request #1948 from rejas/lint
Run linter tests on travis (was: Run linter before commit)
2020-03-24 21:15:41 +01:00
Michael Teeuw
7ac97f854c Merge pull request #1937 from Legion2/develop
use relative path for socket.io
2020-03-24 21:13:36 +01:00
Federico Leoni
8f203852ca Update CHANGELOG.md 2020-03-24 10:06:12 -03:00
Federico Leoni
c342f7bce6 Update pt-br.json 2020-03-23 14:55:36 -03:00
Michael Teeuw
fe1c5df9d5 Merge pull request #1958 from bugsounet/master
issue #1956
2020-03-19 19:17:03 +01:00
bugsounet
8aa7a55559 issue #1956 2020-03-19 19:03:25 +01:00
rejas
e9461586cb Update changelog 2020-03-15 21:25:11 +01:00
rejas
a91f2de26a Remove jshint dependency, use eslint for config verification 2020-03-15 20:38:52 +01:00
rejas
5a4ae99283 Add no-multi-spaces rule to eslint and run it 2020-03-15 15:49:34 +01:00
rejas
437d030502 Remove some dead files, fix stylelint error 2020-03-11 12:44:44 +01:00
rejas
f3d45eff69 Fix js error but add a stylelint error 2020-03-11 11:43:45 +01:00
rejas
f22e39e22b Add switch to auto fix eslint and stylelint issues 2020-03-11 11:29:59 +01:00
rejas
7470a3b813 Dont fix eslint errors automatically 2020-03-11 10:48:43 +01:00
rejas
0b2e836e3d Commit a faulty js to see if travis complains 2020-03-11 09:01:21 +01:00
rejas
c3d57eef4f Remove husky again, move lint as test to travis 2020-03-11 08:52:25 +01:00
rejas
ca2571b438 Update changelog 2020-03-08 16:31:34 +01:00
rejas
6c926b8876 Add husky for pre-commit hook 2020-03-08 16:25:26 +01:00
rejas
5517a913d4 Run linter manually 2020-03-08 16:20:54 +01:00
Michael Teeuw
ef7720ff06 Merge pull request #1939 from dtreskunov/dtreskunov/fix-moon-illumination-percent-calc
fix floating point bug in moon illumination calc
2020-02-27 16:35:38 +01:00
Michael Teeuw
daa13b4b30 Merge pull request #1941 from bibaldo/bibaldo-currentweather
Add new default config to 'current weather' module
2020-02-27 16:34:26 +01:00
Michael Teeuw
9d4e237c09 Merge pull request #1938 from tosbaha/develop
Turkish translation update
2020-02-27 16:32:40 +01:00
Michael Teeuw
883c169ef7 Merge branch 'develop' into develop 2020-02-27 16:31:10 +01:00
Michael Teeuw
2b2b07f6b4 Merge pull request #1936 from buxxi/develop
Using promises to resolve which modules has a git remote
2020-02-27 16:30:23 +01:00
Jose Forte
f338b68f36 Update CHANGELOG.md 2020-02-21 10:31:40 -03:00
Jose Forte
c877b5fc70 Add new default config to 'current weather' module 2020-02-21 10:17:05 -03:00
Leon Kiefer
6aeec81072 removed additional slash from the socket.io path 2020-02-19 20:58:58 +01:00
Denis Treskunov
3f78c664eb fix floating point bug in moon illumination calc 2020-02-19 09:31:02 -08:00
mustafa
3b7df1d5c2 Changelog updated 2020-02-19 15:25:46 +03:00
mustafa
b6fc063c75 Turkish translation updated 2020-02-19 15:21:25 +03:00
Leon Kiefer
7b56817ae6 use relative path for socket.io fix #1934 2020-02-18 17:09:25 +01:00
buxxi
75c8c3f50b Using promises to resolve which modules has a git remote so the modules wont be skipped on the first check 2020-02-17 22:56:06 +01:00
Michael Teeuw
be07ff2129 Merge pull request #1923 from wast/patch-1
Fix Croatian translation for Calendar module word FEELS.
2020-02-12 16:34:45 +01:00
Michael Teeuw
56846b258c Merge branch 'develop' into patch-1 2020-02-12 16:34:33 +01:00
Michael Teeuw
f67310c8fa Merge pull request #1927 from fewieden/fix/weather-tests
1840 fix weather tests
2020-02-12 16:33:31 +01:00
Michael Teeuw
3dff3a1d4a Merge branch 'develop' into fix/weather-tests 2020-02-12 16:33:19 +01:00
Michael Teeuw
142d30b1c6 Merge pull request #1929 from buxxi/develop
Adding support for ignoring update check for certain modules
2020-02-11 19:21:46 +01:00
buxxi
c925e88475 Adding support for ignoring update check for certain modules 2020-02-11 18:13:39 +01:00
fewieden
56392e41d0 Add 1840 to changelog 2020-02-10 22:05:43 +01:00
fewieden
cd7b6450c6 Run tests also on lts and last stable version of nodejs 2020-02-10 21:51:29 +01:00
Felix Wiedenbach
de6a9f5811 fix timing issue in weather tests => returning response by url instead of index 2020-02-10 18:56:55 +01:00
Michael Teeuw
d7295948fd Merge pull request #1925 from dtreskunov/dtreskunov/fix-clock-module-moon-widget
fix bugs in showMoonTimes in clock module
2020-02-10 07:40:10 +01:00
Denis Treskunov
f4c3e412a2 fix bugs in showMoonTimes in clock module
1. as reported on https://github.com/MichMich/MagicMirror/pull/1885,
toLocaleString is not supported on old iPad Safari

2. SunCalc.getMoonTimes returns moonRise/moonSet times for the given date,
so moonRise can be after moonSet. We want to display the most relevant
times, which are today's moonRise and the next moonSet.
2020-02-09 22:03:35 -08:00
Stjepan
0d461e14d9 Merge pull request #1 from wast/patch-2
Update CHANGELOG.md
2020-02-09 10:26:54 +01:00
Stjepan
845c2571fe Update CHANGELOG.md
Fix FEELS translation in Croatian
2020-02-09 10:24:20 +01:00
Stjepan
d5c02d1031 Update hr.json
Fix FEELS translation in Croatian.
2020-02-09 10:22:41 +01:00
Michael Teeuw
30e93a9372 Merge pull request #1915 from normankong/develop
Support HTTPS Magicmirror (resubmit)
2020-02-06 10:10:06 +01:00
Michael Teeuw
e5cdcd190c Merge pull request #1918 from sergge1/develop
to make logic of parameter name to its actual behavior
2020-02-06 10:09:22 +01:00
sergge1
271f1cd71b to make logic of name to actual behaviour
hideTemp = false -> temp shold appear at the MM
hideTemp === true -> should not appear.
This is the logic. Worked vise versa, just corrected in the code
2020-02-06 00:04:48 +02:00
Michael Teeuw
4abb790e12 Merge pull request #1916 from d-Rickyy-b/log-date-timestamp
Log date timestamp
2020-02-05 12:43:26 +01:00
Michael Teeuw
89c9d4dfc4 Merge branch 'develop' into develop 2020-02-05 12:42:43 +01:00
karenorman
5511c15921 Update description in config.js.sample 2020-02-05 10:23:49 +08:00
Rico
e160f9a0f6 docs: add info about changed timestamp in changelog 2020-02-03 21:43:45 +01:00
Rico
65ea341ed0 feat: use date in log timestamp
I find it quite hard to look something up in the logs, when there is no date in the log file. The time itself is not sufficient for debugging, hence I suggest also logging the date.
2020-02-03 21:39:46 +01:00
Michael Teeuw
561827e896 Remove logging. 2020-02-01 19:12:05 +01:00
Michael Teeuw
1315aceb44 Remove duplicate 2.11 entry. 2020-02-01 17:41:49 +01:00
Michael Teeuw
19afd89df5 Fix Typo 2020-02-01 16:48:35 +01:00
Michael Teeuw
cbcc893f64 Restore MM.sh to keep PM2 working. 2020-02-01 15:16:23 +01:00
Michael Teeuw
a41bae3132 Cleanup 2020-02-01 15:05:26 +01:00
Michael Teeuw
8ef8388c32 Set default DISPLAY in package.json. 2020-02-01 15:02:47 +01:00
Michael Teeuw
e2d4a0fde8 Improve Feedback. 2020-02-01 14:52:52 +01:00
Michael Teeuw
65b1d61295 Improve feedback. 2020-02-01 14:43:43 +01:00
Michael Teeuw
1b38e73eb2 Fix install scripts. 2020-02-01 14:41:46 +01:00
Michael Teeuw
e2afee3275 Add feedback. 2020-02-01 14:39:50 +01:00
Michael Teeuw
7f2ecbd04f Cleanup. 2020-02-01 14:32:38 +01:00
Michael Teeuw
21dbaa1a03 Move DISPLAY default to electron script. 2020-02-01 13:59:13 +01:00
Michael Teeuw
09c1ea992c Update start methods. 2020-02-01 13:56:15 +01:00
karenorman
c8c327b6ab Add HTTPS support 2020-02-01 20:46:26 +08:00
Michael Teeuw
3bb801f579 Merge pull request #1914 from kblankenship1989/fix-iso-string
fix: add missing +1 for month
2020-02-01 04:57:12 +01:00
Kurtis Blankenship
ca49d8adb3 fix: correcting syntax 2020-01-31 20:46:43 -06:00
Kurtis Blankenship
88b15797a0 fix: add missing +1 for month 2020-01-31 20:35:46 -06:00
Michael Teeuw
28ebbd229c Merge pull request #1910 from sergge1/develop
added Ukrainian (uk) translation
2020-01-31 19:51:48 +01:00
sergge1
d7f6f46805 2.11.0 - added Ukrainian translation 2020-01-31 11:28:00 +02:00
sergge1
c41d6965ab added Ukrainian translation 2020-01-31 11:18:43 +02:00
sergge1
602119fa41 Ukrainian translation added 2020-01-31 11:17:11 +02:00
Michael Teeuw
4c2a9b47f5 Merge pull request #1906 from mmphego/develop
Grammar fixes on config.js.sample file
2020-01-26 16:46:48 +01:00
Michael Teeuw
5a26fefd6b Merge pull request #1903 from roramirez/not-log-error-vendor-test
Revert error logging introduced in 1e97b5c
2020-01-26 16:46:06 +01:00
Mpho Mphego
85d26f7320 Grammar fixes to config.
This PR does the following:

- [x] Corrects grammar on `config.js.sample`
2020-01-26 14:10:24 +02:00
Michael Teeuw
9487af1852 Merge pull request #1901 from kolbyjack/fix-97e5d92-regression
Fix regression causing 'undefined' to show up when config.hideTemp is…
2020-01-24 17:46:45 +01:00
Jon Kolb
a5b09d7846 Update CHANGELOG.md 2020-01-24 10:51:24 -05:00
Jon Kolb
6ba5056c96 Fix regression causing 'undefined' to show up when config.hideTemp is false 2020-01-24 10:42:45 -05:00
Michael Teeuw
50b4d05ef5 Merge pull request #1899 from MichMich/Skip-weather
Skip weather tests for now
2020-01-23 19:56:23 +01:00
Michael Teeuw
13ebe6d0e1 Check method 2020-01-23 19:52:07 +01:00
Michael Teeuw
95dedf0d80 Skip weather tests for now 2020-01-23 19:38:15 +01:00
Michael Teeuw
89a9368166 Merge pull request #1896 from sejka/patch-1
adds PRECIP polish translation
2020-01-23 19:29:43 +01:00
Michael Teeuw
c10e6159da Merge pull request #1895 from adi-miller/heb
Add Hebrew translation
2020-01-23 19:29:26 +01:00
Michael Teeuw
c30693b8a8 Merge pull request #1894 from roramirez/mode-permission-changelog
Revert permission mode for CHANGELOG
2020-01-23 19:28:59 +01:00
Michael Teeuw
7fc4f61182 Merge pull request #1892 from roramirez/upgrade-electron-6
Upgrade to Electron 6:
2020-01-23 19:28:37 +01:00
Karol Sejka
b44ab88927 adds PRECIP polish translation 2020-01-23 02:24:47 +01:00
adimi
2ca81f965a Add hebrew translation 2020-01-22 22:03:34 +02:00
Michael Teeuw
9f4dc1e382 Merge pull request #1887 from dtreskunov/dtreskunov/sun-and-moon
fix calculation of duration until next sunrise
2020-01-22 15:23:01 +01:00
Michael Teeuw
5ec9704e7f Merge pull request #1893 from roramirez/vendor-fix-test
Fix the vendor_spec test:
2020-01-22 15:22:29 +01:00
Denis Treskunov
7ad0cfd5f6 update CHANGELOG.md 2020-01-21 19:16:42 -08:00
Denis Treskunov
ac8f679dfd Merge remote-tracking branch 'upstream/develop' into dtreskunov/sun-and-moon 2020-01-21 19:13:51 -08:00
Rodrigo Ramírez Norambuena
a7ee2ef3a6 Upgrade to Electron 6:
New version of Electron has enable by default sandbox
http://www.atom.pe/docs/api/sandbox-option/

There was some issues to migrate a new version of Electron for
MagicMirror. Using the new version in Travis CI was failing at this
time. The problem is because the testing runner is a Docker enviroment

The issue experimented is the same topic mentioned here:
 - https://github.com/electron/electron/issues/17972
 - https://github.com/electron-userland/spectron/issues/443

The fix for to all of this is to set the `--no-sandbox` mode in CI
testing https://electronjs.org/docs/all#--no-sandbox

This change use the feature to set and disable Sandbox using
by enviroment variable `ELECTRON_DISABLE_SANDBOX=1`
https://github.com/electron/electron/pull/16576

This change has reference #1800
2020-01-20 22:19:10 +00:00
Rodrigo Ramírez Norambuena
6e7edd9824 Revert error logging introduced in 1e97b5c 2020-01-19 08:50:37 -03:00
Rodrigo Ramírez Norambuena
81b310086f Revert permission mode for CHANGELOG
This change revert change of permission mode for file CHANGELOG.md
introduced in commit a619fc4fef
2020-01-19 04:40:05 -03:00
Rodrigo Ramírez Norambuena
cce57c7229 Fix the vendor_spec test:
This change set after startApplication the configuration to run this
test.

The previous statement when e2e are running using --recursive the
MM_CONFIG_FILE was setting by the test running before this one.
2020-01-19 04:06:21 -03:00
Denis Treskunov
9cffa3dd67 fix calculation of duration until next sunrise 2020-01-18 17:02:40 -08:00
Michael Teeuw
7b3a59455d Merge pull request #1885 from dtreskunov/dtreskunov/sun-and-moon
add sun/moon rise/set times
2020-01-18 21:29:41 +01:00
Michael Teeuw
fefe5659d3 Merge branch 'develop' into dtreskunov/sun-and-moon 2020-01-18 21:20:35 +01:00
Michael Teeuw
db72e22e61 Fuck it. 2020-01-18 21:17:54 +01:00
Michael Teeuw
a85ed709af Remove newlines. 2020-01-18 21:09:18 +01:00
Michael Teeuw
e24d1a1261 Fix newlines? 2020-01-18 21:02:49 +01:00
Michael Teeuw
d6f1bf18de Merge pull request #1884 from kblankenship1989/fix-timeshift-calendar
fix: Issue #1798 - fixing recurrent calendar events crosstime DST
2020-01-18 19:59:24 +01:00
Michael Teeuw
97e5d923fa Merge pull request #1882 from adi-miller/hide_weather
Added the ability to hide the temp label and weather icon in the `cur…
2020-01-18 19:54:30 +01:00
Denis Treskunov
36762a6e46 add duration until next sunset/sunrise 2020-01-18 09:50:43 -08:00
Denis Treskunov
40a9f9dd85 fix stylelint:simple 2020-01-18 08:45:52 -08:00
Denis Treskunov
85a52523cf show sun/moon as bright rather than bold if obj is visible 2020-01-18 08:43:33 -08:00
Kurtis Blankenship
5ed7974099 Merge branch 'fix-timeshift-calendar' of github.com:kblankenship1989/MagicMirror into fix-timeshift-calendar 2020-01-18 06:38:13 -06:00
Kurtis Blankenship
70ca9ce2e0 fix: fixing lint error 2020-01-18 06:38:01 -06:00
kblankenship1989
af9f555e8f fix: fixing copy / paste error on futureLocal 2020-01-18 06:28:21 -06:00
Denis Treskunov
08b9e7b5b5 add sun/moon rise/set times
Icons become bold when the object is above the horizon. Also shows
percent of moon illumination.
2020-01-17 22:28:24 -08:00
Kurtis Blankenship
84f74c53b5 perf: fix wording on changelog 2020-01-17 23:08:34 -06:00
Kurtis Blankenship
762bae907c perf: updating changelog 2020-01-17 23:04:51 -06:00
Kurtis Blankenship
2b738fa14b Merge branch 'develop' of github.com:MichMich/MagicMirror into fix-timeshift-calendar 2020-01-17 22:54:59 -06:00
Kurtis Blankenship
8aa745471b fix: Issue #1798 - fixing recurrent calendar events crosstime DST 2020-01-17 22:53:14 -06:00
Adi Miller
63950f572a Adding trailing enter to avoid build warning. 2020-01-16 16:47:49 +02:00
Adi Miller
81aab7e86f Added the ability to hide the temp label and weather icon in the currentweather module to allow showing only information such as wind and sunset/rise. 2020-01-16 16:26:20 +02:00
Michael Teeuw
1fd5fd4832 Update ISSUE_TEMPLATE.md 2020-01-14 09:20:50 +01:00
Michael Teeuw
ceaf478a84 Merge pull request #1875 from bastilimbach/master
Add different GitHub repos to issue template
2020-01-13 12:29:52 +01:00
Sebastian Limbach
61256f98ca Fix typo 2020-01-13 09:40:38 +01:00
Sebastian Limbach
818ed5d189 Add different GitHub repos
This commit adds the official docker image repo as well as the installation scripts repo to the issue template to avoid the creation of issue which don't belong to the MagicMirror core.
2020-01-12 20:15:04 +01:00
Michael Teeuw
0ca00e5059 Merge pull request #1874 from sdetweil/develop
cleanup installers folder
2020-01-12 17:44:50 +01:00
Sam Detweiler
a2c743167d cleanup installers foldr 2020-01-12 10:19:37 -06:00
Sam Detweiler
786641662c cleanup installers folder 2020-01-12 10:16:59 -06:00
sam detweiler
8380896deb Merge pull request #42 from MichMich/develop
synch with fork source
2020-01-12 10:14:44 -06:00
Michael Teeuw
1152689f34 Remove docs and link to docs.magicmirror.builders. 2020-01-12 13:01:56 +01:00
Michael Teeuw
d2afdc82f1 Merge branch 'master' into develop. 2020-01-10 22:27:44 +01:00
Michael Teeuw
5bf90ae31d Merge pull request #1872 from MichMich/2.10.1-docs
2.10.1 docs
2020-01-10 22:23:18 +01:00
Michael Teeuw
b533e3d3e1 Add install link. 2020-01-10 22:16:19 +01:00
Michael Teeuw
4d9df309c8 Use https. 2020-01-10 22:14:13 +01:00
Michael Teeuw
65126365a6 Add links to documentation site. 2020-01-10 22:11:10 +01:00
Michael Teeuw
0afe403057 Merge pull request #1861 from khassel/develop
fix run-start.sh: if running in docker-container, just start electron…
2020-01-08 16:25:57 +01:00
Michael Teeuw
d500353722 Merge pull request #1871 from shahrukh-alizai/patch-1
Remove the extra two "of" words from Manifesto content.
2020-01-08 16:24:29 +01:00
Shahrukh Khan
eea8b4dfbf Update README.md
Remove extra two "of" words
2020-01-08 18:10:36 +05:00
Karsten Hassel
20a9150ea3 fix run-start.sh: if running in docker-container, just start electron, see #1859 2020-01-03 19:17:50 +01:00
sam detweiler
c51e613568 Merge pull request #34 from MichMich/develop
sync Develop
2020-01-02 09:31:24 -06:00
Michael Teeuw
69a887fb05 Merge pull request #1851 from ZakarFin/fi-translations
Add missing translations for fi
2020-01-02 16:16:00 +01:00
Michael Teeuw
01c1d150c6 Merge branch 'develop' into fi-translations 2020-01-02 16:15:47 +01:00
Michael Teeuw
c51c09348e Merge pull request #1857 from HeikoGr/master
force declaration of public ip adress in config file (ISSUE #1852)
2020-01-02 16:14:14 +01:00
Michael Teeuw
0a4df191a7 Merge branch 'develop' into master 2020-01-02 16:13:30 +01:00
HeikoGr
760995773e Update CHANGELOG.md 2020-01-02 16:04:38 +01:00
HeikoGr
94ff8a9b04 force declaration of public ip adress in config file (ISSUE #1852) 2020-01-02 14:15:24 +00:00
Sami Mäkinen
10d5529f79 Add missing translations for fi 2020-01-02 00:04:59 +02:00
Michael Teeuw
2b511b67c3 Prepare for 2.11.0 2020-01-01 22:21:55 +01:00
Michael Teeuw
b595cdd31e Merge pull request #1850 from MichMich/develop
Version 2.10.0
2020-01-01 22:06:34 +01:00
Michael Teeuw
e64870ca58 Prepare 2.10.0 release. 2020-01-01 21:50:02 +01:00
Michael Teeuw
a40f8d5b3a Merge pull request #1848 from oemel09/fix-calendar-full-multiple-day-events
Display still ongoing multiple day events as happening today
2020-01-01 21:47:54 +01:00
Michael Teeuw
61b8871ead Update package lock. 2020-01-01 21:23:25 +01:00
Michael Teeuw
4b5a3ed44d Downgrade Electron to check Travis. 2020-01-01 21:12:31 +01:00
Michael Teeuw
7d6b7b2691 Reverse tests for debugging. 2020-01-01 21:01:17 +01:00
Michael Teeuw
3dba46b74f Downgrade test utils. 2020-01-01 20:26:16 +01:00
Michael Teeuw
2767e31a28 Downgrade Spectron 2020-01-01 20:18:48 +01:00
Michael Teeuw
40886bcf08 Remove Snyk 2020-01-01 19:48:10 +01:00
Michael Teeuw
04dde74572 Move and alias node_module. 2020-01-01 19:17:23 +01:00
Michael Teeuw
29f3ac065f Re-enable weather tests. 2020-01-01 19:03:32 +01:00
Michael Teeuw
d2b30b4f9c Merge pull request #1849 from roramirez/fix-ci
Fix CI
2020-01-01 18:59:34 +01:00
Rodrigo Ramírez Norambuena
3a42663dea Update changelog for revert commit 2019-12-31 19:40:59 +00:00
Rodrigo Ramírez Norambuena
905d0ca409 Update package-lock* 2019-12-31 19:33:21 +00:00
Rodrigo Ramírez Norambuena
7e2c78666e Revert "stop helper class being erased"
This reverts commit 2fbedca746.
2019-12-31 19:31:13 +00:00
oemel09
6a5f0225fe Display still ongoing multiple day events as happening today 2019-12-31 13:59:58 +01:00
Michael Teeuw
ddb01fca31 Merge pull request #1847 from oemel09/fix-full-day-events
Fixes some events not being recognized as full day events
2019-12-31 13:20:18 +01:00
oemel09
684a3cd49e Fixes some events not being recognized as full day events 2019-12-31 12:37:29 +01:00
Michael Teeuw
ad5e42115b Merge pull request #1846 from oemel09/fix-calendar-debug
Fixes authentication in calendar debug script
2019-12-31 11:31:09 +01:00
oemel09
2d6b8d0c47 Fixes authentication in calendar debug script 2019-12-31 11:27:15 +01:00
Michael Teeuw
61471e5449 Merge pull request #1844 from RGMTAMU/minorREADMEFix
Very minor README spelling error fix
2019-12-30 14:34:15 +01:00
Shiva
b6f7ab7a9c Very minor README spelling error fix 2019-12-29 16:38:47 -06:00
Michael Teeuw
2d061be98e Fix corrupted file. 2019-12-29 15:12:50 +01:00
Michael Teeuw
d6e97b8c76 Cleanup. 2019-12-29 14:52:26 +01:00
Michael Teeuw
9e44660746 Merge pull request #1841 from MichMich/skip-weather-tests
Skip weather tests.
2019-12-29 14:37:31 +01:00
Michael Teeuw
03e6ca58ab Link to issue. 2019-12-29 14:34:07 +01:00
sam detweiler
e884cc1f75 Merge pull request #32 from MichMich/develop
sync Develop
2019-12-29 07:33:57 -06:00
Michael Teeuw
94c63b0554 Skipping weather tests for now. 2019-12-29 14:30:12 +01:00
Michael Teeuw
c7c8c40a70 disable test 2019-12-29 13:56:53 +01:00
Michael Teeuw
91c726c706 Merge branch 'pr/SpencerCornish/1834' into develop 2019-12-29 13:51:18 +01:00
Michael Teeuw
c9805e7ac9 Updated package.lock files. 2019-12-29 13:47:05 +01:00
Michael Teeuw
a4db0e40e3 Merge pull request #1815 from sdetweil/newservermode
fix regression and add support for commented lines in config.js
2019-12-29 00:01:23 +01:00
Michael Teeuw
305b55cb2a Merge pull request #1814 from sdetweil/newscripts
updates for libc6++ on pi 0, node 10
2019-12-29 00:00:03 +01:00
Sam Detweiler
272ca1ac4f synch package-lock.json for testing 2019-12-28 15:46:10 -06:00
Sam Detweiler
bbc6a1b38f synch package-lock for testing 2019-12-28 15:39:57 -06:00
sam detweiler
525c235d3b Merge pull request #31 from MichMich/develop
synch to Develop
2019-12-28 15:01:54 -06:00
Michael Teeuw
0e93713464 Merge pull request #1826 from sdetweil/fixcompliments
Fix compliments to support \n
2019-12-28 22:01:16 +01:00
sam detweiler
8f60e103f9 Merge branch 'develop' into fixcompliments 2019-12-28 14:58:01 -06:00
Michael Teeuw
9cc702241d Merge pull request #1827 from sdetweil/fix_helper
Fix helper being erased accidentally
2019-12-28 21:44:10 +01:00
sam detweiler
0d61c44232 Merge branch 'develop' into newscripts 2019-12-28 14:42:06 -06:00
sam detweiler
9a8faac316 Merge branch 'develop' into fix_helper 2019-12-28 14:36:49 -06:00
Michael Teeuw
05f710cb5c Merge pull request #1838 from tbouron/fix/module-header
Module header updates correctly, if a module need to dynamically show/hide its header based on a condition
2019-12-28 19:41:42 +01:00
Michael Teeuw
c6184769e7 Merge pull request #1836 from akraus53/patch-2
Added a padding between days in dateheader mode
2019-12-28 19:41:15 +01:00
Michael Teeuw
515d1bd920 Merge branch 'develop' into fixcompliments 2019-12-28 19:38:18 +01:00
Michael Teeuw
b19cb17bba Merge branch 'develop' into newservermode 2019-12-28 19:37:41 +01:00
Michael Teeuw
c1e808bce6 Merge pull request #1806 from sdetweil/newElectron
New electron version
2019-12-28 19:35:57 +01:00
Thomas Bouron
d8b7292d4b Fix module header update if using customising from module.getHeaders() 2019-12-26 14:07:13 +00:00
Sam Detweiler
edd5e2f5bc move lxsession screensaver checking to last, some systems still have the folder but don't use it 2019-12-24 06:55:12 -06:00
Alexander Kraus
efc6cb73b2 Added my contribution to the changelog 2019-12-20 15:22:14 +01:00
Alexander Kraus
ecd79dc34b Added a padding between days in dateheader mode 2019-12-20 15:20:12 +01:00
Spencer Cornish
cdfc8b825d Changelog 2019-12-19 21:11:57 -07:00
Spencer Cornish
301344c96d Update unsecure dependencies 2019-12-19 21:02:39 -07:00
sam detweiler
5279995c3b Merge branch 'develop' into newservermode 2019-12-13 08:03:06 -06:00
Sam Detweiler
5176b06b59 add check for root user and abort 2019-12-13 08:01:32 -06:00
Sam Detweiler
ed61ac624d http default if no address is 0.0.0.0, not localhost, hard code localhost as per readme 2019-12-10 12:15:30 -06:00
Sam Detweiler
4da6e3ecee add test for error on 200 rc test path 2019-12-10 11:29:26 -06:00
Sam Detweiler
9e5561936a Merge branch 'newElectron' of https://github.com/sdetweil/MagicMirror into newElectron 2019-12-10 10:54:18 -06:00
Sam Detweiler
843cd0eff6 change spectron version to match doc, update locak file 2019-12-10 10:53:41 -06:00
sam detweiler
6b6ee934a1 Merge branch 'develop' into newElectron 2019-12-10 08:31:50 -06:00
Sam Detweiler
aea57ffaf4 add new run_start.sh script 2019-12-10 08:29:18 -06:00
Sam Detweiler
87b48661fa remove forced npm install 2019-12-09 16:41:56 -06:00
Sam Detweiler
556fa44858 move travis to node 10 , latest npm 2019-12-09 16:26:49 -06:00
Sam Detweiler
1c3e196508 move travis to node 10 and latest npm 2019-12-09 16:24:16 -06:00
Sam Detweiler
9b6812ad0c add package-lock file 2019-12-09 11:15:50 -06:00
Sam Detweiler
b7944c7fa4 add changelog 2019-12-09 10:36:21 -06:00
Sam Detweiler
2fbedca746 stop helper class being erased 2019-12-09 10:33:35 -06:00
Sam Detweiler
340d04a48c add changelog entry 2019-12-09 09:52:15 -06:00
Sam Detweiler
460a383ffc add changelog 2019-12-09 09:46:45 -06:00
Sam Detweiler
52c4e3a256 add changelog update 2019-12-09 09:43:32 -06:00
sam detweiler
4338f11eb1 Merge branch 'develop' into newscripts 2019-12-09 09:40:06 -06:00
Sam Detweiler
42bab052e0 fix comment 2019-12-08 10:07:55 -06:00
Sam Detweiler
0cb377618e add support for sequential compliments usage 2019-12-08 09:28:50 -06:00
Sam Detweiler
5e4d25b957 add support for newline (\n) in compliment text 2019-12-08 08:50:00 -06:00
Sam Detweiler
153d1853fa add apt get upgrade to actually upgrade files, as OS repos are lagging 2019-12-08 08:46:41 -06:00
Sam Detweiler
22a3448461 latest fixes for install and pm2 2019-12-08 08:40:01 -06:00
Sam Detweiler
2cad869680 latest fixes for install and pm2 2019-12-08 08:35:50 -06:00
Your Name
bc912a8ea4 Merge branch 'newscripts' of https://github.com/sdetweil/MagicMirror into newscripts 2019-11-27 08:38:12 -06:00
Your Name
db9176c284 fix pm2 install needing sudo 2019-11-27 08:37:51 -06:00
Sam Detweiler
06308210c0 add support for secured apt-get repositories 2019-11-23 06:57:10 -06:00
Sam Detweiler
63d9904370 regression checking for macOS 2019-11-22 06:30:46 -06:00
Sam Detweiler
caaeff5cb7 add support for commented lines in config.js 2019-11-22 06:22:21 -06:00
Sam Detweiler
d8c93d3455 Merge branch 'newscripts' of https://github.com/sdetweil/MagicMirror into newscripts 2019-11-22 06:18:31 -06:00
Sam Detweiler
cb28e5fddc watch out for commented lines in config 2019-11-22 06:18:04 -06:00
Sam Detweiler
7d7ec1a00b updates for libc6++ on pi 0, node 10 2019-11-21 22:32:48 -06:00
Sam Detweiler
a5bc8dfa3f add package.json to update 2019-11-19 19:50:46 -06:00
sam detweiler
d74f055180 Merge pull request #28 from MichMich/develop
sync changes
2019-11-19 17:15:00 -08:00
Michael Teeuw
73be6c35a6 Merge pull request #1808 from FritzJay/develop
Use config.decimalSymbol when displaying the predicted amount of rain in weatherforecast
2019-11-13 08:01:42 +01:00
Fritz Jay
24f74e1400 Fixed spelling error. 2019-11-12 19:30:42 -08:00
Fritz Jay
8900e069f3 Updated changelog 2019-11-12 19:26:38 -08:00
Fritz Jay
1dfec119bb Fixed bug that was causing predicted amount of rain value to use DOT as a decimal separator regardless of the decimalSymbol config value. 2019-11-12 18:16:55 -08:00
Sam Detweiler
9e23d35f01 update elecgtron version 2019-11-08 13:20:39 -08:00
Sam Detweiler
cd2b240308 upgrade electron 2019-11-08 11:43:17 -08:00
Michael Teeuw
749f366a4a Merge pull request #1796 from sdetweil/fix-untrack
Fix untrack-css on MacOS
2019-10-27 15:27:29 +01:00
Sam Detweiler
420aaa92fa fix for MacOS 2019-10-27 09:14:55 -05:00
Sam Detweiler
985698bbc3 fix for no 'Xorg' process on MacOS 2019-10-27 09:13:44 -05:00
Michael Teeuw
f9c9139f20 Merge pull request #1790 from sdetweil/patch-1
left electron left in dependencies section vs pr 1788
2019-10-25 16:38:35 +02:00
Michael Teeuw
f308e7541f Merge pull request #1791 from sdetweil/newscripts
New scripts cleanuo
2019-10-25 16:09:14 +02:00
Sam Detweiler
cb7ccd7854 update readme and upgrade script to work from website, fix tabs in config sample 2019-10-25 08:46:41 -05:00
Sam Detweiler
a4953028d0 remove electron from dependencies section 2019-10-25 08:13:25 -05:00
sam detweiler
3d6485588d pr merge order left electron in dependencies section 2019-10-25 07:37:21 -05:00
Michael Teeuw
51bb9fede7 Merge pull request #1789 from sdetweil/newscripts
New scripts for install, update and pm2 config
2019-10-25 14:26:13 +02:00
Michael Teeuw
269c429959 Merge branch 'develop' into newscripts 2019-10-25 14:25:57 +02:00
Michael Teeuw
fcdc84a12a Merge pull request #1788 from sdetweil/newservermode
New servermode
2019-10-25 14:24:05 +02:00
Michael Teeuw
ecdd9734eb Merge branch 'develop' into newservermode 2019-10-25 14:23:50 +02:00
Michael Teeuw
84fc2c65af Merge pull request #1784 from MichMich/dependabot/npm_and_yarn/nwmatcher-1.4.4
Bump nwmatcher from 1.4.3 to 1.4.4
2019-10-25 14:21:31 +02:00
Sam Detweiler
c8849a17b6 add detection of xwindows running 2019-10-25 06:22:10 -05:00
Sam Detweiler
d8b49218e9 Merge branch 'newscripts' of https://github.com/sdetweil/MagicMirror into newscripts 2019-10-24 22:14:19 -05:00
Sam Detweiler
e95023e8cc remove forced arch parm for armv6 to armv7, doesn't work 2019-10-24 22:13:46 -05:00
sam detweiler
878710e2cf Add text for new upgrade script 2019-10-24 14:21:38 -05:00
Sam Detweiler
0677d0a810 add changelog info 2019-10-24 09:36:15 -05:00
Sam Detweiler
9c98fea8f4 add new upgrade/pm2 scripts, update installer script 2019-10-24 09:33:34 -05:00
Sam Detweiler
e958f33450 add support for armv6l using serveronlymode, make serveronly config option, electron install optional 2019-10-24 09:20:33 -05:00
sam detweiler
937080b011 Merge pull request #19 from MichMich/master
catch up to 2.9
2019-10-24 07:06:53 -05:00
Michael Teeuw
aee5803dd2 Merge pull request #1773 from qistoph/timestamp_log
Timestamp log
2019-10-23 13:07:06 +02:00
Chris van Marle
f1f394b871 Add merge to package-lock to fix Travis fail 2019-10-23 10:44:30 +00:00
Chris van Marle
81a32b56f0 Fix TravisCI error 2019-10-23 10:16:01 +00:00
Chris van Marle
a6aae70a55 Add UTC timestamp to console log 2019-10-23 10:16:01 +00:00
dependabot[bot]
823eb23773 Bump nwmatcher from 1.4.3 to 1.4.4
Bumps [nwmatcher](https://github.com/dperini/nwmatcher) from 1.4.3 to 1.4.4.
- [Release notes](https://github.com/dperini/nwmatcher/releases)
- [Commits](https://github.com/dperini/nwmatcher/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2019-10-22 17:12:07 +00:00
Michael Teeuw
1ff51822df Prepare 2.10.0-develop 2019-10-01 19:47:40 +02:00
Michael Teeuw
500147e130 Merge pull request #1776 from MichMich/develop
v2.9.0
2019-10-01 19:45:34 +02:00
Michael Teeuw
d90de18d99 Prepare 2.9.0 2019-10-01 19:36:51 +02:00
Michael Teeuw
ba4f48662f Merge pull request #1770 from buxxi/develop
Changes to the clock module regarding the notifications sent.
2019-10-01 18:14:41 +02:00
buxxi
d208437c05 Changes to the clock module regarding the notifications sent. Disable sending of CLOCK_SECOND when displaySeconds not set. Avoid drifting by calculating the interval each time and use setTimeout instead of setInterval. Make sure the values sent with CLOCK_SECOND and CLOCK_MINUTE has the correct values instead of starting at 00:00 on startup 2019-09-22 17:33:01 +02:00
Michael Teeuw
01faa2e1d7 Merge pull request #1768 from fewieden/feature/automated-forecast-tests
Automated weather forecast tests
2019-09-13 18:57:26 +02:00
Felix Wiedenbach
c630c387d6 it should render colored rows 2019-09-13 17:06:58 +02:00
Felix Wiedenbach
a774718607 it should render custom table class 2019-09-13 16:21:12 +02:00
Felix Wiedenbach
9430c70d0d it should render fading rows in weather forecast 2019-09-13 15:44:38 +02:00
Felix Wiedenbach
f3e893fddb it should render min and max temperatures 2019-09-13 15:08:44 +02:00
Felix Wiedenbach
11e144ca64 it should render days and icons in weather forecast 2019-09-13 14:58:04 +02:00
Felix Wiedenbach
fbceab707e draft for default weather forecast test cases 2019-09-13 13:54:55 +02:00
Felix Wiedenbach
5b2efc43b9 default weather forecast test config 2019-09-13 13:54:17 +02:00
Felix Wiedenbach
8d85d1aa2d move mocks to separate directory for better overview 2019-09-13 13:53:15 +02:00
Michael Teeuw
b469fc7577 Merge pull request #1755 from buxxi/develop
Fixing weatherforecast module not displaying rain amount if using fal…
2019-09-11 16:51:04 +02:00
Michael Teeuw
9db54831c8 Merge pull request #1766 from fewieden/feature/automated-weather-tests
Automated tests for new weather module
2019-09-11 16:45:28 +02:00
Michael Teeuw
9b88bde09a Merge pull request #1767 from roramirez/prevent-error-404-test-vendor
Prevent error CI build for 404 Test vendors
2019-09-11 16:44:24 +02:00
Felix Wiedenbach
aad03a74c5 fix test path and eslint 2019-09-11 15:58:51 +02:00
fewieden
55eb6e2e5c Add changelog entry 2019-09-11 13:51:19 +02:00
fewieden
ca07355873 adjust tests to new translations 2019-09-11 13:30:54 +02:00
fewieden
11a59e26b2 update package locks 2019-09-11 13:13:08 +02:00
fewieden
ec6d9e3521 Merge branch 'develop' into feature/automated-weather-tests
# Conflicts:
#	modules/default/weather/weather.js
#	package-lock.json
#	package.json
2019-09-11 13:07:31 +02:00
fewieden
230accd31e fix current weather tests 2019-09-11 12:59:55 +02:00
fewieden
a24a4a747e current weather tests 2019-09-11 12:27:06 +02:00
Rodrigo Ramírez Norambuena
1e97b5c27a Prevent error CI build for 404 Test vendors 2019-09-10 18:24:45 -03:00
buxxi
a314ea1aa3 Fixing weatherforecast module not displaying rain amount if using fallback endpoint 2019-08-18 12:44:28 +02:00
Michael Teeuw
a77128d5f7 Merge pull request #1752 from roramirez/mode-en.json-translation
Revert change mode file en.json for translations
2019-08-16 13:18:01 +02:00
Michael Teeuw
1b2673367e Merge pull request #1753 from roramirez/tests-404-vendors
Tests 404 vendors
2019-08-16 13:17:46 +02:00
Rodrigo Ramírez Norambuena
ce10e91a60 Merge remote-tracking branch 'origin/develop' into tests-404-vendors 2019-08-09 01:47:35 -04:00
Rodrigo Ramírez Norambuena
5244b37d2c Revert change mode file en.json for translations
This change it done in commit c80e04fe8d
and this patch revert to old status for this file.
2019-08-09 01:29:01 -04:00
Michael Teeuw
1239c6716b Merge pull request #1749 from putera/develop
Adding a Malay translations
2019-08-06 07:48:03 +02:00
Zulkifli Mohamed
67f6258ab0 Adding a Malay translations 2019-08-06 08:39:57 +08:00
Zulkifli Mohamed
9f63172b43 Adding a Malay translations 2019-08-06 08:36:39 +08:00
Michael Teeuw
bd8bfeb525 Merge pull request #1745 from roramirez/update-year-license
Update year Copyright License
2019-08-03 18:47:28 +02:00
Michael Teeuw
4918c4ef4b Merge pull request #1744 from roramirez/custom-css-step-1
Skip from worktree the css/custom.css:
2019-08-03 18:47:04 +02:00
Michael Teeuw
00d9ea9344 Merge pull request #1743 from roramirez/lint
linter fixes
2019-08-03 18:45:58 +02:00
Michael Teeuw
33537cde76 Merge pull request #1742 from roramirez/es-update
Add PRECIP for the Spanish translation
2019-08-03 18:45:27 +02:00
Michael Teeuw
3d5db5c9ca Merge pull request #1741 from roramirez/remove-comment-bash-lines
installer: Remove comment lines added in PR #1715
2019-08-03 18:44:58 +02:00
Michael Teeuw
fdf339514d Merge pull request #1748 from roramirez/fix-build
Fix Build Failed in Travis CI:
2019-08-03 18:32:01 +02:00
Rodrigo Ramírez Norambuena
937c4e485a Merge remote-tracking branch 'origin/develop' into remove-comment-bash-lines 2019-08-02 00:48:44 -04:00
Rodrigo Ramírez Norambuena
837c060e1f Merge remote-tracking branch 'origin/develop' into custom-css-step-1 2019-08-02 00:47:24 -04:00
Rodrigo Ramírez Norambuena
00bacd7dde Merge remote-tracking branch 'origin/develop' into es-update 2019-08-02 00:46:54 -04:00
Rodrigo Ramírez Norambuena
781031775e Merge remote-tracking branch 'origin/develop' into lint 2019-08-02 00:46:32 -04:00
Rodrigo Ramírez Norambuena
97aee3d375 Merge remote-tracking branch 'origin/develop' into update-year-license 2019-08-02 00:46:06 -04:00
Rodrigo Ramírez Norambuena
34698751f2 Fix Build Failed in Travis CI:
This commit set trusty as image to use and revert this commit changes

Add xvfb as service: 3c31460f2f
Remove failing script: d5cb60b19c
2019-08-02 00:31:43 -04:00
Michael Teeuw
3c31460f2f Add xvfb as service. 2019-07-31 09:53:46 +02:00
Michael Teeuw
d5cb60b19c Remove failing script. 2019-07-31 09:49:22 +02:00
Rodrigo Ramírez Norambuena
3a7cfe3208 Enable Test e2e/vendor_spec.js 2019-07-26 02:21:56 -04:00
Rodrigo Ramírez Norambuena
f079cdad64 Merge remote-tracking branch 'origin/develop' into tests-404-vendors 2019-07-26 02:19:10 -04:00
Rodrigo Ramírez Norambuena
2822303138 Skip from worktree the css/custom.css:
On the next release the css/custom.css will rename to
css/custom.css.sample

This change run git instructions to detach the file from own local
repository. This instructions are called in untrack-css.sh file from
run-start.sh and npm postinstall step

Reference #1540
2019-07-26 02:12:10 -04:00
Rodrigo Ramírez Norambuena
e38de75520 Update year Copyright License 2019-07-26 02:04:38 -04:00
Rodrigo Ramírez Norambuena
2723604d3e installer: Remove comment lines added in PR #1715 2019-07-26 01:25:54 -04:00
Rodrigo Ramírez Norambuena
82ee051c1a linter fixes 2019-07-26 01:25:26 -04:00
Rodrigo Ramírez Norambuena
7bdf49b7e0 Add PRECIP for the Spanish translation 2019-07-26 01:24:59 -04:00
Michael Teeuw
32521aba6b Merge pull request #1724 from vincep5/develop
Fix for weather module not refreshing data after exception
2019-07-11 20:04:30 +02:00
vincep5
819c4cde1c Fix for weather module not refreshing data after exception 2019-07-11 12:49:24 -05:00
Michael Teeuw
776c486b1a Merge pull request #1720 from nischi/master
Fixing send notification in newsfeed module
2019-07-09 10:43:09 +02:00
Michael Teeuw
bcd97120a4 Merge branch 'develop' into master 2019-07-09 10:33:29 +02:00
Thierry Nischelwitzer
312bfb8509 add changes to changelog 2019-07-09 10:24:43 +02:00
Thierry Nischelwitzer
11c9a50931 send NEWS_FEED notification also for the first newsmessage which are shown 2019-07-09 10:20:02 +02:00
Thierry Nischelwitzer
94c0656bcd update to 2.8 2019-07-02 19:38:17 +02:00
Michael Teeuw
13313d0b25 Fix changelog. 2019-07-01 20:27:37 +02:00
Michael Teeuw
3a20db1d76 Merge pull request #1716 from sdetweil/newupdater
fix updatenotification module to not crash
2019-07-01 20:25:59 +02:00
Michael Teeuw
00148b4cc8 Prepare 2.9.0-develop 2019-07-01 20:22:52 +02:00
Michael Teeuw
a31546b1ff Merge pull request #1717 from MichMich/develop
Release 2.8.0
2019-07-01 20:11:40 +02:00
Michael Teeuw
361b62b8e2 Add update info. 2019-07-01 20:05:28 +02:00
sam detweiler
37327b77a7 Merge branch 'develop' into newupdater 2019-07-01 12:56:01 -05:00
Sam Detweiler
7ef8a5bb11 fix conflict with develop branch 2019-07-01 12:45:40 -05:00
Sam Detweiler
11cfb8af32 Merge branch 'newupdater' of https://github.com/sdetweil/MagicMirror into newupdater
pull update
2019-07-01 12:36:52 -05:00
Sam Detweiler
7315f7d283 fix conflict with master repo develop branch 2019-07-01 12:35:47 -05:00
Michael Teeuw
7d58eb718e Prepare release 2.8.0 2019-07-01 19:06:26 +02:00
Michael Teeuw
651be76776 Merge pull request #1715 from sdetweil/newinstaller
update installer to handle non-pi and other issues
2019-07-01 18:36:08 +02:00
sam detweiler
4a5c6f1d39 Update CHANGELOG.md
add info on updatenotification module improvements
2019-06-30 07:18:45 -05:00
sam detweiler
5745d71d6a Update CHANGELOG.md
add info on installer changes
2019-06-30 06:57:41 -05:00
Sam Detweiler
db62b7421a update installer for npm missing, non-PI platforms, mac option on pm2 install 2019-06-29 16:02:44 -05:00
Sam Detweiler
4084c57789 fix updatenotification to not crash 2019-06-29 15:59:03 -05:00
Michael Teeuw
f90bec985a Fix merge issue. 2019-06-27 09:29:01 +02:00
Michael Teeuw
90f911c529 Fix Merge Issue 2019-06-27 09:27:24 +02:00
Michael Teeuw
6c88b106db Merge pull request #1713 from alltopafi/weather-module-location-header
allow location property in config,js to be used as header
2019-06-27 09:24:28 +02:00
Michael Teeuw
cef69d1b97 Merge pull request #1711 from NiekertDev/patch-1
Fix missing '#' (pound) in link
2019-06-27 09:23:10 +02:00
Jesse Alltop
f76a7fb331 allow location property in config,js to be used as header 2019-06-26 19:31:16 -05:00
Niekert
3e7b8b0663 Fix missing '#' (pound) in link 2019-06-24 17:41:51 +02:00
Josef Spitzlberger
a6eb3ad037 added three more class names to 'newsfeed.js'
added to 'newsfeed.js' in order to design the news article better with css, three more class-names were introduced: newsfeed-desc, newsfeed-desc, newsfeed-desc
2019-06-21 13:08:36 +02:00
Josef Spitzlberger
9468749384 added three class names
in order to design the news article better with css, three more class-names were introduced: newsfeed-desc, newsfeed-desc, newsfeed-desc
2019-06-21 13:05:40 +02:00
Michael Teeuw
37417fa1bb Merge pull request #1706 from vincep5/develop
Adding sunrise/sunset to weathergov
2019-06-18 14:06:52 +02:00
vincep5
217146351e changelog notes 2019-06-17 10:25:33 -05:00
vincep5
818ec33cef Adding sunrise/sunset to weathergov 2019-06-17 10:20:49 -05:00
Michael Teeuw
cd1671830a Merge pull request #1704 from Hg347/develop
Develop
2019-06-15 13:27:21 +02:00
Christoph Hagedorn
a5fca87dd0 updated info: fixed race condition on module update 2019-06-15 11:49:57 +02:00
Christoph Hagedorn
f06ce55626 Merge remote-tracking branch 'upstream/develop' into develop 2019-06-15 11:33:44 +02:00
Christoph Hagedorn
853085e755 added null check for moduleWrapper
(fixes race condition if element is updated)
2019-06-15 11:32:03 +02:00
Michael Teeuw
2b7accaf68 Merge pull request #1703 from rejas/fix_eslint_errors_automatically
Fix tests
2019-06-14 14:39:12 +02:00
Veeck
5533d93172 Update changelog 2019-06-14 14:06:36 +02:00
Veeck
f0e8c865fe Fix markdown error 2019-06-14 14:03:58 +02:00
Veeck
36400c0a83 Fix some eslint errors from previous merges 2019-06-14 14:03:07 +02:00
Veeck
c5383557b5 Pass fix options to eslint 2019-06-14 14:02:48 +02:00
Michael Teeuw
b645007884 Updated the fetchedLocationName (See PR: #1702) 2019-06-14 13:42:59 +02:00
Michael Teeuw
63ac137206 Merge branch 'mattdb-calendar-rrule' into develop 2019-06-14 13:32:20 +02:00
Michael Teeuw
808cbf8e0b Fix Typecheck. 2019-06-14 13:32:07 +02:00
Michael Teeuw
8ed77ba0c7 Merge 2019-06-14 13:31:59 +02:00
Michael Teeuw
66c74c51e4 Merge branch 'rejas-cleanups' into develop 2019-06-14 13:19:43 +02:00
Michael Teeuw
7a272ef0ab Merge conflict. 2019-06-14 13:19:29 +02:00
Michael Teeuw
60b817ec8e Merge branch 'cybex-dev-develop' into develop 2019-06-14 13:05:36 +02:00
Michael Teeuw
a41ecaf7cc Merge 2019-06-14 13:05:22 +02:00
Matt Bauer
d41afa0e53 Calendar fetch error is still a loading result
Also log error on node side as well.
2019-06-13 15:52:49 -05:00
Matt Bauer
a6284e05e5 Update rrule and request dependencies for calendar’s vendored ical.js
rrule-alt has not been updated in some time, while the main rrule has. ical.js is using updated rrule. Getting rid of rrule-alt would affect some third-party modules, however, so we should keep it around for now at least.
2019-06-13 14:45:32 -05:00
Matt Bauer
e56f61441d Repeating event handling “robustified” 2019-06-13 13:44:54 -05:00
Matt Bauer
7b4b7dffa2 Update calendar’s vendored ical.js 2019-06-13 13:44:54 -05:00
Michael Teeuw
77a214ef9c Merge pull request #1695 from Jason-Cooke/patch-2
docs: fix typo
2019-06-13 20:16:15 +02:00
Michael Teeuw
cf2723aafb Merge pull request #1699 from Hg347/calendar-1696
fixed calendar, issue 1696, ics file start date is not date type
2019-06-13 20:15:53 +02:00
Christoph Hagedorn
499e99cfc5 fixed url 2019-06-13 18:11:41 +02:00
Michael Teeuw
a7b83e9fe3 Merge pull request #1637 from maloakes/master
Add Weather provider UK Met Office
2019-06-13 16:51:09 +02:00
Christoph Hagedorn
964504b9c3 curr.exdates[i] might not be a date, so toISOString() may fail too 2019-06-11 23:24:03 +02:00
Christoph Hagedorn
ec65e66c58 added fixed issue in changelog 2019-06-11 22:43:48 +02:00
Christoph Hagedorn
e694b080be curr.start is not always a date type (depends on ics file). A type check
has been added.
2019-06-09 17:46:48 +02:00
Malcolm Oakes
70894b3938 Corrected merge problem 2019-06-08 15:34:37 +01:00
Malcolm Oakes
fb7115fc13 Merge remote-tracking branch 'upstream/develop' 2019-06-07 16:44:42 +01:00
Malcolm Oakes
a619fc4fef Allow temp and wind units to be specified separately if required. 2019-06-07 15:27:08 +01:00
Jason Cooke
7c6c5fd06f docs: fix typo 2019-06-07 10:34:55 +12:00
Malcolm Oakes
2970568eab Merge branch 'master' of https://github.com/maloakes/MagicMirror
Merge latest from github
2019-06-06 10:59:47 +01:00
rejas
62cb3a610e Actually only test json files in jsonlint, rename stylelintrc for clarity 2019-06-05 20:33:53 +02:00
rejas
f600c163ca Fix intendation 2019-06-05 18:30:04 +02:00
rejas
77cb68e5ac Remove unnecessary entry 2019-06-05 18:29:51 +02:00
rejas
c6314576aa Fix duplicate json entry 2019-06-05 17:04:51 +02:00
rejas
515c183070 Fix a comparison that was an assignement 2019-06-05 17:01:54 +02:00
rejas
63b9c0e6b8 More dependency updates and cleanup of old ones 2019-06-05 16:54:32 +02:00
rejas
84893b1664 Upgrade markdown lint to latest 2019-06-05 10:26:20 +02:00
rejas
835668d96d Add eslint semi rule 2019-06-05 10:23:58 +02:00
rejas
2bce15dc6e Remove multiple-empty-lines 2019-06-05 10:03:28 +02:00
rejas
8f1a212b52 More typo fixes 2019-06-05 09:46:59 +02:00
rejas
5c08bde0fa More == -> === and != -> !== fixes 2019-06-05 09:32:10 +02:00
rejas
98a84c031e Better fix for translator comparison 2019-06-05 08:55:17 +02:00
rejas
ea1715384e Revert "Revert "Fix some == with ===""
This reverts commit d9a4ee4f65.
2019-06-05 08:48:22 +02:00
rejas
d9a4ee4f65 Revert "Fix some == with ==="
This reverts commit 5d39d85215.
2019-06-04 11:04:47 +02:00
rejas
62017c4661 Update changelog 2019-06-04 10:43:16 +02:00
rejas
702b98f510 Cleanup imports 2019-06-04 10:43:06 +02:00
rejas
69aafd7d6a Fix missing ; and == and some missing vars 2019-06-04 10:19:25 +02:00
rejas
c1559dd8c8 More spelling fixes 2019-06-04 10:15:50 +02:00
rejas
4df1895560 Fix badge for travis which moved to .com from .org 2019-06-04 10:14:37 +02:00
rejas
cac92da6e4 Remove unused dependency, move mocha-logger to dev 2019-06-04 10:13:58 +02:00
rejas
5d39d85215 Fix some == with === 2019-06-04 09:51:51 +02:00
rejas
99b4c43fd5 Fix typos and some whitespaces 2019-06-04 09:33:53 +02:00
Charles Dyason
b2f59d6813 Added clock notifications for elapsed time.
Added notifications to default `clock` module to broadcast:
 - `CLOCK_SECOND` for a clock second, and 
 - `CLOCK_MINUTE` for a clock minute having elapsed.

Each notification is broadcasted with the corresponding value i.e. `CLOCK_SECOND` -> `30` and `CLOCK_MINUTE` -> `5` .
2019-06-03 14:01:27 +02:00
Charles Dyason
c7d79bb893 Updated config.js.sample with new configuration entries
Added `broadcastNewsFeeds: true` and `broadcastNewsUpdates: true` to the `config.js.sample` file
2019-05-31 19:45:58 +02:00
Charles Dyason
aa80c468c4 Added broadcasting of news feeds with incremental updates
Added ability to enable broadcasting of news feed items with `NEWS_FEED` notification and broadcasting updated news feed items with `NEWS_FEED_UPDATE` to other modules. This is merged into the default `newsfeed` module.

One can set ability to broadcast the whole news feed or broadcast only updated news feed items.
2019-05-31 16:37:47 +02:00
Charles Dyason
6008cba2db Minor typo corrections 2019-05-31 16:17:09 +02:00
Michael Teeuw
caf56671dc Merge pull request #1682 from kolbyjack/update/optimize-clock-update
Only call updateDom in clock.js when the content has changed
2019-05-19 07:34:05 +02:00
Jon Kolb
44eccf5ee4 Only call updateDom in clock.js when the content has changed 2019-05-18 20:02:22 -04:00
Michael Teeuw
8f96e4847c Merge pull request #1674 from eouia/develop
allow html5 autoplay
2019-05-17 16:29:48 +02:00
Michael Teeuw
ae3e307f33 Merge pull request #1677 from mattdb/develop
Calendar: only slice multi-day events when they actually span midnight
2019-05-17 16:28:30 +02:00
Michael Teeuw
3fe0c758ed Merge pull request #1678 from vincep5/develop
Fix City List
2019-05-17 16:27:18 +02:00
vincep5
7240fb32d2 update city list url 2019-05-14 15:00:30 -05:00
vin p
e23a3461ba Merge pull request #6 from MichMich/develop
Develop
2019-05-14 14:45:48 -05:00
Matt Bauer
727eb0cfd7 Calendar: only slice multi-day events when they actually span midnight 2019-05-14 10:08:53 -05:00
Seongnoh Sean Yi
3796076360 change Squotes to Dquotes 2019-05-13 23:24:59 +02:00
Seongnoh Sean Yi
ef9576f8c4 Fixed:allowance HTML5 autoplay
From commit: 94fc4cb8a2
2019-05-13 21:26:28 +02:00
Seongnoh Sean Yi
94fc4cb8a2 allow html5 autoplay policy
From Chrome 66, autoplay policy is changed. This 1 line can help to play html5 audio and video without user-gesture-allowance in MagicMirror
2019-05-13 21:19:50 +02:00
Michael Teeuw
ccb248db91 Create stale.yml 2019-05-07 21:09:11 +02:00
Michael Teeuw
e7de447725 Merge pull request #1655 from spitzlbergerj/master
default module calendar - added config option nextDaysRelative
2019-05-07 20:49:43 +02:00
Michael Teeuw
7ff5429cb7 Remove newline. 2019-05-07 20:41:02 +02:00
Michael Teeuw
17c581b4aa Update changelog. 2019-05-07 20:35:29 +02:00
Josef Spitzlberger
41e5c2939f added config option nextDaysRelative
added configuration option nextDaysRelative to always display today's and tomorrow's appointments in relative mode, even if timeformat is set to absolute
2019-05-07 20:35:28 +02:00
Josef Spitzlberger
7e2ab51298 added Config Option nextDaysRelative
added configuration option nextDaysRelative to always display today's and tomorrow's appointments in relative mode, even if timeformat is set to absolute
2019-05-07 20:34:35 +02:00
Michael Teeuw
03f917fd9c Update changelog. 2019-05-07 20:31:41 +02:00
Josef Spitzlberger
d24e10a728 added config option nextDaysRelative
added configuration option nextDaysRelative to always display today's and tomorrow's appointments in relative mode, even if timeformat is set to absolute
2019-05-07 20:18:32 +02:00
Josef Spitzlberger
a17ac1c16e added Config Option nextDaysRelative
added configuration option nextDaysRelative to always display today's and tomorrow's appointments in relative mode, even if timeformat is set to absolute
2019-05-07 20:18:08 +02:00
Michael Teeuw
dd6b972be4 Merge pull request #1628 from kolbyjack/feature/calendar-past-events
Add includePastEvents global and calendar-specific settings
2019-05-07 20:12:37 +02:00
Michael Teeuw
7d0c9ba0d9 Merge pull request #1666 from kevbodavidson/patch-1
Update config.js.sample
2019-05-07 20:07:32 +02:00
Michael Teeuw
6fa211634f Merge branch 'develop' into patch-1 2019-05-07 20:07:17 +02:00
Michael Teeuw
1ca24c7f38 Merge branch 'patch-1' of https://github.com/kevbodavidson/magicmirror into pr/kevbodavidson/1666 2019-05-07 20:06:06 +02:00
Michael Teeuw
bcfbccae59 Update changelog. 2019-05-07 20:06:03 +02:00
kevbodavidson
20b75ce6ed Update config.js.sample 2019-05-07 20:04:55 +02:00
Michael Teeuw
2ea15d7bf5 Merge pull request #1660 from magic21nrw/master
Update ical.js #1631
2019-05-07 19:53:04 +02:00
Michael Teeuw
18e14c597f Merge branch 'master' of https://github.com/magic21nrw/magicmirror-1 into pr/magic21nrw/1660 2019-05-07 19:46:26 +02:00
Michael Teeuw
06d75999d7 Update changelog. 2019-05-07 19:46:23 +02:00
magic21nrw
7047a7cae6 Update ical.js
Fixed Bug with more than one calendar.
2019-05-07 19:45:28 +02:00
Michael Teeuw
20d2124867 Merge pull request #1661 from vincep5/develop
Update Feels to Feels like
2019-05-07 19:41:01 +02:00
kevbodavidson
3c7a85361e Update config.js.sample 2019-04-24 17:19:47 -04:00
vincep5
1ffbbdac99 Update English Feels to Feels like 2019-04-17 21:16:36 -05:00
vin p
eeccca8842 Merge pull request #5 from MichMich/develop
Develop
2019-04-17 21:08:04 -05:00
magic21nrw
e2d2dbd2ba Update ical.js
Fixed Bug with more than one calendar.
2019-04-17 20:05:33 +02:00
Jon Kolb
c61f0409fb Rename includePastEvents calendar config option to broadcastPastEvents 2019-04-17 08:16:04 -04:00
Jon Kolb
806be39a6d Add includePastEvents global and calendar-specific settings 2019-04-17 08:13:51 -04:00
Michael Teeuw
6170b0d059 Merge pull request #1653 from darkniki/patch-2
Update CHANGELOG.md
2019-04-17 13:51:49 +02:00
Michael Teeuw
bca838495e Merge pull request #1652 from michaelarnauts/1651-calendar-fix
Fix sliceMultiDayEvents so it respects maximumNumberOfDays
2019-04-17 13:51:07 +02:00
Michael Teeuw
e31a747250 Merge pull request #1636 from darkniki/patch-1
Update ru.json
2019-04-17 13:49:46 +02:00
Michael Teeuw
4cf430e146 Merge pull request #1646 from michaelarnauts/patch-3
sliceMultiDayEvents is false by default
2019-04-17 12:17:44 +02:00
darkniki
ef554cf6ec Update CHANGELOG.md 2019-04-11 14:46:32 +03:00
Thierry Nischelwitzer
fcd91daee6 Merge remote-tracking branch 'upstream/master'
Update MagicMirror
2019-04-10 18:07:55 +02:00
Michaël Arnauts
396c78b46a Changelog 2019-04-10 10:35:11 +02:00
Michaël Arnauts
4677a3fd89 Fix many issues with sliceMultiDayEvents 2019-04-10 10:31:55 +02:00
Michael Teeuw
834ab5c6b9 Merge pull request #1642 from michaelarnauts/patch-2
Handle SIGTERM messages
2019-04-09 09:53:16 +02:00
Michael Teeuw
1599e8f7ff Merge pull request #1647 from retroflex/develop
Added option to show location of calendar events
2019-04-09 09:52:39 +02:00
Michael Teeuw
7430704002 Merge pull request #1635 from ZakarFin/translations
Add translations for FI week/feels
2019-04-09 09:50:31 +02:00
retroflex
4d7b19c8cb Added calendar event location 2019-04-08 21:57:32 +02:00
retroflex
40f535cf3c Added possibility to show event location. 2019-04-08 21:49:19 +02:00
Michaël Arnauts
17425dcaf7 Add CHANGELOG entry. Fix test. 2019-04-07 16:41:05 +02:00
Michaël Arnauts
6b87fc64af sliceMultiDayEvents is false by default 2019-04-07 15:26:25 +02:00
Thierry Nischelwitzer
35174b0348 bugfixing calendar module 2019-04-07 11:15:16 +02:00
Michaël Arnauts
fd53541719 Handle SIGTERM messages 2019-04-06 20:50:54 +02:00
Malcolm Oakes
7c68bff9f5 Update from develop branch 2019-04-03 16:24:42 +01:00
Malcolm Oakes
6c64991951 Update from develop branch 2019-04-03 16:23:55 +01:00
Malcolm Oakes
ca04ff0f37 Update from develop branch 2019-04-03 16:22:26 +01:00
Malcolm Oakes
7742575cab Merge latest from develop branch 2019-04-03 16:16:59 +01:00
Malcolm Oakes
cdcdce702d Changes for UK Met Office weather data provider 2019-04-03 15:46:45 +01:00
Malcolm Oakes
c80e04fe8d Add new weather data provider UK Met Office (Datapoint) 2019-04-03 15:19:32 +01:00
darkniki
c3b3ea107a Update ru.json
Added "FEELS" translation
2019-04-03 08:31:40 +03:00
Sami Mäkinen
1dc530c549 Add translations for FI week/feels 2019-04-02 22:59:34 +03:00
Michael Teeuw
8b0b70e757 Prepare 2.8.0-develop. 2019-04-02 09:55:20 +02:00
Michael Teeuw
b508a629e8 Merge pull request #1632 from MichMich/fix-2.7.1
Fix package.json version number.
2019-04-02 09:50:36 +02:00
Michael Teeuw
abb0dadead Fix package.json version number. 2019-04-02 09:34:42 +02:00
Michael Teeuw
e6fb18df56 Merge pull request #1627 from MichMich/develop
Release 2.7.0
2019-04-01 21:54:05 +02:00
Michael Teeuw
43ba13f3bc Prepare 2.8.0-develop. 2019-04-01 21:26:39 +02:00
Michael Teeuw
ba705f5563 Fix Lint Issue. 2019-04-01 20:55:24 +02:00
Michael Teeuw
34e188ec1f Typo. 2019-04-01 20:48:30 +02:00
Michael Teeuw
b0d97dd170 Prepare for release. 2019-04-01 20:47:07 +02:00
Michael Teeuw
7caeae61f5 Merge pull request #1625 from qistoph/fix_weather_title
Update current weather header only if not undefined
2019-04-01 20:36:37 +02:00
Chris van Marle
416ace4c86 Update current weather header only if not undefined 2019-03-29 13:15:58 +01:00
Chris van Marle
979041ee91 Fix typo in variable name fetchedLocationName 2019-03-29 13:13:56 +01:00
Michael Teeuw
f0939b8af5 Merge pull request #1622 from JasMich/develop
Develop
2019-03-28 19:12:17 +01:00
Jasper Michalke
d7a7002bdd Finally added all required files for Klingon translations 2019-03-28 14:57:45 +01:00
Jasper Michalke
d9601de075 Update translations.js
Added Klingon translations file to translations list
2019-03-28 14:55:01 +01:00
Jasper Michalke
ef570558cf Update CHANGELOG.md 2019-03-28 14:53:28 +01:00
Michael Teeuw
db3e81408f Merge pull request #1618 from dgburr/newsfeed-article-info-request
Add support for the ARTICLE_INFO_REQUEST notification
2019-03-28 12:45:19 +01:00
Michael Teeuw
e8771cdea8 Merge branch 'develop' into newsfeed-article-info-request 2019-03-28 12:11:06 +01:00
Michael Teeuw
057eab2173 Merge pull request #1619 from dgburr/changelog-fix
Fix changelog
2019-03-28 12:09:53 +01:00
Michael Teeuw
e2a7024eeb Merge pull request #1620 from garyray-k/master
Spelling correction in README.md
2019-03-28 12:09:35 +01:00
Michael Teeuw
4650986dfa Merge pull request #1621 from kolbyjack/feature/calendar-name
Add name property to calendars
2019-03-28 12:09:09 +01:00
Jon Kolb
868b5e4617 Add name property to calendars
When consuming CALENDAR_EVENTS broadcasts, it is useful for other
modules to be able to identify which calendar a specific event
came from, for filtering/display purposes.
2019-03-26 19:51:44 -04:00
Gary Krause
f12860c7b1 Spelling correction in README.md
small spelling correction.
2019-03-25 14:07:53 -04:00
Daniel Burr
8f751812a6 The note which I added to the changelog in commit 80eef2ab8c was in the 2.6.0 section instead of 2.7.0 2019-03-25 01:19:00 +01:00
Daniel Burr
07a5092eb3 Add note to changelog 2019-03-25 01:13:02 +01:00
Daniel Burr
29c9c92ba6 Add support for the ARTICLE_INFO_REQUEST notification
Upon reception of an ARTICLE_INFO_REQUEST notification, newsfeed will
respond with the notification ARTICLE_INFO_RESPONSE, containing the
fields 'title', 'source', 'date', 'desc' and 'url'.
2019-03-25 01:08:59 +01:00
Michael Teeuw
edfa327158 Merge pull request #1602 from qistoph/develop
Notifications delay time and background color
2019-03-19 09:36:24 +01:00
Michael Teeuw
869a6e66cc Merge pull request #1611 from ZakarFin/node-upgrade
Node.js upgrade to 10.x (installer)
2019-03-19 09:36:13 +01:00
Sami Mäkinen
36abbfc048 Changelog 2019-03-18 23:12:44 +02:00
Sami Mäkinen
cfc3e6d2f4 Merge branch 'master' into develop 2019-03-18 22:51:23 +02:00
Sami Mäkinen
e38dbee6a6 Node 9 -> 10 (LTS) 2019-03-18 22:23:10 +02:00
Michael Teeuw
68a7c857c0 Merge pull request #1610 from dgburr/documentation-fix
Fix documentation of `useKMPHwind` option in currentweather
2019-03-18 17:09:04 +01:00
Daniel Burr
80eef2ab8c Fix documentation of useKMPHwind option in currentweather 2019-03-18 16:23:03 +01:00
Michael Teeuw
1d652aa746 Merge branch 'develop' into develop 2019-03-18 16:08:13 +01:00
Michael Teeuw
b07c43aa36 Merge pull request #1599 from rejas/use_getHeader
Use getHeader instead of data.header
2019-03-18 16:04:45 +01:00
Chris van Marle
3880c8dc2c Restyle notification colors 2019-03-14 14:11:14 +01:00
Chris van Marle
c0ab2ac297 Support timer in notifications too 2019-03-14 14:11:10 +01:00
Veeck
de684dcb63 Fix typos in jsdoc 2019-03-11 14:03:01 +02:00
Veeck
29ef1db86b Remove whitespace 2019-03-08 11:33:02 +01:00
Veeck
5dfd8a61be Update changelog 2019-03-08 11:29:48 +01:00
Veeck
358e2b3ccf Use getHeader instead of data.header when creating the DOM 2019-03-08 11:25:38 +01:00
Michael Teeuw
4203065a06 Merge pull request #1590 from vincep5/develop
Adding new weather provider for weather.gov
2019-03-07 09:18:40 +01:00
vincep5
bc4e0190a0 readme formatting 2019-03-06 21:33:13 -06:00
Michael Teeuw
dd7004cbc9 Merge pull request #1598 from rejas/more_verbose_error_message
More verbose error message when config.js is broken
2019-03-06 11:48:45 +01:00
Veeck
bdc5c8f620 Fix typos in changelog 2019-03-06 10:02:01 +01:00
Veeck
02d36e22ee Show more verbose error message on console if the config is malformed 2019-03-06 10:01:44 +01:00
Michael Teeuw
331e8c4aa6 Merge pull request #1594 from rejas/patch-1
Updated modernizr code in alert module
2019-03-05 10:26:47 +01:00
Veeck
d622277c11 Updated modernizr code to latest version 2019-03-02 08:40:20 +01:00
Veeck
8f781ea4ab Small typo fix in link 2019-03-02 08:30:08 +01:00
vincep5
ebc1e5bf12 tidy up code for weather 2019-02-27 09:09:37 -06:00
Michael Teeuw
ce9a61622e Merge pull request #1592 from MichMich/revert-1564-develop
Revert "Added autoLocation and autoTimezone option for weather modules and clock respectively."
2019-02-27 13:41:13 +01:00
Michael Teeuw
e4891e699f Revert "Added autoLocation and autoTimezone option for weather modules and clock respectively." 2019-02-27 13:33:14 +01:00
vincep5
d8765578c8 weather.gov N arrow 2019-02-26 14:51:09 -06:00
vincep5
3a034ecec8 Adding new weather provider for weather.gov 2019-02-26 14:06:00 -06:00
vin p
a3dea45089 Merge pull request #4 from MichMich/develop
Develop
2019-02-26 13:59:38 -06:00
Michael Teeuw
de99c8a5e4 Merge pull request #1589 from hudashot/calendar
Regularly trigger ADD_CALENDAR to ensure calendar fetcher is running
2019-02-26 11:17:30 +01:00
hudashot
d3b8dbeea0 Regularly trigger ADD_CALENDAR to ensure calendar fetcher is running 2019-02-26 08:12:02 +00:00
Michael Teeuw
cff2f64155 Merge pull request #1586 from Tom-Hirschberger/feature/alert-fontawesome
Feature/alert fontawesome
2019-02-24 19:58:44 +01:00
Thomas Hirschberger
7b8de35405 Update CHANGELOG.md 2019-02-24 11:55:46 +01:00
Tom Hirschberger
02ae0df2cc add font-awesome.css to styles of alert.js 2019-02-24 11:48:14 +01:00
Michael Teeuw
b386cea69d Merge pull request #1582 from mdobsovic/develop
Slovak translation added
2019-02-23 12:09:48 +01:00
Michal Dobsovic
758ffb75a9 Added sk to translations.js 2019-02-23 10:37:24 +01:00
Michal Dobsovic
78fbc7f392 Modified CHANGELOG.md 2019-02-20 22:15:24 +01:00
Michal Dobsovic
9c58472576 Merge branch 'develop' of https://github.com/mdobsovic/MagicMirror into develop 2019-02-20 22:07:19 +01:00
Michal Dobsovic
f8c4afc228 Slovak translation added 2019-02-20 22:02:42 +01:00
Michael Teeuw
b169d65619 Merge pull request #1577 from sdetweil/develop
fix relative date fulldate events to use start of day to start of day diff… issue 1572
2019-02-19 15:47:57 +01:00
Michael Teeuw
9bf0d4f804 Merge pull request #1580 from lavolp3/lavolp3-patch-1
Changed defaut dateEndFormat
2019-02-19 15:47:41 +01:00
Dirk
4443f57f8a Update CHANGELOG.md 2019-02-19 14:10:17 +01:00
Sam Detweiler
ea5d8590d5 Merge branch 'develop' of https://github.com/sdetweil/MagicMirror into develop 2019-02-19 07:08:46 -06:00
sam detweiler
5d5feb4c71 Merge pull request #1 from MichMich/develop
Develop
2019-02-19 07:08:13 -06:00
Dirk
feb5351ec3 changed default calendarEndDate to "LT"
changed default calendarEndDate to "LT" to show local times for event end times. 
Can still be set to a different value by the user
2019-02-19 14:07:01 +01:00
Sam Detweiler
7630c25ef3 add future date offset correction for emergency date values in absolute mode 2019-02-19 07:06:22 -06:00
Michael Teeuw
24238094e5 Fix url. 2019-02-19 13:43:23 +01:00
Michael Teeuw
7cc9a03db8 Merge pull request #1578 from lavolp3/splitDates
Add "sliceMultiDayEvents" option in calendar module
2019-02-19 09:13:33 +01:00
Dirk
2b2e8508d9 Update calendar.js
Small updates for travis cr check
2019-02-18 22:38:28 +01:00
Dirk
a70716f225 Merge branch 'splitDates' of https://github.com/lavolp3/MagicMirror into splitDates 2019-02-18 21:11:58 +01:00
Dirk
d9fcc46994 included split function to split multiday events 2019-02-18 21:11:24 +01:00
Dirk
2d8acec6f0 Update CHANGELOG.md 2019-02-18 21:04:56 +01:00
Dirk
cd06d8c63a Merge pull request #5 from MichMich/develop
Develop
2019-02-18 21:02:46 +01:00
Sam Detweiler
a06ca55107 fix relative date fulldate events to use start of dat to start of day difference, fix extra space in changelog 2019-02-18 07:30:46 -06:00
Sam Detweiler
9686a9ba77 fix relative date fulldate events to use start of dat to start of day difference 2019-02-18 07:18:07 -06:00
Michael Teeuw
f7f4043ccd Merge pull request #1571 from kolbyjack/develop
Fix null dereference in moduleNeedsUpdate when the module isn't visible
2019-02-15 13:57:24 +01:00
Michael Teeuw
b7b55173a6 Merge pull request #1573 from vincep5/develop
weather module adjustments for rain and snow
2019-02-15 13:56:58 +01:00
Michael Teeuw
954253c7e2 Remove Slack. 2019-02-15 11:15:06 +01:00
vincep5
cbe4d2cd7f weather module adjustments for rain and snow 2019-02-14 13:00:40 -06:00
vin p
40101129b5 Merge pull request #3 from MichMich/develop
Develop
2019-02-14 12:20:52 -06:00
Michael Teeuw
4bb32c6d09 Merge pull request #1514 from fwitte/features/weather_forecast_and_forecast_daily_support
Add forecast and forecast/daily support to new weather module
2019-02-14 17:41:10 +01:00
Michael Teeuw
6e09ceeda6 Merge branch 'develop' into features/weather_forecast_and_forecast_daily_support 2019-02-14 17:34:08 +01:00
fwitte
d6a6a53623 updated weather icon display 2019-02-14 16:48:45 +01:00
Michael Teeuw
4a97052708 Fix linting error. 2019-02-14 13:50:16 +01:00
Jon Kolb
3a4902ad4a Fix null dereference in moduleNeedsUpdate when the module isn't visible 2019-02-14 00:06:45 +00:00
Michael Teeuw
77d14bc218 Add donation link. 2019-02-13 16:12:46 +01:00
Michael Teeuw
1d2a39a855 Merge pull request #1564 from jacob-ebey/develop
Added autoLocation and autoTimezone option for weather modules and clock respectively.
2019-02-13 09:46:25 +01:00
Michael Teeuw
98b53b6b3d Merge branch 'develop' into develop 2019-02-13 09:38:15 +01:00
Michael Teeuw
0148d8beaf Merge pull request #1565 from AnthonyBuisset/fix/calendar
Fix exdate handling when multiple values are specified (comma separated)
2019-02-13 09:37:06 +01:00
Michael Teeuw
5bfd84d3be Merge pull request #1567 from stefsims/patch-2
Added danish translation
2019-02-13 09:36:11 +01:00
Michael Teeuw
351eb95feb Merge pull request #1566 from stefsims/patch-1
Update da.json
2019-02-13 09:35:53 +01:00
stefsims
56788f0933 Update CHANGELOG.md
Added danish translation
2019-02-11 09:02:42 +01:00
stefsims
017a376616 Update da.json
Added FEELS and WEEK
2019-02-11 08:59:16 +01:00
Anthony Buisset
c5888cec66 Fix exdate handling when multiple values are specified (comma separated) 2019-02-10 16:30:12 +01:00
Jacob Ebey
3d5ad29eac - Removed trailing space 2019-02-09 13:51:23 -08:00
Jacob Ebey
c608636b7a - Added autoTimezone property to the clock 2019-02-09 13:41:42 -08:00
Jacob Ebey
1a97107b2d - Converted indentation to tabs. 2019-02-09 12:49:47 -08:00
Jacob Ebey
5ca3fbeaea Added autoLocation option for weather modules. 2019-02-09 12:42:42 -08:00
Michael Teeuw
44896db668 Merge pull request #1554 from roramirez/replace-console-log-none
serveronly: Replace the console.log of none for a \n new line
2019-01-27 11:22:17 +01:00
Rodrigo Ramírez Norambuena
12efb87a23 serveronly: Replace the console.log of none for a \n new line 2019-01-26 14:42:15 -05:00
Michael Teeuw
9181be86ba Merge pull request #1553 from CriticalPoint/patch-1
Updated README
2019-01-25 09:56:25 +01:00
Mike
053b01e036 Updated README
Scanned through it and corrected some spelling mistakes, nothing that affects the core purpose of the document.
2019-01-25 07:50:24 +00:00
Michael Teeuw
86041d0968 Merge pull request #1541 from amcolash/trim_calendar_events
Add in vertical cutting for long calendar event titles
2019-01-23 13:38:19 +01:00
Michael Teeuw
bd87f63e91 Merge pull request #1542 from vincep5/develop
current.njk JS error and Loading string
2019-01-23 13:37:25 +01:00
Dirk
b79b49e8f3 Merge pull request #3 from MichMich/master
updated from master
2019-01-23 10:36:05 +01:00
Andrew McOlash
a0dde39d97 Fix braces for if check 2019-01-21 00:47:53 -08:00
vincep5
2e03868021 current.njk JS error and Loading string 2019-01-17 08:54:16 -06:00
vin p
29384c2ba3 Merge pull request #2 from MichMich/develop
Develop
2019-01-17 08:48:16 -06:00
Andrew McOlash
320743ab8d fix spacing 2019-01-16 22:53:28 -08:00
Andrew McOlash
399e171083 Add in cutting of long vertical titles 2019-01-16 22:51:44 -08:00
Michael Teeuw
184164b677 Merge pull request #1535 from fdahms/develop
forgot one sudo in installation script
2019-01-15 12:48:11 +01:00
fewieden
a8bd196234 current weather tests 2019-01-13 23:59:05 +01:00
fewieden
239d425940 webdriver ajax stub 2019-01-13 23:58:35 +01:00
fewieden
baa3c1461c test setup 2019-01-13 23:57:19 +01:00
fewieden
fa8e398e90 dependencies 2019-01-13 23:50:29 +01:00
fdahms
6d9675a299 forgot one sudo 2019-01-13 20:07:20 +01:00
Michael Teeuw
91e8ce62d4 Merge pull request #1534 from PalatinCoder/patch-1
fix: only show repeating count if the event is actually repeating
2019-01-13 16:36:45 +01:00
Jan Syring-Lingenfelder
06e641015f docs: update changelog 2019-01-13 16:25:57 +01:00
Jan Syring-Lingenfelder
1c83059482 fix: only show repeating count if the event is actually repeating 2019-01-13 16:18:52 +01:00
Michael Teeuw
90b24d824a Merge pull request #1531 from fdahms/develop
Fixing raspbian installation script
2019-01-13 11:58:30 +01:00
Michael Teeuw
62457d0e48 Merge pull request #1532 from oddswop/patch-1
Update README.md - just fixing a typo :)
2019-01-13 11:57:27 +01:00
Yvonne
90c96f7479 Update README.md 2019-01-13 09:26:37 +11:00
fdahms
f87adebe41 Fixing raspbian installer
* fixing issue #1377
* fixing problem with old node installation from fresh raspbian
* add feature for disable screen saver
2019-01-12 18:11:48 +01:00
fdahms
8f24cc8d13 editing CHANGELOG 2019-01-12 18:06:52 +01:00
Michael Teeuw
992802d196 Merge pull request #1525 from ianperrin/develop
Fix conflict between font awesome versions as per #1522
2019-01-10 13:50:14 +01:00
Ian
8546d6730c Update CHANGELOG.md 2019-01-10 12:44:35 +00:00
Ian
0092289105 revert font awesome reference 2019-01-09 21:38:07 +00:00
Ian
7c3923ad00 Use Font Awesome 5 (with backwards compatibility) for all modules 2019-01-09 21:32:43 +00:00
Ian
ef82039401 Allow multiple css to be included for one vendor 2019-01-09 21:29:49 +00:00
Ian
b01b9758e0 remove Font Awesome 4 dependency 2019-01-09 21:24:14 +00:00
vin p
88b00f689b Merge pull request #1 from MichMich/develop
Develop
2019-01-08 20:55:46 -06:00
Michael Teeuw
0a340d5d57 Merge pull request #1512 from fwitte/features/currentweather_weatherforecost_degreesign
still show degree sign if degreeLabel/scale is false
2019-01-08 09:36:26 +01:00
Michael Teeuw
50545a83b8 Merge pull request #1515 from andogit7/andogit7-MM-develop
Andogit7 mm develop
2019-01-08 09:34:50 +01:00
Michael Teeuw
4a57ff40d8 Merge pull request #1518 from fwitte/features/fade_forecast_and_maxnumberdays
Features/fade forecast and maxnumberdays
2019-01-08 09:33:26 +01:00
Michael Teeuw
0238455a5a Merge pull request #1521 from Bardo98/patch-1
Added Italian translation of "FEELS"
2019-01-08 09:10:22 +01:00
Bardo98
a53e963001 Merge pull request #1 from Bardo98/patch-2
Update CHANGELOG.md
2019-01-07 22:19:01 +01:00
Bardo98
984608e23f Added Italian translation of "FEELS" 2019-01-07 22:05:26 +01:00
Bardo98
f680c83d2d Update CHANGELOG.md 2019-01-07 21:55:18 +01:00
fwitte
a79e51c76f updated +CHANGELOG 2019-01-07 08:51:17 +01:00
fwitte
2dfb349609 fixed missing last day display in forecast/hourly 2019-01-07 08:19:50 +01:00
fwitte
766f21b525 adjusted default values 2019-01-06 12:34:44 +01:00
fwitte
733dfa1467 adjusted README 2019-01-06 12:34:27 +01:00
fwitte
63aa840b55 replaced tabs with spaces 2019-01-06 12:30:26 +01:00
fwitte
8b2d544576 added fade and maxnumberofdays options for forecast 2019-01-06 12:24:26 +01:00
fwitte
d6046d2422 simplified fetchForecastHourly function 2019-01-06 10:24:16 +01:00
fwitte
409939360f do not show 0 mm rain value 2019-01-06 10:23:15 +01:00
andogit7
1d21f39fbc Update CHANGELOG.md 2019-01-05 17:09:15 +00:00
andogit7
a477140a4b Update CHANGELOG.md 2019-01-05 17:08:55 +00:00
andogit7
1bbf2d8ce6 Update clock.js 2019-01-05 17:04:33 +00:00
fwitte
40a65eec51 adjusted CHANGELOG 2019-01-05 17:16:50 +01:00
fwitte
8431ebf2e8 adjusted README 2019-01-05 17:16:37 +01:00
fwitte
bdcc0c5373 another typo fix 2019-01-05 17:16:19 +01:00
fwitte
9cbf331533 fixed typo in daily data fetcher 2019-01-05 16:56:47 +01:00
fwitte
77640714cc adjusted openweathermap module to work with /forecast and forecast/daily 2019-01-05 16:54:45 +01:00
fwitte
9457d95c3f Merge remote-tracking branch 'origin' into develop 2019-01-05 15:27:05 +01:00
fwitte
c2ff949f2d adjusted CHANGELOG 2019-01-05 13:14:10 +01:00
fwitte
ba8685a122 readded degreesign 2019-01-05 13:13:53 +01:00
Francesco Witte
55464ed0dd Merge pull request #1 from MichMich/develop
Develop
2019-01-05 12:59:23 +01:00
Michael Teeuw
fdf3691c87 Merge pull request #1510 from fewieden/feature/weather-module-improvements
Fixed issues with the new weather module
2019-01-05 12:29:12 +01:00
fewieden
aa6699cf3e link issues to changelog 2019-01-05 10:33:58 +01:00
fewieden
b79b48baac link issues to changelog 2019-01-05 10:32:09 +01:00
fewieden
5d22dbd99e changelog 2019-01-05 10:26:13 +01:00
Michael Teeuw
4686bb5584 Merge pull request #1509 from shbatm/bug-fix
Fixes Incomplete fix for MichMich/MagicMirror#1507
2019-01-05 07:09:35 +01:00
shbatm
1f62b8f0b6 Update node_helper.js 2019-01-04 18:12:12 -06:00
fewieden
5759ed3728 implemented config option decimal symbol, align indoor elements vertical, add humidity support to nunjuck unit filter, do not display degree symbol for kelvin 2019-01-04 20:14:28 +01:00
fewieden
827fbfb78f dimmed loading indicator for weather forecast 2019-01-04 20:14:28 +01:00
fewieden
dc363de610 fix weather forecast table height 2019-01-04 20:14:28 +01:00
shbatm
b9d6a235e3 Fixes Incomplete fix for MichMich/MagicMirror#1507 2019-01-04 12:37:58 -06:00
Michael Teeuw
ebc57fe494 Merge pull request #1507 from shbatm/bug-fix
Error handling for bad git data in updatenotification
2019-01-04 17:00:27 +01:00
Michael Teeuw
e224ec4ae0 Merge branch 'develop' into bug-fix 2019-01-04 17:00:18 +01:00
Michael Teeuw
a5da347177 Merge pull request #1506 from fwitte/fwitte/weather_forecast_daily_openweather
Fix openweather forecast in new weather module, fetch daily data
2019-01-04 16:59:35 +01:00
shbatm
a257b15f86 Error handling for bad git data in updatenotification
Update CHANGELOG
2019-01-04 09:23:10 -06:00
Michael Teeuw
a70cc53d82 Merge branch 'develop' into fwitte/weather_forecast_daily_openweather 2019-01-04 13:04:02 +01:00
fwitte
1df2de9202 updated README 2019-01-04 12:34:29 +01:00
fwitte
9e394ea349 updated CHANGELOG 2019-01-04 12:34:12 +01:00
fwitte
b55685d610 added comments 2019-01-04 12:13:39 +01:00
fwitte
2156aac046 fixed typos, fetching forecast parameters by day 2019-01-04 12:07:02 +01:00
Michael Teeuw
6914465e3d Remove "Focus" to pass test. 2019-01-03 16:42:31 +01:00
Michael Teeuw
f3847ec6f3 Bump Node version to 8. 2019-01-03 16:35:30 +01:00
Michael Teeuw
e1fe8d1d89 Bump Electron to v3.0.13 - Issue: #1500 2019-01-03 16:04:33 +01:00
Michael Teeuw
675c937a4a Merge pull request #1505 from fwitte/fwitte/change_temperature_unit_display
Remove degree symbol for Kelvin scale
2019-01-03 15:25:24 +01:00
fwitte
c8f53bdf8e updated CHANGELOG.md 2019-01-03 12:35:52 +01:00
fwitte
3541d5adde removed degree symbol display for Kelvin scale, match source code in currentweather and weatherforecast 2019-01-03 12:06:52 +01:00
Michael Teeuw
b52da7c9fc Prepare for 2.7.0 dev branch. 2019-01-01 17:15:37 +01:00
Michael Teeuw
de57daa3cd Merge pull request #1498 from MichMich/develop
Release 2.6.0.
2019-01-01 17:09:33 +01:00
Michael Teeuw
e70e011a9c Add dependency. 2019-01-01 16:57:16 +01:00
Michael Teeuw
99febb99f1 Additional update info. 2019-01-01 16:48:12 +01:00
Michael Teeuw
874d79be36 Upgrade Electron to 2.0.16 2019-01-01 16:33:59 +01:00
Michael Teeuw
b33663c9f8 Prepare for release 2.6.0. 2019-01-01 15:52:29 +01:00
Michael Teeuw
7e69fa39eb Merge pull request #1497 from fewieden/feature/weather-module-improvements
fix rain amount information for different units and providers, docume…
2019-01-01 15:19:27 +01:00
Michael Teeuw
de06490539 Merge pull request #1496 from janfrode/patch-1
Update README.md
2019-01-01 15:18:45 +01:00
fewieden
40a30c24a0 link provider readme in module readme 2018-12-30 20:52:27 +01:00
fewieden
de04c12d3c fix rain amount information for different units and providers, documentation 2018-12-30 20:46:25 +01:00
Jan-Frode Myklebust
38fb53b058 Update README.md
Wrong delimiter used for electronOptions. Use : instead of =.
2018-12-30 20:33:16 +01:00
Michael Teeuw
ed617c5943 Merge pull request #1485 from djgalloway/wip-endtime
Document endTime variables
2018-12-30 15:42:04 +01:00
Michael Teeuw
986337da0c Merge pull request #1495 from fewieden/feature/weather-module-improvements
weather module feels like temperature
2018-12-30 15:40:22 +01:00
fewieden
8dd7621f29 add original feels like temperature and fixed it for imperial units 2018-12-30 14:17:13 +01:00
fewieden
88d862303d fixed beaufortwindspeed for imperial units 2018-12-30 14:14:17 +01:00
fewieden
cc274ffebe fixed darksky metric units 2018-12-30 14:11:16 +01:00
Michael Teeuw
28a108f79b Merge pull request #1491 from devpwnz/patch-1
Update ro.json
2018-12-29 10:51:28 +01:00
Michael Teeuw
b9f75bf7d2 Merge pull request #1489 from fewieden/feature/weather-module-improvements
WIP: weather module improvements
2018-12-29 10:49:18 +01:00
devpwnz
39994d5797 Update CHANGELOG.md 2018-12-29 10:08:57 +02:00
devpwnz
8e28be6558 Update ro.json 2018-12-29 10:00:29 +02:00
fewieden
8a65bef004 add unit and language handling for weather provider darksky 2018-12-28 19:39:00 +01:00
Michael Teeuw
b94dc5044b Merge pull request #1488 from fewieden/weather
Weather refactoring
2018-12-28 08:56:58 +01:00
fewieden
b853c00dd4 Add changelog entry 2018-12-27 23:12:28 +01:00
fewieden
7a0bc81f48 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into weather
# Conflicts:
#	css/main.css
2018-12-27 23:03:41 +01:00
fewieden
10bc326490 cleanup 2018-12-27 19:37:02 +01:00
fewieden
1920f8158e config options and documentation 2018-12-27 18:52:35 +01:00
fewieden
0ed2ba0183 darksky forecast and darksky current weather fixes 2018-12-27 17:56:34 +01:00
fewieden
95adc0aec1 forecast 2018-12-27 17:14:03 +01:00
fewieden
ebee80d10e small improvements 2018-12-27 17:13:49 +01:00
fewieden
63836185d9 weatherprovider 2018-12-27 17:13:06 +01:00
David Galloway
d0195e0509 Document endTime variables
Missed docs in 188aa14d82

Signed-off-by: David Galloway <dgallowa@redhat.com>
2018-12-20 11:40:50 -05:00
Michael Teeuw
5d9bcd9918 Merge pull request #1476 from wast/patch-1
Create hr.json
2018-12-19 16:18:32 +01:00
Michael Teeuw
db04c26d24 Merge pull request #1480 from michael5r/newsfeed-removestarttags-bug
[FIX] Bug in newsfeed module using removeStartTags on a description
2018-12-19 16:17:52 +01:00
Michael Teeuw
56b399655e Merge pull request #1483 from balassy/feature/weatherforecast-degree-labels
Always display the degree symbol in the Weather Forecast module
2018-12-19 16:15:18 +01:00
Michael Teeuw
24e15c0568 Add ajv dependency to fix linting error. 2018-12-19 16:04:52 +01:00
György Balássy
f0c516e82d CHANGED: The Weather Forecast module by default displays the &deg; symbol after every numeric value to be consistent with the Current Weather module. 2018-12-14 11:32:58 +01:00
György Balássy
f38203ef62 Merge pull request #5 from MichMich/develop
Update the develop branch from the original repo
2018-12-14 09:13:37 +01:00
mschmidt
a77c026803 Add issue number to changelog 2018-12-10 14:06:55 -06:00
mschmidt
5b6306671c Initial 2018-12-10 14:02:50 -06:00
Stjepan
25610222bc Update translations.js
Added Croatian.
2018-12-06 11:41:01 +01:00
Stjepan
c17f941fb9 Update CHANGELOG.md
Added Croatian translation to the changelog.
2018-12-06 11:38:34 +01:00
Stjepan
ae6ab1d203 Create hr.json
Croatian translation.
2018-12-06 10:00:34 +01:00
Michael Teeuw
92accf99b4 Merge pull request #1468 from ax42/patch-1
Update README.md
2018-11-29 10:18:39 +01:00
Michael Teeuw
b02702fe80 Merge pull request #1467 from lavolp3/calendar_issues
Fading for dateheaders, fixed bug for fulldayevents
2018-11-29 10:18:09 +01:00
Alexis Iglauer
5c549ec6e5 Update README.md
Typo
2018-11-22 23:28:04 +01:00
Dirk
af459a5a28 formatting corrected
Corrected formatting due to Travis CI errors
2018-11-21 12:10:39 +01:00
Dirk
07770601f6 Update CHANGELOG.md
- Fading for dateheaders timeFormat in Calendar [#1464](https://github.com/MichMich/MagicMirror/issues/1464)
- Bug showing FullDayEvents one day too long in calendar fixe
2018-11-21 10:24:53 +01:00
Dirk
cc96b86b3a Fading for dateheaders
Included fading for dateheaders option
Removed unnecessary switch statement in dateheaders option
2018-11-21 09:32:56 +01:00
Michael Teeuw
1547f4d8b2 Merge pull request #1456 from EdgardosReis/develop
Portuguese translation for "Feels"
2018-11-08 08:57:28 +01:00
Michael Teeuw
75054fcc70 Merge pull request #1458 from tomwardill/ignore-rrule-errors
Ignore RRULE errors for unparseable elements.
2018-11-08 08:56:50 +01:00
Tom Wardill
390b3b173b Update CHANGELOG.md 2018-11-07 18:53:54 +00:00
Tom Wardill
78daa65d28 Ignore rrule errors 2018-11-07 18:53:04 +00:00
EdgardosReis
3bbdd08d24 Portuguese translation for "Feels" 2018-11-07 00:34:02 +00:00
Michael Teeuw
cec1f12918 Merge pull request #1424 from thobach/develop
Allow to parse recurring calendar events where the start date is before 1900
2018-10-30 16:20:33 +01:00
Thomas Bachmann
d923ae2107 Merge branch 'develop' into develop 2018-10-29 20:30:37 +01:00
Thomas Bachmann
85931155e6 Fixed eslint issues
.. as requested in Pull Request #1424
2018-10-29 20:26:54 +01:00
Michael Teeuw
4fd87aca09 Change showEnd default to false. 2018-10-26 15:22:05 +02:00
Michael Teeuw
600e0ec7e3 Merge pull request #1425 from Ybbet/addClassCellCalendar
Add class cell calendar
2018-10-26 15:14:31 +02:00
Michael Teeuw
51fbff1a4a Merge branch 'develop' into addClassCellCalendar 2018-10-26 15:14:17 +02:00
Michael Teeuw
03b1389ee5 Merge pull request #1426 from gberg927/develop
Changed OpenWeatherMap URL in ReadME
2018-10-26 15:12:34 +02:00
Michael Teeuw
8f014e9d82 Merge pull request #1427 from P-Storm/develop
Added Font-awesome 5
2018-10-26 15:11:55 +02:00
Michael Teeuw
cecc6f7561 Merge branch 'develop' into develop 2018-10-26 15:11:46 +02:00
Michael Teeuw
62ba81c6a6 Merge pull request #1430 from shade34321/weather_forecast_screenshot
Added in 5 day forecast screenshot
2018-10-26 14:42:02 +02:00
Michael Teeuw
c5e3422fcd Merge branch 'develop' into weather_forecast_screenshot 2018-10-26 14:40:57 +02:00
Michael Teeuw
bd5a46b4ab Merge pull request #1431 from shade34321/weather_screenshot
Added in screenshot for current weather module.
2018-10-26 14:38:07 +02:00
Michael Teeuw
3a972bbbab Merge pull request #1432 from shade34321/clock_screenshot
Added in screenshot
2018-10-26 14:37:21 +02:00
Michael Teeuw
7768ea28bd Merge pull request #1433 from shade34321/compliments_screenshot
Added in compliments screenshot
2018-10-26 14:36:22 +02:00
Michael Teeuw
75add44e86 Merge pull request #1434 from shade34321/news_feed_screenshot
Added in screenshot for the newfeed module
2018-10-26 14:35:53 +02:00
Michael Teeuw
7d94365cbf Merge pull request #1437 from Duske/patch-1
(doc) showEnd config
2018-10-26 14:34:23 +02:00
Michael Teeuw
2d830fb8e7 Merge pull request #1441 from cphamlet/patch-1
Fix Broken Link
2018-10-26 14:33:36 +02:00
Michael Teeuw
633bf36fe7 Merge pull request #1447 from Santanachia/master
Fix polish translation
2018-10-26 14:31:44 +02:00
Marcin
c0a5e23d95 Merge branch 'develop' into master 2018-10-23 09:00:20 +02:00
Marcin Bielecki
d3798344dd fix polish translation 2018-10-23 08:57:53 +02:00
Teddy
ed37460402 Merge branch 'master' into addClassCellCalendar 2018-10-21 22:38:50 +02:00
cphamlet
9b6ba65cdb Fix Broken Link
http://www.openweathermap.org/help/city_list.txt is a dead link, suggest replacing with https://openweathermap.org/city
2018-10-14 15:08:55 -05:00
Dustin
42a9631926 Merge branch 'develop' into patch-1 2018-10-09 10:51:09 +02:00
Shade Alabsa
676a8a6421 Fixed README formatting errors. 2018-10-08 19:40:54 -04:00
Dustin
cdbf022ce0 Update CHANGELOG.md 2018-10-08 21:19:55 +02:00
Dustin
db79e1271e (doc) showEnd config
Add documentation for showEnd configuration
2018-10-08 21:11:28 +02:00
Shade Alabsa
d2b3efacf9 Added in screenshot for the newfeed module 2018-10-07 15:20:11 -04:00
Shade Alabsa
a2ab94f971 Added in compliments screenshot 2018-10-07 15:16:10 -04:00
Shade Alabsa
a0d92d764b Added in screenshot 2018-10-07 15:12:10 -04:00
Shade Alabsa
649b78e3f2 Added in screenshot for current weather module. 2018-10-07 15:01:51 -04:00
Shade Alabsa
e7df1c3e56 Added in 5 day forecast screenshot 2018-10-07 14:55:07 -04:00
P-Storm
53833ae0c3 Spaces to tab 2018-10-05 01:42:28 +02:00
P-DESK\P-Storm
66b914774a Updated changelog 2018-10-05 01:24:47 +02:00
P-DESK\P-Storm
fc89feec4e * Added font awesome 5, keeping shims in place for the calendar app (https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4)
* Updated example sample config
2018-10-05 01:16:25 +02:00
Dennis Glasberg
d311dbd9d5 Update README.md 2018-10-03 21:28:30 -04:00
Dennis Glasberg
f97aa67100 Merge pull request #2 from gberg927/Weather-Module-Readme-URL
Weather module readme url
2018-10-03 21:23:56 -04:00
Dennis Glasberg
9a8add780c Update README.md 2018-10-03 21:20:38 -04:00
Teddy Payet
3b48f1d042 - Possibility to add classes to the cell of symbol, title and time of the events of calendar. 2018-10-04 02:07:08 +02:00
Teddy Payet
332b54e7a5 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into addClassCellCalendar 2018-10-04 02:02:20 +02:00
Thomas Bachmann
007b2f0c88 Allow to parse recurring calendar events where the start date is before 1900
Some birthday calendar events have a start date before 1900.
2018-10-03 22:43:29 +02:00
Thomas Bachmann
3f083862e7 Allow to parse recurring calendar events where the start date is before 1970
Some birthday calendar events have a start date before 1970.
2018-10-03 22:05:51 +02:00
Thomas Bachmann
39619d5277 Allow to parse recurring calendar events where the start date is before 1970
Some birthday calendar events have a start date before 1970.
2018-10-03 22:03:50 +02:00
Michael Teeuw
d4fe01f9b9 Prepare for 2.6.0-dev. 2018-10-01 08:20:15 +02:00
Michael Teeuw
6db61b4357 Merge pull request #1418 from MichMich/develop
Develop
2018-10-01 08:16:04 +02:00
Michael Teeuw
f245cbf7f2 Merge pull request #1419 from rudibarani/master
Details to install the latest version of Node.js
2018-10-01 08:05:22 +02:00
rudibarani
6f2b04669f Details to install the latest version of Node.js
Added the direct code to always install the latest version of Node.js for the manual installation.
Maybe you could also include this in the automatic setup script, which does not seem to install the latest version of Node.js.
2018-09-30 23:39:22 +02:00
Michael Teeuw
9a46081d0b Prepare for release 2.5.0 2018-09-30 21:36:04 +02:00
Teddy Payet
3c7e507ca1 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into develop 2018-09-26 10:03:26 +02:00
Michael Teeuw
7117725e69 Merge pull request #1405 from ubertao/multi-line-compliments
Multi-line compliments
2018-09-25 11:36:27 +02:00
ubertao
ba428c6cfe Use 'white-space: pre-line' for multi-line compliment. 2018-09-24 23:01:17 +08:00
ubertao
d76c924ad1 Update compliments README.md for multi-line support. 2018-09-20 09:09:06 +08:00
ubertao
cad7debc5b Replace innerHTML() with createElement() and appendChild() for security. 2018-09-20 08:49:17 +08:00
ubertao
40725aa2a2 Update CHANGELOG.md with multi-line compliments support. 2018-09-17 00:54:01 +08:00
ubertao
6034891fed Support multi-line compliments. 2018-09-17 00:51:37 +08:00
Michael Teeuw
9dd9862d33 Merge pull request #1402 from ubertao/pr-zh-cn-2.5.0
Update zh-cn translation for 2.5.0
2018-09-13 08:59:57 +02:00
Michael Teeuw
48c72e319b Merge pull request #1401 from ubertao/pr-calender-gzip
Pr calender gzip
2018-09-13 08:58:13 +02:00
ubertao
4b6208fd9c Update CHANGELOG.md for zh-cn translation updates. 2018-09-12 09:35:58 +08:00
ubertao
168904a159 Update zh-cn translation to 2.5.0 2018-09-12 09:31:46 +08:00
ubertao
28f1498ec3 update CHANGELOG.md adding gzip fix for calendar module 2018-09-12 08:17:10 +08:00
ubertao
d3028e10d3 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into pr-calender-gzip 2018-09-12 08:15:52 +08:00
Teddy Payet
5eb0b77a8a Merge upstream/develop 2018-09-08 23:40:39 +02:00
ubertao
4aace5b95a update changelog with gzip calendar fix 2018-09-08 23:44:12 +08:00
ubertao
044dbd4a65 Add gzip support to calendar fetcher. 2018-09-08 23:05:19 +08:00
Michael Teeuw
5dbae7c9d7 Merge pull request #1383 from balassy/bugfix/updatenotification-localization
Making the word "commit" localizable in the UpdateNotification module message
2018-09-05 09:12:04 +02:00
György Balássy
ec44cb2761 CHANGED: The wording in CHANGELOG is modified to be more descriptive. 2018-09-05 04:41:09 +02:00
György Balássy
b06cf55c0b FIXED: Character encoding issue in pl.json occurred during rebase. 2018-09-05 04:33:42 +02:00
György Balássy
b601f6a138 CHANGED: The UPDATE_INFO key in the localization file is changed to UPDATE_INFO_SINGLE and UPDATE_INFO_MULTIPLE to allow different localization for single and multiple commits. 2018-09-05 04:30:57 +02:00
György Balássy
ddebc63488 ADDED: CHANGELOG entry. 2018-09-05 04:30:23 +02:00
György Balássy
35440822be CHANGED: The COMMIT_COUNT placeholder in the UPDATE_INFO message of the UpdateNotification module does not contain the word "commit" or "commits" any more, so language files can independently localize them. 2018-09-05 04:30:22 +02:00
György Balássy
f4c6bcfb8e Merge pull request #4 from MichMich/develop
Update Develop from the original repo
2018-09-05 04:26:13 +02:00
Michael Teeuw
6365c5c9ef Merge pull request #1396 from matt08/patch-4
Updated Polish translation
2018-09-04 11:42:16 +02:00
matt08
dd0334d30d Update pl.json 2018-08-31 09:24:18 +02:00
matt08
c462a44973 Polish translate for "Feels" 2018-08-31 09:17:04 +02:00
Michael Teeuw
6f88f5db83 Merge pull request #1385 from el97/patch-4
Update sv.json
2018-08-31 09:14:33 +02:00
matt08
93617f62a2 Updating "feels" translation 2018-08-31 09:14:16 +02:00
György Balássy
61d5f39408 Merge pull request #3 from MichMich/develop
Update the develop branch from the original repository
2018-08-30 00:00:56 +02:00
Michael Teeuw
c1fddaa7dd Merge pull request #1392 from vlebourl/develop
support for showing the end time of non full day events and the end date of several day long
2018-08-29 09:12:02 +02:00
vlb
188aa14d82 added support for showing end of events in calendar 2018-08-28 18:11:38 +02:00
Vincent Le Bourlot
5c25dd5b6d Update CHANGELOG.md 2018-08-28 18:00:13 +02:00
vlb
7c579cf7b7 added support for showing end of events through config parameters showEnd and dateEndFormat 2018-08-28 17:35:53 +02:00
vlb
c755c823fa added support for events having a duration instead of an end 2018-08-28 17:29:42 +02:00
Michael Teeuw
116588c237 Merge pull request #1390 from ccrlawrence/patch-1
ClientOnly: Global variable name used in callback function
2018-08-28 15:37:55 +02:00
Michael Teeuw
f02c1e4dc7 Merge branch 'develop' into patch-1 2018-08-28 15:36:58 +02:00
Michael Teeuw
c4e8cc1641 Correct changelog entry. 2018-08-28 15:33:53 +02:00
Michael Teeuw
93e68ad147 Merge branch 'develop' into patch-1 2018-08-28 15:32:47 +02:00
vlb
7ba88a83f0 consider events lasting several full days as full day events 2018-08-28 13:05:06 +02:00
ccrlawrence
c9293327ce Update CHANGELOG.md 2018-08-26 16:01:41 +01:00
ccrlawrence
fa1f35a89e ClientOnly: Global variable name used in callback function.
The global 'config' variable is used in the callback function, changed to local one. Unwanted behaviour when accessing server on docker or if using 0.0.0.0 or blank address in config file as it just passes this to electron to display.
2018-08-26 15:53:01 +01:00
Michael Teeuw
845ce7a711 Merge pull request #1384 from YangVincent/develop
Update OpenWeather city list instructions
2018-08-21 16:31:08 +02:00
el97
2b40007563 Update sv.json
Small changes. Added "FEELS": "Känns som".
2018-08-21 15:29:20 +02:00
Vincent Yang
217034c4a7 Update Changelog for weather city link 2018-08-21 01:06:12 -07:00
Vincent Yang
0b9d4f17ab Fix link for finding cities in OpenWeather 2018-08-21 01:04:58 -07:00
Michael Teeuw
7fb0ec12dd Merge pull request #1381 from Elaniobro/rp-zero-w-es6-fix
RaspBerry Pi Zero W default calendar module fix
2018-08-17 12:18:31 +02:00
György Balássy
3581158a7b Merge pull request #2 from MichMich/develop
Update Develop from original repo
2018-08-17 06:40:54 +02:00
Elan Trybuch
facfa73214 Merge branch 'develop' into rp-zero-w-es6-fix 2018-08-16 12:07:38 -04:00
Elan Trybuch
0ef4a86d42 Add patch note to CHANGELOG.md 2018-08-16 11:51:10 -04:00
Elan Trybuch
d4ec4795c3 Fix ES6 syntax bug on RaspberryPi Zero W
Following this issue https://github.com/MichMich/MagicMirror/issues/694 it seems that the Midori Browser does not recoginize ES6 syntax. Further, the use of 'var' is seen throughout the calendar module excpet on line 439, where the error is reported
2018-08-16 11:45:34 -04:00
Michael Teeuw
b13d0aa283 Merge pull request #1373 from jannekalliola/develop
Calendar: Absolute dates do not show absolute even if getRelative and urgency are set to zero
2018-08-16 12:05:22 +02:00
Michael Teeuw
a6965342e7 Update CHANGELOG.md 2018-08-16 12:00:06 +02:00
Michael Teeuw
752dfa5b7f Merge pull request #1369 from heskja/patch-2
Patch 2
2018-08-16 11:56:03 +02:00
Michael Teeuw
87aa283f22 Merge pull request #1376 from vincep5/develop
weatherforecast rainfall rounding
2018-08-16 11:55:25 +02:00
vincep5
6598ae080f weatherforecast rainfall rounding 2018-08-07 11:48:10 -05:00
Janne Kalliola
7c5e8a66e4 Added also description of the change to changelog 2018-08-05 19:49:26 +03:00
Janne Kalliola
c9577bcdc5 Added an if to use absolute dates with all events 2018-08-05 19:47:27 +03:00
heskja
8254c2e83c Merge pull request #1 from heskja/patch-1
Update nb.json
2018-08-03 20:24:46 +02:00
heskja
20a9ac841d Update nn.json
Added translation for "FEELS"
2018-08-03 20:23:19 +02:00
heskja
ae86b75d89 Update nb.json
Added translation for "FEELS"
2018-08-03 20:22:44 +02:00
György Balássy
93a0afe612 Merge pull request #1 from MichMich/develop
Sync Develop from original repo
2018-08-02 06:26:23 +02:00
Michael Teeuw
439027220b Merge pull request #1366 from Ybbet/alert_css
Alert css #1353
2018-08-01 10:19:52 +02:00
Teddy Payet
4a07272d7a Changelog.md updated 2018-08-01 09:42:23 +02:00
Teddy Payet
81432b54a3 Classes for alert module
Use of classes instead of inline style. With those modifications, it will be easier to personnalize the alert with custom.css
2018-08-01 09:37:27 +02:00
Michael Teeuw
b84a6e0c02 Merge pull request #1358 from jagobagascon/develop
Added missing spanish text
2018-07-15 19:47:04 +02:00
jagoba
37dc5a00e8 Merge branch 'bugfix/spanish-missing-localization' into develop 2018-07-15 19:21:59 +02:00
jagoba
e6edf85fbe Added Spanish translation for "FEELS" 2018-07-15 19:13:04 +02:00
Michael Teeuw
cb533a26f2 Merge pull request #1356 from balassy/bugfix/hungarian-localization
Updating the Hungarian localization
2018-07-13 22:01:56 +02:00
György Balássy
a7278f76a8 UPDATED: The CHANGELOG.md file with description of the changes in the Hungarian localization. 2018-07-13 16:42:47 +02:00
György Balássy
80bd32382f CHANGED: The Hungarian localization of the updatenotification module is changed to be more natural, because the existing messages felt like they were created with machine translation, and they were not only unnatural, but also misleading. 2018-07-13 16:32:32 +02:00
György Balássy
db21ced104 ADDED: Missing Hungarian localization for the "FEELS" resource key. 2018-07-13 16:26:15 +02:00
György Balássy
717c6555cb ADDED: Missing Hungarian localization for the "WEEK" resource key. 2018-07-13 16:23:34 +02:00
Michael Teeuw
a412e4af5c Merge pull request #1354 from Ybbet/develop
Wrong mixup… (cf german and spanish)
2018-07-11 02:21:14 +02:00
Teddy Payet
3350bf1ac6 CHANGELOG 2018-07-11 01:52:29 +02:00
Teddy Payet
4aa3353a1d Wrong mixup… (cf german and spanish)
Thanks fewieden.
2018-07-11 01:45:16 +02:00
Michael Teeuw
ff48a58537 Merge pull request #1352 from Ybbet/develop
Add some translations (mostly french).
2018-07-10 16:15:13 +02:00
Teddy Payet
08fa511d17 Add some translations (mostly french). 2018-07-10 15:03:54 +02:00
Michael Teeuw
c295115ffc Merge pull request #1347 from cederstrom/toggle-news-article-fullscreen
Abillity to toggle news article in fullscreen
2018-07-10 12:41:20 +02:00
Michael Teeuw
5fb14610ec Merge pull request #1348 from cederstrom/swedish-translations
Swedish translations
2018-07-10 12:40:04 +02:00
Andreas Cederström
e87c2350b7 Update CHANGELOG.md 2018-07-07 17:36:51 +02:00
Andreas Cederström
44e691e840 Update CHANGELOG.md 2018-07-07 17:35:04 +02:00
Andreas Cederström
b5a7234cf3 Swedish translation for "FEELS" 2018-07-07 17:26:17 +02:00
Andreas Cederström
d12509957f Abillity to toggle article in fullscreen 2018-07-07 16:50:10 +02:00
Michael Teeuw
f01e7b7e20 Prepare for 2.5.0 2018-07-04 11:32:04 +02:00
Michael Teeuw
6aa156d956 Merge pull request #1343 from MichMich/develop
Release 2.4.1
2018-07-04 11:27:05 +02:00
Michael Teeuw
ef5ea93de1 Prepare for release 2.4.1 2018-07-04 11:20:37 +02:00
Michael Teeuw
b4913f51f2 Merge pull request #1341 from jannekalliola/master
Fixed parsing date
2018-07-03 17:08:07 +02:00
Janne Kalliola
dc3e960e79 Fixed parsing date, as dt_txt is missing from certain weather API results 2018-07-02 23:22:09 +03:00
fewieden
0fe79b5288 indoor data, new filter, small cleanup 2018-07-02 15:43:24 +02:00
Michael Teeuw
1f76bd1942 Setup the next release (2.5.0). 2018-07-01 21:01:41 +02:00
Michael Teeuw
3545f80920 Merge pull request #1338 from MichMich/develop
Release 2.4.0
2018-07-01 20:50:46 +02:00
Michael Teeuw
0b2d1564ef Prepare to release 2.4.0 2018-07-01 20:43:04 +02:00
Michael Teeuw
fdacf824b3 Merge pull request #1337 from ShameerAshraf/develop
Fixed Wind Chill and Heat Index for Kelvin
2018-06-30 21:03:19 +02:00
Shameer Ashraf
5c01a44644 Updated changelog 2018-06-29 13:27:55 -04:00
Shameer Ashraf
4eb49d872b Updated changelog 2018-06-29 13:24:28 -04:00
Shameer Ashraf
34e5f29419 Fixed Wind Chill in Kelvin 2018-06-29 01:00:20 -04:00
Shameer Ashraf
f4910f0a8e Fixed Heat Index for Kelvin 2018-06-29 00:23:04 -04:00
Michael Teeuw
c8c14611dc Merge pull request #1334 from mdrayer/quick-fix-readme-raspberry-pi
Correct the "Raspberry Pi" link in the ToC.
2018-06-27 20:22:30 +02:00
Michael Drayer
491201991e Correct the "Raspberry Pi" link in the ToC. 2018-06-27 14:18:25 -04:00
Michael Teeuw
401f3574fd Update CHANGELOG.md 2018-06-27 10:29:49 +02:00
Michael Teeuw
173a86172c Add update translations. 2018-06-27 10:29:08 +02:00
Michael Teeuw
9ecbff024a Update CHANGELOG.md 2018-06-27 10:26:30 +02:00
Michael Teeuw
1b5be34be4 Merge pull request #1333 from ubertao/fixlocale
Fix locale id zh_cn -> zh-cn, zh_tw -> zh-tw, pt_br -> pt-br
2018-06-27 10:25:34 +02:00
Michael Teeuw
ceb3a997b6 Merge pull request #1330 from pintman/patch-1
minor typo in position fixed.
2018-06-27 10:23:15 +02:00
Ubertao
b1ead7fec8 Fix locale id zh_cn -> zh-cn, zh_tw -> zh-tw, pt_br -> pt-br 2018-06-27 14:09:02 +08:00
Michael Teeuw
d534dbb006 Merge pull request #1331 from flyingchipmunk/dev_newsfeed_logging
Add option to newsfeed for logging errors
2018-06-27 02:39:14 +02:00
Matthew Veno
e56377117b Add option to newsfeed for logging errors
- 'logFeedWarnings' added to newsfeed config, defaulted to false
- Only log parse feed errors when logFeedWarnings is true
- Updated README and CHANGELOG
- Fixes #1329
2018-06-26 20:01:28 -04:00
Marco Bakera
63483dc6c3 minor typo in position fixed. 2018-06-24 14:29:55 +02:00
fewieden
66ceafd010 show indoor data, add loading message 2018-06-16 10:53:17 +02:00
Michael Teeuw
dd793650c3 Merge pull request #1314 from Ybbet/develop
Customize classes for table.
2018-06-12 09:19:16 +02:00
Teddy Payet
afd829307d Tabs and spaces from the original files
With a diff, here the orginal tabulations.
2018-06-11 23:09:00 +02:00
Teddy Payet
09abdc0f12 ESLint format
Resolve format ith eslint
2018-06-11 19:59:21 +02:00
Teddy Payet
ed4d17f578 README updated
Update of README for the new option.
2018-06-11 16:41:08 +02:00
Teddy Payet
aeeeb5a37b Add changelog 2018-06-11 14:04:06 +02:00
Teddy
dcb2e51587 Update .gitignore 2018-06-11 14:00:16 +02:00
Teddy Payet
cbc2eaf908 Customize classes for table
MagicMirror offers helper classes in the main.css. Therefore, we give
the possibility to indicate the class that we want.
2018-06-11 12:54:27 +02:00
Michael Teeuw
8808031e7c Merge pull request #1309 from sdetweil/fix_suspend
invoke callback for suspend notification, even if no dom content
2018-06-08 13:21:40 +02:00
Sam Detweiler
23ac7213d3 remove trailing spaces from reformatted else 2018-06-08 06:11:36 -05:00
Michael Teeuw
add7b44d0b Style change. 2018-06-07 16:31:49 +02:00
Michael Teeuw
1e4b7599a7 Merge branch 'develop' into fix_suspend 2018-06-07 16:29:16 +02:00
Sam Detweiler
54443b038a Revert "fix changelog"
This reverts commit c3f03e3f95.
2018-06-07 08:09:39 -05:00
Sam Detweiler
c3f03e3f95 fix changelog 2018-06-07 08:04:49 -05:00
Sam Detweiler
18135624f6 update changelog 2018-06-07 08:02:16 -05:00
Sam Detweiler
11238d6b71 fix tabs 2018-06-07 07:59:07 -05:00
Sam Detweiler
848f94b1e0 invoke callback for suspend notification, even if no dom content 2018-06-07 07:50:42 -05:00
Michael Teeuw
d47cfe9504 Merge pull request #1304 from kjb085/kb/calendar-regex
Add regex filtering to calendar module
2018-06-05 21:02:56 +02:00
Kenn Breece
70dccff293 Add regex filtering to calendar module 2018-06-03 21:12:31 -04:00
Michael Teeuw
e40873710b Merge pull request #1302 from idoodler/develop
Ability to fetch compliments from a remote server
2018-06-03 19:46:01 +02:00
idoodler
b140ef3b7a Ability to fetch compliments from a remote server 2018-06-03 15:47:56 +02:00
Michael Teeuw
3b7b74aa67 Merge pull request #1297 from OiYouYeahYou/linting-fix
Add and lint clientonly/index.js
2018-05-29 11:56:18 +02:00
Jason
de8e5b2d69 Merge branch 'develop' into linting-fix 2018-05-26 19:44:06 +01:00
Jason
afea33b0e3 Changelog 2018-05-26 19:42:58 +01:00
Jason
b44fbc1e4f add and lint clientonly 2018-05-26 19:36:46 +01:00
Michael Teeuw
c4dee3dd8d Merge pull request #1293 from derRAV3N/patch-1
Add note to README.md
2018-05-22 15:27:03 +02:00
derRAV3N
091e024032 Add note to README.md
Add note to README.md to not add calendars that have entries before 1st January 1970.
2018-05-22 15:14:05 +02:00
Michael Teeuw
0e030f7f48 Add information about the Electron update. 2018-05-21 14:06:50 +02:00
fewieden
3341c9e3bf start with forecast template 2018-05-21 10:57:22 +02:00
fewieden
91ddc00f7e fix moment, add unit filter 2018-05-21 10:56:46 +02:00
Michael Teeuw
3049ba0b24 Merge pull request #1290 from edward-shen/develop
newsfeed now remembers user configuration settings for descriptions after fullscreen view. Fixes #1282.
2018-05-16 07:27:38 +02:00
Edward Shen
55a161fafe Fixes #1282.
Added a runtime var isShowingDescription that gets reset to user config.
this.config.showDescription no longer mutates during runtime.
Changelog has been updated to include this fix.
2018-05-15 20:37:45 -04:00
Michael Teeuw
349af24c81 Merge pull request #1287 from ringzer/patch-1
Update README.md
2018-05-12 12:33:25 +02:00
ringzer
788f1c4b3e Update README.md
Included /home/pi/MagicMirror/ path when copying config.js.sample and running npm run config:check
2018-05-11 16:47:03 +01:00
Michael Teeuw
889af461c6 Upgrade to Electron 2.0.0. 2018-05-11 16:23:43 +02:00
Michael Teeuw
df86e59089 Merge pull request #1284 from jrlambs/develop
New calendar display format
2018-05-11 15:36:36 +02:00
=
c6bf69cce4 fix linting errors. add line to changelog 2018-05-10 19:54:01 -04:00
=
e492012004 fix missing s on timeFormat 2018-05-09 22:36:53 -04:00
=
94c46f9881 New calendar display format with date headers for days and times listed next to events for that date
IE:

Sunday, May 1st
  2:00 pm       Soccer
  4:00 pm       Basketball
2018-05-09 22:32:15 -04:00
Michael Teeuw
1eaa9d32ea Merge pull request #1283 from jannekalliola/develop
Changed weatherforecast to use dt_txt field
2018-05-09 09:35:49 +02:00
Janne Kalliola
0e2e8d2e2a Changed weatherforecast to use dt_txt field 2018-05-08 18:45:38 +03:00
Michael Teeuw
cfb39c6364 Merge pull request #1279 from parnic/develop
Fixed coloredSymbolOnly
2018-05-05 18:38:54 +02:00
Parnic
173499f496 Fixed coloredSymbolOnly 2018-05-05 08:31:58 -05:00
Michael Teeuw
1081049074 Merge pull request #1264 from parnic/develop
Fixed heat index
2018-05-01 09:55:42 +02:00
Michael Teeuw
961dc85514 Merge pull request #1275 from john3300/colored-symbol-only
Added option to calendar module that colors only the symbol
2018-05-01 09:55:13 +02:00
Michael Teeuw
6434acd492 Merge branch 'develop' into colored-symbol-only 2018-05-01 09:55:05 +02:00
Michael Teeuw
ccb27c89d8 Merge pull request #1262 from ndom91/patch-1
Updated newsfeed.js - improved fullscreen iframe
2018-05-01 09:53:56 +02:00
Brian Johnson
8053256203 Added option to calendar module that colors only the symbol instead of the whole line 2018-04-27 11:06:45 -05:00
Parnic
4abd7301fd Updated changelog 2018-04-17 19:45:12 -05:00
Parnic
d6fe5ab417 Fixed heat index
Celsius and Fahrenheit were flipped. The index was computed in Fahrenheit but used as if it were Celsius.
2018-04-17 19:43:09 -05:00
Nico Domino
a739fbdf1d Update CHANGELOG.md 2018-04-17 00:39:05 +02:00
Nico Domino
c90a1ab6dc Updated newsfeed.js - improved fullscreen iframe
Had much better performance using 100vw (viewport width) than 100% (why - idk), but with 100% about 5% of my screen (1080x1920) to the right of the scroll bar was left black/blank, with 100vw I legitimately takes up the whole screen/viewport width. 

With the 10000 height the articles would always load about half way scrolled down. So I reduced the height and style.height to 3000. At my resolution at least, which I assume is fairly common, I had much better results. Unfortunately 3000 also isn't perfect - this still requires some tweaking. The article loads perfectly at the top of the iframe at 2500, but 2500 is much too small for most articles. 3000 seemed a good compromise, I could scroll far enoguh to read most articles on Reuters, and also load far enoguh up to read the beginning of the article.

And finally I added a "scroll back up" button notification. This seems to work flawlessly.
2018-04-17 00:25:58 +02:00
Michael Teeuw
05ef68e079 Merge pull request #1258 from jannekalliola/develop
Support for hiding on-going events
2018-04-08 18:14:39 +02:00
Michael Teeuw
dee4a7f3c7 Merge pull request #1257 from parnic/develop
Fixed to work in Midori browser
2018-04-08 18:11:00 +02:00
Janne Kalliola
75753df0d8 Added description of on-going event hiding changes to the changelog 2018-04-08 15:07:20 +03:00
Janne Kalliola
30c5d78647 Support for hiding on-going events 2018-04-08 14:57:28 +03:00
Chris Pickett
6bb4db3842 Midori 0.4.3 support 2018-04-07 20:01:53 -05:00
Chris Pickett
cc0907fcd7 Updated changelog 2018-04-07 20:00:51 -05:00
Michael Teeuw
20b018bcc7 Merge pull request #1250 from bastilimbach/master
Remove yarn-or-npm as it breaks production builds
2018-04-06 14:40:26 +02:00
Michael Teeuw
aafe2fa8d0 Update CHANGELOG.md 2018-04-06 14:39:41 +02:00
Michael Teeuw
ee7bd73b3f Merge branch 'develop' into master 2018-04-06 14:39:04 +02:00
Michael Teeuw
b67f3bd629 Move change to 2.4.0 changelog. 2018-04-06 14:37:26 +02:00
Michael Teeuw
38b81e79f8 Merge pull request #1255 from wonjerry/develop
Error in default/currentWeather
2018-04-06 14:35:19 +02:00
wonjerry
b73c549131 Error in MagicMirror/modules/default/currentWeather/currentWeather.js line 296, 300
Notice that self.config.animationSpeed can not be found because the notificationReceived function does not have "self" variable.
2018-04-06 21:25:10 +09:00
Michael Teeuw
d21d9f0141 Use Electron 2 Beta. 2018-04-06 13:21:53 +02:00
Michael Teeuw
7bb85032a1 Merge pull request #1252 from BerndKohl/feelslike-localisation
enabling translation for "feelsLike" in current weather
2018-04-06 13:11:51 +02:00
Michael Teeuw
d90446ad28 Update CHANGELOG.md 2018-04-06 13:10:41 +02:00
Michael Teeuw
8b5e2f5528 Add dutch 'Feels' temperature. 2018-04-06 13:04:55 +02:00
Michael Teeuw
1bcc3ab7f1 Add default translation. 2018-04-06 13:04:04 +02:00
Michael Teeuw
3359c3cd45 Update currentweather.js 2018-04-06 13:03:06 +02:00
Michael Teeuw
af812f3c90 Fix translation file. 2018-04-06 13:02:27 +02:00
Michael Teeuw
1e6201093b restore windChillInF variable. 2018-04-06 13:01:23 +02:00
BerndKohl
959ea69427 enabling translation for "feelsLike" in current weather
enabled translation
fixed typos in comments
added German translation
2018-04-06 12:28:47 +02:00
Sebastian Limbach
cea744a914 Remove yarn-or-npm 2018-04-03 19:38:00 +02:00
Michael Teeuw
e8baf48764 Update CHANGELOG.md 2018-04-02 14:18:28 +02:00
Michael Teeuw
41242a2ae1 Merge pull request #1248 from E3V3A/patch-5
null check for notification removal
2018-04-02 14:17:25 +02:00
Michael Teeuw
f1dee488a7 Fix indent. 2018-04-02 14:11:21 +02:00
Michael Teeuw
3b4ff1818e Update CHANGELOG.md 2018-04-02 14:03:16 +02:00
E:V:A
497145b1b5 null check for notification removal
Make sure there is something to remove, before we attempt to remove the notifications. 
- This fixes #1240
2018-04-02 14:07:25 +03:00
Michael Teeuw
10eb41d319 FIx wind chill in Fahrenheit. 2018-04-02 12:58:19 +02:00
Michael Teeuw
4daf2e4a3d Merge pull request #1246 from secuflag/develop
Update italian translation
2018-04-01 19:44:24 +02:00
secuflag
f3266a5111 Update italian translation 2018-04-01 19:38:03 +02:00
Michael Teeuw
27cac4e8b8 Merge v2.3.1 2018-04-01 19:17:08 +02:00
Michael Teeuw
60b9a5b9da Merge pull request #1245 from MichMich/electron-downgrade
v2.3.1
2018-04-01 19:12:25 +02:00
Michael Teeuw
eaaa62a7f3 Downgrade Electron. 2018-04-01 19:05:38 +02:00
Michael Teeuw
6ce732ec3d Preparation for v2.4.0. 2018-04-01 14:23:28 +02:00
Michael Teeuw
fb0cc61e09 Merge pull request #1241 from MichMich/develop
Release 2.3.0
2018-04-01 14:16:36 +02:00
Michael Teeuw
be29b5daf8 Prepare for release 2.3.0 2018-04-01 14:08:38 +02:00
Michael Teeuw
f010adabd0 Merge pull request #1232 from Kiina/develop
Update electron to 1.7.13
2018-03-28 12:27:05 +02:00
Dominic Dey-Marckmann
c93b263b1f Update electron to 1.7.13 2018-03-27 21:09:08 +02:00
Michael Teeuw
15f34d6b54 Update CHANGELOG.md 2018-03-25 14:56:20 +02:00
Michael Teeuw
d0eeb55999 Merge pull request #1186 from BonySimon/patch-1
Fix exception on translation of objects
2018-03-25 14:55:52 +02:00
Michael Teeuw
08c0d39b23 Update translator.js 2018-03-25 14:55:42 +02:00
Michael Teeuw
d0ecde3277 Merge pull request #1176 from relm923/forecast_max_days
Forecast - Max Days
2018-03-25 14:53:30 +02:00
Michael Teeuw
45ec57afd7 Merge branch 'develop' into forecast_max_days 2018-03-25 14:52:42 +02:00
Michael Teeuw
b0cd053083 Merge pull request #1202 from iampranavsethi/currentweather-module-updates
Currentweather module updates
2018-03-25 14:52:05 +02:00
Michael Teeuw
698a11be58 Merge branch 'develop' into currentweather-module-updates 2018-03-25 14:51:47 +02:00
Michael Teeuw
efb08fb1e1 Update CHANGELOG.md 2018-03-25 14:51:18 +02:00
Michael Teeuw
f89bc8422e Merge pull request #1224 from bacongobbler/clearer-install-question
capitalize "y/n" for clearer intent
2018-03-25 14:47:35 +02:00
Michael Teeuw
4bf4889a08 Merge pull request #1225 from moham96/patch-1
use shallow clone
2018-03-25 14:47:09 +02:00
Michael Teeuw
01ab8ba38e Merge pull request #1227 from E3V3A/patch-4
removed known issues as they are closed
2018-03-25 14:46:44 +02:00
E:V:A
ae6d15e812 removed known issues as they are closed 2018-03-25 12:07:29 +03:00
MOHAMMAD RASIM
1abfbe1d34 use shallow clone
not need to download the whole repo history
2018-03-24 16:11:57 +03:00
Matthew Fisher
d3095297c2 capitalize "y/n" for clearer intent
If you press enter, `choice` is an empty string and will default to "no". The convention is to capitalize the default answer so users know what happens when they auto-accept prompts.
2018-03-23 16:29:37 -07:00
Michael Teeuw
79d40d5644 Merge pull request #1199 from ThomasMirlacher/develop
Add dc:date to parsing in newsfeed module, which allows parsing of mo…
2018-03-21 12:17:23 +01:00
Thomas Mirlacher
008e305a84 use doublequotes. 2018-03-21 11:58:09 +01:00
Michael Teeuw
0379611edd Merge pull request #1218 from kjb085/kb/calendar-adv-filter
Add advanced filtering to excludedEvents
2018-03-21 11:34:41 +01:00
Kenn Breece
96d883c1c7 Merge branch 'develop' into kb/calendar-adv-filter 2018-03-20 15:38:16 -04:00
Kenn Breece
be0f262e37 Add advanced filtering to excludedEvents 2018-03-18 23:54:23 -04:00
Michael Teeuw
1676adf071 Merge pull request #1209 from E3V3A/patch-3
update node stable to 9.x
2018-03-14 10:26:25 +01:00
E:V:A
a5d5630067 update node stable to 9.x 2018-03-14 11:24:41 +02:00
Pranav Sethi
275956caba Fixed typos in README.md for currentweather. 2018-03-12 22:22:45 -04:00
Michael Teeuw
bf8ed87fc9 Merge pull request #1197 from ptz0n/patch-1
Update README.md
2018-03-12 18:34:21 +01:00
Michael Teeuw
fb3afac097 Merge pull request #1200 from djgalloway/wip-apt-y
Assume yes when installing deps on Raspberry Pi via apt-get
2018-03-12 18:33:36 +01:00
Michael Teeuw
eda8b037a9 Merge pull request #1205 from Tajnymag/develop
Added yarn support
2018-03-12 18:32:31 +01:00
Marek Lukáš
8ef14f7a54 Added changes from [9974e35] to CHANGELOG 2018-03-12 15:33:30 +01:00
Marek Lukáš
9974e35656 Added yarn support 2018-03-12 15:28:43 +01:00
Pranav Sethi
15bc5431b6 Fixed Trailling Spaces 2018-03-12 05:25:33 -04:00
Pranav Sethi
f767531d89 Fixed Trailling Spaces 2018-03-12 05:25:01 -04:00
Pranav Sethi
7285ada9dd Added feels like and kmph wind for currentweather module 2018-03-12 05:06:16 -04:00
Pranav Sethi
b9b9773df9 Merge branch 'develop' into currentweather-module-updates 2018-03-12 03:56:44 -04:00
David Galloway
c29a83b259 Assume yes when installing deps on Raspberry Pi via apt-get
Signed-off-by: David Galloway <dgallowa@redhat.com>
2018-03-11 13:17:33 -04:00
Thomas Mirlacher
fa45e66da6 Add dc:date to parsing in newsfeed module, which allows parsing of more rss feeds. 2018-03-10 00:30:45 +01:00
Erik Eng
7cbcdddac9 Merge branch 'develop' into patch-1 2018-03-07 09:18:07 +01:00
Erik Eng
a2f17900da Update README.md
Correct manual installation step.
2018-03-07 09:13:33 +01:00
Michael Teeuw
fb7e97b8ad Merge pull request #1190 from E3V3A/patch-1
made the module "this" instances into a table
2018-03-06 09:36:04 +01:00
Michael Teeuw
0c92a8a8e9 Merge pull request #1191 from E3V3A/patch-2
fix md header
2018-03-06 09:35:34 +01:00
Michael Teeuw
dcc59380e5 Merge pull request #1194 from bastilimbach/develop
Remove old docker config and link to docker repository
2018-03-06 09:33:50 +01:00
Sebastian Limbach
f9bf25f96d Add changes 2018-03-04 14:07:44 +01:00
Sebastian Limbach
cbcbea8b08 Remove old docker config 2018-03-04 13:59:45 +01:00
Pranav Sethi
62eb4f20da Fixed Trailling Spaces to Pass checks 2018-03-03 05:08:12 -05:00
Pranav Sethi
43d5311e5e Fixed Trailling Spaces 2018-03-03 05:00:26 -05:00
Pranav Sethi
a6f08a09d5 Added Feels Like and Windspeed in KMPH 2018-03-03 04:52:22 -05:00
Pranav Sethi
d93f5d7785 Added Feels Like and Windspeed in KMPH 2018-03-03 04:21:24 -05:00
E:V:A
c7170e6dc2 fix md header 2018-03-01 11:53:10 +02:00
E:V:A
bcf3ca7339 made the module "this" instances into a table 2018-03-01 09:44:57 +02:00
Steelskin3
0388f5787a Fix exception on translation of objects
Sometimes, the content of translations[module.name][key] is not a string but an entire object. It cause a crash on template.replace(...) of createStringFromTemplate(...). It is currently the case of MMM-Voice-Control and the previous commit have broked this module (10 month ago... I am surprised to be the first founded it)
2018-02-23 11:51:59 +01:00
Michael Teeuw
6514df9d96 Merge pull request #1184 from patoberli/patch-1
Update README.md
2018-02-20 11:29:27 +01:00
Michael Teeuw
8f5b9869dc Merge branch 'develop' into patch-1 2018-02-20 11:28:58 +01:00
patoberli
580c5fe23f Update README.md
Added a hint to use the full and not lite version of Raspbian, as the GUI is missing and thus ndm (electron) can't start after the installation.
2018-02-17 21:54:31 +01:00
Michael Teeuw
b0af5b26ba Merge pull request #1183 from fewieden/feature/translations-update
translations update
2018-02-17 10:30:30 +01:00
Michael Teeuw
9e898932f6 Merge pull request #1182 from fewieden/feature/automated-tests
Automated tests
2018-02-17 10:29:23 +01:00
fewieden
1f873b93f6 changelog, linting 2018-02-17 10:17:59 +01:00
fewieden
f414707f11 update translations for updatenotifications 2018-02-17 10:14:37 +01:00
fewieden
505825056c use translation template for updatenotifications 2018-02-17 10:10:57 +01:00
fewieden
38f7716738 linting 2018-02-17 09:20:34 +01:00
fewieden
a69d08b554 changelog 2018-02-17 09:18:12 +01:00
fewieden
3ccdb64833 deprecated unit tests 2018-02-16 22:09:15 +01:00
fewieden
78d8bff599 clone array, clone nested object, add safe checks for objects (memory address) 2018-02-16 19:58:28 +01:00
fewieden
a756fed70b fixed and reenabled lockstring test 2018-02-16 08:43:27 +01:00
fewieden
3e2a1e3548 linting 2018-02-16 00:08:11 +01:00
fewieden
96b2f2b3a4 clone object unit test 2018-02-16 00:01:02 +01:00
fewieden
d81d7d4f68 compare version unit test 2018-02-15 23:53:57 +01:00
fewieden
20244c4fb5 translations integration test 2018-02-15 23:22:52 +01:00
Michael Teeuw
b50d31ffe2 Merge pull request #1178 from E3V3A/develop
Added ToC
2018-02-13 09:24:36 +01:00
fewieden
d709a44960 strip comments unit test 2018-02-13 07:17:46 +01:00
E:V:A
4e4d07ced6 Added ToC
ToDo: Fix ToC links to headers
2018-02-11 18:24:31 +02:00
fewieden
d775bc9d7e loadCoreTranslationsFallback unit test 2018-02-11 09:08:09 +01:00
fewieden
85528761eb only load core callback if there is one available 2018-02-11 09:07:41 +01:00
fewieden
ad3eac9ddb loadcoretransations unit test 2018-02-11 08:58:02 +01:00
Reagan Elm
613f9fccd2 Update changelog 2018-02-10 20:56:10 -05:00
Reagan Elm
3d1741c904 Respect maxNumberOfDays regardless of endpoint 2018-02-10 20:53:38 -05:00
fewieden
26be14ba67 load unit test 2018-02-10 20:33:22 +01:00
fewieden
daa0755920 add missing parameter in documentation 2018-02-10 12:38:55 +01:00
fewieden
305d60e09b translator unit tests 2018-02-10 12:32:43 +01:00
fewieden
d0029efd02 utils unit tests 2018-02-10 12:30:33 +01:00
fewieden
fb4d42bf5b moved test 2018-02-10 12:28:30 +01:00
Michael Teeuw
20eec53b14 Add Manifesto. 2018-02-07 13:04:10 +01:00
Michael Teeuw
8343db44db Merge pull request #1173 from vvzvlad/vvzvlad_local
add variable morning afternoon times
2018-02-07 12:32:42 +01:00
vvzvlad
649652e373 Merge branch 'develop' into vvzvlad_local 2018-02-07 14:10:43 +03:00
vvzvlad
e37ed7c32d add variable morning afternoon times 2018-02-07 14:06:26 +03:00
vvzvlad
f9a525068b add variable morning afternoon times 2018-02-05 18:15:02 +03:00
Michael Teeuw
aa11e6d62e Merge pull request #1166 from henrysun18/develop
Show remote compliments on boot
2018-02-01 08:20:22 +01:00
henrysun18
6802d152da Show remote compliments at boot instead of after one updateInterval 2018-01-31 23:19:47 -05:00
Michael Teeuw
3b40f393d8 Merge pull request #1163 from pinsdorf/patch-1
corrected link to 3rd party modules wiki page
2018-01-30 13:49:37 +01:00
pinsdorf
020443ae8a corrected link to 3rd party modules wiki page
The link to the 3rd Party Modules still directs to the old wiki page, where use has to follow another link to the right page. Updated the link in README.md to navigate to the right wiki page instantly.
2018-01-30 10:59:18 +01:00
Michael Teeuw
1d0baccffc Merge pull request #1161 from thobach/master
Allow to scroll in full page article view of default newsfeed module
2018-01-30 09:47:33 +01:00
Thomas Bachmann
5426f0f329 Updated documentation for scroll mode in newsfeed module 2018-01-29 21:41:43 +01:00
Thomas Bachmann
790249dd1a Merge branch 'MichMich/develop' 2018-01-29 21:37:25 +01:00
Thomas Bachmann
446a201d25 Allow to scroll articles with gesture events 2018-01-29 21:26:34 +01:00
Thomas Bachmann
b6538d5e18 Merge remote-tracking branch 'MichMich/master' 2018-01-29 18:54:32 +01:00
Michael Teeuw
edd6043059 Fail PRs that are sent to the master branch. 2018-01-26 12:12:44 +01:00
Michael Teeuw
fe4ffeb7f1 Text cleanup. 2018-01-25 20:45:25 +01:00
Michael Teeuw
27b3875bfb Changed missing Changlog text. 2018-01-25 20:38:42 +01:00
Michael Teeuw
e2dbe8a0a2 Minor fixes. 2018-01-25 20:07:51 +01:00
Michael Teeuw
29fc7910b7 Remove Jest. Update dangerfile.js. 2018-01-25 19:51:23 +01:00
Michael Teeuw
22e2fdc707 Jest implementation to get danger.js to work. 2018-01-25 19:43:09 +01:00
Michael Teeuw
584786eb9f Temp disable danger. 2018-01-25 17:00:51 +01:00
Michael Teeuw
d803d9eaf9 Import 'includes' from lodash. 2018-01-25 16:39:49 +01:00
Michael Teeuw
bad6575d83 Add Danger.js 2018-01-25 16:24:05 +01:00
Michael Teeuw
fbcb7ae836 Update README.md 2018-01-23 19:10:37 +01:00
Michael Teeuw
2c1a1b10c8 Merge pull request #1147 from E3V3A/patch-2
Update README.md
2018-01-23 09:51:15 +01:00
E:V:A
155fb16a8a Update README.md
Updated README by reformatting and restructuring.
- Added, Clarified and corrected grammatics and wrong info 
- Moved/Removed some redundant parts
2018-01-23 10:44:55 +02:00
Michael Teeuw
b1ab2ce96a Merge pull request #1146 from cederstrom/put-article-in-front-of-modules
Put article iframe in front of modules
2018-01-21 11:33:22 +01:00
Andreas Cederström
f299ba6218 Put article ifram in front of modules
Before this change the article was brought up in its ifram in fullscreen and you could still see the other modules in front of it
2018-01-20 23:46:58 +01:00
Michael Teeuw
d167ad1923 Merge pull request #1136 from E3V3A/patch-2
Update README
2018-01-19 09:15:54 +01:00
E:V:A
93626e8154 Fixed bullet points markup for lint 2018-01-19 09:13:59 +02:00
Michael Teeuw
d5040c091a Merge pull request #1143 from shbatm/bug-fix
Fix for #1140 - sendNotification module errors after #1116
2018-01-18 13:35:47 +01:00
shbatm
868daef0f0 Fix for #1140 - sendNotification module errors after #1116 2018-01-17 09:49:17 -06:00
Michael Teeuw
dc8e85e7f2 Merge pull request #1139 from amcolash/patch-1
Change English translation to "In 2 days"
2018-01-16 09:20:57 +01:00
Michael Teeuw
22d32d7ca3 Merge pull request #1141 from ConnorChristie/old-dom-event-fix
Fix to emit DOM_OBJECTS_CREATED event after module DOMs have actually loaded
2018-01-16 09:20:39 +01:00
Connor Christie
2d500f8074 Fix to emit DOM_OBJECTS_CREATED event after module DOMs have actually loaded 2018-01-14 22:03:09 -06:00
Andrew McOlash
452cdc17c6 Change English translation to "In 2 days" 2018-01-14 15:52:15 -06:00
E:V:A
bcbfee0321 Update README
Updated README to warn about long installation time as discussed in #1124.
2018-01-12 10:00:35 +02:00
Michael Teeuw
dab2e7ede3 Merge pull request #1127 from roramirez/set-version-test-7-node
Set only 7 version of node to run tests in Travis CI
2018-01-08 11:26:25 +01:00
Michael Teeuw
d91acb8352 Merge pull request #1126 from d-Rickyy-b/patch-1
Fix typo in newsfeed documentation
2018-01-08 11:23:49 +01:00
Rodrigo Ramírez Norambuena
373dd8058e Set only 7 version of node to run tests in Travis CI 2018-01-07 01:03:00 -03:00
Rico
de6310e52a Fix typo
A little typo which lead to poor formatting
2018-01-07 03:30:01 +01:00
Michael Teeuw
8c297a4a4c Merge pull request #1123 from E3V3A/patch-1
Added general advice
2018-01-06 19:49:44 +01:00
E:V:A
4eb5c817bc fixed typos 2018-01-06 20:19:43 +02:00
E:V:A
07e4b26b9e Added general advice 2018-01-06 19:57:46 +02:00
Michael Teeuw
b63aa62985 Merge pull request #1121 from henrikra/master
Add basic typescript types for module
2018-01-06 14:29:52 +01:00
Henrik Raitasola
ca701c0580 Merge branch 'master' of github.com:henrikra/MagicMirror 2018-01-06 15:26:51 +02:00
Henrik Raitasola
e37043a6a8 Solve conflict 2018-01-06 15:26:38 +02:00
Michael Teeuw
7c26975d14 Merge branch 'develop' into master 2018-01-06 14:16:21 +01:00
Henrik Raitasola
47f8a43637 Add changelog 2018-01-06 15:10:10 +02:00
Henrik Raitasola
1238c0cefe Rename file to be more explicit 2018-01-06 15:06:58 +02:00
Henrik Raitasola
4c35fda045 Add most used module properties 2018-01-06 15:04:54 +02:00
Henrik Raitasola
780124c2f5 Add basic types to get started 2018-01-06 14:51:32 +02:00
Michael Teeuw
38e0af41ce Merge pull request #1116 from ConnorChristie/async-dom
DOM creation notifications in cases of async template rendering
2018-01-04 21:51:13 +01:00
Connor Christie
601e99eec0 Merge branch 'develop' into async-dom 2018-01-02 18:10:07 -06:00
Connor Christie
745a2adee7 Merge branch 'develop' into async-dom 2018-01-02 18:08:55 -06:00
Connor Christie
9e83234df1 Update changelog 2018-01-02 18:06:21 -06:00
Connor Christie
e45eeadf7d Merge remote-tracking branch 'origin/master' into async-dom 2018-01-02 18:04:03 -06:00
Michael Teeuw
9a778cea6b Merge v2.2.2 changes. 2018-01-02 18:46:41 +01:00
Michael Teeuw
20823bfc87 Add missing package-lock.json. 2018-01-02 18:41:33 +01:00
Connor Christie
be3d703692 Fix linter errors 2018-01-01 10:55:39 -06:00
Connor Christie
e2df5739f0 Update module docs 2018-01-01 10:40:52 -06:00
Connor Christie
7bb11d6436 Add documentation regarding updates 2018-01-01 10:38:00 -06:00
Connor Christie
80b84212cc Add notification for module dom creation with async support 2018-01-01 10:23:15 -06:00
Connor Christie
4a1bee769b Add true module dom creation events 2018-01-01 09:42:34 -06:00
Michael Teeuw
de99a7aeaf Merge 2.2.1 changes. 2018-01-01 14:23:38 +01:00
Michael Teeuw
a0a02701b0 Update version number. 2018-01-01 13:42:39 +01:00
Michael Teeuw
1314ae1555 Add info about v2.2.1 2018-01-01 13:40:39 +01:00
Michael Teeuw
67cf0e745c Fix linting errors. 2018-01-01 13:39:05 +01:00
Michael Teeuw
538a2acbf5 Fix linting errors. 2018-01-01 13:38:07 +01:00
Michael Teeuw
8d0e453666 Preparation for v2.3.0 release. 2018-01-01 12:59:28 +01:00
Michael Teeuw
ace04f0b30 Merge pull request #1115 from MichMich/develop
Cleanup.
2018-01-01 12:48:22 +01:00
Michael Teeuw
f8e25d6c4a Cleanup. 2018-01-01 12:47:54 +01:00
Michael Teeuw
b2bc43da4f Merge pull request #1113 from MichMich/develop
Release v2.2.0.
2018-01-01 12:44:24 +01:00
Michael Teeuw
cb12e540d2 Add package lock. 2018-01-01 12:40:37 +01:00
Michael Teeuw
39955af2fa Upgrade packages. 2018-01-01 12:36:53 +01:00
Michael Teeuw
86e1f0615d Prepare for release v2.2.0 2018-01-01 12:33:00 +01:00
Michael Teeuw
dc81ab6dee Merge pull request #1111 from TTigges/weather_decimal_marks
added option of decimal comma for temp values for default weather modules
2017-12-31 12:25:24 +01:00
Michael Teeuw
f8cf6a65ae Merge branch 'develop' into weather_decimal_marks 2017-12-31 12:25:06 +01:00
Michael Teeuw
ba909c696d Merge branch 'develop' into weather_decimal_marks 2017-12-31 12:24:25 +01:00
Torben Tigges
df0515cebf currentweather, weatherforecast, changed option of decimal comma to any decimal symbol 2017-12-31 01:15:59 +01:00
Torben Tigges
46c0e14d67 currentweather, weatherforecast, added option of decimal comma for temperature values to config 2017-12-30 22:03:26 +01:00
Michael Teeuw
97d7733464 Remove trailing spaces. 2017-12-30 21:46:34 +01:00
Michael Teeuw
afda84ef09 Electron reverted. 2017-12-30 21:39:56 +01:00
Michael Teeuw
61d6e74102 Use an old electron version ...
Hopefully Electron will be fixed soon.
2017-12-30 21:33:56 +01:00
Michael Teeuw
8d74258ce2 Merge pull request #1102 from EricWarnke/patch-1
Spelling/grammar fix
2017-12-13 09:22:38 +01:00
Eric Warnke
5dfba0b834 Spelling/gramar fix 2017-12-12 15:54:33 -07:00
Michael Teeuw
056370ec08 Merge pull request #1092 from sebcaps/develop
Fix #1091 : handle empty description
2017-11-26 20:54:13 +01:00
unknown
4e2c254558 Fix #1091 : handle empty description 2017-11-26 11:52:01 +01:00
Michael Teeuw
38c2bdb447 Merge pull request #1090 from rejas/patch-1
Fix typo
2017-11-26 10:42:20 +01:00
Veeck
0cee4717e2 Fix typo 2017-11-26 10:02:31 +01:00
Michael Teeuw
221b04c466 Merge pull request #1089 from MichMich/patch-1
Update CHANGELOG.md
2017-11-25 12:15:54 +01:00
Michael Teeuw
237e9b7191 Merge pull request #1088 from reeno/patch-2
fixed width Font Awesome symbols
2017-11-25 12:15:27 +01:00
Michael Teeuw
9457e44a88 Update CHANGELOG.md 2017-11-25 12:14:54 +01:00
reeno
80a9d40a44 fixed width Font Awesome symbols
See http://fontawesome.io/examples/#fixed-width
2017-11-25 12:08:40 +01:00
Michael Teeuw
0715325a63 Merge pull request #1081 from ChytilTomas/develop
Develop
2017-11-17 09:06:06 +01:00
Michael Teeuw
0a026fef0f Update CHANGELOG.md 2017-11-17 09:05:33 +01:00
Tomáš Chytil
5fbf650d2d Czech translation 2017-11-16 23:06:52 +01:00
Tomáš Chytil
dabdde0c3f Czech translation 2017-11-16 23:01:00 +01:00
Michael Teeuw
b6ca92a7ef Merge pull request #1080 from slametps/develop
some new features (resubmission)
2017-11-15 08:26:25 +01:00
slametps
62f7339170 add some new options
add some new options
2017-11-15 12:21:45 +07:00
slametps
eaec682ea7 per feed reloadInterval support
per feed reloadInterval support
2017-11-15 12:21:22 +07:00
slametps
12110a4442 new options
* truncated description support
* specific reloadInterval for particular feed
2017-11-15 12:21:02 +07:00
slametps
df597f53b2 add no-cache entries in HTTP header
add no-cache entries in HTTP header
2017-11-15 12:19:53 +07:00
slametps
d7d40254d4 updated
updated
2017-11-15 12:19:19 +07:00
Michael Teeuw
e7c4a2cce6 Merge pull request #1072 from morozgrafix/newsfeed_filter
Added ability to set a list of prohibited words that will be filtered…
2017-11-01 11:53:00 +01:00
Sergey Morozov
0eb1c0cea6 Added ability to set a list of prohibited words that will be filtered out of newsfeed
Resolves #1071

`prohibitedWords` config parameter is an array of words. If set and case insensitive greedy match is found anywhere in the title then that newsfeed item will not be displayed. Readme updated with instructions.

Users should be careful on the words selection as careless setting may remove many or all items from the newsfeed. Some obvious mistakes like `space, comma, dot` etc. can be prevented programatically, but I left it out of this PR

Example:

with `prohibitedWords: ['dodgers']`

Original `newsItems`:
```
0:{title: "New York City, Russia, Los Angeles Dodgers: Your Wednesday Briefing", description: "Here’s what you need to know to start your day.", pubdate: "Wed, 01 Nov 2017 09:37:36 GMT", url: "https://www.nytimes.com/2017/11/01/briefing/new-yo…ssia-los-angeles-dodgers.html?partner=rss&emc=rss", sourceTitle: "New York Times"}
1:{title: "A Mangled School Bus, Bodies Everywhere; ‘It Was Surreal’", description: "A truck ramming bicyclists. The driver emerging wi…e attack, it was as confusing as it was gruesome.", pubdate: "Wed, 01 Nov 2017 09:27:41 GMT", url: "https://www.nytimes.com/2017/10/31/nyregion/nyc-sc…r-attack-truck-witnesses.html?partner=rss&emc=rss", sourceTitle: "New York Times"}
2:{title: "Dodgers 3, Astros 1 | Series tied, 3-3: With a Rally and a Romp, Dodgers Top Astros and Force Game 7", description: "Down by a run with just four innings left in Game …nst a dominating Justin Verlander. Game 7 awaits.", pubdate: "Wed, 01 Nov 2017 07:21:07 GMT", url: "https://www.nytimes.com/2017/11/01/sports/dodgers-win-game-6.html?partner=rss&emc=rss", sourceTitle: "New York Times"}
3:{title: "José Andrés Fed Puerto Rico, and May Change How Aid Is Given", description: "The chef’s huge effort is just the latest led by c…ocally based way to feed people after a disaster.", pubdate: "Wed, 01 Nov 2017 06:40:09 GMT", url: "https://www.nytimes.com/2017/10/30/dining/jose-andres-puerto-rico.html?partner=rss&emc=rss", sourceTitle: "New York Times"}
```

Filtered `newsItems`:
```
0:{title: "A Mangled School Bus, Bodies Everywhere; ‘It Was Surreal’", description: "A truck ramming bicyclists. The driver emerging wi…e attack, it was as confusing as it was gruesome.", pubdate: "Wed, 01 Nov 2017 09:27:41 GMT", url: "https://www.nytimes.com/2017/10/31/nyregion/nyc-sc…r-attack-truck-witnesses.html?partner=rss&emc=rss", sourceTitle: "New York Times"}
1:{title: "José Andrés Fed Puerto Rico, and May Change How Aid Is Given", description: "The chef’s huge effort is just the latest led by c…ocally based way to feed people after a disaster.", pubdate: "Wed, 01 Nov 2017 06:40:09 GMT", url: "https://www.nytimes.com/2017/10/30/dining/jose
```
2017-11-01 03:50:34 -07:00
Michael Teeuw
07d35a8513 Remove todo item. 2017-10-19 16:52:57 +02:00
Michael Teeuw
16c887814e Show humidity. 2017-10-19 16:51:51 +02:00
Michael Teeuw
22a50b72fd Show unit. 2017-10-19 16:43:12 +02:00
Michael Teeuw
a79e1b6ca1 Rename templates to .njk files to allow syntax highlighting. 2017-10-18 13:52:11 +02:00
Michael Teeuw
995296ef53 Merge branch 'develop' into weather-refactor 2017-10-18 13:49:53 +02:00
Michael Teeuw
f4d5996a88 Allow use of .njk extension for template files. 2017-10-18 13:49:03 +02:00
Michael Teeuw
ab732b5435 Make all visiable values dynamic. 2017-10-18 13:38:56 +02:00
Michael Teeuw
241ff5cb6e Set temperature rounding. 2017-10-18 12:19:02 +02:00
Michael Teeuw
ec2169e079 Merge branch 'develop' into weather-refactor 2017-10-18 12:01:44 +02:00
Michael Teeuw
c75662e720 Remove trailing spaces. 2017-10-18 12:01:06 +02:00
Michael Teeuw
d567fd4842 Merge branch 'develop' into weather-refactor 2017-10-18 11:59:29 +02:00
Michael Teeuw
0776dfc80e Minor changes. 2017-10-18 11:58:45 +02:00
Michael Teeuw
79a662fb93 Log nunjucks parsing errors for debugging. 2017-10-18 11:55:02 +02:00
Michael Teeuw
8b009b7ee9 Add Catalan translation. 2017-10-18 10:15:47 +02:00
Michael Teeuw
c4face30cc Update CHANGELOG.md 2017-10-18 10:14:54 +02:00
sergibarca
d4dbb5cb51 Translation to Catalan. 2017-10-17 22:24:13 +02:00
Michael Teeuw
1e27187652 Merge pull request #1060 from nhubbard/revert-1053-remove-package-lock.json
Revert "Delete large package-lock.json files"
2017-10-16 14:46:39 +02:00
Michael Teeuw
3ff278291f Merge pull request #1061 from qistoph/difflink
Add Github diff link to update info
2017-10-16 14:43:55 +02:00
Chris van Marle
4e8bf216df Update CHANGELOG 2017-10-16 14:26:15 +02:00
Chris van Marle
e7b9100f1c Add Github link to update info 2017-10-16 14:24:29 +02:00
Michael Teeuw
08aa9790f3 Fix lint issues. 2017-10-16 14:17:12 +02:00
Michael Teeuw
5f13fd2dca Merge pull request #1058 from shbatm/develop_1056
Gracefully Shutdown Module node_helpers on exit/SIGINT (Fixes #1056)
2017-10-16 13:59:40 +02:00
shbatm
f4c6f42c38 Added default implementation of stop() function. 2017-10-15 18:44:11 -05:00
Nicholas Hubbard
6a10d08189 Revert "Delete large package-lock.json files" 2017-10-13 19:59:39 -04:00
shbatm
f646360af6 Gracefully shutdown node_helpers (Fixes #1056)
Updated documentation


Corrected Typo in Documentation


Style correction
2017-10-13 16:43:11 -05:00
Michael Teeuw
95f265ebbf Merge pull request #1057 from Stromwerk/develop
Add Bulgarian translations for MagicMirror² and Alert module
2017-10-13 21:05:16 +02:00
Kalin Koychev
39d0142993 - Add Bulgarian translations for MagicMirror² and Alert module 2017-10-13 21:51:21 +03:00
Michael Teeuw
da16172244 Merge pull request #1055 from qistoph/commentscheck
Check trailing white space in comments too
2017-10-13 20:39:44 +02:00
Michael Teeuw
71aded0fae Merge pull request #1054 from qistoph/gruntfix
Fix some white space grunt errors
2017-10-13 20:39:04 +02:00
Michael Teeuw
e173b3ea41 Merge pull request #1053 from roramirez/remove-package-lock.json
Delete large package-lock.json files
2017-10-13 20:38:18 +02:00
Chris van Marle
6c4f9466b9 Don't ignore comments in trailing whitespace check 2017-10-12 11:06:57 +02:00
Chris van Marle
664196c5ef Fix some trailing whitespace grunt errors 2017-10-12 10:23:40 +02:00
Michael Teeuw
c8d5044e7a Merge pull request #1051 from egin10/patch-1
correcting translation for indonesian language
2017-10-10 17:20:28 +02:00
Michael Teeuw
d8c31fe560 Merge pull request #1049 from egin10/patch-2
Updating and Correcting Translation
2017-10-10 17:19:50 +02:00
Rodrigo Ramírez Norambuena
516db855f5 Delete large package-lock.json files 2017-10-08 23:41:51 -03:00
Ginanjar S.B
9cdcf08ab1 correcting translation for indonesian language 2017-10-09 08:05:11 +07:00
Ginanjar
326fa73b22 Updating and Correcting Translation 2017-10-08 03:03:29 +07:00
Michael Teeuw
79cacefd07 Merge pull request #1047 from jannickfahlbusch/useHTTPSOpenWeatherMap
Weather (Current/Forecast): Use HTTPS instead of HTTP
2017-10-06 21:32:49 +02:00
Jannick Fahlbusch
07e28bfee6 Use HTTPS instead of HTTP
Chrome blocks insecure requests (HTTP) when MagicMirror is loaded
via HTTPS. This commit changes the protocol used for OpenWeatherMap.
2017-10-06 21:31:06 +02:00
Michael Teeuw
980b017fbe Merge pull request #1046 from wbleek/master
moved weekNumber into field and adjusted language handling accordingly [issue #910]
2017-10-03 22:13:21 +02:00
Wolf-Gideon Bleek
4567fd1eb0 Merge branch 'develop' into master 2017-10-03 21:29:10 +02:00
Wolf-Gideon Bleek
8c150c23f3 moved weekNumber into field and adjusted language handling accordingly [issue #910] 2017-10-03 21:25:30 +02:00
Wolf-Gideon Bleek
b4fd570269 moved weekNumber into field and adjusted language handling accordingly [issue #910] 2017-10-03 21:18:25 +02:00
Michael Teeuw
681a845ef3 Add Darksky provider. 2017-10-03 14:38:54 +02:00
Michael Teeuw
6e051d73c1 Merge pull request #1044 from cederstrom/honor-calendar-maximum-entries
Slice the list of all calendar events to honor config.maximumEntries
2017-10-01 21:51:33 +02:00
Michael Teeuw
e381e1a313 Merge pull request #1042 from roramirez/readme-localhost-bind
Updated readme about default value for `address` configuration
2017-10-01 21:49:47 +02:00
Andreas Cederström
2d03ff63cf Slice the list of all events to honor config.maximumEntries
Scenario:
* Specify more than one calendar in `config.calendars`
* Specify a maximum number of entries in `config.maximumEntries`

Result:
The module will show as many as maximumEntries for EACH calendar

Expected:
The module shall not show more than a total of maximumEntries, regardless of how many calendars I specify

Fixes #1043
2017-10-01 21:47:10 +02:00
Rodrigo Ramírez Norambuena
309de631ed Updated readme about default value for address configuration changed it
in https://github.com/MichMich/MagicMirror/commit/2f05228d
2017-10-01 15:01:34 -03:00
Michael Teeuw
ad240cf52f Fix lint errors. 2017-10-01 16:19:14 +02:00
Michael Teeuw
99e3a47dde Use templates to render weather. 2017-10-01 13:50:15 +02:00
Michael Teeuw
3fa810b7b8 Merge branch 'develop' into weather-refactor 2017-10-01 13:25:52 +02:00
Michael Teeuw
bad7316b80 Allow html tags in text string. 2017-10-01 13:22:29 +02:00
Michael Teeuw
4757c36233 Updated changelog and minor fix example 2017-10-01 13:16:07 +02:00
Michael Teeuw
9ca6180207 Merge branch 'templates' into develop 2017-10-01 13:10:25 +02:00
Michael Teeuw
30179ad977 Setup of new dev release. 2017-10-01 12:39:48 +02:00
Michael Teeuw
b799609749 Merge pull request #1039 from MichMich/develop
Release 2.1.3
2017-10-01 12:36:53 +02:00
Michael Teeuw
efb6994ae7 Changes in preparation of 2.1.3 2017-10-01 12:34:54 +02:00
Nicholas Hubbard
cd129fb055 Revert "Fix Indentation?"
This reverts commit 2bf18d8bda.
2017-09-30 19:44:54 -04:00
Michael Teeuw
880a977dd6 Merge pull request #1038 from roramirez/templates-fixes
This fix the follow things:
2017-09-30 13:39:00 +02:00
Michael Teeuw
6eceffb403 Merge pull request #1037 from roramirez/lint-fix
Little lint fix
2017-09-30 13:36:38 +02:00
Rodrigo Ramírez Norambuena
795e33881c This fix the follow things:
* The default screen on missing configuration file and syntax error.
    * Tests
2017-09-29 19:10:03 -03:00
Rodrigo Ramírez Norambuena
d310c3857f Little lint fix 2017-09-29 18:33:17 -03:00
Nicholas Hubbard
837e275bfd Update fork 2017-09-29 10:11:46 -04:00
Nicholas Hubbard
7be6031e19 Merge branch 'weather-refactor' of https://github.com/MichMich/MagicMirror into weather-refactor 2017-09-29 10:11:22 -04:00
Michael Teeuw
8c53908cc4 Update CHANGELOG.md 2017-09-29 13:37:24 +02:00
Michael Teeuw
589b54984a Add slack badge. 2017-09-29 13:36:44 +02:00
Michael Teeuw
3f30ed5251 Add info about weather forecast. 2017-09-29 13:01:08 +02:00
Michael Teeuw
3f9181905a Fix typo's. 2017-09-29 11:05:59 +02:00
Michael Teeuw
29f3a81666 Fix weather forecast. 2017-09-29 10:04:42 +02:00
Michael Teeuw
5efc43260e Switch to async rendering. 2017-09-28 16:43:38 +02:00
Michael Teeuw
e01794a07f First Nunchucks Implementation. 2017-09-28 16:11:25 +02:00
Michael Teeuw
5fde095a6f Merge pull request #1024 from roramirez/openweathermap-forescast
Hack fix issue #1017
2017-09-28 14:44:13 +02:00
Michael Teeuw
3237af2d85 Add translation: Welsh (Cymraeg) 2017-09-28 14:42:21 +02:00
Michael Teeuw
953b666ebd Update translations.js 2017-09-28 14:41:30 +02:00
Michael Teeuw
417bb4bf37 Merge pull request #1022 from meigwilym/meigwilym-welsh-lang
Welsh (Cymraeg) language file
2017-09-28 14:39:26 +02:00
Michael Teeuw
a55213d88a Merge pull request #1019 from EdgardosReis/develop
Updated pt.json translation
2017-09-28 14:38:55 +02:00
Michael Teeuw
ec84d190f4 Remove newline. 2017-09-28 14:38:39 +02:00
Michael Teeuw
1b0bad72de Remove newline. 2017-09-28 14:38:08 +02:00
Michael Teeuw
931055708d Merge pull request #1033 from roramirez/one-instance-all-module-position-spec
Refactor modules_position_spec use one instance for all it statements
2017-09-26 08:56:06 +02:00
Rodrigo Ramírez Norambuena
15fd570b49 Refactor modules_position_spec use one instance for all it statements 2017-09-25 20:52:27 -03:00
Michael Teeuw
ff9c6bac0a Add a small forecast example. 2017-09-22 13:26:44 +02:00
Michael Teeuw
713111254b First implementation of the currentWeatherView 2017-09-22 12:26:47 +02:00
Michael Teeuw
5b1462a3e8 Add readme. 2017-09-22 10:37:39 +02:00
Nicholas Hubbard
2bf18d8bda Fix Indentation? 2017-09-21 20:12:25 -04:00
Nicholas Hubbard
7f2e643e62 Add Dark Sky Module 2017-09-21 20:06:42 -04:00
Michael Teeuw
ef172592b8 A first setup of the new Weather Module 2017-09-21 16:38:18 +02:00
Michael Teeuw
5e51a438a7 Merge pull request #1025 from ryck/feature/indoorHumidity
Feature/indoor humidity
2017-09-20 15:19:53 +02:00
Ricardo Gonzalez
7f768059e6 Update README 2017-09-17 16:33:23 +01:00
Ricardo Gonzalez
ea70175a17 Merge branch 'develop' into feature/indoorHumidity
* develop: (71 commits)
  Update sample address
  set version of express-ipfilter:
  Describe default in comment of sample config
  More secure defaults.
  Fix grunt errors
  Weather forecast settings match current weather
  Fix JavaScript error in weatherforecast
  Update fr.json
  TestSuite: Show the missing strings for translations files.
  Update fr.json with added translations
  Added e2e test for font files
  Fix issue #986
  Fix extra tab file translations/zh_cn.json
  Add Changelog entry for new e2e test for helloworld module
  Small change for re-running Travis CI
  Change Two Conditionals to UpperCase-If
  Fix linting?
  Show Scale of Temperature if config flag is set
  Change to install Roboto fonts by npm
  Update stylelint package
  ...

# Conflicts:
#	CHANGELOG.md
2017-09-17 16:32:37 +01:00
Ricardo Gonzalez
74a736691a Merge remote-tracking branch 'upstream/develop' into develop
* upstream/develop: (71 commits)
  Update sample address
  set version of express-ipfilter:
  Describe default in comment of sample config
  More secure defaults.
  Fix grunt errors
  Weather forecast settings match current weather
  Fix JavaScript error in weatherforecast
  Update fr.json
  TestSuite: Show the missing strings for translations files.
  Update fr.json with added translations
  Added e2e test for font files
  Fix issue #986
  Fix extra tab file translations/zh_cn.json
  Add Changelog entry for new e2e test for helloworld module
  Small change for re-running Travis CI
  Change Two Conditionals to UpperCase-If
  Fix linting?
  Show Scale of Temperature if config flag is set
  Change to install Roboto fonts by npm
  Update stylelint package
  ...
2017-09-17 16:31:27 +01:00
Mei Gwilym
86ff44adfc Welsh (Cymraeg) language file 2017-09-13 22:17:07 +01:00
Rodrigo Ramírez Norambuena
58b763e935 Hack fix issue #1017 2017-09-12 10:31:49 -03:00
EdgardosReis
5c90cc59aa Updated pt.json translation 2017-09-10 21:42:01 +01:00
Michael Teeuw
710ab44073 Merge pull request #1014 from roramirez/tests/unit/weatherforecast
Add roundValue unit test function weatherforecast module:
2017-09-07 10:07:28 +02:00
Michael Teeuw
b28c5e6807 Merge pull request #1015 from roramirez/show-missing-string-test-translations
TestSuite: Show the missing strings for translations files.
2017-09-07 10:07:09 +02:00
Michael Teeuw
e5ead9ed44 Merge pull request #1004 from qistoph/issue950
More secure defaults.
2017-09-06 15:25:04 +02:00
Chris van Marle
d99897cf9d Update sample address
As proposed in review
2017-09-06 15:22:17 +02:00
Michael Teeuw
701a7cae02 Merge pull request #1011 from qistoph/fix_on_991
Fix on 991
2017-09-06 14:40:32 +02:00
Michael Teeuw
068b6a5470 Merge pull request #1012 from roramirez/set-version-express-ipfilter
set version of express-ipfilter:
2017-09-06 14:19:30 +02:00
Rodrigo Ramírez Norambuena
45d597ac49 set version of express-ipfilter:
Prevent problems with ipWhitelist using []

Information in https://forum.magicmirror.builders/topic/4716/issue-with-white-list-ip-s-not-working/14
4adc5dc33e
2017-09-05 23:56:32 -03:00
Chris van Marle
a518d3f33f Describe default in comment of sample config 2017-09-01 14:46:25 +02:00
Chris van Marle
2f05228d91 More secure defaults.
Without config, listen only on looback interface. In sample config
listen on any interface, but use an IP whitelist.

Related to #950
2017-09-01 14:46:25 +02:00
Chris van Marle
335ae0105f Fix grunt errors 2017-09-01 11:17:01 +02:00
Chris van Marle
62ce7a0e37 Weather forecast settings match current weather
This change makes the config of weather forecast more in line with
current weather. It uses the configured units (metric, imperial,
default) to determine the sign.
2017-09-01 10:58:21 +02:00
Chris van Marle
afa0fb8da1 Fix JavaScript error in weatherforecast
Change 5568e0c2ad introduces JavaScript
errors, because it's calling toUpperCase() on a boolean value.
2017-09-01 10:38:25 +02:00
Michael Teeuw
763d835f4e Merge pull request #1006 from gcarret/patch-1
Added translations for french language
2017-08-29 14:17:43 +02:00
Michael Teeuw
0289872dcd Merge pull request #1000 from QNimbus/fix-issue-986
Fix for issue 986 (font file paths)
2017-08-29 14:15:27 +02:00
Michael Teeuw
2810141bd6 Merge pull request #997 from roramirez/extra-tab-translations/zh_cn.json
Fix extra tab file translations/zh_cn.json
2017-08-29 14:14:32 +02:00
Michael Teeuw
93ea22c69d Merge pull request #996 from roramirez/default-hello-world
Default hello world
2017-08-29 14:14:12 +02:00
Michael Teeuw
daf76a311c Merge pull request #991 from DanielWeeber/temperature-scale-show
Temperature scale show
2017-08-29 14:13:43 +02:00
gcarret
b94271a725 Update fr.json 2017-08-29 07:21:10 +02:00
Rodrigo Ramírez Norambuena
1456aeedf2 TestSuite: Show the missing strings for translations files.
In the translations test now when are missing some translations for
determinated language will be show the missing string.

This can help to identified and improved the translations files.

/me listening STP: Silvergun superman
2017-08-28 21:31:01 -03:00
gcarret
4c6589a57e Update fr.json with added translations 2017-08-27 14:30:58 +02:00
Bas van Wetten
5b9a61b7db Added e2e test for font files 2017-08-21 15:33:17 +02:00
Bas van Wetten
96e71695c5 Fix issue #986
Fixed some font file paths
2017-08-21 11:51:57 +02:00
Rodrigo Ramírez Norambuena
2e7dd1bde3 Fix extra tab file translations/zh_cn.json 2017-08-20 22:50:29 -03:00
Rodrigo Ramírez Norambuena
2de543f5f9 Add Changelog entry for new e2e test for helloworld module 2017-08-20 22:49:23 -03:00
Rodrigo Ramírez Norambuena
a6ee20fca4 Merge remote-tracking branch 'roramirez_github/develop' into default-hello-world 2017-08-20 22:49:13 -03:00
DanielWeeber
2d2f159e04 Small change for re-running Travis CI 2017-08-16 12:11:57 +02:00
DanielWeeber
5568e0c2ad Change Two Conditionals to UpperCase-If 2017-08-16 10:00:38 +02:00
DanielWeeber
cb2cc0cb9e Fix linting? 2017-08-15 20:57:18 +02:00
DanielWeeber
5e573ca980 Show Scale of Temperature if config flag is set 2017-08-15 19:54:35 +02:00
Michael Teeuw
dcb4a315a6 Merge pull request #990 from roramirez/deprecation-warning
Added deprecation warning for authentication of the calendar module.
2017-08-13 19:21:17 +02:00
Rodrigo Ramírez Norambuena
4bd36fc29e Merge branch 'develop' into deprecation-warning 2017-08-13 04:28:06 -03:00
Michael Teeuw
1a7971ec82 Merge pull request #987 from roramirez/update-stylelint
Update stylelint package
2017-08-12 16:52:13 +02:00
Michael Teeuw
c1eda034b3 Merge pull request #989 from roramirez/add-log-deprecated-function
Add log deprecated function in test
2017-08-12 13:50:52 +02:00
Michael Teeuw
2294d722c7 Merge pull request #986 from roramirez/roboto-fonts-as-vendor
Change to install Roboto fonts by npm
2017-08-12 13:50:23 +02:00
Michael Teeuw
7d053be6d1 Merge pull request #975 from QNimbus/unittests/calendar
Add unittest for calendar module
2017-08-12 13:50:07 +02:00
Michael Teeuw
7a508661eb Merge branch 'develop' into update-stylelint 2017-08-10 16:29:30 +02:00
Michael Teeuw
c976242ce5 Merge branch 'develop' into unittests/calendar 2017-08-10 16:27:00 +02:00
Michael Teeuw
2b77c372a3 Merge pull request #979 from CatoAntonsen/fix_filepath
Fix this.file path
2017-08-10 16:26:03 +02:00
Michael Teeuw
b61cc67997 Merge pull request #983 from roramirez/test-unit-js-class
Test unit js class
2017-08-10 12:15:31 +02:00
Michael Teeuw
de8db1a86d Merge branch 'develop' into test-unit-js-class 2017-08-10 12:15:23 +02:00
Michael Teeuw
abfdf0e1c2 Merge pull request #982 from roramirez/doc-roundValue
Fix Documentation in  roundValue function
2017-08-10 12:14:58 +02:00
Michael Teeuw
1d662e354b Merge branch 'develop' into doc-roundValue 2017-08-10 12:14:16 +02:00
Michael Teeuw
663e9a9b5e Merge pull request #973 from roramirez/add-code-error-cliente-failstart
Add log when clientonly failed on starting.
2017-08-10 12:12:24 +02:00
Michael Teeuw
8535409962 Merge branch 'develop' into add-code-error-cliente-failstart 2017-08-10 12:12:17 +02:00
Michael Teeuw
cd5623b348 Merge pull request #972 from roramirez/add-warning-color-full-ip
Add warning color when are using full ip whitelist
2017-08-10 12:11:51 +02:00
Michael Teeuw
673e051bd5 Merge pull request #969 from roramirez/showWeek-test-es-language
Show week test es language
2017-08-10 12:11:25 +02:00
Michael Teeuw
66c949057e Merge pull request #968 from roramirez/set-version-test-dependencies
Set version spectron for 3.6.x
2017-08-10 12:11:12 +02:00
Rodrigo Ramírez Norambuena
aed09f0c64 Change to install Roboto fonts by npm 2017-08-07 20:45:42 -04:00
Rodrigo Ramírez Norambuena
c05f306b0d Update stylelint package 2017-08-06 07:59:31 -04:00
Rodrigo Ramírez Norambuena
739fb99ced Resolved conflict unit tests between currentweather and newsfeed. 2017-08-06 07:53:03 -04:00
Rodrigo Ramírez Norambuena
7fc82ccead Update Changelog for unit tests for currentweather module 2017-08-07 20:42:32 -04:00
Rodrigo Ramírez Norambuena
8ae947f59c Merge remote-tracking branch 'origin/round-temp-unit' into doc-roundValue 2017-08-07 20:40:27 -04:00
Rodrigo Ramírez Norambuena
d34b493b7d Fix clock_es_spec running before the clock_spec 2017-08-05 22:30:38 -04:00
Rodrigo Ramírez Norambuena
4df6e0ee7d Merge remote-tracking branch 'upstream/develop' into showWeek-test-es-language 2017-08-05 21:12:39 -04:00
Rodrigo Ramírez Norambuena
aac4ef05e4 Merge remote-tracking branch 'upstream/develop' into test-unit-js-class 2017-08-05 19:50:34 -04:00
Rodrigo Ramírez Norambuena
ea2f53e166 Merge remote-tracking branch 'upstream/develop' into doc-roundValue 2017-08-05 18:20:22 -04:00
Rodrigo Ramírez Norambuena
f144ec67ab Add changelog entry for log in failed of clientonly 2017-08-05 17:48:20 -04:00
Rodrigo Ramírez Norambuena
7e42dcf0b5 Merge branch 'develop' into add-code-error-cliente-failstart 2017-08-05 17:47:36 -04:00
Rodrigo Ramírez Norambuena
87c4dc313a Merge branch 'develop' into set-version-test-dependencies 2017-08-05 17:44:51 -04:00
Rodrigo Ramírez Norambuena
0d29339898 Merge branch 'develop' into add-warning-color-full-ip 2017-08-05 17:44:05 -04:00
Michael Teeuw
6d83f18490 Merge pull request #981 from roramirez/disable-vendor_spec
Disabled tests of vendor_spec:
2017-08-05 21:30:44 +02:00
Rodrigo Ramírez Norambuena
0ba125c2d7 Disabled tests of vendor_spec:
Sometimes these getting failed in Travis.
2017-08-05 02:40:03 -04:00
Rodrigo Ramírez Norambuena
6abd120a5c Add CHANGELOG entry for color in warning if full ip whitelist 2017-08-04 22:39:52 -04:00
Rodrigo Ramírez Norambuena
5cf7e89ce6 Merge remote-tracking branch 'roramirez_github/develop' into add-warning-color-full-ip 2017-08-04 22:38:31 -04:00
Cato Antonsen
353786cb61 Fix this.file path 2017-08-03 21:34:23 +02:00
Michael Teeuw
586beea21e Merge pull request #977 from roramirez/use-before-after-vendors
Use before after vendors
2017-08-02 12:07:40 +02:00
Rodrigo Ramírez Norambuena
b80454a1f4 Added log text DEPRECATED for old method of authentication 2017-07-31 17:18:34 -04:00
Rodrigo Ramírez Norambuena
19f80cf506 Add entry in Changelog for change hooks in vendors_spec 2017-07-31 16:58:33 -04:00
Rodrigo Ramírez Norambuena
d01100bb15 Merge remote-tracking branch 'roramirez_github/develop' into use-before-after-vendors 2017-07-31 16:57:24 -04:00
Bas van Wetten
e0414e4eb9 Add unittest for calendar module
Add unittest for 'getLocalSpecification' function.
2017-07-31 22:36:14 +02:00
Michael Teeuw
1eb10e3c22 Merge pull request #971 from roramirez/set-title-magicmirror-2
Set title on MagicMirror² for index.html
2017-07-31 15:04:54 +02:00
Michael Teeuw
4772fbcd4a Merge pull request #970 from QNimbus/unittest-calendar
Add new unit tests
2017-07-31 15:04:25 +02:00
Michael Teeuw
18b61e35be Merge branch 'develop' into unittest-calendar 2017-07-31 15:04:16 +02:00
Michael Teeuw
bb7faf0fb3 Merge pull request #967 from roramirez/show-test-build-npm-dependencies
Debug npm list in CI
2017-07-31 15:03:25 +02:00
Michael Teeuw
1603742adc Merge branch 'develop' into show-test-build-npm-dependencies 2017-07-31 15:03:20 +02:00
Michael Teeuw
8a830e40bb Merge pull request #966 from roramirez/format-changelog
Fix litles changes of format in the Changelog
2017-07-31 15:02:43 +02:00
Michael Teeuw
d8adcf5a84 Merge branch 'develop' into format-changelog 2017-07-31 15:02:36 +02:00
Michael Teeuw
1d9a404f77 Merge pull request #965 from roramirez/newfeed-unit
Newfeed unit
2017-07-31 15:00:37 +02:00
Michael Teeuw
26dcaf6078 Merge pull request #962 from QNimbus/fix-issue-961
Fix calendar.js bug
2017-07-31 15:00:15 +02:00
Michael Teeuw
a91e4014bf Merge pull request #959 from roramirez/include-node-8
Include node 8 testsuite and CI
2017-07-31 14:59:34 +02:00
Rodrigo Ramírez Norambuena
06af327e5e Added deprecation warning for authentication of the calendar module.
Discussed in Review
9848f80630 (r105531731)
2017-07-30 22:56:27 -04:00
Bas van Wetten
35e3b889c3 Add new unit tests
Add new unit tests for 'shorten' function in calendar module
2017-07-29 16:02:53 +02:00
Bas van Wetten
5ef6ba0258 Small edit of CHANGELOG
Added a period at the end of the CHANGELOG entries
2017-07-29 11:44:43 +02:00
Bas van Wetten
12754ff135 Updated changelog for calendar fix
Updated changelog for calendar fix
2017-07-28 22:19:25 +02:00
Bas van Wetten
d09a1e254f Merge branch 'fix-issue-963' into fix-issue-961 2017-07-28 21:34:58 +02:00
Bas van Wetten
b89ee67daf Merge branch 'fix-issue-961' into fix-issue-963 2017-07-28 21:33:10 +02:00
Bas van Wetten
7bd256c311 Fix calendar.js bug issue #963
Fixed calendar specific configuration settings maximumEntries and maximumNumberOfDays not overriding global setting
2017-07-28 21:07:38 +02:00
Bas van Wetten
4add7cd0b3 Fix calendar.js bug
Fix bug where excludedEvents count towards maximumEntries displayed
2017-07-28 17:47:22 +02:00
Rodrigo Ramírez Norambuena
5ac20cc4cf SuiteTest: Added unit tests for js/class.js 2017-07-25 21:42:51 -04:00
Rodrigo Ramírez Norambuena
9d7b0487d5 Change hooks for vendor_spec:
Use the hooks before and after in the vendor_spec instead of use beforeAll and
afterAll in the e2e test to prevent failure in CI.
2017-07-25 20:24:04 -04:00
Rodrigo Ramírez Norambuena
59aa84f6c8 Add log when clientonly failed on starting. 2017-07-25 17:52:44 -04:00
Rodrigo Ramírez Norambuena
765b03c868 Add warning color when are using full ip whitelist 2017-07-25 11:26:01 -04:00
Rodrigo Ramírez Norambuena
41ce3db8f9 Set title on MagicMirror² for index.html 2017-07-25 11:00:38 -04:00
Rodrigo Ramírez Norambuena
00e3ef757c Merge remote-tracking branch 'roramirez_github/develop' into showWeek-test-es-language 2017-07-25 10:53:50 -04:00
Rodrigo Ramírez Norambuena
84dc0b2959 Set version spectron for 3.6.x 2017-07-25 10:28:45 -04:00
Rodrigo Ramírez Norambuena
2e48099070 Debug npm list in CI
Execute npm list after the tests in Travis
2017-07-25 10:07:32 -04:00
Rodrigo Ramírez Norambuena
77779bbcd9 Fix litles changes of format in the Changelog 2017-07-25 09:50:51 -04:00
Rodrigo Ramírez Norambuena
e08bc01c33 Fix conflict with test function newsfeed 2017-07-25 09:32:32 -04:00
Michael Teeuw
bf24ee369f Merge pull request #957 from QNimbus/develop
Addition to .gitignore to ignore VS Code folder
2017-07-25 14:50:00 +02:00
Michael Teeuw
876f12db89 Merge pull request #955 from roramirez/close-code-tag-README-modules
Close code tag and fix format for Modules Readme
2017-07-25 14:49:42 +02:00
Michael Teeuw
8b84459e13 Merge pull request #953 from roramirez/activate-test-e2e
Activate e2e test in Travis and desactivate failed test in CI:
2017-07-25 14:49:25 +02:00
Rodrigo Ramírez Norambuena
dccfcc9663 Merge pull request #2 from QNimbus/activate-test-e2e
Change suggestion for e2e testing
2017-07-24 22:38:32 -04:00
Bas van Wetten
203e1cc9b9 Implemented requested change PR #2
Moved tests/e2e_new to tests/e2e folder
2017-07-24 22:08:12 +02:00
Bas van Wetten
b612f0cdec PR for issue #956
Changed .gitignore to ignore Visual Studio Code project folder with custom launch configuration. (See issue #956)
2017-07-24 21:56:53 +02:00
Rodrigo Ramírez Norambuena
961301fbec Merge remote-tracking branch 'roramirez_github/develop' into newfeed-unit 2017-07-24 11:36:16 -04:00
Rodrigo Ramírez Norambuena
2a38d99cf1 Merge remote-tracking branch 'roramirez_github/develop' into include-node-8 2017-07-24 11:34:47 -04:00
Rodrigo Ramírez Norambuena
7903328c2d Add Node 8 for testing 2017-07-23 20:49:52 -04:00
Rodrigo Ramírez Norambuena
56d2b4a80c Close code tag and fix format for Modules Readme 2017-07-23 20:31:26 -04:00
Ricardo Gonzalez
2c6ecaab5b Add ability for currentweather module to display indoor humidity via INDOOR_HUMIDITY notification 2017-07-23 23:55:32 +01:00
Ricardo Gonzalez
45d289a65e Merge branch 'develop' of github.com:ryck/MagicMirror into develop
* 'develop' of github.com:ryck/MagicMirror:
  Add template for v2.1.3
  Set dev version.
2017-07-23 23:52:10 +01:00
Bas van Wetten
318c8c68b0 Change suggestion for e2e testing
- Changed global-setup.js to allow for easier test creation
- Changed each e2e test suite to work with new global-setup.js
- All tests (except for dev_console.js) now work with Travis CI
2017-07-23 23:06:27 +02:00
Michael Teeuw
fbd47a7f3b Merge pull request #951 from QNimbus/fix-issue-950
Fix for issue #950
2017-07-20 10:12:45 +02:00
Rodrigo Ramírez Norambuena
07533f5658 Activate e2e test in Travis and desactivate failed test in CI:
- dev_console
 - vendor_spec
2017-07-20 00:34:20 -04:00
Rodrigo Ramírez Norambuena
66b7e3e1f5 Fix lint newsfeed_spec 2017-07-20 00:27:57 -04:00
Rodrigo Ramírez Norambuena
4fee4d1903 Add Changelog Unit test for capitalizeFirstLetter newfeed module 2017-07-20 00:10:01 -04:00
Rodrigo Ramírez Norambuena
90d70beea2 Merge remote-tracking branch 'roramirez_github/develop' into newfeed-unit 2017-07-20 00:09:05 -04:00
Unknown
a7297d2685 Fix for issue #950
Changed 'server.js' to allow an empty ipwhitelist to allow any and all hosts instead of none as mentioned in the documentation
2017-07-18 14:07:18 +02:00
Michael Teeuw
86ae704e86 Merge pull request #924 from QNimbus/client-only-pr
Added clientonly script
2017-07-12 11:08:04 +02:00
Michael Teeuw
2d1e993fe1 Merge branch 'develop' into client-only-pr 2017-07-12 11:07:49 +02:00
Michael Teeuw
04b550e435 Update correct version. 2017-07-12 10:58:28 +02:00
Michael Teeuw
c492ea77f1 Merge pull request #943 from QNimbus/fix-issue-940
Fix issue #940
2017-07-12 10:55:43 +02:00
Michael Teeuw
61d9112ba7 Merge pull request #941 from QNimbus/fix-issue-933
Fix issue #933
2017-07-12 10:55:23 +02:00
Michael Teeuw
d7fe36de71 Merge pull request #934 from eouia/develop
add symbol and color on broadcasted events
2017-07-12 10:54:59 +02:00
Unknown
db0bd3fa2d Fix issue #940
Fix for issue 940 - time was incorrectly displayed in a 12-hour fashion regardless of the 24 hour clock preference in config.js
2017-07-09 11:46:59 +02:00
Unknown
551619e772 Fix issue #933
This is a fix for issue 933 which restores the original alligment of the analog clock; the analog clock still does not properly align to the left of the left sidebar when content of other left sidebar modules is too wide.
2017-07-08 21:31:05 +02:00
eouia
29bae230a4 Update CHANGELOG.md 2017-07-06 16:09:49 +02:00
eouia
83be49156f symbol and color for broadcasted events (calendar)
- Add symbol and color properties of event when `CALENDAR_EVENTS` notification is broadcasted from `defaultcalendar` module.
2017-07-06 16:09:16 +02:00
eouia
561ae102fb add symbol and color on broadcasted events 2017-07-06 11:57:16 +02:00
Unknown
a05e69b855 Removed cookie dependencies
Removed module import and dependency on the 'cookie' library; it's not used anymore
2017-07-02 12:10:16 +02:00
Unknown
8eb772d80b Allow use of env variables
Made some changes that allows the use of environment variables when starting the standalone client.
2017-07-02 12:10:16 +02:00
Unknown
1590693547 New server route to fetch config
Added a new route to the Express server to supply client with config. Removed the original 'cookie' hack
2017-07-02 12:10:16 +02:00
Unknown
66f93ee541 Added clientonly script
Added clientonly script to have server and client run at different locations
2017-07-02 12:10:16 +02:00
Michael Teeuw
8893df118e Add template for v2.1.3 2017-07-01 20:36:17 +02:00
Michael Teeuw
2c77cb5ca5 Set dev version. 2017-07-01 20:35:11 +02:00
Michael Teeuw
8a101f9e9a Merge pull request #931 from MichMich/develop
Release 2.1.2
2017-07-01 20:32:59 +02:00
Michael Teeuw
ce98d0184d Update Version Number 2017-07-01 20:07:08 +02:00
Michael Teeuw
402dea3c8b Prepare for release. 2017-07-01 20:03:17 +02:00
Michael Teeuw
223cf4b2b2 Merge pull request #926 from QNimbus/calendar-timeformat-pr
Calender respects timeformat
2017-06-29 09:26:26 +02:00
Michael Teeuw
8fb7e79bb3 Merge branch 'develop' into calendar-timeformat-pr 2017-06-29 09:26:18 +02:00
Michael Teeuw
5a2d386976 Merge pull request #929 from QNimbus/clock-alignment-pr
Issue with date alignment in clock.js
2017-06-29 09:24:55 +02:00
Michael Teeuw
96622533e0 Merge pull request #930 from talpah/translations/ro
Romanian translation
2017-06-29 09:24:21 +02:00
Cosmin
8814ce05a9 Add translations for ro. 2017-06-29 10:05:14 +03:00
Unknown
c15148fc07 Issue with date aligment in clock.js
In reference to issue #927. Made changes to clock.js and clock_styles.css to prevent aligment problem when displaying analog clock and large calendar entries
2017-06-26 20:19:13 +02:00
Unknown
3404ebbbb8 Calender respects timeformat
In reference to issue #776, made changes to calendar.js to respect timeformat config option if it is used
2017-06-26 14:43:40 +02:00
Michael Teeuw
51494cabc8 Merge pull request #921 from QNimbus/pr-01
Removed unused import
2017-06-21 12:43:50 +02:00
Michael Teeuw
1eb326683e Merge pull request #919 from QNimbus/develop
Added Dutch translation
2017-06-21 12:43:24 +02:00
Unknown
98bcfbef7e Removed unused import
Removed unused import from js/electron.js
2017-06-18 19:17:41 +02:00
Unknown
9416980096 Added Dutch translation
Added Dutch translation to Alert module
2017-06-13 20:33:48 +02:00
Michael Teeuw
b34505c086 Merge pull request #918 from fmandal/patch-1
Added week translation
2017-06-13 16:54:06 +02:00
Michael Teeuw
a65edf52ca Merge pull request #916 from paviro/patch-7
Markdown header fixes
2017-06-13 16:53:46 +02:00
Michael Teeuw
d1513f2575 Merge pull request #915 from rejas/cleanups
Cleanups
2017-06-13 16:53:23 +02:00
Fredrik Mandal
12d20c35be Added week translation 2017-06-13 01:52:13 +02:00
Paul-Vincent Roll
9f822c0991 Markdown header fixes 2017-06-11 23:44:43 +02:00
Veeck
96c338859b More lazy sunday cleanups of missing semicolons, unused vars and other small thins 2017-06-11 11:53:55 +02:00
Veeck
a2464dce73 Udpate dependencies 2017-06-11 11:36:17 +02:00
Veeck
53476b723d Merge branch 'develop' into cleanups 2017-06-11 11:29:19 +02:00
Michael Teeuw
ca92a0af5c Merge pull request #895 from JanLoebel/develop
#891 Added ability to change the custom.css path.
2017-06-03 19:10:45 +02:00
Michael Teeuw
6e6cd90f6d Merge pull request #908 from retroflex/swe-translation-corrections
Corrected Swedish translations for TODAY/TOMORROW/DAYAFTERTOMORROW.
2017-06-03 08:08:28 +02:00
Michael Teeuw
adc84e1f93 Merge pull request #909 from roramirez/test-unit-desactivate-e2e
Run test unit for failed in Travis of e2e
2017-06-03 08:07:47 +02:00
Veeck
20687d915a Remove unused vars and whitelines, cleanups 2017-06-02 19:35:10 +02:00
Rodrigo Ramírez Norambuena
12a34f0b09 Run test unit for failed in Travis of e2e 2017-05-31 13:50:04 -04:00
retroflex
e5e49e4347 Corrected Swedish translations for TODAY/TOMORROW/DAYAFTERTOMORROW. 2017-05-29 22:55:42 +02:00
Michael Teeuw
9f61256e5e Move stylelint to devDep. 2017-05-26 14:43:44 +02:00
Michael Teeuw
ac6e370a78 Merge pull request #900 from rejas/package_updates
Fix npm warning regarding stylelint
2017-05-26 14:42:58 +02:00
Michael Teeuw
a9c2c2178a Merge branch 'develop' into package_updates 2017-05-26 14:42:24 +02:00
Michael Teeuw
c67419bb55 Merge pull request #899 from roramirez/module-stylelint
Remove warnings
2017-05-26 14:41:14 +02:00
Michael Teeuw
631c270fc7 Merge pull request #898 from roramirez/fix-comment
Fix spelling comment js/loader.js
2017-05-26 14:40:59 +02:00
Michael Teeuw
3c82dfc0a5 Merge pull request #897 from roramirez/information-Beaufort-function
Add link for information about Beaufort Wind Scale for ms2Beaufort
2017-05-26 14:40:47 +02:00
Michael Teeuw
063574023b Merge pull request #873 from roramirez/fixme_for_test_week_number
ADD fixme wanted where the day if sunday for test number of week
2017-05-26 14:40:06 +02:00
Veeck
5f539b133b Update dependencies, add stylelint too 2017-05-21 19:16:09 +02:00
Jan Löbel
0bb52a6058 #891 Added ability to change the custom.css path. 2017-05-19 19:54:43 +02:00
Michael Teeuw
0db40bbb32 Merge pull request #893 from xuanyou/xuanyou-patch-compliments-documentation
Xuanyou patch compliments documentation
2017-05-18 12:35:42 +02:00
Michael Teeuw
f66114e203 Merge pull request #892 from markuzSchmidt/patch-1
Correction of Documentation of `resume()`
2017-05-18 12:34:17 +02:00
Michael Teeuw
2fcc064b0f Merge pull request #879 from retroflex/develop 2017-05-18 12:33:58 +02:00
Michael Teeuw
a4c441a1b7 Merge branch 'develop' into develop 2017-05-18 12:33:34 +02:00
xuanyou
cbb6e4d6f3 Update docs: classes config variable default value 2017-05-18 18:25:17 +08:00
xuanyou
34361ccd1c Update documentation for compliments module
Added documentation for the config variable "classes" that allows the user to override the css classes of the compliments module display.

Fixed the erroneous "a default calendar is shown" to "default compliments".
2017-05-18 18:14:43 +08:00
markuzSchmidt
c953936798 Update README.md 2017-05-17 22:00:55 +02:00
Michael Teeuw
6fd2a6ef34 Merge pull request #885 from z0diak/develop
fixing issue with installer (#884)
2017-05-15 20:25:41 +02:00
Rodrigo Ramírez Norambuena
be05f1a71f Remove warnings
npm WARN grunt-stylelint@0.8.0 requires a peer of stylelint@^7.8.0 but
none was installed.

npm WARN stylelint-config-standard@16.0.0 requires a peer of
stylelint@^7.8.0 but none was installed.
2017-05-11 02:44:52 -03:00
Rodrigo Ramírez Norambuena
0de65d9c0f Fix spelling comment js/loader.js 2017-05-11 02:30:25 -03:00
Vladimir Filimonov
a60f4e3bad fixing issue https://github.com/MichMich/MagicMirror/issues/884 2017-05-06 21:42:02 +03:00
Michael Teeuw
ab30ea766b Merge pull request #882 from roramirez/remove_log_socketclient
Remove commented log not used in js/socketclient.js
2017-05-03 17:34:29 +02:00
Michael Teeuw
099a7c46b7 Merge pull request #881 from roramirez/spelling-changelog
Fix spelling Changelog
2017-05-03 17:34:15 +02:00
Michael Teeuw
a7afcd9644 Merge branch 'develop' into spelling-changelog 2017-05-03 17:34:03 +02:00
retroflex
7c80eec755 Merge branch 'develop' into develop 2017-05-02 21:24:36 +02:00
retroflex
07c50c20b6 Spaces -> tabs. 2017-05-02 21:20:35 +02:00
Michael Teeuw
08d841f6c5 Merge pull request #872 from Arkkimaagi/patch-2
Support showing wind direction with an arrow
2017-05-01 14:29:23 +02:00
Michael Teeuw
6b144c5816 Merge branch 'develop' into patch-2 2017-05-01 14:29:14 +02:00
Michael Teeuw
322cec0980 Merge pull request #877 from Arkkimaagi/better-translations
Improve translation flexibility
2017-05-01 14:27:35 +02:00
Michael Teeuw
73a47b2853 Merge pull request #883 from jasonyork/develop
Update currentweather to support indoor temperature
2017-05-01 14:26:05 +02:00
Jason York
0036ec2214 Update currentweather to support indoor temperature 2017-04-30 20:58:25 -05:00
Rodrigo Ramírez Norambuena
98dc69893e Fix spelling Changelog 2017-04-29 23:25:57 -03:00
retroflex
af48af5085 Updated changelog: Added option to set a separate date format for full day events. 2017-04-28 23:56:05 +02:00
retroflex
0b2279a113 Merge remote-tracking branch 'original/develop' into develop 2017-04-28 23:39:57 +02:00
retroflex
ba63a44ec8 Added option to set a separate date format for full day events. 2017-04-28 23:31:07 +02:00
Mikko Tapionlinna
7c20d2f97c Merge branch 'develop' into better-translations 2017-04-28 15:35:28 +03:00
Mikko Tapionlinna
8e7369f0b5 Merge branch 'develop' into patch-2 2017-04-28 15:34:40 +03:00
Mikko Tapionlinna
5f80deb5b7 Added direction as an arrow feature to CHANGELOG.md 2017-04-28 15:33:32 +03:00
Mikko Tapionlinna
826fdbf342 Add flexible word order translations to CHANGELOG.md 2017-04-28 15:31:07 +03:00
Mikko Tapionlinna
7e5186c3c7 Add documentation for new translate features 2017-04-28 15:24:41 +03:00
Mikko Tapionlinna
2bc5253725 Set default value for showWindDirectionAsArrow 2017-04-28 13:59:07 +03:00
Mikko Tapionlinna
f58787bb50 Add documentation for showWindDirectionAsArrow 2017-04-28 13:58:52 +03:00
Michael Teeuw
88a01d39ee Merge pull request #869 from roramirez/check-default-modules-directory
Check default modules directory
2017-04-26 09:36:19 +02:00
Mikko Tapionlinna
ee88897b18 Add better support for translations with backwards compatibility 2017-04-25 23:15:34 +03:00
Rodrigo Ramírez Norambuena
b26f9e316d ADD fixme wanted where the day if sunday for test number of week 2017-04-24 22:49:15 -03:00
Mikko Tapionlinna
0e486b45e1 Support showing wind direction with an arrow
As described in https://github.com/MichMich/MagicMirror/issues/871 this feature lets user use arrow instead of an abbreviation for wind directions. This can be especially helpful on languages like Finnish that do not have all the compass directions English has.
2017-04-24 23:54:32 +03:00
Rodrigo Ramírez Norambuena
f730d2fc27 Add changelog test directories for default modules 2017-04-22 21:23:48 -03:00
Rodrigo Ramírez Norambuena
26303c8617 Merge remote-tracking branch 'roramirez_github/develop' into check-default-modules-directory 2017-04-22 21:22:41 -03:00
Michael Teeuw
a6485b61a4 Merge pull request #867 from fewieden/bugfix-compliment-duplicates
bugfix for duplicated compliments
2017-04-22 18:58:32 +02:00
Michael Teeuw
7db07bca35 Merge branch 'develop' into bugfix-compliment-duplicates 2017-04-22 18:58:26 +02:00
Michael Teeuw
19bbe0fc1f Merge pull request #865 from jeliasson/patch-1
Indent and double-quoute
2017-04-22 18:57:50 +02:00
Michael Teeuw
2b2c2de583 Merge pull request #863 from roramirez/message-port-server
Message port server
2017-04-22 18:57:35 +02:00
Michael Teeuw
b05534472c Merge pull request #862 from roramirez/dev-args
Change method for check if pass dev parameter
2017-04-22 18:57:12 +02:00
Michael Teeuw
30aa8d469c Merge pull request #861 from roramirez/unit-calendar
Unit calendar
2017-04-22 18:56:55 +02:00
fewieden
c4282a3593 null isn't typeof undefined 2017-04-22 12:25:51 +02:00
fewieden
778107aae9 add edge case anytime only 2017-04-22 12:09:52 +02:00
fewieden
581af762f9 bugfix for duplicated compliments 2017-04-22 11:35:42 +02:00
Johan Eliasson
31e63b576b Indent and double-quoute 2017-04-21 23:02:33 +02:00
Michael Teeuw
efb592dce5 Merge pull request #856 from bastilimbach/develop
Outsource Dockerfiles
2017-04-19 21:45:42 +02:00
Michael Teeuw
fa5b936d7b Merge pull request #858 from roramirez/check-week-number
Check week number
2017-04-19 21:45:23 +02:00
Rodrigo Ramírez Norambuena
4904bd53ef Fix grunt double quotes unit calendar_spec 2017-04-19 00:45:55 -03:00
Rodrigo Ramírez Norambuena
320ce372f5 Add changelog unit test capFirst function on calendar module 2017-04-19 00:39:18 -03:00
Rodrigo Ramírez Norambuena
7a803abec8 Merge remote-tracking branch 'roramirez_github/develop' into unit-calendar 2017-04-19 00:38:35 -03:00
Rodrigo Ramírez Norambuena
f34407fc43 Add 404 test HTTP code for vendors 2017-04-18 23:44:50 -03:00
Rodrigo Ramírez Norambuena
b41bda569d Change method for check if pass dev parameter 2017-04-18 23:34:14 -03:00
Rodrigo Ramírez Norambuena
fd2919fd1c Remove commented log not used in js/socketclient.js 2017-04-18 23:14:07 -03:00
Rodrigo Ramírez Norambuena
dce8edf742 Merge branch 'develop' into check-week-number 2017-04-18 22:59:07 -03:00
Rodrigo Ramírez Norambuena
298e32aada Fix Grunt error
124:38  error  Strings must use doublequote  quotes
2017-04-18 22:38:29 -03:00
Rodrigo Ramírez Norambuena
2b2136867d Add change double message port in starting server 2017-04-18 22:31:16 -03:00
Rodrigo Ramírez Norambuena
c1830aa37c Fix message port starting server 2017-04-18 22:21:55 -03:00
Michael Teeuw
a3d4049c9c Merge pull request #848 from MichMich/master
Unable to install dependencies!
2017-04-17 10:59:43 +02:00
Sebastian Limbach
058b4bbe6c Add changes to changelog 2017-04-16 22:48:05 +02:00
Michael Teeuw
c4c7b2ed5b Merge pull request #853 from roramirez/gitignore-vim
ignore git file for vim and patch
2017-04-16 22:27:14 +02:00
Michael Teeuw
aee607ea81 Merge pull request #852 from roramirez/sort-dependencies
Sort dependencies in the file package.json
2017-04-16 22:27:02 +02:00
Michael Teeuw
5eea5939c0 Merge pull request #850 from roramirez/defaultModules-set
Default modules set
2017-04-16 22:26:42 +02:00
Sebastian Limbach
ac53d64ffc Change docker hub url 2017-04-16 21:17:52 +02:00
Sebastian Limbach
9ebee8c03e Delete all Docker related files
The Docker images are outsourced to https://github.com/bastilimbach/docker-MagicMirror
2017-04-16 21:17:07 +02:00
Rodrigo Ramírez Norambuena
93965fd98b Add changelog test modules/default/defaultmodules.js 2017-04-13 23:44:37 -03:00
Rodrigo Ramírez Norambuena
59c25ef915 Merge remote-tracking branch 'roramirez_github/develop' into defaultModules-set 2017-04-13 23:43:07 -03:00
Rodrigo Ramírez Norambuena
7e9c4848fb Sort dependencies in the file package.json 2017-04-13 08:40:51 -03:00
Rodrigo Ramírez Norambuena
467b1ad4f1 Add test match week number with clock module with configuration showWeek 2017-04-12 22:29:20 -03:00
Michael Teeuw
f45bd18cc2 Merge pull request #846 from bastilimbach/develop
Add the ability to use the docker image with a raspberry pi
2017-04-12 22:18:33 +02:00
Sebastian Limbach
4f844abc0c Change copy flag to not replace existing modules 2017-04-12 20:21:51 +02:00
Sebastian Limbach
b688dcd4ba Add changes to changelog 2017-04-12 20:20:30 +02:00
Sebastian Limbach
d5e902679b Change linux distribution
I changed the linux distribution from node, which used Debian, to an arm based linux distribution so the application can be used on an arm based system (e.g. Raspberry)
2017-04-12 20:19:24 +02:00
Michael Teeuw
eae21e1371 Merge pull request #837 from roramirez/tests-vendors
Tests vendors
2017-04-11 10:45:47 +02:00
Rodrigo Ramírez Norambuena
947c2e556d Add test e2e showWeek feature in spanish language. 2017-04-09 15:32:15 -03:00
Rodrigo Ramírez Norambuena
d68d4c2c76 Add Changelog vendor_spec 2017-04-07 10:08:42 -03:00
Rodrigo Ramírez Norambuena
1ef451c048 Merge remote-tracking branch 'roramirez_github/develop' into tests-vendors 2017-04-07 10:06:33 -03:00
Michael Teeuw
ec20748594 Merge pull request #836 from roramirez/check-wrong-configuration
Check wrong configuration
2017-04-07 08:42:04 +02:00
Michael Teeuw
764f05b42a Merge pull request #833 from javiersigler/task/improve_dockerfile
Docker - Do not replace configuration
2017-04-07 08:41:13 +02:00
Michael Teeuw
5c41e24b99 Merge pull request #832 from MichMich/MichMich-patch-1
Add missing dependency.
2017-04-07 08:40:12 +02:00
Rodrigo Ramírez Norambuena
9725091233 Merge remote-tracking branch 'roramirez_github/develop' into check-wrong-configuration 2017-04-06 21:32:48 -03:00
Javier Sigler
8f8dfabe0f Merge branch 'develop' of github.com:MichMich/MagicMirror into task/improve_dockerfile 2017-04-06 16:46:41 +02:00
Javier Sigler
b9749bad61 Do not replace configuration 2017-04-06 16:43:53 +02:00
Michael Teeuw
31609a8aba Add missing dependency. 2017-04-06 16:34:16 +02:00
Michael Teeuw
28e8cc2675 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into develop 2017-04-06 16:30:38 +02:00
Michael Teeuw
033d3c92ab Add missing dependency 2017-04-06 16:28:48 +02:00
Michael Teeuw
3484fcfd2a Merge pull request #829 from roramirez/instruction_installer-develop
Instruction installer develop
2017-04-06 16:24:42 +02:00
Michael Teeuw
a8e18d7f99 Merge pull request #830 from roramirez/format-tab-config.sample
Fix extra tabs added in config.js.sample
2017-04-06 16:24:29 +02:00
Michael Teeuw
db30b58ee9 Merge pull request #828 from greg-dev/update-ru-week
Add Russian translation for week
2017-04-06 16:24:18 +02:00
Michael Teeuw
3748488200 Merge pull request #824 from roramirez/instruction_installer
Fix instruction README for install by script
2017-04-06 16:22:29 +02:00
Rodrigo Ramírez Norambuena
c53a20a577 Add changelog entry fix instruction_installer 2017-04-05 22:10:05 -03:00
Rodrigo Ramírez Norambuena
dfcb2b610a Merge remote-tracking branch 'roramirez_github/develop' into instruction_installer 2017-04-05 22:01:01 -03:00
Greg Dev
95278a78ff Add Russian translation for week 2017-04-05 23:39:39 +02:00
Michael Teeuw
400d577546 Merge pull request #825 from javiersigler/task/improve_dockerfile
Task/improve dockerfile
2017-04-05 20:14:46 +02:00
Michael Teeuw
60cf6cec5e Merge pull request #822 from roramirez/website-package
Change website in package.json
2017-04-05 20:13:13 +02:00
Michael Teeuw
13901b9028 Merge pull request #821 from roramirez/newsfeed_test_case
Newsfeed test case
2017-04-05 20:12:57 +02:00
Michael Teeuw
23454a918d Merge pull request #820 from roramirez/note-information-configuration-file
Add note about how configurate the file into config.js.sample
2017-04-05 20:12:37 +02:00
Javier Sigler
fa64ecf513 Remove layers and fix npm install of vendor 2017-04-04 18:34:19 +02:00
Javier Sigler
bb8c0f1d9c Merge branch 'develop' of github.com:javiersigler/MagicMirror into task/improve_dockerfile 2017-04-04 18:32:22 +02:00
Javier Sigler
6e33e063da Remove layers and fix npm install of vendor 2017-04-04 18:30:24 +02:00
Rodrigo Ramírez Norambuena
e44893f91e Fix instruction README for install by script
issue close #823
2017-04-04 11:09:49 -03:00
Rodrigo Ramírez Norambuena
f2c3fc20de ignore git file for vim and patch 2017-04-03 15:50:25 -03:00
Rodrigo Ramírez Norambuena
d903fe400f Add entry in Changelog for newsfeed_test_case 2017-04-03 15:21:52 -03:00
Michael Teeuw
22e4e4125a Merge pull request #818 from fewieden/fix-typo
fixed typo + eslint
2017-04-03 20:21:35 +02:00
Michael Teeuw
badddfe3d7 Merge pull request #817 from fewieden/german-translation
added german translation key
2017-04-03 20:20:59 +02:00
Michael Teeuw
e14816dcfa Merge pull request #816 from roramirez/fix-spelling
Fix spelling mistake
2017-04-03 20:20:41 +02:00
Rodrigo Ramírez Norambuena
4b83722a66 Merge remote-tracking branch 'roramirez_github/develop' into newsfeed_test_case 2017-04-03 15:20:24 -03:00
Rodrigo Ramírez Norambuena
c798913fd2 Fix extra tabs added in config.js.sample 2017-04-03 15:18:35 -03:00
Rodrigo Ramírez Norambuena
636dbe5b95 Globing pattern test grunt (#1)
* Fix Matching patterns tests directories Grunt task of eslint

* Fix eslint errors in testsuite.

* Format one line per file in src section in Gruntfile.js
2017-04-03 16:47:22 +02:00
Rodrigo Ramírez Norambuena
ab28d0e09f Add note about how configurate the file into config.js.sample 2017-04-03 11:28:46 -03:00
fewieden
a74efd285c fix typo + eslint 2017-04-03 10:37:23 +02:00
fewieden
3e1eb03517 added german translation key 2017-04-03 10:06:57 +02:00
Michael Teeuw
fb90574d44 Update CHANGELOG.md 2017-04-02 23:10:32 +02:00
Michael Teeuw
c0fb337dfb Merge pull request #815 from greg-dev/update-pl
Add Polish translation for week and day after tomorrow
2017-04-02 23:09:49 +02:00
Michael Teeuw
e7775bb9d9 Merge pull request #814 from amcolash/wrap_events
Option to wrap events in calendar
2017-04-02 23:09:11 +02:00
Greg Dev
64f2a67573 Add Polish translation for week and day after tomorrow 2017-04-02 22:29:54 +02:00
Andrew McOlash
154e33a2c3 Make times align to the top of the cell 2017-04-02 15:10:00 -05:00
Andrew McOlash
63ae2b8095 Add in ability to wrap calendar events to multiple lines 2017-04-02 15:06:58 -05:00
Michael Teeuw
6165a6af6c Merge pull request #812 from doug-kline/patch-1
TL;RL cheat notes for IPv4 ipWhitelist when PI listening on IPv6
2017-04-02 09:07:51 +02:00
Doug Kline
4a70e3cd31 Update config.js.sample 2017-04-01 18:54:28 -04:00
Doug Kline
5ccf053cba TL;RL cheat notes for IPv4 ipWhitelist
Hopefully save a google or support request --  while still using IPv4 addresses on MagicMirror network, need to set full address by using ::ffff: as prefix to IP in config.  e.g.  ::ffff:192.168.5.1 and not 192.168.5.1
2017-04-01 17:23:24 -04:00
Michael Teeuw
5a6f5133af Prepare setup for 2.1.2 2017-04-01 22:05:21 +02:00
Rodrigo Ramírez Norambuena
f974fd0660 Add roundValue unit test function weatherforecast module:
- tests for this.config.roundTemp is false
    - tests for this.config.roundTemp is true
2017-03-29 00:29:47 -03:00
Rodrigo Ramírez Norambuena
af9fdfa224 Add roundValue unit test function currentweather module:
- tests for this.config.roundTemp is false
2017-03-28 22:15:48 -03:00
Rodrigo Ramírez Norambuena
181cb235df Unit test currentweather module:
Add roundValue unit test function currentweather module
	tests for this.config.roundTemp is true
2017-03-28 10:05:08 -03:00
Rodrigo Ramírez Norambuena
60c5d96037 fix documentation currentweather and weatherforecast function
roundValue:

This function toFixed return a string type not a number value.
2017-03-27 12:18:36 -03:00
Rodrigo Ramírez Norambuena
29f68d218d Fix spelling mistake 2017-03-26 18:06:34 -03:00
Rodrigo Ramírez Norambuena
daad8bca69 Add test e2e helloworld module with default config text. 2017-03-26 17:36:45 -03:00
Rodrigo Ramírez Norambuena
f4408aa72c Add link for information about Beaufort Wind Scale for ms2Beaufort
function in currentweather and weatherforecast module
2017-03-26 16:57:46 -03:00
Rodrigo Ramírez Norambuena
0117cd478b Unit test for capitalizeFirstLetter newfeed module 2017-03-26 16:19:45 -03:00
Rodrigo Ramírez Norambuena
de4d0989e9 Add unit test function capFist calendar module 2017-03-26 00:49:22 -03:00
Rodrigo Ramírez Norambuena
0c884c2669 Test for default module directories 2017-03-25 23:52:18 -03:00
Rodrigo Ramírez Norambuena
5d7cfc1c10 test for modules set in modules/default/defaultmodules.js 2017-03-25 19:01:05 -03:00
Rodrigo Ramírez Norambuena
fd2b070a6a Change website in package.json 2017-03-25 00:26:47 -03:00
Rodrigo Ramírez Norambuena
7918448be2 Add test for vendor
This test get all vendor defined.  Create a get request http each vendor
and expect the 200 HTTP code.
2017-03-18 13:19:31 -03:00
Rodrigo Ramírez Norambuena
f89f704a69 Add task to check configuration file syntax. 2017-03-18 09:45:32 -03:00
Rodrigo Ramírez Norambuena
2c0ca78265 Merge branch 'colors-error' into check-wrong-configuration 2017-03-18 06:00:49 -03:00
Rodrigo Ramírez Norambuena
2a94ee55cc Add first test for newsfeed module.
This test case check if set newsfeed title
2017-03-10 21:02:33 -03:00
Rodrigo Ramírez Norambuena
ccf612f536 Add sample xml rss feed from Blog's RodrigoRamirez.com 2017-03-10 20:38:18 -03:00
Rodrigo Ramírez Norambuena
db87f9e15b init sample test case newsfeed_spec 2017-02-20 08:19:36 -03:00
322 changed files with 21887 additions and 10404 deletions

View File

@@ -1,72 +0,0 @@
# Various Node ignoramuses.
logs
*.log
npm-debug.log*
pids
*.pid
*.seed
lib-cov
coverage
.grunt
.lock-wscript
build/Release
node_modules
jspm_modules
.npm
.node_repl_history
# Various Windows ignoramuses.
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/
*.cab
*.msi
*.msm
*.msp
*.lnk
# Various OSX ignoramuses.
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# Various Linux ignoramuses.
.fuse_hidden*
.directory
.Trash-*
# Various Magic Mirror ignoramuses and anti-ignoramuses.
# Don't ignore the node_helper core module.
!/modules/node_helper
!/modules/node_helper/**
# Ignore all modules except the default modules.
/modules/**
!/modules/default/**
# Ignore changes to the custom css files.
/css/custom.css
# Ignore unnecessary files for docker
CHANGELOG.md
LICENSE.md
README.md
Gruntfile.js
.*

15
.editorconfig Normal file
View File

@@ -0,0 +1,15 @@
# editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 250
trim_trailing_whitespace = true
[*.{js,json}]
indent_size = 4
indent_style = tab

View File

@@ -1,6 +1 @@
vendor/*
!/vendor/vendor.js
!/modules/default/**
!/modules/node_helper
!/modules/node_helper/**
!/modules/default/defaultmodules.js
modules/default/calendar/vendor/*

View File

@@ -1,16 +1,30 @@
{
"rules": {
"indent": ["error", "tab"],
"quotes": ["error", "double"],
"max-len": ["error", 250],
"curly": "error",
"camelcase": ["error", {"properties": "never"}],
"no-trailing-spaces": ["error"],
"no-irregular-whitespace": ["error"]
},
"extends": ["eslint:recommended", "plugin:prettier/recommended", "plugin:jsdoc/recommended"],
"plugins": ["prettier", "jsdoc"],
"env": {
"browser": true,
"node": true,
"es6": true
"es6": true,
"mocha": true,
"node": true
},
"globals": {
"config": true,
"Log": true,
"MM": true,
"Module": true,
"moment": true
},
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2017,
"ecmaFeatures": {
"globalReturn": true
}
},
"rules": {
"prettier/prettier": "error",
"eqeqeq": "error",
"no-prototype-builtins": "off",
"no-unused-vars": "off"
}
}

View File

@@ -1,25 +1,24 @@
Contribution Policy for MagicMirror²
====================================
# Contribution Policy for MagicMirror²
Thanks for contributing to MagicMirror²!
We hold our code to standard, and these standards are documented below.
If you wish to run both linters, use `grunt` without any arguments.
If you wish to run our linters, use `npm run lint` without any arguments.
### JavaScript: Run ESLint
We use [ESLint](http://eslint.org) on our JavaScript files.
We use [ESLint](https://eslint.org) on our JavaScript files.
Our ESLint configuration is in our .eslintrc.json and .eslintignore files.
To run ESLint, use `grunt eslint`.
To run ESLint, use `npm run lint:js`.
### CSS: Run StyleLint
We use [StyleLint](http://stylelint.io) to lint our CSS. Our configuration is in our .stylelintrc file.
We use [StyleLint](https://stylelint.io) to lint our CSS. Our configuration is in our .stylelintrc file.
To run StyleLint, use `grunt stylelint`.
To run StyleLint, use `npm run lint:style`.
### Submitting Issues
@@ -30,7 +29,7 @@ Problems installing or configuring your MagicMirror? Check out: [https://forum.m
When submitting a new issue, please supply the following information:
**Platform**: Place your platform here... give us your web browser/Electron version *and* your hardware (Raspberry Pi 2/3, Windows, Mac, Linux, System V UNIX).
**Platform**: Place your platform here... give us your web browser/Electron version _and_ your hardware (Raspberry Pi 2/3, Windows, Mac, Linux, System V UNIX).
**Node Version**: Make sure it's version 0.12.13 or later.

View File

@@ -1,15 +1,33 @@
Please only submit reproducible issues.
## I'm not sure if this is a bug
If you're not sure if it's a real bug or if it's just you, please open a topic on the forum: [https://forum.magicmirror.builders/category/15/bug-hunt](https://forum.magicmirror.builders/category/15/bug-hunt)
## I'm having troubles installing or configuring MagicMirror
Problems installing or configuring your MagicMirror? Check out: [https://forum.magicmirror.builders/category/10/troubleshooting](https://forum.magicmirror.builders/category/10/troubleshooting)
## I found a bug in the MagicMirror installer
If you are facing an issue or found a bug while trying to install MagicMirror via the installer please report it in the respective GitHub repository:
[https://github.com/sdetweil/MagicMirror_scripts](https://github.com/sdetweil/MagicMirror_scripts)
## I found a bug in the MagicMirror Docker image
If you are facing an issue or found a bug while running MagicMirror inside a Docker container please create an issue in the GitHub repository of the MagicMirror Docker image:
[https://github.com/bastilimbach/docker-MagicMirror](https://github.com/bastilimbach/docker-MagicMirror)
---
## I found a bug in MagicMirror
Please make sure to only submit reproducible issues. You can safely remove everything above the dividing line.
When submitting a new issue, please supply the following information:
**Platform**: Place your platform here... give us your web browser/Electron version *and* your hardware (Raspberry Pi 2/3, Windows, Mac, Linux, System V UNIX).
**Platform**: Place your platform here... give us your web browser/Electron version _and_ your hardware (Raspberry Pi 2/3, Windows, Mac, Linux, System V UNIX).
**Node Version**: Make sure it's version 0.12.13 or later.
**Node Version**: Make sure it's version 8 or later.
**MagicMirror Version**: Now that the versions have split, tell us if you are using the PHP version (v1) or the newer JavaScript version (v2).
**MagicMirror Version**: Please let us now which version of MagicMirror you are running. It can be found in the `package.log` file.
**Description**: Provide a detailed description about the issue and include specific details to help us understand the problem. Adding screenshots will help describing the problem.

View File

@@ -7,8 +7,7 @@ pull request to send us your changes. This makes everyone's lives
easier (including yours) and helps us out on the development team.
Thanks!
* Does the pull request solve a **related** issue?
* If so, can you reference the issue?
* What does the pull request accomplish? Use a list if needed.
* If it includes major visual changes please add screenshots.
- Does the pull request solve a **related** issue?
- If so, can you reference the issue?
- What does the pull request accomplish? Use a list if needed.
- If it includes major visual changes please add screenshots.

19
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- under investigation
- pr welcome
# Label to use when marking an issue as stale
staleLabel: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

31
.gitignore vendored
View File

@@ -1,5 +1,4 @@
# Various Node ignoramuses.
logs
*.log
npm-debug.log*
@@ -8,13 +7,22 @@ pids
*.seed
lib-cov
coverage
.grunt
.lock-wscript
build/Release
node_modules
/node_modules/**/*
fonts/node_modules/**/*
vendor/node_modules/**/*
!/tests/node_modules/**/*
jspm_modules
.npm
.node_repl_history
.nyc_output/
# Visual Studio Code ignoramuses.
.vscode/
# IDE Code ignoramuses.
.idea/
# Various Windows ignoramuses.
Thumbs.db
@@ -46,17 +54,10 @@ Temporary Items
.apdisk
# Various Linux ignoramuses.
.fuse_hidden*
.directory
.Trash-*
# Various Magic Mirror ignoramuses and anti-ignoramuses.
# Don't ignore the node_helper core module.
!/modules/node_helper
!/modules/node_helper/**
# Ignore all modules except the default modules.
/modules/**
!/modules/default
@@ -65,3 +66,13 @@ Temporary Items
# Ignore changes to the custom css files.
/css/custom.css
# Vim
## swap
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
## diff patch
*.orig
*.rej
*.bak

4
.prettierignore Normal file
View File

@@ -0,0 +1,4 @@
package-lock.json
/config/**/*
/vendor/**/*
!/vendor/vendor.js

3
.prettierrc.json Normal file
View File

@@ -0,0 +1,3 @@
{
"trailingComma": "none"
}

14
.snyk
View File

@@ -1,14 +0,0 @@
version: v1.5.2
ignore: {}
patch:
'npm:minimatch:20160620':
- snyk > recursive-readdir > minimatch:
patched: '2016-07-30T14:02:31.280Z'
'npm:negotiator:20160616':
- socket.io > engine.io > accepts > negotiator:
patched: '2016-07-30T14:02:31.280Z'
'npm:ws:20160624':
- socket.io > engine.io > ws:
patched: '2016-07-30T14:02:31.280Z'
- socket.io > socket.io-client > engine.io-client > ws:
patched: '2016-07-30T14:02:31.280Z'

View File

@@ -1,5 +0,0 @@
{
"extends": "stylelint-config-standard",
"font-family-name-quotes": "double-where-recommended",
"block-no-empty": false
}

7
.stylelintrc.json Normal file
View File

@@ -0,0 +1,7 @@
{
"extends": ["stylelint-prettier/recommended"],
"plugins": ["stylelint-prettier"],
"rules": {
"prettier/prettier": true
}
}

View File

@@ -1,16 +1,25 @@
dist: trusty
language: node_js
node_js:
- "7"
- "6"
- "5.1"
- 10
- lts/*
- node
before_install:
- npm i -g npm
before_script:
- npm install grunt-cli -g
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 5
- yarn danger ci
- "export DISPLAY=:99.0"
- "export ELECTRON_DISABLE_SANDBOX=1"
- "sh -e /etc/init.d/xvfb start"
- sleep 5
script:
- grunt
- npm test
- npm run test:prettier
- npm run test:js
- npm run test:css
- npm run test:e2e
- npm run test:unit
after_script:
- npm list
cache:
directories:
- node_modules
directories:
- node_modules

View File

@@ -1,30 +1,641 @@
# MagicMirror² Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/).
❤️ **Donate:** Enjoying MagicMirror²? [Please consider a donation!](https://magicmirror.builders/donate) With your help we can continue to improve the MagicMirror²
## [2.13.0] - 2020-10-01
Special thanks to the following contributors: @bryanzzhu, @bugsounet, @chamakura, @cjbrunner, @easyas314, @larryare, @oemel09, @rejas, @sdetweil & @sthuber90.
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`.
### Added
- `--dry-run` option adde in fetch call within updatenotification node_helper. This is to prevent
MagicMirror from consuming any fetch result. Causes conflict with MMPM when attempting to check
for updates to MagicMirror and/or MagicMirror modules.
- Test coverage with Istanbul, run it with `npm run test:coverage`.
- Add lithuanian language.
- Added support in weatherforecast for OpenWeather onecall API.
- Added config option to calendar-icons for recurring- and fullday-events.
- Added current, hourly (max 48), and daily (max 7) weather forecasts to weather module via OpenWeatherMap One Call API.
- Added eslint-plugin for jsdoc comments.
- Added new configDeepMerge option for module developers.
### Updated
- Change incorrect weather.js default properties.
- Cleaned up newsfeed module.
- Cleaned up jsdoc comments.
- Cleaned up clock tests.
- Move lodash into devDependencies, update other dependencies.
- Switch from ical to node-ical library.
### Fixed
- Fix backward compatibility issues for Safari < 11.
- Fix the use of "maxNumberOfDays" in the module "weatherforecast depending on the endpoint (forecast/daily or forecast)". [#2018](https://github.com/MichMich/MagicMirror/issues/2018)
- Fix calendar display. Account for current timezone. [#2068](https://github.com/MichMich/MagicMirror/issues/2068)
- Fix logLevel being set before loading config.
- Fix incorrect namespace links in svg clockfaces. [#2072](https://github.com/MichMich/MagicMirror/issues/2072)
- Fix weather/providers/weathergov for API guidelines. [#2045](https://github.com/MichMich/MagicMirror/issues/2045)
- Fix "undefined" in weather modules header. [#1985](https://github.com/MichMich/MagicMirror/issues/1985)
- Fix #2110, #2111, #2118: Recurring full day events should not use timezone adjustment. Just compare month/day.
## [2.12.0] - 2020-07-01
Special thanks to the following contributors: @AndreKoepke, @andrezibaia, @bryanzzhu, @chamakura, @DarthBrento, @Ekristoffe, @khassel, @Legion2, @ndom91, @radokristof, @rejas, @XBCreepinJesus & @ZoneMR.
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`.
### Added
- Added option to config the level of logging.
- Added prettier for an even cleaner codebase.
- Hide Sunrise/Sunset in Weather module.
- Hide Sunrise/Sunset in Current Weather module.
- Added Met Office DataHub (UK) provider.
### Updated
- Cleaned up alert module code.
- Cleaned up check_config code.
- Replaced grunt-based linters with their non-grunt equivalents.
- Switch to most of the eslint:recommended rules and fix warnings.
- Replaced insecure links with https ones.
- Cleaned up all "no-undef" warnings from eslint.
- Added location title wrapping for calendar module.
- Updated the BG translation.
### Deleted
- Removed truetype (ttf) fonts.
### Fixed
- The broken modules due to Socket.io change from last release. [#1973](https://github.com/MichMich/MagicMirror/issues/1973)
- Add backward compatibility for old module code in socketclient.js. [#1973](https://github.com/MichMich/MagicMirror/issues/1973)
- Support multiple instances of calendar module with different config. [#1109](https://github.com/MichMich/MagicMirror/issues/1109)
- Fix the use of "maxNumberOfDays" in the module "weatherforecast". [#2018](https://github.com/MichMich/MagicMirror/issues/2018)
- Throw error when check_config fails. [#1928](https://github.com/MichMich/MagicMirror/issues/1928)
- Bug fix related to 'maxEntries' not displaying Calendar events. [#2050](https://github.com/MichMich/MagicMirror/issues/2050)
- Updated ical library to latest version. [#1926](https://github.com/MichMich/MagicMirror/issues/1926)
- Fix config check after merge of prettier [#2109](https://github.com/MichMich/MagicMirror/issues/2109)
## [2.11.0] - 2020-04-01
🚨 READ THIS BEFORE UPDATING 🚨
In the past years the project has grown a lot. This came with a huge downside: poor maintainability. If I let the project continue the way it was, it would eventually crash and burn. More important: I would completely lose the drive and interest to continue the project. Because of this the decision was made to simplify the core by removing all side features like automatic installers and support for exotic platforms. This release (2.11.0) is the first real release that will reflect (parts) of these changes. As a result of this, some things might break. So before you continue make sure to backup your installation. Your config, your modules or better yet: your full MagicMirror folder. In other words: update at your own risk.
For more information regarding this major change, please check issue [#1860](https://github.com/MichMich/MagicMirror/issues/1860).
### Deleted
- Remove installers.
- Remove externalized scripts.
- Remove jshint dependency, instead eslint checks your config file now
### Added
- Brazilian translation for "FEELS".
- Ukrainian translation.
- Finnish translation for "PRECIP", "UPDATE_INFO_MULTIPLE" and "UPDATE_INFO_SINGLE".
- Added the ability to hide the temp label and weather icon in the `currentweather` module to allow showing only information such as wind and sunset/rise.
- The `clock` module now optionally displays sun and moon data, including rise/set times, remaining daylight, and percent of moon illumination.
- Added Hebrew translation.
- Add HTTPS support and update config.js.sample
- Run tests on long term support and latest stable version of nodejs
- Added the ability to configure a list of modules that shouldn't be update checked.
- Run linters on git commits
- Added date functionality to compliments: display birthday wishes or celebrate an anniversary
- Add HTTPS support for clientonly-mode.
### Fixed
- Force declaration of public ip address in config file (ISSUE #1852)
- Fixes `run-start.sh`: If running in docker-container, don't check the environment, just start electron (ISSUE #1859)
- Fix calendar time offset for recurring events crossing Daylight Savings Time (ISSUE #1798)
- Fix regression in currentweather module causing 'undefined' to show up when config.hideTemp is false
- Fix FEELS translation for Croatian
- Fixed weather tests [#1840](https://github.com/MichMich/MagicMirror/issues/1840)
- Fixed Socket.io can't be used with Reverse Proxy in serveronly mode [#1934](https://github.com/MichMich/MagicMirror/issues/1934)
- Fix update checking skipping 3rd party modules the first time
### Changed
- Remove documentation from core repository and link to new dedicated docs site: [docs.magicmirror.builders](https://docs.magicmirror.builders).
- Updated config.js.sample: Corrected some grammar on `config.js.sample` comment section.
- Removed `run-start.sh` script and update start commands:
- To start using electron, use `npm run start`.
- To start in server only mode, use `npm run server`.
- Remove redundant logging from modules.
- Timestamp in log output now also contains the date
- Turkish translation.
- Option to configure the size of the currentweather module.
- Changed "Gevoelstemperatuur" to "Voelt als" shorter text.
## [2.10.1] - 2020-01-10
### Changed
- Updated README.md: Added links to the official documentation website and remove links to broken installer.
## [2.10.0] - 2020-01-01
Special thanks to @sdetweil for all his great contributions!
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`.
### Added
- Timestamps in log output.
- Padding in dateheader mode of the calendar module.
- New upgrade script to help users consume regular updates installers/upgrade-script.sh.
- New script to help setup pm2, without install installers/fixuppm2.sh.
### Updated
- Updated lower bound of `lodash` and `helmet` dependencies for security patches.
- Updated compliments.js to handle newline in text, as textfields to not interpolate contents.
- Updated raspberry.sh installer script to handle new platform issues, split node/npm, pm2, and screen saver changes.
- Improve handling for armv6l devices, where electron support has gone away, add optional serveronly config option.
- Improved run-start.sh to handle for serveronly mode, by choice, or when electron not available.
- Only check for xwindows running if not on macOS.
### Fixed
- Fixed issue in weatherforecast module where predicted amount of rain was not using the decimal symbol specified in config.js.
- Module header now updates correctly, if a module need to dynamically show/hide its header based on a condition.
- Fix handling of config.js for serverOnly mode commented out.
- Fixed issue in calendar module where the debug script didn't work correctly with authentication.
- Fixed issue that some full day events were not correctly recognized as such.
- Display full day events lasting multiple days as happening today instead of some days ago if they are still ongoing.
## [2.9.0] - 2019-10-01
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`. If you are having issues running Electron, make sure your [Raspbian is up to date](https://www.raspberrypi.org/documentation/raspbian/updating.md).
### Added
- Spanish translation for "PRECIP".
- Adding a Malay (Malaysian) translation for MagicMirror².
- Add test check URLs of vendors 200 and 404 HTTP CODE.
- Add tests for new weather module and helper to stub ajax requests.
### Updated
- Updatenotification module: Display update notification for a limited (configurable) time.
- Enabled e2e/vendor_spec.js tests.
- The css/custom.css will be renamed after the next release. We've added into `run-start.sh` an instruction by GIT to ignore with `--skip-worktree` and `rm --cached`. [#1540](https://github.com/MichMich/MagicMirror/issues/1540)
- Disable sending of notification CLOCK_SECOND when displaySeconds is false.
### Fixed
- Updatenotification module: Properly handle race conditions, prevent crash.
- Send `NEWS_FEED` notification also for the first news messages which are shown.
- Fixed issue where weather module would not refresh data after a network or API outage. [#1722](https://github.com/MichMich/MagicMirror/issues/1722)
- Fixed weatherforecast module not displaying rain amount on fallback endpoint.
- Notifications CLOCK_SECOND & CLOCK_MINUTE being from startup instead of matched against the clock and avoid drifting.
## [2.8.0] - 2019-07-01
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`. If you are having issues running Electron, make sure your [Raspbian is up to date](https://www.raspberrypi.org/documentation/raspbian/updating.md).
### Added
- Option to show event location in calendar
- Finnish translation for "Feels" and "Weeks"
- Russian translation for Feels
- Calendar module: added `nextDaysRelative` config option
- Add `broadcastPastEvents` config option for calendars to include events from the past `maximumNumberOfDays` in event broadcasts
- Added feature to broadcast news feed items `NEWS_FEED` and updated news items `NEWS_FEED_UPDATED` in default [newsfeed](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/newsfeed) module (when news is updated) with documented default and `config.js` options in [README.md](https://github.com/MichMich/MagicMirror/blob/develop/modules/default/newsfeed/README.md)
- Added notifications to default `clock` module broadcasting `CLOCK_SECOND` and `CLOCK_MINUTE` for the respective time elapsed.
- Added UK Met Office Datapoint feed as a provider in the default weather module.
- Added new provider class
- Added suncalc.js dependency to calculate sun times (not provided in UK Met Office feed)
- Added "tempUnits" and "windUnits" to allow, for example, temp in metric (i.e. celsius) and wind in imperial (i.e. mph). These will override "units" if specified, otherwise the "units" value will be used.
- Use Feels Like temp from feed if present
- Optionally display probability of precipitation (PoP) in current weather (UK Met Office data)
- Automatically try to fix eslint errors by passing `--fix` option to it
- Added sunrise and sunset times to weathergov weather provider [#1705](https://github.com/MichMich/MagicMirror/issues/1705)
- Added "useLocationAsHeader" to display "location" in `config.js` as header when location name is not returned
- Added to `newsfeed.js`: in order to design the news article better with css, three more class-names were introduced: newsfeed-desc, newsfeed-desc, newsfeed-desc
### Updated
- English translation for "Feels" to "Feels like"
- Fixed the example calendar url in `config.js.sample`
- Update `ical.js` to solve various calendar issues.
- Update weather city list url [#1676](https://github.com/MichMich/MagicMirror/issues/1676)
- Only update clock once per minute when seconds aren't shown
### Fixed
- Fixed uncaught exception, race condition on module update
- Fixed issue [#1696](https://github.com/MichMich/MagicMirror/issues/1696), some ical files start date to not parse to date type
- Allowance HTML5 autoplay-policy (policy is changed from Chrome 66 updates)
- Handle SIGTERM messages
- Fixes sliceMultiDayEvents so it respects maximumNumberOfDays
- Minor types in default NewsFeed [README.md](https://github.com/MichMich/MagicMirror/blob/develop/modules/default/newsfeed/README.md)
- Fix typos and small syntax errors, cleanup dependencies, remove multiple-empty-lines, add semi-rule
- Fixed issues with calendar not displaying one-time changes to repeating events
- Updated the fetchedLocationName variable in currentweather.js so that city shows up in the header
### Updated installer
- give non-pi2+ users (pi0, odroid, jetson nano, mac, windows, ...) option to continue install
- use current username vs hardcoded 'pi' to support non-pi install
- check for npm installed. node install doesn't do npm anymore
- check for mac as part of PM2 install, add install option string
- update pm2 config with current username instead of hard coded 'pi'
- check for screen saver config, "/etc/xdg/lxsession", bypass if not setup
## [2.7.1] - 2019-04-02
Fixed `package.json` version number.
## [2.7.0] - 2019-04-01
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`. If you are having issues running Electron, make sure your [Raspbian is up to date](https://www.raspberrypi.org/documentation/raspbian/updating.md).
### Added
- Italian translation for "Feels"
- Basic Klingon (tlhIngan Hol) translations
- Disabled the screensaver on raspbian with installation script
- Added option to truncate the number of vertical lines a calendar item can span if `wrapEvents` is enabled.
- Danish translation for "Feels" and "Weeks"
- Added option to split multiple day events in calendar to separate numbered events
- Slovakian translation
- Alerts now can contain Font Awesome icons
- Notifications display time can be set in request
- Newsfeed: added support for `ARTICLE_INFO_REQUEST` notification
- Add `name` config option for calendars to be sent along with event broadcasts
### Updated
- Bumped the Electron dependency to v3.0.13 to support the most recent Raspbian. [#1500](https://github.com/MichMich/MagicMirror/issues/1500)
- Updated modernizr code in alert module, fixed a small typo there too
- More verbose error message on console if the config is malformed
- Updated installer script to install Node.js version 10.x
### Fixed
- Fixed temperature displays in currentweather and weatherforecast modules [#1503](https://github.com/MichMich/MagicMirror/issues/1503), [#1511](https://github.com/MichMich/MagicMirror/issues/1511).
- Fixed unhandled error on bad git data in updatenotification module [#1285](https://github.com/MichMich/MagicMirror/issues/1285).
- Weather forecast now works with openweathermap in new weather module. Daily data are displayed, see issue [#1504](https://github.com/MichMich/MagicMirror/issues/1504).
- Fixed analogue clock border display issue where non-black backgrounds used (previous fix for issue 611)
- Fixed compatibility issues caused when modules request different versions of Font Awesome, see issue [#1522](https://github.com/MichMich/MagicMirror/issues/1522). MagicMirror now uses [Font Awesome 5 with v4 shims included for backwards compatibility](https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4#shims).
- Installation script problems with raspbian
- Calendar: only show repeating count if the event is actually repeating [#1534](https://github.com/MichMich/MagicMirror/pull/1534)
- Calendar: Fix exdate handling when multiple values are specified (comma separated)
- Calendar: Fix relative date handling for fulldate events, calculate difference always from start of day [#1572](https://github.com/MichMich/MagicMirror/issues/1572)
- Fix null dereference in moduleNeedsUpdate when the module isn't visible
- Calendar: Fixed event end times by setting default calendarEndTime to "LT" (Local time format). [#1479]
- Calendar: Fixed missing calendar fetchers after server process restarts [#1589](https://github.com/MichMich/MagicMirror/issues/1589)
- Notification: fixed background color (was white text on white background)
- Use getHeader instead of data.header when creating the DOM so overwriting the function also propagates into it
- Fix documentation of `useKMPHwind` option in currentweather
### New weather module
- Fixed weather forecast table display [#1499](https://github.com/MichMich/MagicMirror/issues/1499).
- Dimmed loading indicator for weather forecast.
- Implemented config option `decimalSymbol` [#1499](https://github.com/MichMich/MagicMirror/issues/1499).
- Aligned indoor values in current weather vertical [#1499](https://github.com/MichMich/MagicMirror/issues/1499).
- Added humidity support to nunjuck unit filter.
- Do not display degree symbol for temperature in Kelvin [#1503](https://github.com/MichMich/MagicMirror/issues/1503).
- Weather forecast now works with openweathermap for both, `/forecast` and `/forecast/daily`, in new weather module. If you use the `/forecast`-weatherEndpoint, the hourly data are converted to daily data, see issues [#1504](https://github.com/MichMich/MagicMirror/issues/1504), [#1513](https://github.com/MichMich/MagicMirror/issues/1513).
- Added fade, fadePoint and maxNumberOfDays properties to the forecast mode [#1516](https://github.com/MichMich/MagicMirror/issues/1516)
- Fixed Loading string and decimalSymbol string replace [#1538](https://github.com/MichMich/MagicMirror/issues/1538)
- Show Snow amounts in new weather module [#1545](https://github.com/MichMich/MagicMirror/issues/1545)
- Added weather.gov as a new weather provider for US locations
## [2.6.0] - 2019-01-01
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`. If you are having issues updating, make sure you are running the latest version of Node.
### ✨ Experimental ✨
- New default [module weather](modules/default/weather). This module will eventually replace the current `currentweather` and `weatherforecast` modules. The new module is still pretty experimental, but it's included so you can give it a try and help us improve this module. Please give us you feedback using [this forum post](https://forum.magicmirror.builders/topic/9335/default-weather-module-refactoring).
A huge, huge, huge thanks to user @fewieden for all his hard work on the new `weather` module!
### Added
- Possibility to add classes to the cell of symbol, title and time of the events of calendar.
- Font-awesome 5, still has 4 for backwards compatibility.
- Missing `showEnd` in calendar documentation
- Screenshot for the new feed module
- Screenshot for the compliments module
- Screenshot for the clock module
- Screenshot for the current weather
- Screenshot for the weather forecast module
- Portuguese translation for "Feels"
- Croatian translation
- Fading for dateheaders timeFormat in Calendar [#1464](https://github.com/MichMich/MagicMirror/issues/1464)
- Documentation for the existing `scale` option in the Weather Forecast module.
### Fixed
- Allow parsing recurring calendar events where the start date is before 1900
- Fixed Polish translation for Single Update Info
- Ignore entries with unparseable details in the calendar module
- Bug showing FullDayEvents one day too long in calendar fixed
- Bug in newsfeed when `removeStartTags` is used on the description [#1478](https://github.com/MichMich/MagicMirror/issues/1478)
### Updated
- The default calendar setting `showEnd` is changed to `false`.
### Changed
- The Weather Forecast module by default displays the &deg; symbol after every numeric value to be consistent with the Current Weather module.
## [2.5.0] - 2018-10-01
### Added
- Romanian translation for "Feels"
- Support multi-line compliments
- Simplified Chinese translation for "Feels"
- Polish translate for "Feels"
- French translate for "Feels"
- Translations for newsfeed module
- Support for toggling news article in fullscreen
- Hungarian translation for "Feels" and "Week"
- Spanish translation for "Feels"
- Add classes instead of inline style to the message from the module Alert
- Support for events having a duration instead of an end
- Support for showing end of events through config parameters showEnd and dateEndFormat
### Fixed
- Fixed gzip encoded calendar loading issue #1400.
- Mixup between german and spanish translation for newsfeed.
- Fixed close dates to be absolute, if no configured in the config.js - module Calendar
- Fixed the updatenotification module message about new commits in the repository, so they can be correctly localized in singular and plural form.
- Fix for weatherforecast rainfall rounding [#1374](https://github.com/MichMich/MagicMirror/issues/1374)
- Fix calendar parsing issue for Midori on RasperryPi Zero w, related to issue #694.
- Fix weather city ID link in sample config
- Fixed issue with clientonly not updating with IP address and port provided on command line.
### Updated
- Updated Simplified Chinese translation
- Swedish translations
- Hungarian translations for the updatenotification module
- Updated Norsk bokmål translation
- Updated Norsk nynorsk translation
- Consider multi days event as full day events
## [2.4.1] - 2018-07-04
### Fixed
- Fix weather parsing issue #1332.
## [2.4.0] - 2018-07-01
**Warning:** This release includes an updated version of Electron. This requires a Raspberry Pi configuration change to allow the best performance and prevent the CPU from overheating. Please read the information on the [MagicMirror Wiki](https://github.com/michmich/magicmirror/wiki/configuring-the-raspberry-pi#enable-the-open-gl-driver-to-decrease-electrons-cpu-usage).
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`
### Added
- Enabled translation of feelsLike for module currentweather
- Added support for on-going calendar events
- Added scroll up in fullscreen newsfeed article view
- Changed fullscreen newsfeed width from 100% to 100vw (better results)
- Added option to calendar module that colors only the symbol instead of the whole line
- Added option for new display format in the calendar module with date headers with times/events below.
- Ability to fetch compliments from a remote server
- Add regex filtering to calendar module
- Customize classes for table
- Added option to newsfeed module to only log error parsing a news article if enabled
- Add update translations for Português Brasileiro
### Changed
- Upgrade to Electron 2.0.0.
- Remove yarn-or-npm which breaks production builds.
- Invoke module suspend even if no dom content. [#1308](https://github.com/MichMich/MagicMirror/issues/1308)
### Fixed
- Fixed issue where wind chill could not be displayed in Fahrenheit. [#1247](https://github.com/MichMich/MagicMirror/issues/1247)
- Fixed issues where a module crashes when it tries to dismiss a non existing alert. [#1240](https://github.com/MichMich/MagicMirror/issues/1240)
- In default module currentWeather/currentWeather.js line 296, 300, self.config.animationSpeed can not be found because the notificationReceived function does not have "self" variable.
- Fixed browser-side code to work on the Midori browser.
- Fixed issue where heat index was reporting incorrect values in Celsius and Fahrenheit. [#1263](https://github.com/MichMich/MagicMirror/issues/1263)
- Fixed weatherforecast to use dt_txt field instead of dt to handle timezones better
- Newsfeed now remembers to show the description when `"ARTICLE_LESS_DETAILS"` is called if the user wants to always show the description. [#1282](https://github.com/MichMich/MagicMirror/issues/1282)
- `clientonly/*.js` is now linted, and one linting error is fixed
- Fix issue #1196 by changing underscore to hyphen in locale id, in align with momentjs.
- Fixed issue where heat index and wind chill were reporting incorrect values in Kelvin. [#1263](https://github.com/MichMich/MagicMirror/issues/1263)
### Updated
- Updated Italian translation
- Updated German translation
- Updated Dutch translation
## [2.3.1] - 2018-04-01
### Fixed
- Downgrade electron to 1.4.15 to solve the black screen issue.[#1243](https://github.com/MichMich/MagicMirror/issues/1243)
## [2.3.0] - 2018-04-01
### Added
- Add new settings in compliments module: setting time intervals for morning and afternoon
- Add system notification `MODULE_DOM_CREATED` for notifying each module when their Dom has been fully loaded.
- Add types for module.
- Implement Danger.js to notify contributors when CHANGELOG.md is missing in PR.
- Allow scrolling in full page article view of default newsfeed module with gesture events from [MMM-Gestures](https://github.com/thobach/MMM-Gestures)
- Changed 'compliments.js' - update DOM if remote compliments are loaded instead of waiting one updateInterval to show custom compliments
- Automated unit tests utils, deprecated, translator, cloneObject(lockstrings)
- Automated integration tests translations
- Add advanced filtering to the excludedEvents configuration of the default calendar module
- New currentweather module config option: `showFeelsLike`: Shows how it actually feels like. (wind chill or heat index)
- New currentweather module config option: `useKMPHwind`: adds an option to see wind speed in Kmph instead of just m/s or Beaufort.
- Add dc:date to parsing in newsfeed module, which allows parsing of more rss feeds.
### Changed
- Add link to GitHub repository which contains the respective Dockerfile.
- Optimized automated unit tests cloneObject, cmpVersions
- Update notifications use now translation templates instead of normal strings.
- Yarn can be used now as an installation tool
- Changed Electron dependency to v1.7.13.
### Fixed
- News article in fullscreen (iframe) is now shown in front of modules.
- Forecast respects maxNumberOfDays regardless of endpoint.
- Fix exception on translation of objects.
## [2.2.2] - 2018-01-02
### Added
- Add missing `package-lock.json`.
### Changed
- Changed Electron dependency to v1.7.10.
## [2.2.1] - 2018-01-01
### Fixed
- Fixed linting errors.
## [2.2.0] - 2018-01-01
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`
### Changed
- Calendar week is now handled with a variable translation in order to move number language specific.
- Reverted the Electron dependency back to 1.4.15 since newer version don't seem to work on the Raspberry Pi very well.
### Added
- Add option to use [Nunjucks](https://mozilla.github.io/nunjucks/) templates in modules. (See `helloworld` module as an example.)
- Add Bulgarian translations for MagicMirror² and Alert module.
- Add graceful shutdown of modules by calling `stop` function of each `node_helper` on SIGINT before exiting.
- Link update subtext to Github diff of current version versus tracking branch.
- Add Catalan translation.
- Add ability to filter out newsfeed items based on prohibited words found in title (resolves #1071)
- Add options to truncate description support of a feed in newsfeed module
- Add reloadInterval option for particular feed in newsfeed module
- Add no-cache entries of HTTP headers in newsfeed module (fetcher)
- Add Czech translation.
- Add option for decimal symbols other than the decimal point for temperature values in both default weather modules: WeatherForecast and CurrentWeather.
### Fixed
- Fixed issue with calendar module showing more than `maximumEntries` allows
- WeatherForecast and CurrentWeather are now using HTTPS instead of HTTP
- Correcting translation for Indonesian language
- Fix issue where calendar icons wouldn't align correctly
## [2.1.3] - 2017-10-01
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`
### Changed
- Remove Roboto fonts files inside `fonts` and these are installed by npm install command.
### Added
- Add `clientonly` script to start only the electron client for a remote server.
- Add symbol and color properties of event when `CALENDAR_EVENTS` notification is broadcasted from `default/calendar` module.
- Add `.vscode/` folder to `.gitignore` to keep custom Visual Studio Code config out of git.
- Add unit test the capitalizeFirstLetter function of newsfeed module.
- Add new unit tests for function `shorten` in calendar module.
- Add new unit tests for function `getLocaleSpecification` in calendar module.
- Add unit test for js/class.js.
- Add unit tests for function `roundValue` in currentweather module.
- Add test e2e showWeek feature in spanish language.
- Add warning Log when is used old authentication method in the calendar module.
- Add test e2e for helloworld module with default config text.
- Add ability for `currentweather` module to display indoor humidity via INDOOR_HUMIDITY notification.
- Add Welsh (Cymraeg) translation.
- Add Slack badge to Readme.
### Updated
- Changed 'default.js' - listen on all attached interfaces by default.
- Add execution of `npm list` after the test are ran in Travis CI.
- Change hooks for the vendors e2e tests.
- Add log when clientonly failed on starting.
- Add warning color when are using full ip whitelist.
- Set version of the `express-ipfilter` on 0.3.1.
### Fixed
- Fixed issue with incorrect alignment of analog clock when displayed in the center column of the MM.
- Fixed ipWhitelist behaviour to make empty whitelist ([]) allow any and all hosts access to the MM.
- Fixed issue with calendar module where 'excludedEvents' count towards 'maximumEntries'.
- Fixed issue with calendar module where global configuration of maximumEntries was not overridden by calendar specific config (see module doc).
- Fixed issue where `this.file(filename)` returns a path with two hashes.
- Workaround for the WeatherForecast API limitation.
## [2.1.2] - 2017-07-01
### Changed
- Revert Docker related changes in favor of [docker-MagicMirror](https://github.com/bastilimbach/docker-MagicMirror). All Docker images are outsourced. ([#856](https://github.com/MichMich/MagicMirror/pull/856))
- Change Docker base image (Debian + Node) to an arm based distro (AlpineARM + Node) ([#846](https://github.com/MichMich/MagicMirror/pull/846))
- Fix the dockerfile to have it running from the first time.
### Added
- Add in option to wrap long calendar events to multiple lines using `wrapEvents` configuration option.
- Add test e2e `show title newsfeed` for newsfeed module.
- Add task to check configuration file.
- Add test check URLs of vendors.
- Add test of match current week number on clock module with showWeek configuration.
- Add test default modules present modules/default/defaultmodules.js.
- Add unit test calendar_modules function capFirst.
- Add test for check if exists the directories present in defaults modules.
- Add support for showing wind direction as an arrow instead of abbreviation in currentWeather module.
- Add support for writing translation functions to support flexible word order
- Add test for check if exits the directories present in defaults modules.
- Add calendar option to set a separate date format for full day events.
- Add ability for `currentweather` module to display indoor temperature via INDOOR_TEMPERATURE notification
- Add ability to change the path of the `custom.css`.
- Add translation Dutch to Alert module.
- Added Romanian translation.
### Updated
- Added missing keys to Polish translation.
- Added missing key to German translation.
- Added better translation with flexible word order to Finnish translation.
### Fixed
- Fix instruction in README for using automatically installer script.
- Bug of duplicated compliments as described in [here](https://forum.magicmirror.builders/topic/2381/compliments-module-stops-cycling-compliments).
- Fix double message about port when server is starting
- Corrected Swedish translations for TODAY/TOMORROW/DAYAFTERTOMORROW.
- Removed unused import from js/electron.js
- Made calendar.js respect config.timeFormat irrespective of locale setting.
- Fixed alignment of analog clock when a large calendar is displayed in the same side bar.
## [2.1.1] - 2017-04-01
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`
### Changed
- Add `anytime` group for Compliments module.
- Compliments module can use remoteFile without default daytime arrays defined
- Compliments module can use remoteFile without default daytime arrays defined.
- Installer: Use init config.js from config.js.sample.
- Switched out `rrule` package for `rrule-alt` and fixes in `ical.js` in order to fix calendar issues. ([#565](https://github.com/MichMich/MagicMirror/issues/565))
- Make mouse events pass through the region fullscreen_above to modules below.
- Scaled the splash screen down to make it a bit more subtle.
- Replace HTML tables with markdown tables in README files.
- Added `DAYAFTERTOMORROW`, `UPDATE_NOTIFICATION` and `UPDATE_NOTIFICATION_MODULE` to Finnish translations.
- Run `npm test` on Travis automatically
- Run `npm test` on Travis automatically.
- Show the splash screen image even when is reboot or halted.
- Added some missing translaton strings in the sv.json file.
- Added some missing translation strings in the sv.json file.
- Run task jsonlint to check translation files.
- Restructured Test Suite
- Restructured Test Suite.
### Added
- Added Docker support (Pull Request [#673](https://github.com/MichMich/MagicMirror/pull/673)).
- Calendar-specific support for `maximumEntries`, and ` maximumNumberOfDays`.
- Calendar-specific support for `maximumEntries`, and `maximumNumberOfDays`.
- Add loaded function to modules, providing an async callback.
- Made default newsfeed module aware of gesture events from [MMM-Gestures](https://github.com/thobach/MMM-Gestures)
- Add use pm2 for manager process into Installer RaspberryPi script.
@@ -35,12 +646,12 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Option to use RegExp in Calendar's titleReplace.
- Hungarian Translation.
- Icelandic Translation.
- Add use a script to prevent when is run by SSH session set DISPLAY enviroment.
- Enable ability to set configuration file by the enviroment variable called MM_CONFIG_FILE.
- Add use a script to prevent when is run by SSH session set DISPLAY environment.
- Enable ability to set configuration file by the environment variable called MM_CONFIG_FILE.
- Option to give each calendar a different color.
- Option for colored min-temp and max-temp.
- Add test e2e helloworld.
- Add test e2e enviroment.
- Add test e2e environment.
- Add `chai-as-promised` npm module to devDependencies.
- Basic set of tests for clock module.
- Run e2e test in Travis.
@@ -58,22 +669,23 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Added tests for Translations, dev argument, version, dev console.
- Added test anytime feature compliments module.
- Added test ipwhitelist configuration directive.
- Added test for calendar module: default, basic-auth, backward compability, fail-basic-auth.
- Added test for calendar module: default, basic-auth, backward compatibility, fail-basic-auth.
- Added meta tags to support fullscreen mode on iOS (for server mode)
- Added `ignoreOldItems` and `ignoreOlderThan` options to the News Feed module
- Added test for MM_PORT enviroment variable.
- Added test for MM_PORT environment variable.
- Added a configurable Week section to the clock module.
### Fixed
- Update .gitignore to not ignore default modules folder.
- Remove white flash on boot up.
- Added `update` in Raspberry Pi installation script.
- Fix an issue where the analog clock looked scrambled. ([#611](https://github.com/MichMich/MagicMirror/issues/611))
- If units is set to imperial, the showRainAmount option of weatherforecast will show the correct unit.
- If units are set to imperial, the showRainAmount option of weatherforecast will show the correct unit.
- Module currentWeather: check if temperature received from api is defined.
- Fix an issue with module hidden status changing to `true` although lock string prevented showing it.
- Fix newsfeed module bug (removeStartTags)
- Fix when is set MM_PORT enviroment variable.
- Fix when is set MM_PORT environment variable.
- Fixed missing animation on `this.show(speed)` when module is alone in a region.
## [2.1.0] - 2016-12-31
@@ -81,6 +693,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`
### Added
- Finnish translation.
- Danish translation.
- Turkish translation.
@@ -93,24 +706,25 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Module API: Method to overwrite the module's header. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules#getheader) for more information.
- Module API: Option to define the minimum MagicMirror version to run a module. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules#requiresversion) 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 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
- 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.
- Add the abilty to set timezone on the date display in the Clock Module
- Add module `updatenotification` to get an update whenever a new version is available. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/updatenotification) for more information.
- Add the ability to set timezone on the date display in the Clock Module
- Ability to set date format in calendar module
- Possibility to use currentweather for the compliments
- Added option `disabled` for modules.
- Added option `address` to set bind address.
- Added option `onlyTemp` for currentweather module to show show only current temperature and weather icon.
- Added option `onlyTemp` for currentweather module to show only current temperature and weather icon.
- Added option `remoteFile` to compliments module to load compliment array from filesystem.
- Added option `zoom` to scale the whole mirror display with a given factor.
- Added option `roundTemp` for currentweather and weatherforecast modules to display temperatures rounded to nearest integer.
- Added abilty set the classes option to compliments module for style and text size of compliments.
- Added ability set the classes option to compliments module for style and text size of compliments.
- Added ability to configure electronOptions
- Calendar module: option to hide private events
- Add root_path for global vars
### Updated
- Modified translations for Frysk.
- Modified core English translations.
- Updated package.json as a result of Snyk security update.
@@ -121,6 +735,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Modules are now secure, and Helmet is now used to prevent abuse of the Mirror's API.
### Fixed
- Solve an issue where module margins would appear when the first module of a section was hidden.
- Solved visual display errors on chrome, if all modules in one of the right sections are hidden.
- Global and Module default config values are no longer modified when setting config values.
@@ -131,18 +746,21 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [2.0.5] - 2016-09-20
### Added
- Added ability to remove tags from the beginning or end of newsfeed items in 'newsfeed.js'.
- Added ability to define "the day after tomorrow" for calendar events (Definition for German and Dutch already included).
- Added CII Badge (we are compliant with the CII Best Practices)
- Add support for doing http basic auth when loading calendars
- Add the abilty to turn off and on the date display in the Clock Module
- Add the ability to turn off and on the date display in the Clock Module
### Fixed
- Fix typo in installer.
- Add message to unsupported Pi error to mention that Pi Zeros must use server only mode, as ARMv6 is unsupported. Closes #374.
- Fix API url for weather API.
### Updated
- Force fullscreen when kioskmode is active.
- Update the .github templates and information with more modern information.
- Update the Gruntfile with a more functional StyleLint implementation.
@@ -150,6 +768,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [2.0.4] - 2016-08-07
### Added
- Brazilian Portuguese Translation.
- Option to enable Kiosk mode.
- Added ability to start the app with Dev Tools.
@@ -157,63 +776,81 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Greek Translation
### Fixed
- Prevent `getModules()` selectors from returning duplicate entries.
- Append endpoints of weather modules with `/` to retreive the correct data. (Issue [#337](https://github.com/MichMich/MagicMirror/issues/337))
- Corrected grammer in `module.js` from 'suspend' to 'suspended'.
- Append endpoints of weather modules with `/` to retrieve the correct data. (Issue [#337](https://github.com/MichMich/MagicMirror/issues/337))
- Corrected grammar in `module.js` from 'suspend' to 'suspended'.
- Fixed openweathermap.org URL in config sample.
- Prevent currentweather module from crashing when received data object is incorrect.
- Fix issue where translation loading prevented the UI start-up when the language was set to 'en'. (Issue [#388](https://github.com/MichMich/MagicMirror/issues/388))
### Updated
- Updated package.json to fix possible vulnerabilities. (Using Snyk)
- Updated weathericons
- Updated default weatherforecast to work with the new icons.
- More detailed error message in case config file couldn't be loaded.
## [2.0.3] - 2016-07-12
### Added
- Add max newsitems parameter to the newsfeed module.
- Translations for Simplified Chinese, Traditional Chinese and Japanese.
- Polish Translation
- Add an analog clock in addition to the digital one.
### Fixed
- Edit Alert Module to display title & message if they are provided in the notification (Issue [#300](https://github.com/MichMich/MagicMirror/issues/300))
- Removed 'null' reference from updateModuleContent(). This fixes recent Edge and Internet Explorer browser displays (Issue [#319](https://github.com/MichMich/MagicMirror/issues/319))
### Changed
- Added default string to calendar titleReplace.
## [2.0.2] - 2016-06-05
### Added
- Norwegian Translations (nb and nn)
- Portuguese Translation
- Swedish Translation
### Fixed
- Added reference to Italian Translation.
- Added the missing NE translation to all languages. [#344](https://github.com/MichMich/MagicMirror/issues/344)
- Added proper User-Agent string to calendar call.
### Changed
- Add option to use locationID in weather modules.
## [2.0.1] - 2016-05-18
### Added
- Changelog
- Italian Translation
### Changed
- Improve the installer by fetching the latest Node.js without any 3rd party interferences.
## [2.0.0] - 2016-05-03
### Initial release of MagicMirror²
It includes (but is not limited to) the following features:
- Modular system allowing 3rd party plugins.
- An Node/Electron based application taking away the need for external servers or browsers.
- A complete development API documentation.
- Small cute fairies that kiss you while you sleep.
## [1.0.0] - 2014-02-16
### Initial release of MagicMirror.
This was part of the blogpost: [http://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the](http://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the)
This was part of the blogpost: [https://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the](https://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the)

View File

@@ -1,19 +0,0 @@
FROM node:latest
RUN apt-get update && apt-get -y install dos2unix
WORKDIR /opt/magic_mirror
COPY . .
COPY /modules unmount_modules
COPY /config unmount_config
ENV NODE_ENV production
ENV MM_PORT 8080
RUN npm install
RUN ["dos2unix", "docker-entrypoint.sh"]
RUN ["chmod", "+x", "docker-entrypoint.sh"]
EXPOSE $MM_PORT
ENTRYPOINT ["/opt/magic_mirror/docker-entrypoint.sh"]

View File

@@ -1,74 +0,0 @@
module.exports = function(grunt) {
require("time-grunt")(grunt);
grunt.initConfig({
pkg: grunt.file.readJSON("package.json"),
eslint: {
options: {
configFile: ".eslintrc.json"
},
target: ["js/*.js", "modules/default/*.js", "modules/default/*/*.js",
"serveronly/*.js", "*.js", "tests/*/*.js", "!modules/default/alert/notificationFx.js",
"!modules/default/alert/modernizr.custom.js", "!modules/default/alert/classie.js",
"config/*",
"translations/translations.js", "vendor/vendor.js"
]
},
stylelint: {
simple: {
options: {
configFile: ".stylelintrc"
},
src: ["css/main.css", "modules/default/calendar/calendar.css", "modules/default/clock/clock_styles.css", "modules/default/currentweather/currentweather.css", "modules/default/weatherforcast/weatherforcast.css"]
}
},
jsonlint: {
main: {
src: ["package.json", ".eslintrc.json", ".stylelintrc", "translations/*.json",
"modules/default/*/translations/*.json", "installers/pm2_MagicMirror.json",
"vendor/package.js"],
options: {
reporter: "jshint"
}
}
},
markdownlint: {
all: {
options: {
config: {
"default": true,
"line-length": false,
"blanks-around-headers": false,
"no-duplicate-header": false,
"no-inline-html": false,
"MD010": false,
"MD001": false,
"MD031": false,
"MD040": false,
"MD002": false,
"MD029": false,
"MD041": false,
"MD032": false,
"MD036": false,
"MD037": false,
"MD009": false,
"MD018": false,
"MD012": false,
"MD026": false,
"MD038": false
}
},
src: ["README.md", "CHANGELOG.md", "LICENSE.md", "modules/README.md", "modules/default/**/*.md", "!modules/default/calendar/vendor/ical.js/readme.md"]
}
},
yamllint: {
all: [".travis.yml"]
}
});
grunt.loadNpmTasks("grunt-eslint");
grunt.loadNpmTasks("grunt-stylelint");
grunt.loadNpmTasks("grunt-jsonlint");
grunt.loadNpmTasks("grunt-yamllint");
grunt.loadNpmTasks("grunt-markdownlint");
grunt.registerTask("default", ["eslint", "stylelint", "jsonlint", "markdownlint", "yamllint"]);
};

View File

@@ -1,7 +1,6 @@
The MIT License (MIT)
=====================
# The MIT License (MIT)
Copyright © 2016-2017 Michael Teeuw
Copyright © 2016-2020 Michael Teeuw
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation

168
README.md
View File

@@ -4,168 +4,40 @@
<a href="https://david-dm.org/MichMich/MagicMirror"><img src="https://david-dm.org/MichMich/MagicMirror.svg" alt="Dependency Status"></a>
<a href="https://david-dm.org/MichMich/MagicMirror#info=devDependencies"><img src="https://david-dm.org/MichMich/MagicMirror/dev-status.svg" alt="devDependency Status"></a>
<a href="https://bestpractices.coreinfrastructure.org/projects/347"><img src="https://bestpractices.coreinfrastructure.org/projects/347/badge"></a>
<a href="http://choosealicense.com/licenses/mit"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
<a href="https://travis-ci.org/MichMich/MagicMirror"><img src="https://travis-ci.org/MichMich/MagicMirror.svg" alt="Travis"></a>
<a href="https://choosealicense.com/licenses/mit"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
<a href="https://travis-ci.com/MichMich/MagicMirror"><img src="https://travis-ci.com/MichMich/MagicMirror.svg" alt="Travis"></a>
<a href="https://snyk.io/test/github/MichMich/MagicMirror"><img src="https://snyk.io/test/github/MichMich/MagicMirror/badge.svg" alt="Known Vulnerabilities" data-canonical-src="https://snyk.io/test/github/MichMich/MagicMirror" style="max-width:100%;"></a>
</p>
**MagicMirror²** is an open source modular smart mirror platform. With a growing list of installable modules, the **MagicMirror²** allows you to convert your hallway or bathroom mirror into your personal assistant. **MagicMirror²** is built by the creator of [the original MagicMirror](http://michaelteeuw.nl/tagged/magicmirror) with the incredible help of a [growing community of contributors](https://github.com/MichMich/MagicMirror/graphs/contributors).
**MagicMirror²** is an open source modular smart mirror platform. With a growing list of installable modules, the **MagicMirror²** allows you to convert your hallway or bathroom mirror into your personal assistant. **MagicMirror²** is built by the creator of [the original MagicMirror](https://michaelteeuw.nl/tagged/magicmirror) with the incredible help of a [growing community of contributors](https://github.com/MichMich/MagicMirror/graphs/contributors).
MagicMirror² focuses on a modular plugin system and uses [Electron](http://electron.atom.io/) as an application wrapper. So no more web server or browser installs necessary!
MagicMirror² focuses on a modular plugin system and uses [Electron](https://www.electronjs.org/) as an application wrapper. So no more web server or browser installs necessary!
## Table Of Contents
## Documentation
- [Usage](#usage)
- [Configuration](#configuration)
- [Modules](#modules)
- [Known Issues](#known-issues)
- [Community](#community)
- [Contributing Guidelines](#contributing-guidelines)
For the full documentation including **[installation instructions](https://docs.magicmirror.builders/getting-started/installation.html)**, please visit our dedicated documentation website: [https://docs.magicmirror.builders](https://docs.magicmirror.builders).
## Usage
## Links
### Raspberry Pi Support
Electron, the app wrapper around MagicMirror², only supports the Raspberry Pi 2 & 3. The Raspberry Pi 1 is currently **not** supported. If you want to run this on a Raspberry Pi 1, use the [server only](#server-only) feature and setup a fullscreen browser yourself.
### Automatic Installer (Raspberry Pi Only!)
Execute the following command on your Raspberry Pi to install MagicMirror²:
````
curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh | bash
````
### Manual Installation
1. Download and install the latest Node.js version.
2. Clone the repository and check out the master branch: `git clone https://github.com/MichMich/MagicMirror`
3. Enter the repository: `cd ~/MagicMirror`
4. Install and run the app: `npm install && npm start`
**Important:** `npm start` does **not** work via SSH, use `DISPLAY=:0 nohup npm start &` instead. This starts the mirror on the remote display.
**Note:** if you want to debug on Raspberry Pi you can use `npm start dev` which will start the MagicMirror app with Dev Tools enabled.
### Server Only
In some cases, you want to start the application without an actual app window. In this case, you can start MagicMirror² in server only mode by manually running `node serveronly` or using Docker. This will start the server, after which you can open the application in your browser of choice. Detailed description below.
#### Docker
MagicMirror² in server only mode can be deployed using [Docker](https://docker.com). After a successful [Docker installation](https://docs.docker.com/engine/installation/) you just need to execute the following command in the shell:
```bash
docker run -d \
--publish 80:8080 \
--restart always \
--volume ~/magic_mirror/config:/opt/magic_mirror/config \
--volume ~/magic_mirror/modules:/opt/magic_mirror/modules \
--name magic_mirror \
MichMich/MagicMirror
```
| **Volumes** | **Description** |
| --- | --- |
| `/opt/magic_mirror/config` | Mount this volume to insert your own config into the docker container. |
| `/opt/magic_mirror/modules` | Mount this volume to add your own custom modules into the docker container. |
You may need to add your Docker Host IP to your `ipWhitelist` option. If you have some issues setting up this configuration, check [this forum post](https://forum.magicmirror.builders/topic/1326/ipwhitelist-howto).
```javascript
var config = {
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:172.17.0.1"]
};
```
#### Manual
1. Download and install the latest Node.js version.
2. Clone the repository and check out the master branch: `git clone https://github.com/MichMich/MagicMirror`
3. Enter the repository: `cd ~/MagicMirror`
4. Install and run the app: `npm install && node serveronly`
### Raspberry Configuration & Auto Start.
The following wiki links are helpful in the configuration of your MagicMirror² operating system:
- [Configuring the Raspberry Pi](https://github.com/MichMich/MagicMirror/wiki/Configuring-the-Raspberry-Pi)
- [Auto Starting MagicMirror](https://github.com/MichMich/MagicMirror/wiki/Auto-Starting-MagicMirror)
### Updating your MagicMirror²
If you want to update your MagicMirror² to the latest version, use your terminal to go to your Magic Mirror folder and type the following command:
```bash
git pull && npm install
```
If you changed nothing more than the config or the modules, this should work without any problems.
Type `git status` to see your changes, if there are any, you can reset them with `git reset --hard`. After that, git pull should be possible.
## Configuration
1. Duplicate `config/config.js.sample` to `config/config.js`. **Note:** If you used the installer script. This step is already done for you.
2. Modify your required settings.
The following properties can be configured:
| **Option** | **Description** |
| --- | --- |
| `port` | The port on which the MagicMirror² server will run on. The default value is `8080`. |
| `address` | The ip address the accept connections. The default open bind `::` is IPv6 is available or `0.0.0.0` IPv4 run on. Example config: `192.168.10.100`. |
| `ipWhitelist` | The list of IPs from which you are allowed to access the MagicMirror². The default value is `["127.0.0.1", "::ffff:127.0.0.1", "::1"]`. It is possible to specify IPs with subnet masks (`["127.0.0.1", "127.0.0.1/24"]`) or define ip ranges (`["127.0.0.1", ["192.168.0.1", "192.168.0.100"]]`). Set `[]` to allow all IP addresses. For more information about how configure this directive see the [follow post ipWhitelist HowTo](https://forum.magicmirror.builders/topic/1326/ipwhitelist-howto) |
| `zoom` | This allows to scale the mirror contents with a given zoom factor. The default value is `1.0`|
| `language` | The language of the interface. (Note: Not all elements will be localized.) Possible values are `en`, `nl`, `ru`, `fr`, etc., but the default value is `en`. |
| `timeFormat` | The form of time notation that will be used. Possible values are `12` or `24`. The default is `24`. |
| `units` | The units that will be used in the default weather modules. Possible values are `metric` or `imperial`. The default is `metric`. |
| `modules` | An array of active modules. **The array must contain objects. See the next table below for more information.** |
| `electronOptions` | An optional array of Electron (browser) options. This allows configuration of e.g. the browser screen size and position (example: `electronOptions: { fullscreen: false, width: 800, height: 600 }`). Kiosk mode can be enabled by setting `kiosk = true`, `autoHideMenuBar = false` and `fullscreen = false`. More options can be found [here](https://github.com/electron/electron/blob/master/docs/api/browser-window.md). |
Module configuration:
| **Option** | **Description** |
| --- | --- |
| `module` | The name of the module. This can also contain the subfolder. Valid examples include `clock`, `default/calendar` and `custommodules/mymodule`. |
| `position` | The location of the module in which the module will be loaded. Possible values are `top_ bar`, `top_left`, `top_center`, `top_right`, `upper_third`, `middle_center`, `lower_third`, `bottom_left`, `bottom_center`, `bottom_right`, `bottom_bar`, `fullscreen_above`, and `fullscreen_below`. This field is optional but most modules require this field to set. Check the documentation of the module for more information. Multiple modules with the same position will be ordered based on the order in the configuration file. |
| `classes` | Additional classes which are passed to the module. The field is optional. |
| `header` | To display a header text above the module, add the header property. This field is optional. |
| `disabled` | Set disabled to `true` to skip creating the module. This field is optional. |
| `config` | An object with the module configuration properties. Check the documentation of the module for more information. This field is optional, unless the module requires extra configuration. |
## Modules
The following modules are installed by default.
- [**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)
- [**Alert**](modules/default/alert)
For more available modules, check out out the wiki page: [MagicMirror² Modules](https://github.com/MichMich/MagicMirror/wiki/MagicMirror²-Modules). If you want to build your own modules, check out the [MagicMirror² Module Development Documentation](modules) and don't forget to add it to the wiki and the [forum](https://forum.magicmirror.builders/category/7/showcase)!
## Known issues
- Electron seems to have some issues on certain Raspberry Pi 2's. See [#145](https://github.com/MichMich/MagicMirror/issues/145).
- MagicMirror² (Electron) sometimes quits without an error after an extended period of use. See [#150](https://github.com/MichMich/MagicMirror/issues/150).
## Community
The community around the MagicMirror² is constantly growing. We even have a [forum](https://forum.magicmirror.builders) now where you can share your ideas, ask questions, help others and get inspired by other builders. We would love to see you there!
- Website: [https://magicmirror.builders](https://magicmirror.builders)
- Documentation: [https://docs.magicmirror.builders](https://docs.magicmirror.builders)
- Forum: [https://forum.magicmirror.builders](https://forum.magicmirror.builders)
- Discord: [https://discord.gg/J5BAtvx](https://discord.gg/J5BAtvx)
- Blog: [https://michaelteeuw.nl/tagged/magicmirror](https://michaelteeuw.nl/tagged/magicmirror)
- Donations: [https://magicmirror.builders/#donate](https://magicmirror.builders/#donate)
## Contributing Guidelines
Contributions of all kinds are welcome, not only in the form of code but also with regards bug reports and documentation.
Contributions of all kinds are welcome, not only in the form of code but also with regards bug reports and documentation. For the full contribution guidelines, check out: [https://docs.magicmirror.builders/getting-started/contributing.html](https://docs.magicmirror.builders/getting-started/contributing.html)
Please keep the following in mind:
## Enjoying MagicMirror? Consider a donation!
- **Bug Reports**: Make sure you're running the latest version. If the issue(s) still persist: please open a clearly documented issue with a clear title.
- **Minor Bug Fixes**: Please send a pull request with a clear explanation of the issue or a link to the issue it solves.
- **Major Bug Fixes**: please discuss your approach in an GitHub issue before you start to alter a big part of the code.
- **New Features**: please please discuss in a GitHub issue before you start to alter a big part of the code. Without discussion upfront, the pull request will not be accepted / merged.
MagicMirror² is opensource and free. That doesn't mean we don't need any money.
Thanks for your help in making MagicMirror² better!
Please consider a donation to help us cover the ongoing costs like webservers and email services.
If we receive enough donations we might even be able to free up some working hours and spend some extra time improving the MagicMirror² core.
To donate, please follow [this](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=G5D8E9MR5DTD2&source=url) link.
<p align="center">
<br>

128
clientonly/index.js Normal file
View File

@@ -0,0 +1,128 @@
"use strict";
// Use separate scope to prevent global scope pollution
(function () {
var config = {};
/**
* Helper function to get server address/hostname from either the commandline or env
*/
function getServerAddress() {
/**
* Get command line parameters
* Assumes that a cmdline parameter is defined with `--key [value]`
*
* @param {string} key key to look for at the command line
* @param {string} defaultValue value if no key is given at the command line
*
* @returns {string} the value of the parameter
*/
function getCommandLineParameter(key, defaultValue = undefined) {
var index = process.argv.indexOf(`--${key}`);
var value = index > -1 ? process.argv[index + 1] : undefined;
return value !== undefined ? String(value) : defaultValue;
}
// Prefer command line arguments over environment variables
["address", "port"].forEach((key) => {
config[key] = getCommandLineParameter(key, process.env[key.toUpperCase()]);
});
// determine if "--use-tls"-flag was provided
config["tls"] = process.argv.indexOf("--use-tls") > 0;
}
/**
* Gets the config from the specified server url
*
* @param {string} url location where the server is running.
*
* @returns {Promise} the config
*/
function getServerConfig(url) {
// Return new pending promise
return new Promise((resolve, reject) => {
// Select http or https module, depending on requested url
const lib = url.startsWith("https") ? require("https") : require("http");
const request = lib.get(url, (response) => {
var configData = "";
// Gather incoming data
response.on("data", function (chunk) {
configData += chunk;
});
// Resolve promise at the end of the HTTP/HTTPS stream
response.on("end", function () {
resolve(JSON.parse(configData));
});
});
request.on("error", function (error) {
reject(new Error(`Unable to read config from server (${url} (${error.message}`));
});
});
}
/**
* Print a message to the console in case of errors
*
* @param {string} [message] error message to print
* @param {number} code error code for the exit call
*/
function fail(message, code = 1) {
if (message !== undefined && typeof message === "string") {
console.log(message);
} else {
console.log("Usage: 'node clientonly --address 192.168.1.10 --port 8080 [--use-tls]'");
}
process.exit(code);
}
getServerAddress();
(config.address && config.port) || fail();
var prefix = config.tls ? "https://" : "http://";
// Only start the client if a non-local server was provided
if (["localhost", "127.0.0.1", "::1", "::ffff:127.0.0.1", undefined].indexOf(config.address) === -1) {
getServerConfig(`${prefix}${config.address}:${config.port}/config/`)
.then(function (configReturn) {
// Pass along the server config via an environment variable
var env = Object.create(process.env);
var options = { env: env };
configReturn.address = config.address;
configReturn.port = config.port;
configReturn.tls = config.tls;
env.config = JSON.stringify(configReturn);
// Spawn electron application
const electron = require("electron");
const child = require("child_process").spawn(electron, ["js/electron.js"], options);
// Pipe all child process output to current stdout
child.stdout.on("data", function (buf) {
process.stdout.write(`Client: ${buf}`);
});
// Pipe all child process errors to current stderr
child.stderr.on("data", function (buf) {
process.stderr.write(`Client: ${buf}`);
});
child.on("error", function (err) {
process.stdout.write(`Client: ${err}`);
});
child.on("close", (code) => {
if (code !== 0) {
console.log(`There something wrong. The clientonly is not running code ${code}`);
}
});
})
.catch(function (reason) {
fail(`Unable to connect to server: (${reason})`);
});
} else {
fail();
}
})();

View File

@@ -1,16 +1,41 @@
/* Magic Mirror Config Sample
*
* By Michael Teeuw http://michaelteeuw.nl
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*
* For more information on how you can configure this file
* See https://github.com/MichMich/MagicMirror#configuration
*
*/
var config = {
address: "localhost", // Address to listen on, can be:
// - "localhost", "127.0.0.1", "::1" to listen on loopback interface
// - another specific IPv4/6 to listen on a specific interface
// - "0.0.0.0", "::" to listen on any interface
// Default, when address config is left out or empty, is "localhost"
port: 8080,
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // Set [] to allow all IP addresses.
basePath: "/", // The URL path where MagicMirror is hosted. If you are using a Reverse proxy
// you must set the sub path here. basePath must end with a /
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // Set [] to allow all IP addresses
// or add a specific IPv4 of 192.168.1.5 :
// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
// or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],
useHttps: false, // Support HTTPS or not, default "false" will use HTTP
httpsPrivateKey: "", // HTTPS private key path, only require when useHttps is true
httpsCertificate: "", // HTTPS Certificate path, only require when useHttps is true
language: "en",
logLevel: ["INFO", "LOG", "WARN", "ERROR"],
timeFormat: 24,
units: "metric",
// serverOnly: true/false/"local" ,
// local for armv6l processors, default
// starts serveronly and then starts chrome browser
// false, default for all NON-armv6l devices
// true, force serveronly mode, because you want to.. no UI on this device
modules: [
{
@@ -31,9 +56,8 @@ var config = {
config: {
calendars: [
{
symbol: "calendar-check-o ",
url: "webcal://www.calendarlabs.com/templates/ical/US-Holidays.ics"
}
symbol: "calendar-check",
url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics" }
]
}
},
@@ -46,7 +70,7 @@ var config = {
position: "top_right",
config: {
location: "New York",
locationID: "", //ID from http://www.openweathermap.org/help/city_list.txt
locationID: "", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
appid: "YOUR_OPENWEATHER_API_KEY"
}
},
@@ -56,7 +80,7 @@ var config = {
header: "Weather Forecast",
config: {
location: "New York",
locationID: "5128581", //ID from http://www.openweathermap.org/help/city_list.txt
locationID: "5128581", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
appid: "YOUR_OPENWEATHER_API_KEY"
}
},
@@ -67,15 +91,16 @@ var config = {
feeds: [
{
title: "New York Times",
url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
url: "https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"
}
],
showSourceTitle: true,
showPublishDate: true
showPublishDate: true,
broadcastNewsFeeds: true,
broadcastNewsUpdates: true
}
},
]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/

View File

@@ -1,14 +0,0 @@
/*****************************************************
* Magic Mirror *
* Custom CSS *
* *
* By Michael Teeuw http://michaelteeuw.nl *
* MIT Licensed. *
* *
* Add any custom CSS below. *
* Changes to this files will be ignored by GIT. *
*****************************************************/
body {
}

View File

@@ -95,7 +95,7 @@ body {
header {
text-transform: uppercase;
font-size: 15px;
font-family: "Roboto Condensed";
font-family: "Roboto Condensed", Arial, Helvetica, sans-serif;
font-weight: 400;
border-bottom: 1px solid #666;
line-height: 15px;
@@ -128,6 +128,10 @@ sup {
text-overflow: ellipsis;
}
.pre-line {
white-space: pre-line;
}
/**
* Region Definitions.
*/
@@ -151,6 +155,7 @@ sup {
.region.right {
right: 0;
text-align: right;
}
.region.top {
@@ -161,6 +166,10 @@ sup {
margin-bottom: 25px;
}
.region.bottom .container {
margin-top: 25px;
}
.region.top .container:empty {
margin-bottom: 0;
}
@@ -168,10 +177,6 @@ sup {
.region.top.center,
.region.bottom.center {
left: 50%;
-moz-transform: translateX(-50%);
-o-transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
}
@@ -185,10 +190,6 @@ sup {
bottom: 0;
}
.region.bottom .container {
margin-top: 25px;
}
.region.bottom .container:empty {
margin-top: 0;
}
@@ -208,10 +209,6 @@ sup {
.region.middle.center {
width: 100%;
text-align: center;
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
@@ -231,10 +228,6 @@ sup {
text-align: left;
}
.region.right {
text-align: right;
}
.region table {
width: 100%;
border-spacing: 0;

17
dangerfile.js Normal file
View File

@@ -0,0 +1,17 @@
import { danger, fail, warn } from "danger";
// Check if the CHANGELOG.md file has been edited
// Fail the build and post a comment reminding submitters to do so if it wasn't changed
if (!danger.git.modified_files.includes("CHANGELOG.md")) {
warn("Please include an updated `CHANGELOG.md` file.<br>This way we can keep track of all the contributions.");
}
// Check if the PR request is send to the master branch.
// This should only be done by MichMich.
if (danger.github.pr.base.ref === "master" && danger.github.pr.user.login !== "MichMich") {
// Check if the PR body or title includes the text: #accepted.
// If not, the PR will fail.
if ((danger.github.pr.body + danger.github.pr.title).includes("#accepted")) {
fail("Please send all your pull requests to the `develop` branch.<br>Pull requests on the `master` branch will not be accepted.");
}
}

View File

@@ -1,11 +0,0 @@
#!/bin/bash
if [ ! -f /opt/magic_mirror/modules ]; then
cp -R /opt/magic_mirror/unmount_modules/. /opt/magic_mirror/modules
fi
if [ ! -f /opt/magic_mirror/config ]; then
cp -R /opt/magic_mirror/unmount_config/. /opt/magic_mirror/config
fi
node serveronly

View File

@@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

12
fonts/package-lock.json generated Normal file
View File

@@ -0,0 +1,12 @@
{
"name": "magicmirror-fonts",
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"roboto-fontface": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/roboto-fontface/-/roboto-fontface-0.10.0.tgz",
"integrity": "sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g=="
}
}
}

15
fonts/package.json Normal file
View File

@@ -0,0 +1,15 @@
{
"name": "magicmirror-fonts",
"description": "Package for fonts use by MagicMirror Core.",
"repository": {
"type": "git",
"url": "git+https://github.com/MichMich/MagicMirror.git"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/MichMich/MagicMirror/issues"
},
"dependencies": {
"roboto-fontface": "^0.10.0"
}
}

View File

@@ -2,94 +2,57 @@
font-family: Roboto;
font-style: normal;
font-weight: 100;
src:
local("Roboto Thin"),
local("Roboto-Thin"),
url("Roboto-Thin/Roboto-Thin.woff2") format("woff2"),
url("Roboto-Thin/Roboto-Thin.woff") format("woff"),
url("Roboto-Thin/Roboto-Thin.ttf") format("truetype");
src: local("Roboto Thin"), local("Roboto-Thin"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Thin.woff") format("woff");
}
@font-face {
font-family: "Roboto Condensed";
font-style: normal;
font-weight: 300;
src:
local("Roboto Condensed Light"),
local("RobotoCondensed-Light"),
url("RobotoCondensed-Light/RobotoCondensed-Light.woff2") format("woff2"),
url("RobotoCondensed-Light/RobotoCondensed-Light.woff") format("woff"),
url("RobotoCondensed-Light/RobotoCondensed-Light.ttf") format("truetype");
src: local("Roboto Condensed Light"), local("RobotoCondensed-Light"), url("node_modules/roboto-fontface/fonts/roboto-condensed/Roboto-Condensed-Light.woff2") format("woff2"),
url("node_modules/roboto-fontface/fonts/roboto-condensed/Roboto-Condensed-Light.woff") format("woff");
}
@font-face {
font-family: "Roboto Condensed";
font-style: normal;
font-weight: 400;
src:
local("Roboto Condensed"),
local("RobotoCondensed-Regular"),
url("RobotoCondensed-Regular/RobotoCondensed-Regular.woff2") format("woff2"),
url("RobotoCondensed-Regular/RobotoCondensed-Regular.woff") format("woff"),
url("RobotoCondensed-Regular/RobotoCondensed-Regular.ttf") format("truetype");
src: local("Roboto Condensed"), local("RobotoCondensed-Regular"), url("node_modules/roboto-fontface/fonts/roboto-condensed/Roboto-Condensed-Regular.woff2") format("woff2"),
url("node_modules/roboto-fontface/fonts/roboto-condensed/Roboto-Condensed-Regular.woff") format("woff");
}
@font-face {
font-family: "Roboto Condensed";
font-style: normal;
font-weight: 700;
src:
local("Roboto Condensed Bold"),
local("RobotoCondensed-Bold"),
url("RobotoCondensed-Bold/RobotoCondensed-Bold.woff2") format("woff2"),
url("RobotoCondensed-Bold/RobotoCondensed-Bold.woff") format("woff"),
url("RobotoCondensed-Bold/RobotoCondensed-Bold.ttf") format("truetype");
src: local("Roboto Condensed Bold"), local("RobotoCondensed-Bold"), url("node_modules/roboto-fontface/fonts/roboto-condensed/Roboto-Condensed-Bold.woff2") format("woff2"),
url("node_modules/roboto-fontface/fonts/roboto-condensed/Roboto-Condensed-Bold.woff") format("woff");
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 400;
src:
local("Roboto"),
local("Roboto-Regular"),
url("Roboto-Regular/Roboto-Regular.woff2") format("woff2"),
url("Roboto-Regular/Roboto-Regular.woff") format("woff"),
url("Roboto-Regular/Roboto-Regular.ttf") format("truetype");
src: local("Roboto"), local("Roboto-Regular"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Regular.woff") format("woff");
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 500;
src:
local("Roboto Medium"),
local("Roboto-Medium"),
url("Roboto-Medium/Roboto-Medium.woff2") format("woff2"),
url("Roboto-Medium/Roboto-Medium.woff") format("woff"),
url("Roboto-Medium/Roboto-Medium.ttf") format("truetype");
src: local("Roboto Medium"), local("Roboto-Medium"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Medium.woff") format("woff");
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 700;
src:
local("Roboto Bold"),
local("Roboto-Bold"),
url("Roboto-Bold/Roboto-Bold.woff2") format("woff2"),
url("Roboto-Bold/Roboto-Bold.woff") format("woff"),
url("Roboto-Bold/Roboto-Bold.ttf") format("truetype");
src: local("Roboto Bold"), local("Roboto-Bold"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Bold.woff") format("woff");
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 300;
src:
local("Roboto Light"),
local("Roboto-Light"),
url("Roboto-Light/Roboto-Light.woff2") format("woff2"),
url("Roboto-Light/Roboto-Light.woff") format("woff"),
url("Roboto-Light/Roboto-Light.ttf") format("truetype");
src: local("Roboto Light"), local("Roboto-Light"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Light.woff2") format("woff2"), url("node_modules/roboto-fontface/fonts/roboto/Roboto-Light.woff") format("woff");
}

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Magic Mirror</title>
<title>MagicMirror²</title>
<meta name="google" content="notranslate" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
@@ -37,7 +37,8 @@
<div class="region bottom right"><div class="container"></div></div>
</div>
<div class="region fullscreen above"><div class="container"></div></div>
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script type="text/javascript" src="socket.io/socket.io.js"></script>
<script type="text/javascript" src="vendor/node_modules/nunjucks/browser/nunjucks.min.js"></script>
<script type="text/javascript" src="js/defaults.js"></script>
<script type="text/javascript" src="#CONFIG_FILE#"></script>
<script type="text/javascript" src="vendor/vendor.js"></script>

View File

@@ -1,2 +1,3 @@
# This file is still here to keep PM2 working on older installations.
cd ~/MagicMirror
DISPLAY=:0 npm start

View File

@@ -1,7 +0,0 @@
{
"apps" : [{
"name" : "MagicMirror",
"script" : "/home/pi/MagicMirror/installers/mm.sh",
"watch" : ["/home/pi/MagicMirror/config/config.js"]
}]
}

View File

@@ -1,2 +0,0 @@
echo "\033[32mMagicMirror installation successful!"
exit 0

View File

@@ -1,164 +0,0 @@
#!/usr/bin/env bash
# This is an installer script for MagicMirror2. It works well enough
# that it can detect if you have Node installed, run a binary script
# and then download and run MagicMirror2.
echo -e "\e[0m"
echo '$$\ $$\ $$\ $$\ $$\ $$\ $$$$$$\'
echo '$$$\ $$$ | \__| $$$\ $$$ |\__| $$ __$$\'
echo '$$$$\ $$$$ | $$$$$$\ $$$$$$\ $$\ $$$$$$$\ $$$$\ $$$$ |$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ \__/ $$ |'
echo '$$\$$\$$ $$ | \____$$\ $$ __$$\ $$ |$$ _____|$$\$$\$$ $$ |$$ |$$ __$$\ $$ __$$\ $$ __$$\ $$ __$$\ $$$$$$ |'
echo '$$ \$$$ $$ | $$$$$$$ |$$ / $$ |$$ |$$ / $$ \$$$ $$ |$$ |$$ | \__|$$ | \__|$$ / $$ |$$ | \__|$$ ____/'
echo '$$ |\$ /$$ |$$ __$$ |$$ | $$ |$$ |$$ | $$ |\$ /$$ |$$ |$$ | $$ | $$ | $$ |$$ | $$ |'
echo '$$ | \_/ $$ |\$$$$$$$ |\$$$$$$$ |$$ |\$$$$$$$\ $$ | \_/ $$ |$$ |$$ | $$ | \$$$$$$ |$$ | $$$$$$$$\'
echo '\__| \__| \_______| \____$$ |\__| \_______|\__| \__|\__|\__| \__| \______/ \__| \________|'
echo ' $$\ $$ |'
echo ' \$$$$$$ |'
echo ' \______/'
echo -e "\e[0m"
# Define the tested version of Node.js.
NODE_TESTED="v5.1.0"
# Determine which Pi is running.
ARM=$(uname -m)
# Check the Raspberry Pi version.
if [ "$ARM" != "armv7l" ]; then
echo -e "\e[91mSorry, your Raspberry Pi is not supported."
echo -e "\e[91mPlease run MagicMirror on a Raspberry Pi 2 or 3."
echo -e "\e[91mIf this is a Pi Zero, you are in the same boat as the original Raspberry Pi. You must run in server only mode."
exit;
fi
# Define helper methods.
function version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }
function command_exists () { type "$1" &> /dev/null ;}
# Update before first apt-get
echo -e "\e[96mUpdating packages ...\e[90m"
sudo apt-get update || echo -e "\e[91mUpdate failed, carrying on installation ...\e[90m"
# Installing helper tools
echo -e "\e[96mInstalling helper tools ...\e[90m"
sudo apt-get install curl wget git build-essential unzip || exit
# Check if we need to install or upgrade Node.js.
echo -e "\e[96mCheck current Node installation ...\e[0m"
NODE_INSTALL=false
if command_exists node; then
echo -e "\e[0mNode currently installed. Checking version number.";
NODE_CURRENT=$(node -v)
echo -e "\e[0mMinimum Node version: \e[1m$NODE_TESTED\e[0m"
echo -e "\e[0mInstalled Node version: \e[1m$NODE_CURRENT\e[0m"
if version_gt $NODE_TESTED $NODE_CURRENT; then
echo -e "\e[96mNode should be upgraded.\e[0m"
NODE_INSTALL=true
# Check if a node process is currenlty running.
# If so abort installation.
if pgrep "node" > /dev/null; then
echo -e "\e[91mA Node process is currently running. Can't upgrade."
echo "Please quit all Node processes and restart the installer."
exit;
fi
else
echo -e "\e[92mNo Node.js upgrade nessecery.\e[0m"
fi
else
echo -e "\e[93mNode.js is not installed.\e[0m";
NODE_INSTALL=true
fi
# Install or upgrade node if necessary.
if $NODE_INSTALL; then
echo -e "\e[96mInstalling Node.js ...\e[90m"
# Fetch the latest version of Node.js from the selected branch
# The NODE_STABLE_BRANCH variable will need to be manually adjusted when a new branch is released. (e.g. 7.x)
# Only tested (stable) versions are recommended as newer versions could break MagicMirror.
NODE_STABLE_BRANCH="6.x"
curl -sL https://deb.nodesource.com/setup_$NODE_STABLE_BRANCH | sudo -E bash -
sudo apt-get install -y nodejs
echo -e "\e[92mNode.js installation Done!\e[0m"
fi
# Install MagicMirror
cd ~
if [ -d "$HOME/MagicMirror" ] ; then
echo -e "\e[93mIt seems like MagicMirror is already installed."
echo -e "To prevent overwriting, the installer will be aborted."
echo -e "Please rename the \e[1m~/MagicMirror\e[0m\e[93m folder and try again.\e[0m"
echo ""
echo -e "If you want to upgrade your installation run \e[1m\e[97mgit pull\e[0m from the ~/MagicMirror directory."
echo ""
exit;
fi
echo -e "\e[96mCloning MagicMirror ...\e[90m"
if git clone https://github.com/MichMich/MagicMirror.git; then
echo -e "\e[92mCloning MagicMirror Done!\e[0m"
else
echo -e "\e[91mUnable to clone MagicMirror."
exit;
fi
cd ~/MagicMirror || exit
echo -e "\e[96mInstalling dependencies ...\e[90m"
if npm install; then
echo -e "\e[92mDependencies installation Done!\e[0m"
else
echo -e "\e[91mUnable to install dependencies!"
exit;
fi
# Use sample config for start MagicMirror
cp config/config.js.sample config/config.js
# Check if plymouth is installed (default with PIXEL desktop environment), then install custom splashscreen.
echo -e "\e[96mCheck plymouth installation ...\e[0m"
if command_exists plymouth; then
THEME_DIR="/usr/share/plymouth/themes"
echo -e "\e[90mSplashscreen: Checking themes directory.\e[0m"
if [ -d $THEME_DIR ]; then
echo -e "\e[90mSplashscreen: Create theme directory if not exists.\e[0m"
if [ ! -d $THEME_DIR/MagicMirror ]; then
sudo mkdir $THEME_DIR/MagicMirror
fi
if sudo cp ~/MagicMirror/splashscreen/splash.png $THEME_DIR/MagicMirror/splash.png && sudo cp ~/MagicMirror/splashscreen/MagicMirror.plymouth $THEME_DIR/MagicMirror/MagicMirror.plymouth && sudo cp ~/MagicMirror/splashscreen/MagicMirror.script $THEME_DIR/MagicMirror/MagicMirror.script; then
echo -e "\e[90mSplashscreen: Theme copied successfully.\e[0m"
if sudo plymouth-set-default-theme -R MagicMirror; then
echo -e "\e[92mSplashscreen: Changed theme to MagicMirror successfully.\e[0m"
else
echo -e "\e[91mSplashscreen: Couldn't change theme to MagicMirror!\e[0m"
fi
else
echo -e "\e[91mSplashscreen: Copying theme failed!\e[0m"
fi
else
echo -e "\e[91mSplashscreen: Themes folder doesn't exist!\e[0m"
fi
else
echo -e "\e[93mplymouth is not installed.\e[0m";
fi
# Use pm2 control like a service MagicMirror
read -p "Do you want use pm2 for auto starting of your MagicMirror (y/n)?" choice
if [[ $choice =~ ^[Yy]$ ]]
then
sudo npm install -g pm2
sudo su -c "env PATH=$PATH:/usr/bin pm2 startup linux -u pi --hp /home/pi"
pm2 start ~/MagicMirror/installers/pm2_MagicMirror.json
pm2 save
fi
echo " "
echo -e "\e[92mWe're ready! Run \e[1m\e[97mDISPLAY=:0 npm start\e[0m\e[92m from the ~/MagicMirror directory to start your MagicMirror.\e[0m"
echo " "
echo " "

186
js/app.js
View File

@@ -1,19 +1,22 @@
/* Magic Mirror
* The Core App (Server)
*
* By Michael Teeuw http://michaelteeuw.nl
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*/
var fs = require("fs");
var path = require("path");
var Log = require(__dirname + "/logger.js");
var Server = require(__dirname + "/server.js");
var Utils = require(__dirname + "/utils.js");
var defaultModules = require(__dirname + "/../modules/default/defaultmodules.js");
var path = require("path");
// Alias modules mentioned in package.js under _moduleAliases.
require("module-alias/register");
// Get version number.
global.version = JSON.parse(fs.readFileSync("package.json", "utf8")).version;
console.log("Starting MagicMirror: v" + global.version);
Log.log("Starting MagicMirror: v" + global.version);
// global absolute root path
global.root_path = path.resolve(__dirname + "/../");
@@ -31,33 +34,35 @@ if (process.env.MM_PORT) {
// The next part is here to prevent a major exception when there
// is no internet connection. This could probable be solved better.
process.on("uncaughtException", function (err) {
console.log("Whoops! There was an uncaught exception...");
console.error(err);
console.log("MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?");
console.log("If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues");
Log.error("Whoops! There was an uncaught exception...");
Log.error(err);
Log.error("MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?");
Log.error("If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues");
});
/* App - The core app.
/**
* The core app.
*
* @class
*/
var App = function() {
var App = function () {
var nodeHelpers = [];
/* loadConfig(callback)
* Loads the config file. combines it with the defaults,
* and runs the callback with the found config as argument.
/**
* Loads the config file. Combines it with the defaults, and runs the
* callback with the found config as argument.
*
* argument callback function - The callback function.
* @param {Function} callback Function to be called after loading the config
*/
var loadConfig = function(callback) {
console.log("Loading config ...");
var loadConfig = function (callback) {
Log.log("Loading config ...");
var defaults = require(__dirname + "/defaults.js");
// For this check proposed to TestSuite
// https://forum.magicmirror.builders/topic/1456/test-suite-for-magicmirror/8
var configFilename = path.resolve(global.root_path + "/config/config.js");
if (typeof(global.configuration_file) !== "undefined") {
configFilename = path.resolve(global.configuration_file);
if (typeof global.configuration_file !== "undefined") {
configFilename = path.resolve(global.configuration_file);
}
try {
@@ -67,50 +72,52 @@ var App = function() {
var config = Object.assign(defaults, c);
callback(config);
} catch (e) {
if (e.code == "ENOENT") {
console.error(Utils.colors.error("WARNING! Could not find config file. Please create one. Starting with default configuration."));
if (e.code === "ENOENT") {
Log.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. Please correct syntax errors. Starting with default configuration."));
Log.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));
} else {
console.error(Utils.colors.error("WARNING! Could not load config file. Starting with default configuration. Error found: " + e));
Log.error(Utils.colors.error("WARNING! Could not load config file. Starting with default configuration. Error found: " + e));
}
callback(defaults);
}
};
var checkDeprecatedOptions = function(userConfig) {
/**
* Checks the config for deprecated options and throws a warning in the logs
* if it encounters one option from the deprecated.js list
*
* @param {object} userConfig The user config
*/
var checkDeprecatedOptions = function (userConfig) {
var deprecated = require(global.root_path + "/js/deprecated.js");
var deprecatedOptions = deprecated.configs;
var usedDeprecated = [];
deprecatedOptions.forEach(function(option) {
deprecatedOptions.forEach(function (option) {
if (userConfig.hasOwnProperty(option)) {
usedDeprecated.push(option);
}
});
if (usedDeprecated.length > 0) {
console.warn(Utils.colors.warn(
"WARNING! Your config is using deprecated options: " +
usedDeprecated.join(", ") +
". Check README and CHANGELOG for more up-to-date ways of getting the same functionality.")
);
Log.warn(Utils.colors.warn("WARNING! Your config is using deprecated options: " + usedDeprecated.join(", ") + ". Check README and CHANGELOG for more up-to-date ways of getting the same functionality."));
}
}
};
/* loadModule(module)
/**
* Loads a specific module.
*
* argument module string - The name of the module (including subpath).
* @param {string} module The name of the module (including subpath).
* @param {Function} callback Function to be called after loading
*/
var loadModule = function(module, callback) {
var loadModule = function (module, callback) {
var elements = module.split("/");
var moduleName = elements[elements.length - 1];
var moduleFolder = __dirname + "/../modules/" + module;
var moduleFolder = __dirname + "/../modules/" + module;
if (defaultModules.indexOf(moduleName) !== -1) {
moduleFolder = __dirname + "/../modules/default/" + module;
moduleFolder = __dirname + "/../modules/default/" + module;
}
var helperPath = moduleFolder + "/node_helper.js";
@@ -120,7 +127,7 @@ var App = function() {
fs.accessSync(helperPath, fs.R_OK);
} catch (e) {
loadModule = false;
console.log("No helper found for module: " + moduleName + ".");
Log.log("No helper found for module: " + moduleName + ".");
}
if (loadModule) {
@@ -128,11 +135,11 @@ var App = function() {
var m = new Module();
if (m.requiresVersion) {
console.log("Check MagicMirror version for node helper '" + moduleName + "' - Minimum version: " + m.requiresVersion + " - Current version: " + global.version);
Log.log("Check MagicMirror version for node helper '" + moduleName + "' - Minimum version: " + m.requiresVersion + " - Current version: " + global.version);
if (cmpVersions(global.version, m.requiresVersion) >= 0) {
console.log("Version is ok!");
Log.log("Version is ok!");
} else {
console.log("Version is incorrect. Skip module: '" + moduleName + "'");
Log.log("Version is incorrect. Skip module: '" + moduleName + "'");
return;
}
}
@@ -147,24 +154,25 @@ var App = function() {
}
};
/* loadModules(modules)
/**
* Loads all modules.
*
* argument module string - The name of the module (including subpath).
* @param {Module[]} modules All modules to be loaded
* @param {Function} callback Function to be called after loading
*/
var loadModules = function(modules, callback) {
console.log("Loading module helpers ...");
var loadModules = function (modules, callback) {
Log.log("Loading module helpers ...");
var loadNextModule = function() {
var loadNextModule = function () {
if (modules.length > 0) {
var nextModule = modules[0];
loadModule(nextModule, function() {
loadModule(nextModule, function () {
modules = modules.slice(1);
loadNextModule();
});
} else {
// All modules are loaded
console.log("All module helpers loaded.");
Log.log("All module helpers loaded.");
callback();
}
};
@@ -172,11 +180,14 @@ var App = function() {
loadNextModule();
};
/* 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.
* @param {string} a Version number a.
* @param {string} b Version number b.
*
* @returns {number} A positive number if a is larger than b, a negative
* number if a is smaller and 0 if they are the same
*/
function cmpVersions(a, b) {
var i, diff;
@@ -194,18 +205,20 @@ var App = function() {
return segmentsA.length - segmentsB.length;
}
/* 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.
/**
* Start the core app.
*
* argument callback function - The callback function.
* It loads the config, then it loads all modules. When it's done it
* executes the callback with the config as argument.
*
* @param {Function} callback Function to be called after start
*/
this.start = function(callback) {
loadConfig(function(c) {
this.start = function (callback) {
loadConfig(function (c) {
config = c;
Log.setLogLevel(config.logLevel);
var modules = [];
for (var m in config.modules) {
@@ -215,9 +228,9 @@ var App = function() {
}
}
loadModules(modules, function() {
var server = new Server(config, function(app, io) {
console.log("Server started ...");
loadModules(modules, function () {
var server = new Server(config, function (app, io) {
Log.log("Server started ...");
for (var h in nodeHelpers) {
var nodeHelper = nodeHelpers[h];
@@ -226,16 +239,59 @@ var App = function() {
nodeHelper.start();
}
console.log("Sockets connected & modules started ...");
Log.log("Sockets connected & modules started ...");
if (typeof callback === "function") {
callback(config);
}
});
});
});
};
/**
* Stops the core app. This calls each node_helper's STOP() function, if it
* exists.
*
* Added to fix #1056
*/
this.stop = function () {
for (var h in nodeHelpers) {
var nodeHelper = nodeHelpers[h];
if (typeof nodeHelper.stop === "function") {
nodeHelper.stop();
}
}
};
/**
* Listen for SIGINT signal and call stop() function.
*
* Added to fix #1056
* Note: this is only used if running `server-only`. Otherwise
* this.stop() is called by app.on("before-quit"... in `electron.js`
*/
process.on("SIGINT", () => {
Log.log("[SIGINT] Received. Shutting down server...");
setTimeout(() => {
process.exit(0);
}, 3000); // Force quit after 3 seconds
this.stop();
process.exit(0);
});
/**
* Listen to SIGTERM signals so we can stop everything when we
* are asked to stop by the OS.
*/
process.on("SIGTERM", () => {
Log.log("[SIGTERM] Received. Shutting down server...");
setTimeout(() => {
process.exit(0);
}, 3000); // Force quit after 3 seconds
this.stop();
process.exit(0);
});
};
module.exports = new App();

74
js/check_config.js Normal file
View File

@@ -0,0 +1,74 @@
/* Magic Mirror
*
* Check the configuration file for errors
*
* By Rodrigo Ramírez Norambuena https://rodrigoramirez.com
* MIT Licensed.
*/
const Linter = require("eslint").Linter;
const linter = new Linter();
const path = require("path");
const fs = require("fs");
const rootPath = path.resolve(__dirname + "/../");
const Log = require(rootPath + "/js/logger.js");
const Utils = require(rootPath + "/js/utils.js");
/**
* Returns a string with path of configuration file.
* Check if set by environment variable MM_CONFIG_FILE
*
* @returns {string} path and filename of the config file
*/
function getConfigFile() {
// FIXME: This function should be in core. Do you want refactor me ;) ?, be good!
let configFileName = path.resolve(rootPath + "/config/config.js");
if (process.env.MM_CONFIG_FILE) {
configFileName = path.resolve(process.env.MM_CONFIG_FILE);
}
return configFileName;
}
/**
* Checks the config file using eslint.
*/
function checkConfigFile() {
const configFileName = getConfigFile();
// Check if file is present
if (fs.existsSync(configFileName) === false) {
Log.error(Utils.colors.error("File not found: "), configFileName);
throw new Error("No config file present!");
}
// Check permission
try {
fs.accessSync(configFileName, fs.F_OK);
} catch (e) {
Log.log(Utils.colors.error(e));
throw new Error("No permission to access config file!");
}
// Validate syntax of the configuration file.
Log.info(Utils.colors.info("Checking file... "), configFileName);
// I'm not sure if all ever is utf-8
fs.readFile(configFileName, "utf-8", function (err, data) {
if (err) {
throw err;
}
const messages = linter.verify(data);
if (messages.length === 0) {
Log.info(Utils.colors.pass("Your configuration file doesn't contain syntax errors :)"));
} else {
Log.error(Utils.colors.error("Your configuration file contains syntax errors :("));
// In case the there errors show messages and return
messages.forEach((error) => {
Log.error("Line", error.line, "col", error.column, error.message);
});
}
});
}
checkConfigFile();

View File

@@ -1,18 +1,25 @@
/* global Class, xyz */
/* Simple JavaScript Inheritance
* By John Resig http://ejohn.org/
* By John Resig https://johnresig.com/
*
* Inspired by base2 and Prototype
*
* MIT Licensed.
*/
// Inspired by base2 and Prototype
(function() {
(function () {
var initializing = false;
var fnTest = /xyz/.test(function() {xyz;}) ? /\b_super\b/ : /.*/;
var fnTest = /xyz/.test(function () {
xyz;
})
? /\b_super\b/
: /.*/;
// The base Class implementation (does nothing)
this.Class = function() {};
this.Class = function () {};
// Create a new Class that inherits from this class
Class.extend = function(prop) {
Class.extend = function (prop) {
var _super = this.prototype;
// Instantiate a base class (but only create the instance,
@@ -21,35 +28,38 @@
var prototype = new this();
initializing = false;
// Make a copy of all prototype properies, to prevent reference issues.
for (var name in prototype) {
prototype[name] = cloneObject(prototype[name]);
// Make a copy of all prototype properties, to prevent reference issues.
for (var p in prototype) {
prototype[p] = cloneObject(prototype[p]);
}
// 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) {
return function() {
var tmp = this._super;
prototype[name] =
typeof prop[name] === "function" && typeof _super[name] === "function" && fnTest.test(prop[name])
? (function (name, fn) {
return function () {
var tmp = this._super;
// Add a new ._super() method that is the same method
// but on the super-class
this._super = _super[name];
// Add a new ._super() method that is the same method
// but on the super-class
this._super = _super[name];
// The method only need to be bound temporarily, so we
// remove it when we're done executing
var ret = fn.apply(this, arguments);
this._super = tmp;
// The method only need to be bound temporarily, so we
// remove it when we're done executing
var ret = fn.apply(this, arguments);
this._super = tmp;
return ret;
};
})(name, prop[name]) : prop[name];
return ret;
};
})(name, prop[name])
: prop[name];
}
// The dummy class constructor
/**
* The dummy class constructor
*/
function Class() {
// All construction is actually done in the init method
if (!initializing && this.init) {
@@ -70,8 +80,13 @@
};
})();
//Define the clone method for later use.
//Helper Method
/**
* Define the clone method for later use. Helper Method.
*
* @param {object} obj Object to be cloned
*
* @returns {object} the cloned object
*/
function cloneObject(obj) {
if (obj === null || typeof obj !== "object") {
return obj;
@@ -90,4 +105,6 @@ function cloneObject(obj) {
}
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = Class;}
if (typeof module !== "undefined") {
module.exports = Class;
}

View File

@@ -1,18 +1,20 @@
/* exported defaults */
/* global mmPort */
/* Magic Mirror
* Config Defauls
* Config Defaults
*
* By Michael Teeuw http://michaelteeuw.nl
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*/
var address = "localhost";
var port = 8080;
if (typeof(mmPort) !== "undefined") {
if (typeof mmPort !== "undefined") {
port = mmPort;
}
var defaults = {
address: address,
port: port,
basePath: "/",
kioskmode: false,
electronOptions: {},
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
@@ -21,6 +23,7 @@ var defaults = {
timeFormat: 24,
units: "metric",
zoom: 1,
customCss: "css/custom.css",
modules: [
{
@@ -65,14 +68,16 @@ var defaults = {
config: {
text: "www.michaelteeuw.nl"
}
},
}
],
paths: {
modules: "modules",
vendor: "vendor"
},
}
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = defaults;}
if (typeof module !== "undefined") {
module.exports = defaults;
}

View File

@@ -1,14 +1,16 @@
/* Magic Mirror Deprecated Config Options List
*
* By Michael Teeuw http://michaelteeuw.nl
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*
* Olex S. original idea this deprecated option
*/
var deprecated = {
configs: ["kioskmode"],
configs: ["kioskmode"]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = deprecated;}
if (typeof module !== "undefined") {
module.exports = deprecated;
}

View File

@@ -1,13 +1,11 @@
/* jshint esversion: 6 */
"use strict";
const Server = require(__dirname + "/server.js");
const electron = require("electron");
const core = require(__dirname + "/app.js");
const core = require("./app.js");
const Log = require("./logger.js");
// Config
var config = {};
var config = process.env.config ? JSON.parse(process.env.config) : {};
// Module to control application life.
const app = electron.app;
// Module to create native browser window.
@@ -17,8 +15,11 @@ const BrowserWindow = electron.BrowserWindow;
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow;
/**
*
*/
function createWindow() {
app.commandLine.appendSwitch("autoplay-policy", "no-user-gesture-required");
var electronOptionsDefaults = {
width: 800,
height: 600,
@@ -30,7 +31,7 @@ function createWindow() {
zoomFactor: config.zoom
},
backgroundColor: "#000000"
}
};
// DEPRECATED: "kioskmode" backwards compatibility, to be removed
// settings these options directly instead provides cleaner interface
@@ -47,30 +48,39 @@ function createWindow() {
mainWindow = new BrowserWindow(electronOptions);
// and load the index.html of the app.
//mainWindow.loadURL('file://' + __dirname + '../../index.html');
mainWindow.loadURL("http://localhost:" + config.port);
// If config.address is not defined or is an empty string (listening on all interfaces), connect to localhost
var prefix;
if (config["tls"] !== null && config["tls"]) {
prefix = "https://";
} else {
prefix = "http://";
}
var address = (config.address === void 0) | (config.address === "") ? (config.address = "localhost") : config.address;
mainWindow.loadURL(`${prefix}${address}:${config.port}`);
// Open the DevTools if run with "npm start dev"
if(process.argv[2] == "dev") {
if (process.argv.includes("dev")) {
mainWindow.webContents.openDevTools();
}
// Set responders for window events.
mainWindow.on("closed", function() {
mainWindow.on("closed", function () {
mainWindow = null;
});
if (config.kioskmode) {
mainWindow.on("blur", function() {
mainWindow.on("blur", function () {
mainWindow.focus();
});
mainWindow.on("leave-full-screen", function() {
mainWindow.on("leave-full-screen", function () {
mainWindow.setFullScreen(true);
});
mainWindow.on("resize", function() {
setTimeout(function() {
mainWindow.on("resize", function () {
setTimeout(function () {
mainWindow.reload();
}, 1000);
});
@@ -79,17 +89,17 @@ function createWindow() {
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
app.on("ready", function() {
console.log("Launching application.");
app.on("ready", function () {
Log.log("Launching application.");
createWindow();
});
// Quit when all windows are closed.
app.on("window-all-closed", function() {
app.on("window-all-closed", function () {
createWindow();
});
app.on("activate", function() {
app.on("activate", function () {
// On OS X it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (mainWindow === null) {
@@ -97,8 +107,26 @@ app.on("activate", function() {
}
});
// Start the core application.
// This starts all node helpers and starts the webserver.
core.start(function(c) {
config = c;
/* This method will be called when SIGINT is received and will call
* each node_helper's stop function if it exists. Added to fix #1056
*
* Note: this is only used if running Electron. Otherwise
* core.stop() is called by process.on("SIGINT"... in `app.js`
*/
app.on("before-quit", (event) => {
Log.log("Shutting down server...");
event.preventDefault();
setTimeout(() => {
process.exit(0);
}, 3000); // Force-quit after 3 seconds.
core.stop();
process.exit(0);
});
// Start the core application if server is run on localhost
// This starts all node helpers and starts the webserver.
if (["localhost", "127.0.0.1", "::1", "::ffff:127.0.0.1", undefined].indexOf(config.address) > -1) {
core.start(function (c) {
config = c;
});
}

View File

@@ -1,14 +1,13 @@
/* global config, vendor, MM, Log, Module */
/* global defaultModules, vendor */
/* Magic Mirror
* Module and File loaders.
*
* By Michael Teeuw http://michaelteeuw.nl
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*/
var Loader = (function() {
/* Create helper valiables */
var Loader = (function () {
/* Create helper variables */
var loadedModuleFiles = [];
var loadedFiles = [];
@@ -16,64 +15,62 @@ var Loader = (function() {
/* Private Methods */
/* loadModules()
/**
* Loops thru all modules and requests load for every module.
*/
var loadModules = function() {
var loadModules = function () {
var moduleData = getModuleData();
var loadNextModule = function() {
var loadNextModule = function () {
if (moduleData.length > 0) {
var nextModule = moduleData[0];
loadModule(nextModule, function() {
loadModule(nextModule, function () {
moduleData = moduleData.slice(1);
loadNextModule();
});
} else {
// All modules loaded. Load custom.css
// This is done after all the moduels so we can
// overwrite all the defined styls.
// This is done after all the modules so we can
// overwrite all the defined styles.
loadFile("css/custom.css", function() {
loadFile(config.customCss, function () {
// custom.css loaded. Start all modules.
startModules();
});
}
};
loadNextModule();
};
/* startModules()
/**
* Loops thru all modules and requests start for every module.
*/
var startModules = function() {
var startModules = function () {
for (var m in moduleObjects) {
var module = moduleObjects[m];
module.start();
}
// Notifiy core of loded modules.
// Notify core of loaded modules.
MM.modulesStarted(moduleObjects);
};
/* getAllModules()
/**
* Retrieve list of all modules.
*
* return array - module data as configured in config
* @returns {object[]} module data as configured in config
*/
var getAllModules = function() {
var getAllModules = function () {
return config.modules;
};
/* getModuleData()
/**
* Generate array with module information including module paths.
*
* return array - Module information.
* @returns {object[]} Module information.
*/
var getModuleData = function() {
var getModuleData = function () {
var modules = getAllModules();
var moduleFiles = [];
@@ -83,10 +80,10 @@ var Loader = (function() {
var elements = module.split("/");
var moduleName = elements[elements.length - 1];
var moduleFolder = config.paths.modules + "/" + module;
var moduleFolder = config.paths.modules + "/" + module;
if (defaultModules.indexOf(moduleName) !== -1) {
moduleFolder = config.paths.modules + "/default/" + module;
moduleFolder = config.paths.modules + "/default/" + module;
}
if (moduleData.disabled === true) {
@@ -97,32 +94,32 @@ var Loader = (function() {
index: m,
identifier: "module_" + m + "_" + module,
name: moduleName,
path: moduleFolder + "/" ,
path: moduleFolder + "/",
file: moduleName + ".js",
position: moduleData.position,
header: moduleData.header,
configDeepMerge: typeof moduleData.configDeepMerge === "boolean" ? moduleData.configDeepMerge : false,
config: moduleData.config,
classes: (typeof moduleData.classes !== "undefined") ? moduleData.classes + " " + module : module
classes: typeof moduleData.classes !== "undefined" ? moduleData.classes + " " + module : module
});
}
return moduleFiles;
};
/* loadModule(module)
* Load modules via ajax request and create module objects.
/**
* Load modules via ajax request and create module objects.s
*
* argument callback function - Function called when done.
* argument module object - Information about the module we want to load.
* @param {object} module Information about the module we want to load.
* @param {Function} callback Function called when done.
*/
var loadModule = function(module, callback) {
var loadModule = function (module, callback) {
var url = module.path + "/" + module.file;
var afterLoad = function() {
var afterLoad = function () {
var moduleObject = Module.create(module.name);
if (moduleObject) {
bootstrapModule(module, moduleObject, function() {
bootstrapModule(module, moduleObject, function () {
callback();
});
} else {
@@ -133,106 +130,108 @@ var Loader = (function() {
if (loadedModuleFiles.indexOf(url) !== -1) {
afterLoad();
} else {
loadFile(url, function() {
loadFile(url, function () {
loadedModuleFiles.push(url);
afterLoad();
});
}
};
/* bootstrapModule(module, mObj)
/**
* Bootstrap modules by setting the module data and loading the scripts & styles.
*
* argument module object - Information about the module we want to load.
* argument mObj object - Modules instance.
* argument callback function - Function called when done.
* @param {object} module Information about the module we want to load.
* @param {Module} mObj Modules instance.
* @param {Function} callback Function called when done.
*/
var bootstrapModule = function(module, mObj, callback) {
var bootstrapModule = function (module, mObj, callback) {
Log.info("Bootstrapping module: " + module.name);
mObj.setData(module);
mObj.loadScripts(function() {
mObj.loadScripts(function () {
Log.log("Scripts loaded for: " + module.name);
mObj.loadStyles(function() {
mObj.loadStyles(function () {
Log.log("Styles loaded for: " + module.name);
mObj.loadTranslations(function() {
mObj.loadTranslations(function () {
Log.log("Translations loaded for: " + module.name);
moduleObjects.push(mObj);
callback();
});
});
});
};
/* loadFile(fileName)
/**
* Load a script or stylesheet by adding it to the dom.
*
* argument fileName string - Path of the file we want to load.
* argument callback function - Function called when done.
* @param {string} fileName Path of the file we want to load.
* @param {Function} callback Function called when done.
*/
var loadFile = function(fileName, callback) {
var extension = fileName.slice((Math.max(0, fileName.lastIndexOf(".")) || Infinity) + 1);
var loadFile = function (fileName, callback) {
var extension = fileName.slice((Math.max(0, fileName.lastIndexOf(".")) || Infinity) + 1);
switch (extension.toLowerCase()) {
case "js":
Log.log("Load script: " + fileName);
var script = document.createElement("script");
script.type = "text/javascript";
script.src = fileName;
script.onload = function() {
if (typeof callback === "function") {callback();}
};
script.onerror = function() {
console.error("Error on loading script:", fileName);
if (typeof callback === "function") {callback();}
};
case "js":
Log.log("Load script: " + fileName);
var script = document.createElement("script");
script.type = "text/javascript";
script.src = fileName;
script.onload = function () {
if (typeof callback === "function") {
callback();
}
};
script.onerror = function () {
Log.error("Error on loading script:", fileName);
if (typeof callback === "function") {
callback();
}
};
document.getElementsByTagName("body")[0].appendChild(script);
break;
case "css":
Log.log("Load stylesheet: " + fileName);
var stylesheet = document.createElement("link");
stylesheet.rel = "stylesheet";
stylesheet.type = "text/css";
stylesheet.href = fileName;
stylesheet.onload = function() {
if (typeof callback === "function") {callback();}
};
stylesheet.onerror = function() {
console.error("Error on loading stylesheet:", fileName);
if (typeof callback === "function") {callback();}
};
document.getElementsByTagName("body")[0].appendChild(script);
break;
case "css":
Log.log("Load stylesheet: " + fileName);
var stylesheet = document.createElement("link");
stylesheet.rel = "stylesheet";
stylesheet.type = "text/css";
stylesheet.href = fileName;
stylesheet.onload = function () {
if (typeof callback === "function") {
callback();
}
};
stylesheet.onerror = function () {
Log.error("Error on loading stylesheet:", fileName);
if (typeof callback === "function") {
callback();
}
};
document.getElementsByTagName("head")[0].appendChild(stylesheet);
break;
document.getElementsByTagName("head")[0].appendChild(stylesheet);
break;
}
};
/* Public Methods */
return {
/* loadModules()
/**
* Load all modules as defined in the config.
*/
loadModules: function() {
loadModules: function () {
loadModules();
},
/* loadFile()
/**
* Load a file (script or stylesheet).
* Prevent double loading and search for files in the vendor folder.
*
* argument fileName string - Path of the file we want to load.
* argument module Module Object - the module that calls the loadFile function.
* argument callback function - Function called when done.
* @param {string} fileName Path of the file we want to load.
* @param {Module} module The module that calls the loadFile function.
* @param {Function} callback Function called when done.
*/
loadFile: function(fileName, module, callback) {
loadFile: function (fileName, module, callback) {
if (loadedFiles.indexOf(fileName.toLowerCase()) !== -1) {
Log.log("File already loaded: " + fileName);
callback();
@@ -261,5 +260,4 @@ var Loader = (function() {
loadFile(module.file(fileName), callback);
}
};
})();

View File

@@ -1,20 +1,27 @@
/* global console */
/* exported Log */
/* Magic Mirror
* Logger
* Log
*
* By Michael Teeuw http://michaelteeuw.nl
* This logger is very simple, but needs to be extended.
* This system can eventually be used to push the log messages to an external target.
*
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*/
(function (root, factory) {
if (typeof exports === "object") {
// add timestamps in front of log messages
require("console-stamp")(console, "yyyy-mm-dd HH:MM:ss.l");
// This logger is very simple, but needs to be extended.
// This system can eventually be used to push the log messages to an external target.
var Log = (function() {
return {
// Node, CommonJS-like
module.exports = factory(root.config);
} else {
// Browser globals (root is window)
root.Log = factory(root.config);
}
})(this, function (config) {
const logLevel = {
info: Function.prototype.bind.call(console.info, console),
log: Function.prototype.bind.call(console.log, console),
log: Function.prototype.bind.call(console.log, console),
error: Function.prototype.bind.call(console.error, console),
warn: Function.prototype.bind.call(console.warn, console),
group: Function.prototype.bind.call(console.group, console),
@@ -24,4 +31,16 @@ var Log = (function() {
timeEnd: Function.prototype.bind.call(console.timeEnd, console),
timeStamp: Function.prototype.bind.call(console.timeStamp, console)
};
})();
logLevel.setLogLevel = function (newLevel) {
if (newLevel) {
Object.keys(logLevel).forEach(function (key, index) {
if (!newLevel.includes(key.toLocaleUpperCase())) {
logLevel[key] = function () {};
}
});
}
};
return logLevel;
});

View File

@@ -1,69 +1,80 @@
/* global Log, Loader, Module, config, defaults */
/* jshint -W020 */
/* global Loader, defaults, Translator */
/* Magic Mirror
* Main System
*
* By Michael Teeuw http://michaelteeuw.nl
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*/
var MM = (function() {
var MM = (function () {
var modules = [];
/* Private Methods */
/* createDomObjects()
* Create dom objects for all modules that
* are configured for a specific position.
/**
* Create dom objects for all modules that are configured for a specific position.
*/
var createDomObjects = function() {
for (var m in modules) {
var module = modules[m];
var createDomObjects = function () {
var domCreationPromises = [];
if (typeof module.data.position === "string") {
var wrapper = selectWrapper(module.data.position);
var dom = document.createElement("div");
dom.id = module.identifier;
dom.className = module.name;
if (typeof module.data.classes === "string") {
dom.className = "module " + dom.className + " " + module.data.classes;
}
dom.opacity = 0;
wrapper.appendChild(dom);
if (typeof module.data.header !== "undefined" && module.data.header !== "") {
var moduleHeader = document.createElement("header");
moduleHeader.innerHTML = module.data.header;
moduleHeader.className = "module-header";
dom.appendChild(moduleHeader);
}
var moduleContent = document.createElement("div");
moduleContent.className = "module-content";
dom.appendChild(moduleContent);
updateDom(module, 0);
modules.forEach(function (module) {
if (typeof module.data.position !== "string") {
return;
}
}
var wrapper = selectWrapper(module.data.position);
var dom = document.createElement("div");
dom.id = module.identifier;
dom.className = module.name;
if (typeof module.data.classes === "string") {
dom.className = "module " + dom.className + " " + module.data.classes;
}
dom.opacity = 0;
wrapper.appendChild(dom);
var moduleHeader = document.createElement("header");
moduleHeader.innerHTML = module.getHeader();
moduleHeader.className = "module-header";
dom.appendChild(moduleHeader);
if (typeof module.getHeader() === "undefined" || module.getHeader() !== "") {
moduleHeader.style.display = "none;";
} else {
moduleHeader.style.display = "block;";
}
var moduleContent = document.createElement("div");
moduleContent.className = "module-content";
dom.appendChild(moduleContent);
var domCreationPromise = updateDom(module, 0);
domCreationPromises.push(domCreationPromise);
domCreationPromise
.then(function () {
sendNotification("MODULE_DOM_CREATED", null, null, module);
})
.catch(Log.error);
});
updateWrapperStates();
sendNotification("DOM_OBJECTS_CREATED");
Promise.all(domCreationPromises).then(function () {
sendNotification("DOM_OBJECTS_CREATED");
});
};
/* selectWrapper(position)
/**
* Select the wrapper dom object for a specific position.
*
* argument position string - The name of the position.
* @param {string} position The name of the position.
*
* @returns {HTMLElement} the wrapper element
*/
var selectWrapper = function(position) {
var classes = position.replace("_"," ");
var selectWrapper = function (position) {
var classes = position.replace("_", " ");
var parentWrapper = document.getElementsByClassName(classes);
if (parentWrapper.length > 0) {
var wrapper = parentWrapper[0].getElementsByClassName("container");
@@ -73,64 +84,105 @@ var MM = (function() {
}
};
/* sendNotification(notification, payload, sender)
/**
* Send a notification to all modules.
*
* 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.
* @param {string} notification The identifier of the notification.
* @param {*} payload The payload of the notification.
* @param {Module} sender The module that sent the notification.
* @param {Module} [sendTo] The (optional) module to send the notification to.
*/
var sendNotification = function(notification, payload, sender) {
var sendNotification = function (notification, payload, sender, sendTo) {
for (var m in modules) {
var module = modules[m];
if (module !== sender) {
if (module !== sender && (!sendTo || module === sendTo)) {
module.notificationReceived(notification, payload, sender);
}
}
};
/* updateDom(module, speed)
/**
* Update the dom for a specific module.
*
* argument module Module - The module that needs an update.
* argument speed Number - The number of microseconds for the animation. (optional)
* @param {Module} module The module that needs an update.
* @param {number} [speed] The (optional) number of microseconds for the animation.
*
* @returns {Promise} Resolved when the dom is fully updated.
*/
var updateDom = function(module, speed) {
var newContent = module.getDom();
var newHeader = module.getHeader();
var updateDom = function (module, speed) {
return new Promise(function (resolve) {
var newContentPromise = module.getDom();
var newHeader = module.getHeader();
if (!module.hidden) {
if (!(newContentPromise instanceof Promise)) {
// convert to a promise if not already one to avoid if/else's everywhere
newContentPromise = Promise.resolve(newContentPromise);
}
newContentPromise
.then(function (newContent) {
var updatePromise = updateDomWithContent(module, speed, newHeader, newContent);
updatePromise.then(resolve).catch(Log.error);
})
.catch(Log.error);
});
};
/**
* Update the dom with the specified content
*
* @param {Module} module The module that needs an update.
* @param {number} [speed] The (optional) number of microseconds for the animation.
* @param {string} newHeader The new header that is generated.
* @param {HTMLElement} newContent The new content that is generated.
*
* @returns {Promise} Resolved when the module dom has been updated.
*/
var updateDomWithContent = function (module, speed, newHeader, newContent) {
return new Promise(function (resolve) {
if (module.hidden || !speed) {
updateModuleContent(module, newHeader, newContent);
resolve();
return;
}
if (!moduleNeedsUpdate(module, newHeader, newContent)) {
resolve();
return;
}
if (!speed) {
updateModuleContent(module, newHeader, newContent);
resolve();
return;
}
hideModule(module, speed / 2, function() {
hideModule(module, speed / 2, function () {
updateModuleContent(module, newHeader, newContent);
if (!module.hidden) {
showModule(module, speed / 2);
}
resolve();
});
} else {
updateModuleContent(module, newHeader, newContent);
}
});
};
/* moduleNeedsUpdate(module, newContent)
/**
* Check if the content has changed.
*
* argument module Module - The module to check.
* argument newContent Domobject - The new content that is generated.
* @param {Module} module The module to check.
* @param {string} newHeader The new header that is generated.
* @param {HTMLElement} newContent The new content that is generated.
*
* return bool - Does the module need an update?
* @returns {boolean} True if the module need an update, false otherwise
*/
var moduleNeedsUpdate = function(module, newHeader, newContent) {
var moduleNeedsUpdate = function (module, newHeader, newContent) {
var moduleWrapper = document.getElementById(module.identifier);
if (moduleWrapper === null) {
return false;
}
var contentWrapper = moduleWrapper.getElementsByClassName("module-content");
var headerWrapper = moduleWrapper.getElementsByClassName("module-header");
@@ -148,35 +200,41 @@ var MM = (function() {
return headerNeedsUpdate || contentNeedsUpdate;
};
/* moduleNeedsUpdate(module, newContent)
/**
* Update the content of a module on screen.
*
* argument module Module - The module to check.
* argument newContent Domobject - The new content that is generated.
* @param {Module} module The module to check.
* @param {string} newHeader The new header that is generated.
* @param {HTMLElement} newContent The new content that is generated.
*/
var updateModuleContent = function(module, newHeader, newContent) {
var updateModuleContent = function (module, newHeader, newContent) {
var moduleWrapper = document.getElementById(module.identifier);
if (moduleWrapper === null) {
return;
}
var headerWrapper = moduleWrapper.getElementsByClassName("module-header");
var contentWrapper = moduleWrapper.getElementsByClassName("module-content");
contentWrapper[0].innerHTML = "";
contentWrapper[0].appendChild(newContent);
if( headerWrapper.length > 0 && newHeader) {
headerWrapper[0].innerHTML = newHeader;
headerWrapper[0].innerHTML = newHeader;
if (headerWrapper.length > 0 && newHeader) {
headerWrapper[0].style.display = "block";
} else {
headerWrapper[0].style.display = "none";
}
};
/* hideModule(module, speed, callback)
/**
* Hide the module.
*
* argument module Module - The module to hide.
* argument speed Number - The speed of the hide animation.
* argument callback function - Called when the animation is done.
* @param {Module} module The module to hide.
* @param {number} speed The speed of the hide animation.
* @param {Function} callback Called when the animation is done.
* @param {object} [options] Optional settings for the hide method.
*/
var hideModule = function(module, speed, callback, options) {
var hideModule = function (module, speed, callback, options) {
options = options || {};
// set lockString if set in options.
@@ -193,7 +251,7 @@ var MM = (function() {
moduleWrapper.style.opacity = 0;
clearTimeout(module.showHideTimer);
module.showHideTimer = setTimeout(function() {
module.showHideTimer = setTimeout(function () {
// To not take up any space, we just make the position absolute.
// since it's fade out anyway, we can see it lay above or
// below other modules. This works way better than adjusting
@@ -202,25 +260,33 @@ var MM = (function() {
updateWrapperStates();
if (typeof callback === "function") { callback(); }
if (typeof callback === "function") {
callback();
}
}, speed);
} else {
// invoke callback even if no content, issue 1308
if (typeof callback === "function") {
callback();
}
}
};
/* showModule(module, speed, callback)
/**
* Show the module.
*
* argument module Module - The module to show.
* argument speed Number - The speed of the show animation.
* argument callback function - Called when the animation is done.
* @param {Module} module The module to show.
* @param {number} speed The speed of the show animation.
* @param {Function} callback Called when the animation is done.
* @param {object} [options] Optional settings for the show method.
*/
var showModule = function(module, speed, callback, options) {
var showModule = function (module, speed, callback, options) {
options = options || {};
// remove lockString if set in options.
if (options.lockString) {
var index = module.lockStrings.indexOf(options.lockString)
if ( index !== -1) {
var index = module.lockStrings.indexOf(options.lockString);
if (index !== -1) {
module.lockStrings.splice(index, 1);
}
}
@@ -243,7 +309,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();
@@ -253,17 +319,23 @@ var MM = (function() {
moduleWrapper.style.opacity = 1;
clearTimeout(module.showHideTimer);
module.showHideTimer = setTimeout(function() {
if (typeof callback === "function") { callback(); }
module.showHideTimer = setTimeout(function () {
if (typeof callback === "function") {
callback();
}
}, speed);
} else {
// invoke callback
if (typeof callback === "function") {
callback();
}
}
};
/* 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,
@@ -271,17 +343,16 @@ 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 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"];
positions.forEach(function(position) {
positions.forEach(function (position) {
var wrapper = selectWrapper(position);
var moduleWrappers = wrapper.getElementsByClassName("module");
var showWrapper = false;
Array.prototype.forEach.call(moduleWrappers, function(moduleWrapper) {
if (moduleWrapper.style.position == "" || moduleWrapper.style.position == "static") {
Array.prototype.forEach.call(moduleWrappers, function (moduleWrapper) {
if (moduleWrapper.style.position === "" || moduleWrapper.style.position === "static") {
showWrapper = true;
}
});
@@ -290,10 +361,12 @@ var MM = (function() {
});
};
/* loadConfig()
* Loads the core config and combines it with de system defaults.
/**
* Loads the core config and combines it with the system defaults.
*/
var loadConfig = function() {
var loadConfig = function () {
// FIXME: Think about how to pass config around without breaking tests
/* eslint-disable */
if (typeof config === "undefined") {
config = defaults;
Log.error("Config file is missing! Please create a config file.");
@@ -301,52 +374,52 @@ var MM = (function() {
}
config = Object.assign({}, defaults, config);
/* eslint-enable */
};
/* setSelectionMethodsForModules()
/**
* Adds special selectors on a collection of modules.
*
* argument modules array - Array of modules.
* @param {Module[]} modules Array of modules.
*/
var setSelectionMethodsForModules = function(modules) {
/* withClass(className)
* calls modulesByClass to filter modules with the specified classes.
var setSelectionMethodsForModules = function (modules) {
/**
* Filter modules with the specified classes.
*
* argument className string/array - one or multiple classnames. (array or space divided)
* @param {string|string[]} className one or multiple classnames (array or space divided).
*
* return array - Filtered collection of modules.
* @returns {Module[]} Filtered collection of modules.
*/
var withClass = function(className) {
var withClass = function (className) {
return modulesByClass(className, true);
};
/* exceptWithClass(className)
* calls modulesByClass to filter modules without the specified classes.
/**
* Filter modules without the specified classes.
*
* argument className string/array - one or multiple classnames. (array or space divided)
* @param {string|string[]} className one or multiple classnames (array or space divided).
*
* return array - Filtered collection of modules.
* @returns {Module[]} Filtered collection of modules.
*/
var exceptWithClass = function(className) {
var exceptWithClass = function (className) {
return modulesByClass(className, false);
};
/* modulesByClass(className, include)
* filters a collection of modules based on classname(s).
/**
* Filters a collection of modules based on classname(s).
*
* argument className string/array - one or multiple classnames. (array or space divided)
* argument include boolean - if the filter should include or exclude the modules with the specific classes.
* @param {string|string[]} className one or multiple classnames (array or space divided).
* @param {boolean} include if the filter should include or exclude the modules with the specific classes.
*
* return array - Filtered collection of modules.
* @returns {Module[]} Filtered collection of modules.
*/
var modulesByClass = function(className, include) {
var modulesByClass = function (className, include) {
var searchClasses = className;
if (typeof className === "string") {
searchClasses = className.split(" ");
}
var newModules = modules.filter(function(module) {
var newModules = modules.filter(function (module) {
var classes = module.data.classes.toLowerCase().split(" ");
for (var c in searchClasses) {
@@ -363,15 +436,15 @@ var MM = (function() {
return newModules;
};
/* exceptModule(module)
/**
* Removes a module instance from the collection.
*
* argument module Module object - The module instance to remove from the collection.
* @param {object} module The module instance to remove from the collection.
*
* return array - Filtered collection of modules.
* @returns {Module[]} Filtered collection of modules.
*/
var exceptModule = function(module) {
var newModules = modules.filter(function(mod) {
var exceptModule = function (module) {
var newModules = modules.filter(function (mod) {
return mod.identifier !== module.identifier;
});
@@ -379,42 +452,53 @@ var MM = (function() {
return newModules;
};
/* enumerate(callback)
/**
* Walks thru a collection of modules and executes the callback with the module as an argument.
*
* argument callback function - The function to execute with the module as an argument.
* @param {Function} callback The function to execute with the module as an argument.
*/
var enumerate = function(callback) {
modules.map(function(module) {
var enumerate = function (callback) {
modules.map(function (module) {
callback(module);
});
};
if (typeof modules.withClass === "undefined") { Object.defineProperty(modules, "withClass", {value: withClass, enumerable: false}); }
if (typeof modules.exceptWithClass === "undefined") { Object.defineProperty(modules, "exceptWithClass", {value: exceptWithClass, enumerable: false}); }
if (typeof modules.exceptModule === "undefined") { Object.defineProperty(modules, "exceptModule", {value: exceptModule, enumerable: false}); }
if (typeof modules.enumerate === "undefined") { Object.defineProperty(modules, "enumerate", {value: enumerate, enumerable: false}); }
if (typeof modules.withClass === "undefined") {
Object.defineProperty(modules, "withClass", { value: withClass, enumerable: false });
}
if (typeof modules.exceptWithClass === "undefined") {
Object.defineProperty(modules, "exceptWithClass", { value: exceptWithClass, enumerable: false });
}
if (typeof modules.exceptModule === "undefined") {
Object.defineProperty(modules, "exceptModule", { value: exceptModule, enumerable: false });
}
if (typeof modules.enumerate === "undefined") {
Object.defineProperty(modules, "enumerate", { value: enumerate, enumerable: false });
}
};
return {
/* Public Methods */
/* init()
/**
* Main init method.
*/
init: function() {
init: function () {
Log.info("Initializing MagicMirror.");
loadConfig();
Log.setLogLevel(config.logLevel);
Translator.loadCoreTranslations(config.language);
Loader.loadModules();
},
/* modulesStarted(moduleObjects)
/**
* Gets called when all modules are started.
*
* argument moduleObjects array<Module> - All module instances.
* @param {Module[]} moduleObjects All module instances.
*/
modulesStarted: function(moduleObjects) {
modulesStarted: function (moduleObjects) {
modules = [];
for (var m in moduleObjects) {
var module = moduleObjects[m];
@@ -427,14 +511,14 @@ var MM = (function() {
createDomObjects();
},
/* sendNotification(notification, payload, sender)
/**
* Send a notification to all modules.
*
* argument notification string - The identifier of the noitication.
* argument payload mixed - The payload of the notification.
* argument sender Module - The module that sent the notification.
* @param {string} notification The identifier of the notification.
* @param {*} payload The payload of the notification.
* @param {Module} sender The module that sent the notification.
*/
sendNotification: function(notification, payload, sender) {
sendNotification: function (notification, payload, sender) {
if (arguments.length < 3) {
Log.error("sendNotification: Missing arguments.");
return;
@@ -454,13 +538,13 @@ var MM = (function() {
sendNotification(notification, payload, sender);
},
/* updateDom(module, speed)
/**
* Update the dom for a specific module.
*
* argument module Module - The module that needs an update.
* argument speed Number - The number of microseconds for the animation. (optional)
* @param {Module} module The module that needs an update.
* @param {number} [speed] The number of microseconds for the animation.
*/
updateDom: function(module, speed) {
updateDom: function (module, speed) {
if (!(module instanceof Module)) {
Log.error("updateDom: Sender should be a module.");
return;
@@ -470,49 +554,48 @@ var MM = (function() {
updateDom(module, speed);
},
/* getModules(module, speed)
/**
* Returns a collection of all modules currently active.
*
* return array - A collection of all modules currently active.
* @returns {Module[]} A collection of all modules currently active.
*/
getModules: function() {
getModules: function () {
setSelectionMethodsForModules(modules);
return modules;
},
/* hideModule(module, speed, callback)
/**
* Hide the module.
*
* argument module Module - The module hide.
* argument speed Number - The speed of the hide animation.
* argument callback function - Called when the animation is done.
* argument options object - Optional settings for the hide method.
* @param {Module} module The module to hide.
* @param {number} speed The speed of the hide animation.
* @param {Function} callback Called when the animation is done.
* @param {object} [options] Optional settings for the hide method.
*/
hideModule: function(module, speed, callback, options) {
hideModule: function (module, speed, callback, options) {
module.hidden = true;
hideModule(module, speed, callback, options);
},
/* showModule(module, speed, callback)
/**
* Show the module.
*
* argument module Module - The module show.
* argument speed Number - The speed of the show animation.
* argument callback function - Called when the animation is done.
* argument options object - Optional settings for the hide method.
* @param {Module} module The module to show.
* @param {number} speed The speed of the show animation.
* @param {Function} callback Called when the animation is done.
* @param {object} [options] Optional settings for the show method.
*/
showModule: function(module, speed, callback, options) {
showModule: function (module, speed, callback, options) {
// do not change module.hidden yet, only if we really show it later
showModule(module, speed, callback, options);
}
};
})();
// Add polyfill for Object.assign.
if (typeof Object.assign != "function") {
(function() {
Object.assign = function(target) {
if (typeof Object.assign !== "function") {
(function () {
Object.assign = function (target) {
"use strict";
if (target === undefined || target === null) {
throw new TypeError("Cannot convert undefined or null to object");

View File

@@ -1,15 +1,14 @@
/* global Log, Class, Loader, Class , MM */
/* exported Module */
/* global Class, cloneObject, Loader, MMSocket, nunjucks, Translator */
/* Magic Mirror
* Module Blueprint.
* @typedef {Object} Module
*
* By Michael Teeuw http://michaelteeuw.nl
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*
*/
var Module = Class.extend({
/*********************************************************
* All methods (and properties) below can be subclassed. *
*********************************************************/
@@ -27,116 +26,181 @@ var Module = Class.extend({
// visibility when hiding and showing module.
lockStrings: [],
/* init()
* Is called when the module is instantiated.
// Storage of the nunjuck Environment,
// This should not be referenced directly.
// Use the nunjucksEnvironment() to get it.
_nunjucksEnvironment: null,
/**
* Called when the module is instantiated.
*/
init: function () {
//Log.log(this.defaults);
},
/* start()
* Is called when the module is started.
/**
* Called when the module is started.
*/
start: function () {
Log.info("Starting module: " + this.name);
},
/* getScripts()
/**
* Returns a list of scripts the module requires to be loaded.
*
* return Array<String> - An array with filenames.
* @returns {string[]} An array with filenames.
*/
getScripts: function () {
return [];
},
/* getStyles()
/**
* Returns a list of stylesheets the module requires to be loaded.
*
* return Array<String> - An array with filenames.
* @returns {string[]} An array with filenames.
*/
getStyles: function () {
return [];
},
/* getTranslations()
/**
* Returns a map of translation files the module requires to be loaded.
*
* return Map<String, String> - A map with langKeys and filenames.
* return Map<String, String> -
*
* @returns {*} A map with langKeys and filenames.
*/
getTranslations: function () {
return false;
},
/* getDom()
* This method generates the dom which needs to be displayed. This method is called by the Magic Mirror core.
* This method needs to be subclassed if the module wants to display info on the mirror.
/**
* 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 getTemplate method could be subclassed.
*
* return domobject - The dom to display.
* @returns {HTMLElement|Promise} The dom or a promise with the dom to display.
*/
getDom: function () {
var nameWrapper = document.createElement("div");
var name = document.createTextNode(this.name);
nameWrapper.appendChild(name);
var self = this;
return new Promise(function (resolve) {
var div = document.createElement("div");
var template = self.getTemplate();
var templateData = self.getTemplateData();
var identifierWrapper = document.createElement("div");
var identifier = document.createTextNode(this.identifier);
identifierWrapper.appendChild(identifier);
identifierWrapper.className = "small dimmed";
// Check to see if we need to render a template string or a file.
if (/^.*((\.html)|(\.njk))$/.test(template)) {
// the template is a filename
self.nunjucksEnvironment().render(template, templateData, function (err, res) {
if (err) {
Log.error(err);
}
var div = document.createElement("div");
div.appendChild(nameWrapper);
div.appendChild(identifierWrapper);
div.innerHTML = res;
return div;
resolve(div);
});
} else {
// the template is a template string.
div.innerHTML = self.nunjucksEnvironment().renderString(template, templateData);
resolve(div);
}
});
},
/* getHeader()
* This method generates the header string which needs to be displayed if a user has a header configured for this module.
/**
* Generates the header string which needs to be displayed if a user has a header configured for this module.
* This method is called by the Magic Mirror core, but only if the user has configured a default header for the module.
* This method needs to be subclassed if the module wants to display modified headers on the mirror.
*
* return string - The header to display above the header.
* @returns {string} The header to display above the header.
*/
getHeader: function () {
return this.data.header;
},
/* notificationReceived(notification, payload, sender)
* This method is called when a notification arrives.
* This method is called by the Magic Mirror core.
/**
* 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 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.
*
* 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.
* @returns {string} The template string of filename.
*/
getTemplate: function () {
return '<div class="normal">' + this.name + '</div><div class="small dimmed">' + this.identifier + "</div>";
},
/**
* Returns the data to be used in the template.
* This method needs to be subclassed if the module wants to use a custom data.
*
* @returns {object} The data for the template
*/
getTemplateData: function () {
return {};
},
/**
* Called by the Magic Mirror core when a notification arrives.
*
* @param {string} notification The identifier of the notification.
* @param {*} payload The payload of the notification.
* @param {Module} sender The module that sent the notification.
*/
notificationReceived: function (notification, payload, sender) {
if (sender) {
Log.log(this.name + " received a module notification: " + notification + " from sender: " + sender.name);
// Log.log(this.name + " received a module notification: " + notification + " from sender: " + sender.name);
} else {
Log.log(this.name + " received a system notification: " + notification);
// Log.log(this.name + " received a system notification: " + notification);
}
},
/* socketNotificationReceived(notification, payload)
* This method is called when a socket notification arrives.
/**
* Returns the nunjucks environment for the current module.
* The environment is checked in the _nunjucksEnvironment instance variable.
*
* argument notification string - The identifier of the notification.
* argument payload mixed - The payload of the notification.
* @returns {object} The Nunjucks Environment
*/
nunjucksEnvironment: function () {
if (this._nunjucksEnvironment !== null) {
return this._nunjucksEnvironment;
}
var self = this;
this._nunjucksEnvironment = new nunjucks.Environment(new nunjucks.WebLoader(this.file(""), { async: true }), {
trimBlocks: true,
lstripBlocks: true
});
this._nunjucksEnvironment.addFilter("translate", function (str) {
return self.translate(str);
});
return this._nunjucksEnvironment;
},
/**
* Called when a socket notification arrives.
*
* @param {string} notification The identifier of the notification.
* @param {*} payload The payload of the notification.
*/
socketNotificationReceived: function (notification, payload) {
Log.log(this.name + " received a socket notification: " + notification + " - Payload: " + payload);
},
/* suspend()
* This method is called when a module is hidden.
/*
* Called when the module is hidden.
*/
suspend: function () {
Log.log(this.name + " is suspended.");
},
/* resume()
* This method is called when a module is shown.
/*
* Called when the module is shown.
*/
resume: function () {
Log.log(this.name + " is resumed.");
@@ -146,10 +210,10 @@ var Module = Class.extend({
* The methods below don"t need subclassing. *
*********************************************/
/* setData(data)
/**
* Set the module data.
*
* argument data obejct - Module data.
* @param {Module} data The module data
*/
setData: function (data) {
this.data = data;
@@ -157,25 +221,28 @@ var Module = Class.extend({
this.identifier = data.identifier;
this.hidden = false;
this.setConfig(data.config);
this.setConfig(data.config, data.configDeepMerge);
},
/* setConfig(config)
/**
* Set the module config and combine it with the module defaults.
*
* argument config obejct - Module config.
* @param {object} config The combined module config.
* @param {boolean} config Merge module config in deep.
*/
setConfig: function (config) {
this.config = Object.assign({}, this.defaults, config);
setConfig: function (config, deep) {
this.config = deep ? configMerge({}, this.defaults, config) : Object.assign({}, this.defaults, config);
},
/* 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.
*
* @returns {MMSocket} a socket object
*/
socket: function () {
if (typeof this._socket === "undefined") {
this._socket = this._socket = new MMSocket(this.name);
this._socket = new MMSocket(this.name);
}
var self = this;
@@ -186,40 +253,39 @@ var Module = Class.extend({
return this._socket;
},
/* file(file)
/**
* Retrieve the path to a module file.
*
* argument file string - Filename.
*
* return string - File path.
* @param {string} file Filename
* @returns {string} the file path
*/
file: function (file) {
return this.data.path + "/" + file;
return (this.data.path + "/" + file).replace("//", "/");
},
/* loadStyles()
/**
* Load all required stylesheets by requesting the MM object to load the files.
*
* argument callback function - Function called when done.
* @param {Function} callback Function called when done.
*/
loadStyles: function (callback) {
this.loadDependencies("getStyles", callback);
},
/* loadScripts()
/**
* Load all required scripts by requesting the MM object to load the files.
*
* argument callback function - Function called when done.
* @param {Function} callback Function called when done.
*/
loadScripts: function (callback) {
this.loadDependencies("getScripts", callback);
},
/* loadDependencies(funcName, callback)
/**
* Helper method to load all dependencies.
*
* argument funcName string - Function name to call to get scripts or styles.
* argument callback function - Function called when done.
* @param {string} funcName Function name to call to get scripts or styles.
* @param {Function} callback Function called when done.
*/
loadDependencies: function (funcName, callback) {
var self = this;
@@ -240,10 +306,10 @@ var Module = Class.extend({
loadNextDependency();
},
/* loadScripts()
* Load all required scripts by requesting the MM object to load the files.
/**
* Load all translations.
*
* argument callback function - Function called when done.
* @param {Function} callback Function called when done.
*/
loadTranslations: function (callback) {
var self = this;
@@ -252,7 +318,9 @@ var Module = Class.extend({
// The variable `first` will contain the first
// defined translation after the following line.
for (var first in translations) { break; }
for (var first in translations) {
break;
}
if (translations) {
var translationFile = translations[lang] || undefined;
@@ -272,93 +340,152 @@ var Module = Class.extend({
}
},
/* translate(key, defaultValue)
* Request the translation for a given key.
/**
* Request the translation for a given key with optional variables and default value.
*
* argument key string - The key of the string to translage
* argument defaultValue string - The default value if no translation was found. (Optional)
* @param {string} key The key of the string to translate
* @param {string|object} [defaultValueOrVariables] The default value or variables for translating.
* @param {string} [defaultValue] The default value with variables.
* @returns {string} the translated key
*/
translate: function (key, defaultValue) {
return Translator.translate(this, key) || defaultValue || "";
translate: function (key, defaultValueOrVariables, defaultValue) {
if (typeof defaultValueOrVariables === "object") {
return Translator.translate(this, key, defaultValueOrVariables) || defaultValue || "";
}
return Translator.translate(this, key) || defaultValueOrVariables || "";
},
/* updateDom(speed)
/**
* Request an (animated) update of the module.
*
* argument speed Number - The speed of the animation. (Optional)
* @param {number} [speed] The speed of the animation.
*/
updateDom: function (speed) {
MM.updateDom(this, speed);
},
/* sendNotification(notification, payload)
/**
* Send a notification to all modules.
*
* argument notification string - The identifier of the notification.
* argument payload mixed - The payload of the notification.
* @param {string} notification The identifier of the notification.
* @param {*} payload The payload of the notification.
*/
sendNotification: function (notification, payload) {
MM.sendNotification(notification, payload, this);
},
/* sendSocketNotification(notification, payload)
/**
* Send a socket notification to the node helper.
*
* argument notification string - The identifier of the notification.
* argument payload mixed - The payload of the notification.
* @param {string} notification The identifier of the notification.
* @param {*} payload The payload of the notification.
*/
sendSocketNotification: function (notification, payload) {
this.socket().sendNotification(notification, payload);
},
/* hideModule(module, speed, callback)
/**
* Hide this module.
*
* argument speed Number - The speed of the hide animation.
* argument callback function - Called when the animation is done.
* argument options object - Optional settings for the hide method.
* @param {number} speed The speed of the hide animation.
* @param {Function} callback Called when the animation is done.
* @param {object} [options] Optional settings for the hide method.
*/
hide: function (speed, callback, options) {
if (typeof callback === "object") {
options = callback;
callback = function () { };
callback = function () {};
}
callback = callback || function () { };
callback = callback || function () {};
options = options || {};
var self = this;
MM.hideModule(self, speed, function () {
self.suspend();
callback();
}, options);
MM.hideModule(
self,
speed,
function () {
self.suspend();
callback();
},
options
);
},
/* showModule(module, speed, callback)
/**
* Show this module.
*
* argument speed Number - The speed of the show animation.
* argument callback function - Called when the animation is done.
* argument options object - Optional settings for the hide method.
* @param {number} speed The speed of the show animation.
* @param {Function} callback Called when the animation is done.
* @param {object} [options] Optional settings for the show method.
*/
show: function (speed, callback, options) {
if (typeof callback === "object") {
options = callback;
callback = function () { };
callback = function () {};
}
callback = callback || function () { };
callback = callback || function () {};
options = options || {};
this.resume();
MM.showModule(this, speed, callback, options);
var self = this;
MM.showModule(
this,
speed,
function () {
self.resume();
callback;
},
options
);
}
});
/** Merging MagicMirror (or other) default/config script
* merge 2 objects or/with array
* using:
* -------
* this.config = configMerge({}, this.defaults, this.config)
* -------
* arg1: initial objet
* arg2: config model
* arg3: config to merge
* -------
* why using it ?
* Object.assign() function don't to all job
* it don't merge all thing in deep
* -> object in object and array is not merging
* -------
* @bugsounet
* @Todo: idea of Mich determinate what do you want to merge or not
*/
function configMerge(result) {
var stack = Array.prototype.slice.call(arguments, 1);
var item;
var key;
while (stack.length) {
item = stack.shift();
for (key in item) {
if (item.hasOwnProperty(key)) {
if (typeof result[key] === "object" && result[key] && Object.prototype.toString.call(result[key]) !== "[object Array]") {
if (typeof item[key] === "object" && item[key] !== null) {
result[key] = configMerge({}, result[key], item[key]);
} else {
result[key] = item[key];
}
} else {
result[key] = item[key];
}
}
}
}
return result;
}
Module.definitions = {};
Module.create = function (name) {
// Make sure module definition is available.
if (!Module.definitions[name]) {
return;
@@ -371,15 +498,30 @@ Module.create = function (name) {
var ModuleClass = Module.extend(clonedDefinition);
return new ModuleClass();
};
/* cmpVersions(a,b)
* Compare two symantic version numbers and return the difference.
*
* argument a string - Version number a.
* argument a string - Version number b.
*/
Module.register = function (name, moduleDefinition) {
if (moduleDefinition.requiresVersion) {
Log.log("Check MagicMirror version for module '" + name + "' - Minimum version: " + moduleDefinition.requiresVersion + " - Current version: " + window.version);
if (cmpVersions(window.version, moduleDefinition.requiresVersion) >= 0) {
Log.log("Version is ok!");
} else {
Log.log("Version is incorrect. Skip module: '" + name + "'");
return;
}
}
Log.log("Module registered: " + name);
Module.definitions[name] = moduleDefinition;
};
/**
* Compare two semantic version numbers and return the difference.
*
* @param {string} a Version number a.
* @param {string} b Version number b.
* @returns {number} A positive number if a is larger than b, a negative
* number if a is smaller and 0 if they are the same
*/
function cmpVersions(a, b) {
var i, diff;
var regExStrip0 = /(\.0+)+$/;
@@ -395,26 +537,3 @@ function cmpVersions(a, b) {
}
return segmentsA.length - segmentsB.length;
}
Module.register = function (name, moduleDefinition) {
if (moduleDefinition.requiresVersion) {
Log.log("Check MagicMirror version for module '" + name + "' - Minimum version: " + moduleDefinition.requiresVersion + " - Current version: " + version);
if (cmpVersions(version, moduleDefinition.requiresVersion) >= 0) {
Log.log("Version is ok!");
} else {
Log.log("Version is incorrect. Skip module: '" + name + "'");
return;
}
}
Log.log("Module registered: " + name);
Module.definitions[name] = moduleDefinition;
};
if (typeof exports != "undefined") { // For testing purpose only
// A good a idea move the function cmpversions a helper file.
// It's used into other side.
exports._test = {
cmpVersions: cmpVersions
}
}

126
js/node_helper.js Normal file
View File

@@ -0,0 +1,126 @@
/* Magic Mirror
* Node Helper Superclass
*
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*/
const Class = require("./class.js");
const Log = require("./logger.js");
const express = require("express");
var NodeHelper = Class.extend({
init: function () {
Log.log("Initializing new module helper ...");
},
loaded: function (callback) {
Log.log("Module helper loaded: " + this.name);
callback();
},
start: function () {
Log.log("Starting module helper: " + this.name);
},
/* stop()
* Called when the MagicMirror server receives a `SIGINT`
* Close any open connections, stop any sub-processes and
* gracefully exit the module.
*
*/
stop: function () {
Log.log("Stopping module helper: " + this.name);
},
/* socketNotificationReceived(notification, payload)
* This method is called when a socket notification arrives.
*
* argument notification string - The identifier of the notification.
* argument payload mixed - The payload of the notification.
*/
socketNotificationReceived: function (notification, payload) {
Log.log(this.name + " received a socket notification: " + notification + " - Payload: " + payload);
},
/* setName(name)
* Set the module name.
*
* argument name string - Module name.
*/
setName: function (name) {
this.name = name;
},
/* setPath(path)
* Set the module path.
*
* argument path string - Module path.
*/
setPath: function (path) {
this.path = path;
},
/* sendSocketNotification(notification, payload)
* Send a socket notification to the node helper.
*
* argument notification string - The identifier of the notification.
* argument payload mixed - The payload of the notification.
*/
sendSocketNotification: function (notification, payload) {
this.io.of(this.name).emit(notification, payload);
},
/* setExpressApp(app)
* Sets the express app object for this module.
* This allows you to host files from the created webserver.
*
* argument app Express app - The Express app object.
*/
setExpressApp: function (app) {
this.expressApp = app;
var publicPath = this.path + "/public";
app.use("/" + this.name, express.static(publicPath));
},
/* setSocketIO(io)
* Sets the socket io object for this module.
* Binds message receiver.
*
* argument io Socket.io - The Socket io object.
*/
setSocketIO: function (io) {
var self = this;
self.io = io;
Log.log("Connecting socket for: " + this.name);
var namespace = this.name;
io.of(namespace).on("connection", function (socket) {
// add a catch all event.
var onevent = socket.onevent;
socket.onevent = function (packet) {
var args = packet.data || [];
onevent.call(this, packet); // original call
packet.data = ["*"].concat(args);
onevent.call(this, packet); // additional call to catch-all
};
// register catch all.
socket.on("*", function (notification, payload) {
if (notification !== "*") {
//Log.log('received message in namespace: ' + namespace);
self.socketNotificationReceived(notification, payload);
}
});
});
}
});
NodeHelper.create = function (moduleDefinition) {
return NodeHelper.extend(moduleDefinition);
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {
module.exports = NodeHelper;
}

Some files were not shown because too many files have changed in this diff Show More