9cff87fe85
Remove project bookkeeping citations from shipped code comments across the solution: hyphenated task IDs (WP-14, StoreAndForward-025), milestone/task/ issue refs (M3, Task 4, Audit Log #23, #21), Bundle X task-bundle labels, and C/D/K/S/T phase labels. Comment text only — no code logic, string/log literals, or XML-doc structure changed. Genuine descriptions are preserved (only the citation is stripped), and technical lookalikes are retained (UTF-8, SHA-256, T00:00:00, M365, UTC-5, pre-C4/pre-C5 schema versions). Flagged by the new CommentChecker TaskReferenceInComment / TrackingReferenceInComment checks plus targeted grep passes; full solution builds clean, append-only guard tests pass.
36 lines
1.4 KiB
Plaintext
36 lines
1.4 KiB
Plaintext
@inherits LayoutComponentBase
|
|
|
|
@* The side-rail chassis (brand bar + responsive hamburger) is the shared
|
|
ZB.MOM.WW.Theme ThemeShell. NavMenu fills the rail's <Nav> slot with the
|
|
policy-gated nav groups; the session/sign-out block fills <RailFooter>. *@
|
|
<ThemeShell Product="ScadaBridge" Accent="#2f5fd0">
|
|
<Nav>
|
|
<NavMenu />
|
|
</Nav>
|
|
<RailFooter>
|
|
@* Dark-mode toggle sits in the rail footer alongside the session
|
|
block. It is auth-agnostic (pure client-side theme) so it renders even
|
|
on the login page. *@
|
|
<DarkModeToggle />
|
|
<AuthorizeView>
|
|
<Authorized>
|
|
@* CentralUI-024: claim type resolved via JwtTokenService. *@
|
|
<span class="rail-user">@context.User.GetDisplayName()</span>
|
|
<form method="post" action="/auth/logout" data-enhance="false">
|
|
@* CentralUI-017: logout is a state-changing POST and is
|
|
CSRF-protected — the antiforgery token is required. *@
|
|
<AntiforgeryToken />
|
|
<button type="submit" class="rail-btn">Sign Out</button>
|
|
</form>
|
|
</Authorized>
|
|
</AuthorizeView>
|
|
</RailFooter>
|
|
<ChildContent>@Body</ChildContent>
|
|
</ThemeShell>
|
|
|
|
@* Global host for IDialogService. One instance per layout renders all confirm/prompt
|
|
dialogs raised via IDialogService.ConfirmAsync / PromptAsync. *@
|
|
<DialogHost />
|
|
|
|
<SessionExpiry />
|