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