mirror of
https://github.com/goharbor/harbor
synced 2025-04-17 13:33:39 +00:00
38 lines
2.0 KiB
HTML
38 lines
2.0 KiB
HTML
<div class="login-wrapper">
|
|
<form #signInForm="ngForm" class="login">
|
|
<label class="title">
|
|
VMware Harbor<span class="trademark">™</span>
|
|
</label>
|
|
<div class="login-group">
|
|
<label for="username" aria-haspopup="true" role="tooltip" class="tooltip tooltip-validation tooltip-md tooltip-top-left" [class.invalid]="userNameInput.invalid && (userNameInput.dirty || userNameInput.touched)">
|
|
<input class="username" type="text" required
|
|
[(ngModel)]="signInCredential.principal"
|
|
name="login_username" id="login_username" placeholder="Username"
|
|
#userNameInput='ngModel'>
|
|
<span class="tooltip-content">
|
|
Username is required!
|
|
</span>
|
|
</label>
|
|
<label for="username" aria-haspopup="true" role="tooltip" class="tooltip tooltip-validation tooltip-md tooltip-top-left" [class.invalid]="passwordInput.invalid && (passwordInput.dirty || passwordInput.touched)">
|
|
<input class="password" type="password" required
|
|
[(ngModel)]="signInCredential.password"
|
|
name="login_password" id="login_password" placeholder="Password"
|
|
#passwordInput="ngModel">
|
|
<span class="tooltip-content">
|
|
Password is required!
|
|
</span>
|
|
</label>
|
|
<div class="checkbox">
|
|
<input type="checkbox" id="rememberme">
|
|
<label for="rememberme">
|
|
Remember me
|
|
</label>
|
|
</div>
|
|
<div [class.visibility-hidden]="signInStatus != statusError" class="error active">
|
|
Invalid user name or password
|
|
</div>
|
|
<button [disabled]="signInStatus === statusOnGoing" type="submit" class="btn btn-primary" (click)="signIn()">LOG IN</button>
|
|
<a href="javascript:void(0)" class="signup" (click)="signUp()">Sign up for an account</a>
|
|
</div>
|
|
</form>
|
|
</div> |