Files
MagicMirror/translations/uk.json
Kristjan ESPERANTO df8a882966 fix(newsfeed): fix full article view and add framing check (#4039)
I was playing around with the newsfeed notification system
(`ARTICLE_MORE_DETAILS`, `ARTICLE_TOGGLE_FULL`, …) and discovered some
issues with the full article view:

The iframe was loading the CORS proxy URL instead of the actual article
URL, which could cause blank screens depending on the feed. Also, many
news sites block iframes entirely (`X-Frame-Options: DENY`) and the user
got no feedback at all — just an empty page. On top of that, scrolling
used `window.scrollTo()` which moved the entire MagicMirror page instead
of just the article.

This PR cleans that up:

- Use the raw article URL for the iframe (CORS proxy is only needed for
server-side feed fetching)
- Check `X-Frame-Options` / `Content-Security-Policy` headers
server-side before showing the iframe — if the site blocks it, show a
brief "Article cannot be displayed here." message and return to normal
view
- Show the iframe as a fixed full-screen overlay so other modules aren't
affected, scroll via `container.scrollTop`
- Keep the progressive disclosure behavior for `ARTICLE_MORE_DETAILS`
(title → description → iframe → scroll)
- Delete `fullarticle.njk`, replace with `getDom()` override
- Fix `ARTICLE_INFO_RESPONSE` returning proxy URL instead of real URL
- A few smaller fixes (negative scroll, null guard)
- Add `NEWSFEED_ARTICLE_UNAVAILABLE` translation to all 47 language
files
- Add e2e tests for the notification handlers (`ARTICLE_NEXT`,
`ARTICLE_PREVIOUS`, `ARTICLE_INFO_REQUEST`, `ARTICLE_LESS_DETAILS`)

## What this means for users

- The full article view now works reliably across different feeds
- If a news site blocks iframes, the user sees a brief message instead
of a blank screen
- Additional e2e tests make the module more robust and less likely to
break silently in future MagicMirror versions
2026-03-01 00:32:42 +01:00

55 lines
2.6 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"LOADING": "Завантаження …",
"DAYBEFOREYESTERDAY": "Позавчора",
"YESTERDAY": "вчора",
"TODAY": "Сьогодні",
"TOMORROW": "Завтра",
"DAYAFTERTOMORROW": "Післязавтра",
"RUNNING": "Закінчується через",
"EMPTY": "Немає найближчих подій",
"WEEK": "Тиждень {weekNumber}",
"N": "Пн",
"NNE": "ПнПнСх",
"NE": "ПнСх",
"ENE": "СхПнСх",
"E": "Сх",
"ESE": "СхПдСх",
"SE": "СхПд",
"SSE": "СхСхПд",
"S": "Пд",
"SSW": "ПдПдЗх",
"SW": "ПдЗх",
"WSW": "ЗхПдЗх",
"W": "Зх",
"WNW": "ЗхПнЗх",
"NW": "ПнЗх",
"NNW": "ПнПнЗх",
"FEELS": "Відчувається як {DEGREE}",
"PRECIP_POP": "Опади",
"PRECIP_AMOUNT": "Кількість опадів",
"MODULE_CONFIG_CHANGED": "Змінились параметри конфігурації модуля {MODULE_NAME}.\nБудь ласка, перевірте документацію.",
"MODULE_CONFIG_ERROR": "Помилка в модулі {MODULE_NAME}. {ERROR}",
"MODULE_ERROR_MALFORMED_URL": "Неправильний URL.",
"MODULE_ERROR_NO_CONNECTION": "Немає підключення до Інтернету.",
"MODULE_ERROR_UNAUTHORIZED": "Авторизація не вдалася.",
"MODULE_ERROR_RATE_LIMITED": "Забагато запитів. Повторна спроба пізніше.",
"MODULE_ERROR_SERVER_ERROR": "Помилка сервера. Повторна спроба пізніше.",
"MODULE_ERROR_CLIENT_ERROR": "Запит не вдався.",
"MODULE_ERROR_UNSPECIFIED": "Перевірте журнали для отримання додаткової інформації.",
"NEWSFEED_NO_ITEMS": "Немає новин на даний момент.",
"NEWSFEED_ARTICLE_UNAVAILABLE": "Статтю неможливо відобразити тут.",
"UPDATE_NOTIFICATION": "Є оновлення для MagicMirror².",
"UPDATE_NOTIFICATION_MODULE": "Є оновлення для модуля {MODULE_NAME}.",
"UPDATE_INFO_SINGLE": "Поточна версія на {COMMIT_COUNT} комміт позаду від гілки {BRANCH_NAME}.",
"UPDATE_INFO_MULTIPLE": "Поточна інсталяція на {COMMIT_COUNT} комітів позаду від гілки {BRANCH_NAME}.",
"UPDATE_NOTIFICATION_DONE": "Оновлення завершено для модуля {MODULE_NAME}",
"UPDATE_NOTIFICATION_ERROR": "Помилка оновлення модуля {MODULE_NAME}",
"UPDATE_NOTIFICATION_NEED-RESTART": "Потрібен перезапуск MagicMirror."
}