| gio | dd21315 | 2024-09-27 11:26:59 +0200 | [diff] [blame] | 1 | {{ define "title" }}dodo: create account{{ end }} |
| Giorgi Lekveishvili | 58cb148 | 2023-12-04 12:33:49 +0400 | [diff] [blame] | 2 | {{ define "main" }} |
| gio | e71b12b | 2026-07-29 10:02:37 +0400 | [diff] [blame] | 3 | <div class="terminal"> |
| 4 | <div class="logo" aria-hidden="true"> |
| 5 | <span>do</span><span>do:</span> |
| 6 | </div> |
| 7 | <h1>Create account</h1> |
| 8 | <form id="register-form" action="{{ .FormAction }}" method="POST"> |
| 9 | {{ if or .GeneralError .UsernameErrors .PasswordErrors }} |
| 10 | <div role="alert"> |
| 11 | {{ if .GeneralError }}<p>{{ .GeneralError }}</p>{{ end }} |
| 12 | {{ if or .UsernameErrors .PasswordErrors }} |
| 13 | <p>Please correct the following errors:</p> |
| 14 | <ul> |
| 15 | {{ range .UsernameErrors }}<li>{{ .Message }}</li>{{ end }} |
| 16 | {{ range .PasswordErrors }}<li>{{ .Message }}</li>{{ end }} |
| 17 | </ul> |
| 18 | {{ end }} |
| 19 | </div> |
| 20 | {{ end }} |
| 21 | |
| 22 | <label for="register-username">Username</label> |
| 23 | <input id="register-username" type="text" name="username" value="{{ .Username }}" autocomplete="username" autocapitalize="none" spellcheck="false" required{{ if .UsernameErrors }} aria-invalid="true" aria-describedby="{{ range $index, $_ := .UsernameErrors }}{{ if $index }} {{ end }}register-username-error-{{ $index }}{{ end }}"{{ end }} /> |
| 24 | {{ range $index, $error := .UsernameErrors }} |
| 25 | <p id="register-username-error-{{ $index }}" class="error-message">{{ $error.Message }}</p> |
| 26 | {{ end }} |
| 27 | |
| 28 | <label for="register-password">Password</label> |
| 29 | <input id="register-password" type="password" name="password" autocomplete="new-password" required aria-describedby="register-password-policy register-password-symbols{{ range $index, $_ := .PasswordErrors }} register-password-error-{{ $index }}{{ end }}"{{ if .PasswordErrors }} aria-invalid="true"{{ end }} /> |
| 30 | <p id="register-password-policy">Use at least 20 bytes, including an uppercase letter, lowercase letter, number, and an ASCII symbol or space.</p> |
| 31 | <p id="register-password-symbols">Accepted ASCII symbols: <code>!"#$%&'()*+,-./:;<=>?@[\]^_{|}~</code>. ASCII space is also accepted.</p> |
| 32 | {{ range $index, $error := .PasswordErrors }} |
| 33 | <p id="register-password-error-{{ $index }}" class="error-message">{{ $error.Message }}</p> |
| 34 | {{ end }} |
| 35 | |
| 36 | <input id="register-csrf-token" type="hidden" name="csrf_token" value="{{ .CSRFToken }}" /> |
| 37 | <button id="register-submit" type="submit">Create account</button> |
| 38 | </form> |
| 39 | <nav aria-label="Sign in"> |
| 40 | <a href="/login">Sign in</a> |
| 41 | </nav> |
| 42 | </div> |
| Giorgi Lekveishvili | 58cb148 | 2023-12-04 12:33:49 +0400 | [diff] [blame] | 43 | {{ end }} |