- panel.css: .sp-signin-form .sp-form, as theme.css has it now.
- templates/login.html: the state is div.sp-form with the mockup's
heading and line; the empty form of ef8a82e is gone.
- tests: the hint is checked by its new wording, and that the page
carries no form at all.
Evidence
- docs/assets/panel-redesign/evidence/login-no-admin.png: 1440x900,
headless Edge, real templates served locally (no Docker here).
login.png re-shot after the selector change: byte-identical.
- go test -count=1 ./internal/web/... : ok (web, auth, handlers,
validate, view)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
1.5 KiB
HTML
30 lines
1.5 KiB
HTML
{{/* Sign-in (mockup login.html): the form column of the signed-out screen. The
|
|
layout draws the brand half and the legal notice; this is only what stands
|
|
between them. Before the first administrator exists there is nothing to sign
|
|
in as, so the form gives way to a pointer at the setup link. */}}
|
|
{{define "content"}}
|
|
{{if .SetupHint}}
|
|
{{/* Mockup login-no-admin.html: the same column, not a form. */}}
|
|
<div class="sp-form">
|
|
{{if .Host}}<p>{{template "kicker" .Host}}</p>{{end}}
|
|
<h1 class="title is-3">No administrator yet</h1>
|
|
<p class="sp-muted">Open the one-time setup link printed in the container log to create one.</p>
|
|
</div>
|
|
{{else}}
|
|
<form class="sp-form" method="post" action="/login">
|
|
{{if .Host}}<p>{{template "kicker" .Host}}</p>{{end}}
|
|
<h1 class="title is-3">Sign in</h1>
|
|
{{if .Error}}{{template "flash" .Notice}}{{end}}
|
|
<div class="field">
|
|
<label class="label" for="username">Username</label>
|
|
<div class="control has-icons-left"><input class="input" id="username" name="username" autocomplete="username" autofocus required><span class="icon is-left"><i class="ti ti-user"></i></span></div>
|
|
</div>
|
|
<div class="field">
|
|
<label class="label" for="password">Password</label>
|
|
<div class="control has-icons-left"><input class="input" id="password" name="password" type="password" autocomplete="current-password" required><span class="icon is-left"><i class="ti ti-lock"></i></span></div>
|
|
</div>
|
|
<div class="field mt-5"><button type="submit" class="button is-primary is-fullwidth">Sign in</button></div>
|
|
</form>
|
|
{{end}}
|
|
{{end}}
|