sqlinsight-pro/src/SQLInsight.Web/Components/Layout/MainLayout.razor
Søren Eggert Lundsteen Olsen cc71fb12c6 Menu in foldable groups
The web menu is grouped with details/summary (no script, CSP safe):
Overvågning, Analyse, Konfiguration og sikkerhed, Rapporter, Dynamics AX
(hidden until a database is recognised as AX), Support, System and
Community. The group holding the current page is open, including pages
under /instanser/{navn}/. Per-instance entries go through /vaelg/{side}
(straight to the instance when there is only one). On narrow screens
the whole menu folds behind a "Menu" checkbox toggle.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 09:17:43 +02:00

49 lines
1.9 KiB
Text

@inherits LayoutComponentBase
@inject Microsoft.Extensions.Options.IOptions<WebOptions> Options
@inject InsightRepository Repository
<div class="shell">
<aside class="sidebar">
<a class="brand" href="/">
<span class="logo" aria-hidden="true">SI</span>
<span>SQLInsight <strong>Pro</strong></span>
</a>
@* On narrow screens the menu folds away behind "Menu" (a checkbox: no script). *@
<input type="checkbox" id="nav-toggle" class="nav-toggle" />
<label for="nav-toggle" class="nav-toggle-label"><Icon Name="list" /> Menu</label>
<MainNav />
<div class="support-card">
<Icon Name="support" />
<strong>Brug for en ekspert?</strong>
<p>Professional og Enterprise giver prioriteret mail- og telefonsupport fra erfarne SQL Server-folk.</p>
<a href="@(new Uri(Options.Value.CommunityUrl, "support"))" rel="noopener">Se supportaftaler</a>
</div>
</aside>
<div class="main">
<header class="topbar">
<span class="topbar-note">Gratis og open source · kører on-prem</span>
<button type="button" class="theme-toggle" data-theme-toggle title="Skift mellem lyst og mørkt tema">
<Icon Name="moon" /> <span>Tema</span>
</button>
</header>
<main class="page">
@Body
</main>
<footer class="footer">SQLInsight Pro · MIT-licens · <a href="https://git.seosoft.dk/seo/sqlinsight-pro">kildekode</a></footer>
</div>
</div>
@if (_supportAvailable)
{
@* Tells support-menu.js that "Opret supportsag" may be offered on findings. *@
<div hidden data-support-available></div>
}
@code {
private bool _supportAvailable;
protected override async Task OnInitializedAsync() =>
_supportAvailable = (await Repository.GetHubStatusAsync())?.AllowsSupportCases == true;
}