]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/+login/login.component.html
Increase test timeout
[github/Chocobozzz/PeerTube.git] / client / src / app / +login / login.component.html
CommitLineData
11056966
C
1<h1 i18n class="title-page-v2">
2 <strong class="underline-orange">{{ instanceName }}</strong>
3 >
4 Login
5</h1>
192ea60b 6
11056966 7<div class="margin-content">
bc90883f
C
8 <div class="alert alert-danger" i18n *ngIf="externalAuthError">
9 Sorry but there was an issue with the external login process. Please <a routerLink="/about">contact an administrator</a>.
10 </div>
11
12 <ng-container *ngIf="!externalAuthError && !isAuthenticatedWithExternalAuth">
11056966
C
13 <div *ngIf="error" class="alert alert-danger">
14 {{ error }}
15
16 <span *ngIf="error === 'User email is not verified.'">
17 <a i18n routerLink="/verify-account/ask-send-email">Request new verification email.</a>
18 </span>
19 </div>
20
21 <div class="alert pt-alert-primary" role="alert">
22 <h5 class="alert-heading" i18n>
23 Logging into an account lets you publish content
24 </h5>
25
26 <p *ngIf="signupAllowed" i18n>
27 This instance allows registration. However, be careful to check the <a class="link-orange terms-anchor" (click)="onTermsClick($event, instanceInformation)" href='#'>Terms</a><a class="terms-link" target="_blank" routerLink="/about/instance" fragment="terms">Terms</a> before creating an account.
28 You may also search for another instance to match your exact needs at: <a class="link-orange" href="https://joinpeertube.org/instances" target="_blank" rel="noopener noreferrer">https://joinpeertube.org/instances</a>.
29 </p>
30
31 <p *ngIf="!signupAllowed" i18n>
32 Currently this instance doesn't allow for user registration, you may check the <a (click)="onTermsClick($event, instanceInformation)" href='#'>Terms</a> for more details or find an instance that gives you the possibility to sign up for an account and upload your videos there.
33 Find yours among multiple instances at: <a class="link-orange" href="https://joinpeertube.org/instances" target="_blank" rel="noopener noreferrer">https://joinpeertube.org/instances</a>.
34 </p>
4a8d113b 35 </div>
b1794c53 36
40360c17
K
37 <div class="wrapper">
38 <div class="login-form-and-externals">
39
8afade26 40 <form myPluginSelector pluginSelectorId="login-form" role="form" (ngSubmit)="login()" [formGroup]="form">
40360c17
K
41 <div class="form-group">
42 <div>
11056966 43 <label i18n for="username">Username or email address</label>
40360c17 44 <input
11056966 45 type="text" id="username" i18n-placeholder placeholder="Example: john@example.com" required tabindex="1"
9df52d66 46 formControlName="username" class="form-control" [ngClass]="{ 'input-error': formErrors['username'] }" myAutofocus
40360c17
K
47 >
48 </div>
49
11056966 50 <div *ngIf="formErrors.username" class="form-error">{{ formErrors.username }}</div>
7f28f2dd
C
51
52 <div *ngIf="hasUsernameUppercase()" i18n class="form-warning">
53 ⚠️ Most email addresses do not include capital letters.
54 </div>
ebefc902 55 </div>
2b084d70 56
40360c17
K
57 <div class="form-group">
58 <label i18n for="password">Password</label>
11056966 59
a70bf3bd 60 <my-input-text formControlName="password" inputId="password"
f8b530e0
RK
61 i18n-placeholder placeholder="Password"
62 [ngClass]="{ 'input-error': formErrors['password'] }"
a70bf3bd 63 autocomplete="current-password" [tabindex]="2"></my-input-text>
11056966
C
64
65 <div *ngIf="formErrors.password" class="form-error">{{ formErrors.password }}</div>
ebefc902 66 </div>
40360c17 67
266947e5 68 <input type="submit" class="peertube-button orange-button" i18n-value value="Login" [disabled]="!form.valid">
1916c966 69
11056966
C
70 <div class="additional-links">
71 <a i18n role="button" class="link-orange" (click)="openForgotPasswordModal()" i18n-title title="Click here to reset your password">I forgot my password</a>
8406a9e8 72
11056966 73 <ng-container *ngIf="signupAllowed">
40360c17 74 <span>·</span>
11056966
C
75 <a i18n routerLink="/signup" class="link-orange">Create an account</a>
76 </ng-container>
40360c17
K
77 </div>
78 </form>
ebefc902 79
40360c17
K
80 <div class="external-login-blocks" *ngIf="getExternalLogins().length !== 0">
81 <div class="block-title" i18n>Or sign in with</div>
ebefc902 82
40360c17
K
83 <div>
84 <a class="external-login-block" *ngFor="let auth of getExternalLogins()" [href]="getAuthHref(auth)" role="button">
85 {{ auth.authDisplayName }}
86 </a>
87 </div>
4a8d113b 88 </div>
ecb4e35f 89 </div>
897ec54d 90
40360c17 91 <div #instanceInformation class="instance-information">
071f3e51 92 <my-instance-about-accordion
11056966 93 [displayInstanceName]="false"
071f3e51
C
94 (init)="onInstanceAboutAccordionInit($event)" [panels]="instanceInformationPanels"
95 pluginScope="login" pluginHook="filter:login.instance-about-plugin-panels.create.result"
96 ></my-instance-about-accordion>
40360c17
K
97 </div>
98 </div>
4a8d113b 99 </ng-container>
897ec54d 100</div>
ecb4e35f 101
63347a0f
C
102<ng-template #forgotPasswordModal>
103 <div class="modal-header">
104 <h4 i18n class="modal-title">Forgot your password</h4>
457bb213
C
105
106 <my-global-icon iconName="cross" aria-label="Close" role="button" (click)="hideForgotPasswordModal()"></my-global-icon>
63347a0f 107 </div>
ecb4e35f 108
63347a0f 109 <div class="modal-body">
3b3b1820
C
110
111 <div *ngIf="isEmailDisabled()" class="alert alert-danger" i18n>
32d7f2b7 112 We are sorry, you cannot recover your password because your instance administrator did not configure the PeerTube email system.
3b3b1820
C
113 </div>
114
ab0beac7
K
115 <div *ngIf="!isEmailDisabled()" class="forgot-password-instructions" i18n>
116 Enter your email address and we will send you a link to reset your password.
117 </div>
118
3b3b1820 119 <div class="form-group" [hidden]="isEmailDisabled()">
63347a0f
C
120 <label i18n for="forgot-password-email">Email</label>
121 <input
122 type="email" id="forgot-password-email" i18n-placeholder placeholder="Email address" required
123 [(ngModel)]="forgotPasswordEmail" #forgotPasswordEmailInput
124 >
125 </div>
126 </div>
ecb4e35f 127
63347a0f 128 <div class="modal-footer inputs">
a6d5ff76 129 <input
266947e5 130 type="button" role="button" i18n-value value="Cancel" class="peertube-button grey-button"
a6d5ff76
RK
131 (click)="hideForgotPasswordModal()" (key.enter)="hideForgotPasswordModal()"
132 >
ecb4e35f 133
63347a0f 134 <input
266947e5 135 type="submit" i18n-value="Password reset button" value="Reset" class="peertube-button orange-button"
63347a0f
C
136 (click)="askResetPassword()" [disabled]="!forgotPasswordEmailInput.validity.valid"
137 >
ecb4e35f 138 </div>
63347a0f 139</ng-template>