]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - client/src/app/+login/login.component.html
unify inputs requiring buttons like password inputs
[github/Chocobozzz/PeerTube.git] / client / src / app / +login / login.component.html
... / ...
CommitLineData
1<div class="margin-content">
2 <div i18n class="title-page title-page-single">
3 Login
4 </div>
5
6 <div class="alert alert-danger" i18n *ngIf="externalAuthError">
7 Sorry but there was an issue with the external login process. Please <a routerLink="/about">contact an administrator</a>.
8 </div>
9
10 <ng-container *ngIf="!externalAuthError && !isAuthenticatedWithExternalAuth">
11 <div class="looking-for-account alert alert-info" *ngIf="signupAllowed === false" role="alert">
12 <h6 class="alert-heading" i18n>
13 If you are looking for an account…
14 </h6>
15
16 <div i18n>
17 Currently this instance doesn't allow for user registration, but you can find an instance
18 that gives you the possibility to sign up for an account and upload your videos there.
19
20 <br />
21
22 Find yours among multiple instances at <a class="alert-link" href="https://joinpeertube.org/instances" target="_blank" rel="noopener noreferrer">https://joinpeertube.org/instances</a>.
23 </div>
24 </div>
25
26 <div *ngIf="error" class="alert alert-danger">{{ error }}
27 <span *ngIf="error === 'User email is not verified.'"> <a i18n routerLink="/verify-account/ask-send-email">Request new verification email.</a></span>
28 </div>
29
30 <div class="login-form-and-externals">
31
32 <form role="form" (ngSubmit)="login()" [formGroup]="form">
33 <div class="form-group">
34 <div>
35 <label i18n for="username">User</label>
36 <input
37 type="text" id="username" i18n-placeholder placeholder="Username or email address" required tabindex="1"
38 formControlName="username" class="form-control" [ngClass]="{ 'input-error': formErrors['username'] }" #usernameInput
39 >
40 <a i18n *ngIf="signupAllowed === true" routerLink="/signup" class="create-an-account">
41 or create an account
42 </a>
43 </div>
44
45 <div *ngIf="formErrors.username" class="form-error">
46 {{ formErrors.username }}
47 </div>
48 </div>
49
50 <div class="form-group">
51 <label i18n for="password">Password</label>
52 <div>
53 <my-input-toggle-hidden formControlName="password" id="password"
54 i18n-placeholder placeholder="Password"
55 [ngClass]="{ 'input-error': formErrors['password'] }"
56 autocomplete="current-password"></my-input-toggle-hidden>
57 <a i18n-title class="forgot-password-button" (click)="openForgotPasswordModal()" title="Click here to reset your password">I forgot my password</a>
58 </div>
59 <div *ngIf="formErrors.password" class="form-error">
60 {{ formErrors.password }}
61 </div>
62 </div>
63
64 <input type="submit" i18n-value value="Login" [disabled]="!form.valid">
65 </form>
66
67 <div class="external-login-blocks" *ngIf="getExternalLogins().length !== 0">
68 <div class="block-title" i18n>Or sign in with</div>
69
70 <div>
71 <a class="external-login-block" *ngFor="let auth of getExternalLogins()" [href]="getAuthHref(auth)" role="button">
72 {{ auth.authDisplayName }}
73 </a>
74 </div>
75 </div>
76 </div>
77
78 </ng-container>
79</div>
80
81<ng-template #forgotPasswordModal>
82 <div class="modal-header">
83 <h4 i18n class="modal-title">Forgot your password</h4>
84
85 <my-global-icon iconName="cross" aria-label="Close" role="button" (click)="hideForgotPasswordModal()"></my-global-icon>
86 </div>
87
88 <div class="modal-body">
89
90 <div *ngIf="isEmailDisabled()" class="alert alert-danger" i18n>
91 We are sorry, you cannot recover your password because your instance administrator did not configure the PeerTube email system.
92 </div>
93
94 <div *ngIf="!isEmailDisabled()" class="forgot-password-instructions" i18n>
95 Enter your email address and we will send you a link to reset your password.
96 </div>
97
98 <div class="form-group" [hidden]="isEmailDisabled()">
99 <label i18n for="forgot-password-email">Email</label>
100 <input
101 type="email" id="forgot-password-email" i18n-placeholder placeholder="Email address" required
102 [(ngModel)]="forgotPasswordEmail" #forgotPasswordEmailInput
103 >
104 </div>
105 </div>
106
107 <div class="modal-footer inputs">
108 <input
109 type="button" role="button" i18n-value value="Cancel" class="action-button action-button-cancel"
110 (click)="hideForgotPasswordModal()" (key.enter)="hideForgotPasswordModal()"
111 >
112
113 <input
114 type="submit" i18n-value="Password reset button" value="Reset" class="action-button-submit"
115 (click)="askResetPassword()" [disabled]="!forgotPasswordEmailInput.validity.valid"
116 >
117 </div>
118</ng-template>