]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/login/login.component.html
0fafe12f8274973b7ab90bd2e0402ccfcba31407
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / core / auth / login / login.component.html
1 <div class="container"
2 *ngIf="isLoginActive">
3 <h1 class="sr-only">Ceph login</h1>
4 <form name="loginForm"
5 (ngSubmit)="login()"
6 #loginForm="ngForm"
7 novalidate>
8
9 <!-- Username -->
10 <div class="form-group has-feedback d-flex flex-column py-3">
11 <label class="placeholder ps-3"
12 for="username"
13 i18n>Username</label>
14 <input id="username"
15 name="username"
16 [(ngModel)]="model.username"
17 #username="ngModel"
18 type="text"
19 [attr.aria-invalid]="username.invalid"
20 aria-labelledby="username"
21 class="form-control ps-3"
22 required
23 autofocus>
24 <div class="invalid-feedback ps-3"
25 *ngIf="(loginForm.submitted || username.dirty) && username.invalid"
26 i18n>Username is required</div>
27 </div>
28
29 <!-- Password -->
30 <div class="form-group has-feedback"
31 id="password-div">
32 <div class="input-group d-flex flex-nowrap">
33 <div class="d-flex flex-column flex-grow-1 py-3">
34 <label class="placeholder ps-3"
35 for="password"
36 i18n>Password</label>
37 <input id="password"
38 name="password"
39 [(ngModel)]="model.password"
40 #password="ngModel"
41 type="password"
42 [attr.aria-invalid]="password.invalid"
43 aria-labelledby="password"
44 class="form-control ps-3"
45 required>
46 <div class="invalid-feedback ps-3"
47 *ngIf="(loginForm.submitted || password.dirty) && password.invalid"
48 i18n>Password is required</div>
49 </div>
50 <span class="form-group-append">
51 <button type="button"
52 class="btn btn-outline-light btn-password h-100 px-4"
53 cdPasswordButton="password"
54 aria-label="toggle-password">
55 </button>
56 </span>
57 </div>
58 </div>
59
60 <input type="submit"
61 class="btn btn-accent px-5 py-2"
62 [disabled]="loginForm.invalid"
63 value="Log in"
64 i18n-value>
65 </form>
66 </div>