|
|
@ -28,19 +28,35 @@ |
|
|
<span style="height: 4px;" *ngIf="!(isLoading$ | async)"></span> |
|
|
<span style="height: 4px;" *ngIf="!(isLoading$ | async)"></span> |
|
|
<div tb-toast class="layout-padding flex flex-col"> |
|
|
<div tb-toast class="layout-padding flex flex-col"> |
|
|
<span style="height: 50px;"></span> |
|
|
<span style="height: 50px;"></span> |
|
|
<div class="oauth-container tb-default flex flex-col gap-4" *ngIf="oauth2Clients?.length"> |
|
|
@if(oauth2Clients?.length) { |
|
|
<ng-container *ngFor="let oauth2Client of oauth2Clients"> |
|
|
<div class="oauth-container tb-default flex flex-col gap-4"> |
|
|
<a mat-raised-button class="login-with-button" href="{{ getOAuth2Uri(oauth2Client) }}"> |
|
|
@if(oauth2Clients.length === 1) { |
|
|
<mat-icon class="icon" svgIcon="{{ oauth2Client.icon }}"></mat-icon> |
|
|
<a mat-stroked-button class="login-with-button" [href]=getOAuth2Uri(oauth2Clients[0])> |
|
|
{{ 'login.login-with' | translate: {name: oauth2Client.name} }} |
|
|
<tb-icon matButtonIcon class="tb-mat-20">{{ oauth2Clients[0].icon }}</tb-icon> |
|
|
</a> |
|
|
{{ 'login.login-with' | translate: {name: oauth2Clients[0].name} }} |
|
|
</ng-container> |
|
|
</a> |
|
|
<div class="container-divider"> |
|
|
} @else { |
|
|
<div class="line"><mat-divider></mat-divider></div> |
|
|
<div class="login-button-container flex flex-wrap justify-center gap-4"> |
|
|
<div class="text mat-typography">{{ "login.or" | translate | uppercase }}</div> |
|
|
@for(oauth2Client of oauth2Clients; track oauth2Client.url) { |
|
|
<div class="line"><mat-divider></mat-divider></div> |
|
|
<a mat-stroked-button class="login-with-button multiple" |
|
|
|
|
|
[matTooltip]="('login.login-with' | translate: {name: oauth2Client.name})" |
|
|
|
|
|
[href]=getOAuth2Uri(oauth2Client)> |
|
|
|
|
|
@if(oauth2Client.icon) { |
|
|
|
|
|
<tb-icon class="tb-mat-20">{{ oauth2Client.icon }}</tb-icon> |
|
|
|
|
|
} @else { |
|
|
|
|
|
<span>{{ oauth2Client.name }}</span> |
|
|
|
|
|
} |
|
|
|
|
|
</a> |
|
|
|
|
|
} |
|
|
|
|
|
</div> |
|
|
|
|
|
} |
|
|
|
|
|
<div class="container-divider"> |
|
|
|
|
|
<div class="line"><mat-divider></mat-divider></div> |
|
|
|
|
|
<div class="text">{{ "login.or" | translate | uppercase }}</div> |
|
|
|
|
|
<div class="line"><mat-divider></mat-divider></div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
} |
|
|
<mat-form-field class="tb-appearance-transparent"> |
|
|
<mat-form-field class="tb-appearance-transparent"> |
|
|
<mat-label translate>login.username</mat-label> |
|
|
<mat-label translate>login.username</mat-label> |
|
|
<input id="username-input" matInput type="email" autofocus formControlName="username"/> |
|
|
<input id="username-input" matInput type="email" autofocus formControlName="username"/> |
|
|
|