From 0ee62dbc7d424f7bbdfedc32733d7b8234da7600 Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Sun, 13 Jul 2025 13:15:16 +0000 Subject: [PATCH] fix recent regression to health check links (#2147) --- ErsatzTV.Core/Health/HealthCheckLink.cs | 3 +++ ErsatzTV.Core/Health/HealthCheckResult.cs | 2 +- .../Health/Checks/BaseHealthCheck.cs | 2 +- .../Health/Checks/FileNotFoundHealthCheck.cs | 3 ++- .../Health/Checks/UnavailableHealthCheck.cs | 3 ++- ErsatzTV/Pages/Index.razor | 24 ++++++++++++++----- 6 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 ErsatzTV.Core/Health/HealthCheckLink.cs diff --git a/ErsatzTV.Core/Health/HealthCheckLink.cs b/ErsatzTV.Core/Health/HealthCheckLink.cs new file mode 100644 index 00000000..91ee2ff1 --- /dev/null +++ b/ErsatzTV.Core/Health/HealthCheckLink.cs @@ -0,0 +1,3 @@ +namespace ErsatzTV.Core.Health; + +public record HealthCheckLink(string Link); diff --git a/ErsatzTV.Core/Health/HealthCheckResult.cs b/ErsatzTV.Core/Health/HealthCheckResult.cs index 13cebdd5..1227411a 100644 --- a/ErsatzTV.Core/Health/HealthCheckResult.cs +++ b/ErsatzTV.Core/Health/HealthCheckResult.cs @@ -1,3 +1,3 @@ namespace ErsatzTV.Core.Health; -public record HealthCheckResult(string Title, HealthCheckStatus Status, string Message, string BriefMessage, Option Link); +public record HealthCheckResult(string Title, HealthCheckStatus Status, string Message, string BriefMessage, Option Link); diff --git a/ErsatzTV.Infrastructure/Health/Checks/BaseHealthCheck.cs b/ErsatzTV.Infrastructure/Health/Checks/BaseHealthCheck.cs index c3e4cc9c..64d419cb 100644 --- a/ErsatzTV.Infrastructure/Health/Checks/BaseHealthCheck.cs +++ b/ErsatzTV.Infrastructure/Health/Checks/BaseHealthCheck.cs @@ -24,7 +24,7 @@ public abstract class BaseHealthCheck protected HealthCheckResult WarningResult(string message, string briefMessage) => new(Title, HealthCheckStatus.Warning, message, briefMessage, None); - protected HealthCheckResult WarningResult(string message, string briefMessage, string link) => + protected HealthCheckResult WarningResult(string message, string briefMessage, HealthCheckLink link) => new(Title, HealthCheckStatus.Warning, message, briefMessage, link); protected HealthCheckResult InfoResult(string message, string briefMessage) => diff --git a/ErsatzTV.Infrastructure/Health/Checks/FileNotFoundHealthCheck.cs b/ErsatzTV.Infrastructure/Health/Checks/FileNotFoundHealthCheck.cs index 9569a18e..6a39a94f 100644 --- a/ErsatzTV.Infrastructure/Health/Checks/FileNotFoundHealthCheck.cs +++ b/ErsatzTV.Infrastructure/Health/Checks/FileNotFoundHealthCheck.cs @@ -57,7 +57,8 @@ public class FileNotFoundHealthCheck : BaseHealthCheck, IFileNotFoundHealthCheck return WarningResult( $"There are {count} items that do not exist on disk, including the following: {files}", - "media/trash"); + $"There are {count} items that do not exist on disk", + new HealthCheckLink("media/trash")); } return OkResult(); diff --git a/ErsatzTV.Infrastructure/Health/Checks/UnavailableHealthCheck.cs b/ErsatzTV.Infrastructure/Health/Checks/UnavailableHealthCheck.cs index c0b617ac..b6a32d5d 100644 --- a/ErsatzTV.Infrastructure/Health/Checks/UnavailableHealthCheck.cs +++ b/ErsatzTV.Infrastructure/Health/Checks/UnavailableHealthCheck.cs @@ -85,7 +85,8 @@ public class UnavailableHealthCheck : BaseHealthCheck, IUnavailableHealthCheck return WarningResult( $"There are {count} items that are unavailable because ErsatzTV cannot find them on disk, including the following: {files}", - "search?query=state%3aUnavailable"); + $"There are {count} items that are unavailable", + new HealthCheckLink("search?query=state%3aUnavailable")); } return OkResult(); diff --git a/ErsatzTV/Pages/Index.razor b/ErsatzTV/Pages/Index.razor index 04d9ad9d..6bbffa49 100644 --- a/ErsatzTV/Pages/Index.razor +++ b/ErsatzTV/Pages/Index.razor @@ -55,8 +55,7 @@ + ServerData="@(new Func>>(ServerReload))"> Check Message @@ -87,9 +86,9 @@ @if (context.Link.IsSome) { - foreach (string link in context.Link) + foreach (HealthCheckLink link in context.Link) { - + @context.Message } @@ -102,7 +101,21 @@ } - @context.BriefMessage + @if (context.Link.IsSome) + { + foreach (HealthCheckLink link in context.Link) + { + + @context.BriefMessage + + } + } + else + { + + @context.BriefMessage + + } @@ -124,7 +137,6 @@ private readonly CancellationTokenSource _cts = new(); private string _releaseNotes; - private MudTable _table; protected override void OnInitialized() {