SPA: discoverable link to the legacy Blazor UI while parity gaps remain (#91 follow-up) #147

Closed
opened 2026-07-07 11:02:27 +02:00 by timothy · 1 comment
Owner

With root / redirecting to the SPA (#91 phase a), the only way to reach Blazor-only features (collections, media browse/search, trakt, filler, watermarks, ffmpeg profiles, blocks/decos/templates, playout editors, logs, troubleshooting — #140–#146) is typing /system/health or a deep URL by hand. Add a "Classic UI" link in the SPA (Settings → System is a natural home) pointing at /system/health, and optionally a lightweight "opens in ChicoryTV" cue on migrated Blazor sidebar links (same MudNavGroup mixes redirecting and non-redirecting entries). Remove the link again in #91 phase (b).

With root `/` redirecting to the SPA (#91 phase a), the only way to reach Blazor-only features (collections, media browse/search, trakt, filler, watermarks, ffmpeg profiles, blocks/decos/templates, playout editors, logs, troubleshooting — #140–#146) is typing `/system/health` or a deep URL by hand. Add a "Classic UI" link in the SPA (Settings → System is a natural home) pointing at `/system/health`, and optionally a lightweight "opens in ChicoryTV" cue on migrated Blazor sidebar links (same MudNavGroup mixes redirecting and non-redirecting entries). Remove the link again in #91 phase (b).
Author
Owner

Closed via PR #150 (merged to main).

Done: "Classic UI" row in Settings → System About card — plain <a href="/system/health"> for a real full-page hop into Blazor (deliberately not SPA pushState; /system/health is absent from LegacyUiRedirects.Map so no bounce-back). Plus the optional cue: "Opens in ChicoryTV" MudTooltip on exactly the 11 sidebar MudNavLinks that 302-redirect per LegacyUiRedirects.Map (channels, media/libraries, schedules, playouts, 7× settings/*).

Files: web/src/screens/SettingsScreen.tsx, web/src/App.test.tsx (link coverage), ErsatzTV/Shared/MainLayout.razor (ChicoryCue RenderFragment, ersatztv#147 removal marker in @code), ErsatzTV/Locals/Shared/MainLayout.resx (neutral key only; pl/pt-br fall back).

Verification: 146 web tests green, tsc clean, dotnet build clean; adversarial review verdict SHIP (verified no global anchor interceptor hijacks the link; cue coverage exact vs the redirect map).

Removal in #91 phase (b): grep "Classic UI" (SPA) + ersatztv#147 (Blazor).

No docs updated — UI-only, temporary by design.

**Closed via PR #150** (merged to main). **Done:** "Classic UI" row in Settings → System About card — plain `<a href="/system/health">` for a real full-page hop into Blazor (deliberately not SPA pushState; /system/health is absent from LegacyUiRedirects.Map so no bounce-back). Plus the optional cue: "Opens in ChicoryTV" MudTooltip on exactly the 11 sidebar MudNavLinks that 302-redirect per LegacyUiRedirects.Map (channels, media/libraries, schedules, playouts, 7× settings/*). **Files:** web/src/screens/SettingsScreen.tsx, web/src/App.test.tsx (link coverage), ErsatzTV/Shared/MainLayout.razor (ChicoryCue RenderFragment, `ersatztv#147` removal marker in @code), ErsatzTV/Locals/Shared/MainLayout.resx (neutral key only; pl/pt-br fall back). **Verification:** 146 web tests green, tsc clean, dotnet build clean; adversarial review verdict SHIP (verified no global anchor interceptor hijacks the link; cue coverage exact vs the redirect map). **Removal in #91 phase (b):** grep "Classic UI" (SPA) + `ersatztv#147` (Blazor). No docs updated — UI-only, temporary by design.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: timothy/ersatztv#147