feat(adminui): LoginCard sign-in; remove dead StatusBadge

This commit is contained in:
Joseph Doherty
2026-06-03 03:13:23 -04:00
parent 70d764b063
commit aadbf49678
2 changed files with 6 additions and 38 deletions
@@ -5,39 +5,14 @@
the form POSTs to /auth/login while ASP.NET still owns an unstarted HTTP response. the form POSTs to /auth/login while ASP.NET still owns an unstarted HTTP response.
Calling SignInAsync from an interactive circuit would be too late. Calling SignInAsync from an interactive circuit would be too late.
Uses LoginLayout (no side rail) so the page renders as a clean centred card. *@ Uses LoginLayout (no side rail) so the page renders as a clean centred card.
The card itself is the shared kit's <LoginCard> — it owns the .login-wrap centring
wrapper, the .panel shell, and the static form-POST (username/password/returnUrl). *@
@attribute [Microsoft.AspNetCore.Authorization.AllowAnonymous] @attribute [Microsoft.AspNetCore.Authorization.AllowAnonymous]
<div class="login-wrap rise" style="animation-delay:.02s"> <LoginCard Product="OtOpcUa Admin" Action="/auth/login" ReturnUrl="@ReturnUrl" Error="@Error">
<section class="panel"> <AntiforgeryToken />
<div style="padding:1.4rem 1.1rem 1.25rem"> </LoginCard>
<h1 class="login-title">OtOpcUa Admin &mdash; sign in</h1>
<form method="post" action="/auth/login" data-enhance="false">
@if (ReturnUrl is not null)
{
<input type="hidden" name="returnUrl" value="@ReturnUrl"/>
}
<div class="mb-3">
<label class="form-label" for="username">Username</label>
<input id="username" name="username" type="text"
class="form-control form-control-sm" autocomplete="username"/>
</div>
<div class="mb-3">
<label class="form-label" for="password">Password</label>
<input id="password" name="password" type="password"
class="form-control form-control-sm" autocomplete="current-password"/>
</div>
@if (!string.IsNullOrWhiteSpace(Error))
{
<div class="panel notice" style="margin-bottom:.85rem">@Error</div>
}
<button class="btn btn-primary w-100" type="submit">Sign in</button>
</form>
</div>
</section>
</div>
@code { @code {
/// <summary>Error message surfaced by /auth/login after a failed bind.</summary> /// <summary>Error message surfaced by /auth/login after a failed bind.</summary>
@@ -1,7 +0,0 @@
@* Status chip — wraps the theme.css .chip / .chip-ok / .chip-warn / .chip-bad / .chip-idle classes. *@
<span class="chip @CssClass">@Text</span>
@code {
[Parameter] public string Text { get; set; } = "";
[Parameter] public string CssClass { get; set; } = "chip-idle";
}