fix(adminui): clear stale one-time key banner on delete; modal backdrop no longer overruns viewport (#631)

Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
Joseph Doherty
2026-10-08 14:21:20 -04:00
parent d898262c4a
commit c9fdcc3ea6
2 changed files with 26 additions and 0 deletions
@@ -142,6 +142,13 @@
try
{
_keys = await Keys.ListAsync(default);
// The one-time banner is only meaningful while its key exists; the credential is
// otua_<keyId>_<secret>, so drop it once no listed key matches (deleted here or elsewhere).
if (_created is not null
&& !_keys.Any(k => _created.StartsWith($"otua_{k.ApiKeyId}_", StringComparison.Ordinal)))
{
_created = null;
}
}
catch (Exception ex)
{
@@ -48,3 +48,22 @@
flex: 0 0 18px;
width: 18px;
}
/* Modal sizing (#631). Bootstrap sizes .modal-backdrop with 100vw/100vh, and 100vw includes the
scrollbar gutter, so on a tall form (Configure driver / Modbus) the backdrop overran the viewport
and produced a page-level horizontal scrollbar. Pin it with inset:0 instead (no vw/vh), and keep
the dialog inside the viewport. These modals are hand-rolled (display:block, no Bootstrap JS). */
.modal-backdrop {
inset: 0;
width: auto;
height: auto;
}
.modal {
overflow-x: hidden;
overflow-y: auto;
}
.modal-dialog {
max-width: min(var(--bs-modal-width, 500px), calc(100vw - 2rem));
}