32 lines
1.2 KiB
Plaintext
32 lines
1.2 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>
|
|
<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 />
|