<span *ngIf="error === 'User email is not verified.'"> <a i18n routerLink="/verify-account/ask-send-email">Request new verification email.</a></span>
</div>
- <form role="form" (ngSubmit)="login()" [formGroup]="form">
- <div class="form-group">
- <div>
- <label i18n for="username">User</label>
- <input
- type="text" id="username" i18n-placeholder placeholder="Username or email address" required tabindex="1"
- formControlName="username" class="form-control" [ngClass]="{ 'input-error': formErrors['username'] }" #emailInput
- >
- <a i18n *ngIf="signupAllowed === true" routerLink="/signup" class="create-an-account">
- or create an account
- </a>
+ <div class="login-form-and-externals">
+
+ <form role="form" (ngSubmit)="login()" [formGroup]="form">
+ <div class="form-group">
+ <div>
+ <label i18n for="username">User</label>
+ <input
+ type="text" id="username" i18n-placeholder placeholder="Username or email address" required tabindex="1"
+ formControlName="username" class="form-control" [ngClass]="{ 'input-error': formErrors['username'] }" #usernameInput
+ >
+ <a i18n *ngIf="signupAllowed === true" routerLink="/signup" class="create-an-account">
+ or create an account
+ </a>
+ </div>
+
+ <div *ngIf="formErrors.username" class="form-error">
+ {{ formErrors.username }}
+ </div>
</div>
- <div *ngIf="formErrors.username" class="form-error">
- {{ formErrors.username }}
+ <div class="form-group">
+ <label i18n for="password">Password</label>
+ <div>
+ <input
+ type="password" name="password" id="password" i18n-placeholder placeholder="Password" required tabindex="2" autocomplete="current-password"
+ formControlName="password" class="form-control" [ngClass]="{ 'input-error': formErrors['password'] }"
+ >
+ <a i18n-title class="forgot-password-button" (click)="openForgotPasswordModal()" title="Click here to reset your password">I forgot my password</a>
+ </div>
+ <div *ngIf="formErrors.password" class="form-error">
+ {{ formErrors.password }}
+ </div>
</div>
- </div>
- <div class="form-group">
- <label i18n for="password">Password</label>
- <div>
- <input
- type="password" name="password" id="password" i18n-placeholder placeholder="Password" required tabindex="2" autocomplete="current-password"
- formControlName="password" class="form-control" [ngClass]="{ 'input-error': formErrors['password'] }"
- >
- <a i18n-title class="forgot-password-button" (click)="openForgotPasswordModal()" title="Click here to reset your password">I forgot my password</a>
- </div>
- <div *ngIf="formErrors.password" class="form-error">
- {{ formErrors.password }}
+ <input type="submit" i18n-value value="Login" [disabled]="!form.valid">
+ </form>
+
+ <div class="external-login-blocks" *ngIf="getExternalLogins().length !== 0">
+ <div class="block-title" i18n>Or sign in with</div>
+
+ <div class="external-login-block">
+ <a *ngFor="let auth of getExternalLogins()" [href]="getAuthHref(auth)" role="button">
+ {{ auth.authDisplayName }}
+ </a>
</div>
</div>
+ </div>
- <input type="submit" i18n-value value="Login" [disabled]="!form.valid">
- </form>
</ng-container>
</div>