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.",