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