diff --git a/CHANGELOG.md b/CHANGELOG.md index 560af2c7..e1e89ba1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ _This release is scheduled to be released on 2022-01-01._ - Updated github actions. - Replace spectron with playwright, update dependencies including electron update to v16. - Added lithuanian language to translations.js +- Show info message if newsfeed is empty (fixes #2731) ### Fixed diff --git a/modules/default/newsfeed/newsfeed.js b/modules/default/newsfeed/newsfeed.js index b5113675..2fe340a2 100644 --- a/modules/default/newsfeed/newsfeed.js +++ b/modules/default/newsfeed/newsfeed.js @@ -121,7 +121,7 @@ Module.register("newsfeed", { } if (this.newsItems.length === 0) { return { - loaded: false + empty: true }; } if (this.activeItem >= this.newsItems.length) { @@ -184,6 +184,7 @@ Module.register("newsfeed", { const dateB = new Date(b.pubdate); return dateB - dateA; }); + if (this.config.maxNewsItems > 0) { newsItems = newsItems.slice(0, this.config.maxNewsItems); } @@ -219,7 +220,6 @@ Module.register("newsfeed", { } //Remove selected tags from the end of rss feed items (title or description) - if (this.config.removeEndTags) { for (let endTag of this.config.endTags) { if (item.title.slice(-endTag.length) === endTag) { diff --git a/modules/default/newsfeed/newsfeed.njk b/modules/default/newsfeed/newsfeed.njk index 2b037dcc..b957ffb9 100644 --- a/modules/default/newsfeed/newsfeed.njk +++ b/modules/default/newsfeed/newsfeed.njk @@ -54,6 +54,10 @@ {% endif %} {% endif %} +{% elseif empty %} +
+ {{ "NEWSFEED_NO_ITEMS" | translate | safe }} +
{% elseif error %}
{{ "MODULE_CONFIG_ERROR" | translate({MODULE_NAME: "Newsfeed", ERROR: error}) | safe }} diff --git a/tests/configs/modules/newsfeed/ignore_items.js b/tests/configs/modules/newsfeed/ignore_items.js new file mode 100644 index 00000000..8b12a10a --- /dev/null +++ b/tests/configs/modules/newsfeed/ignore_items.js @@ -0,0 +1,28 @@ +/* Magic Mirror Test config newsfeed module + * + * MIT Licensed. + */ +let config = { + timeFormat: 12, + + modules: [ + { + module: "newsfeed", + position: "bottom_bar", + config: { + feeds: [ + { + title: "Rodrigo Ramirez Blog", + url: "http://localhost:8080/tests/configs/data/feed_test_rodrigoramirez.xml" + } + ], + ignoreOldItems: true + } + } + ] +}; + +/*************** DO NOT EDIT THE LINE BELOW ***************/ +if (typeof module !== "undefined") { + module.exports = config; +} diff --git a/tests/e2e/modules/newsfeed_spec.js b/tests/e2e/modules/newsfeed_spec.js index d7a3b9fe..1a7f5662 100644 --- a/tests/e2e/modules/newsfeed_spec.js +++ b/tests/e2e/modules/newsfeed_spec.js @@ -60,4 +60,17 @@ describe("Newsfeed module", function () { expect(elem.textContent).toContain("Error in the Newsfeed module. Malformed url."); }); }); + + describe("Ignore items", function () { + beforeAll(function (done) { + helpers.startApplication("tests/configs/modules/newsfeed/ignore_items.js"); + helpers.getDocument(done, 3000); + }); + + it("should show empty items info message", function () { + const elem = document.querySelector(".newsfeed .small"); + expect(elem).not.toBe(null); + expect(elem.textContent).toContain("No news at the moment."); + }); + }); }); diff --git a/translations/de.json b/translations/de.json index cacbe2bd..a1b92cab 100644 --- a/translations/de.json +++ b/translations/de.json @@ -31,6 +31,8 @@ "MODULE_CONFIG_CHANGED": "Die Konfigurationsoptionen für das {MODULE_NAME} Modul haben sich geändert. \nBitte überprüfen Sie die Dokumentation.", "MODULE_CONFIG_ERROR": "Fehler im {MODULE_NAME} Modul. {ERROR}", + "NEWSFEED_NO_ITEMS": "Keine Neuigkeiten momentan.", + "UPDATE_NOTIFICATION": "Aktualisierung für MagicMirror² verfügbar.", "UPDATE_NOTIFICATION_MODULE": "Aktualisierung für das {MODULE_NAME} Modul verfügbar.", "UPDATE_INFO_SINGLE": "Die aktuelle Installation ist {COMMIT_COUNT} Commit hinter dem {BRANCH_NAME} Branch.", diff --git a/translations/en.json b/translations/en.json index 5959fc82..43ba9c74 100644 --- a/translations/en.json +++ b/translations/en.json @@ -35,6 +35,8 @@ "MODULE_ERROR_UNAUTHORIZED": "Authorization failed.", "MODULE_ERROR_UNSPECIFIED": "Check logs for more details.", + "NEWSFEED_NO_ITEMS": "No news at the moment.", + "UPDATE_NOTIFICATION": "MagicMirror² update available.", "UPDATE_NOTIFICATION_MODULE": "Update available for {MODULE_NAME} module.", "UPDATE_INFO_SINGLE": "The current installation is {COMMIT_COUNT} commit behind on the {BRANCH_NAME} branch.",