From cf5174da693e02b6aa07f31f4a994a0f8c984a53 Mon Sep 17 00:00:00 2001 From: Ted Johansson Date: Mon, 15 Jul 2024 16:12:44 +0800 Subject: [PATCH] FIX: Fix broken out of date themes admin notice (#27916) The OutOfDateThemes problem check is using an old method of setting the message, by overriding #message. It should instead use #translation_keys. (By chance I noticed the same thing applies to UnreachableThemes. --- app/models/problem_check.rb | 15 +++++-------- .../problem_check/out_of_date_themes.rb | 22 +++++++++++-------- .../problem_check/unreachable_themes.rb | 22 +++++++++++-------- config/locales/server.en.yml | 4 ++-- 4 files changed, 33 insertions(+), 30 deletions(-) diff --git a/app/models/problem_check.rb b/app/models/problem_check.rb index 43c4c6765aa..e8b07342b3b 100644 --- a/app/models/problem_check.rb +++ b/app/models/problem_check.rb @@ -169,12 +169,11 @@ class ProblemCheck def problem(override_key: nil, override_data: {}) [ Problem.new( - message || - I18n.t( - override_key || translation_key, - base_path: Discourse.base_path, - **override_data.merge(translation_data).symbolize_keys, - ), + I18n.t( + override_key || translation_key, + base_path: Discourse.base_path, + **override_data.merge(translation_data).symbolize_keys, + ), priority: self.config.priority, identifier:, ), @@ -185,10 +184,6 @@ class ProblemCheck [] end - def message - nil - end - def translation_key "dashboard.problem.#{identifier}" end diff --git a/app/services/problem_check/out_of_date_themes.rb b/app/services/problem_check/out_of_date_themes.rb index f298f88df96..0a5aacd4c1c 100644 --- a/app/services/problem_check/out_of_date_themes.rb +++ b/app/services/problem_check/out_of_date_themes.rb @@ -11,19 +11,23 @@ class ProblemCheck::OutOfDateThemes < ProblemCheck private + def translation_data + { themes_list: } + end + def out_of_date_themes @out_of_date_themes ||= RemoteTheme.out_of_date_themes end - def message - "#{I18n.t("dashboard.problem.out_of_date_themes")}" - end - def themes_list - out_of_date_themes - .map do |name, id| - "
  • #{CGI.escapeHTML(name)}
  • " - end - .join("\n") + <<~HTML.squish + + HTML end end diff --git a/app/services/problem_check/unreachable_themes.rb b/app/services/problem_check/unreachable_themes.rb index 708700bdf9a..8ebd3f3b4b9 100644 --- a/app/services/problem_check/unreachable_themes.rb +++ b/app/services/problem_check/unreachable_themes.rb @@ -11,19 +11,23 @@ class ProblemCheck::UnreachableThemes < ProblemCheck private + def translation_data + { themes_list: } + end + def unreachable_themes @unreachable_themes ||= RemoteTheme.unreachable_themes end - def message - "#{I18n.t("dashboard.problem.unreachable_themes")}" - end - def themes_list - unreachable_themes - .map do |name, id| - "
  • #{CGI.escapeHTML(name)}
  • " - end - .join("\n") + <<~HTML.squish + + HTML end end diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 4d5031a8f45..5de98d755b9 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -1668,8 +1668,8 @@ en: poll_pop3_timeout: "Connection to the POP3 server is timing out. Incoming email could not be retrieved. Please check your POP3 settings and service provider." poll_pop3_auth_error: "Connection to the POP3 server is failing with an authentication error. Please check your POP3 settings." force_https: "Your website is using SSL. But `force_https` is not yet enabled in your site settings." - out_of_date_themes: "Updates are available for the following themes:" - unreachable_themes: "We were unable to check for updates on the following themes:" + out_of_date_themes: "Updates are available for the following themes:%{themes_list}" + unreachable_themes: "We were unable to check for updates on the following themes:%{themes_list}" watched_words: "The regular expression for %{action} watched words is invalid. Please check your Watched Word settings, or disable the 'watched words regular expressions' site setting." google_analytics_version: "Your Discourse is currently using Google Analytics 3, which will no longer be supported after July 2023. Upgrade to Google Analytics 4 now to continue receiving valuable insights and analytics for your website's performance." category_style_deprecated: "Your Discourse is currently using a deprecated category style which will be removed before the final beta release of Discourse 3.2. Please refer to Moving to a Single Category Style Site Setting for instructions on how to keep your selected category style."