aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+signup/+verify-account
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2019-05-29 14:39:49 +0200
committerChocobozzz <me@florianbigard.com>2019-05-29 14:39:49 +0200
commitb247a132709eb212fef4f77c4912dc0ec108f36b (patch)
treeb2700e6ed55e00cd213c44e8afdeea4c327ae904 /client/src/app/+signup/+verify-account
parent1d5342abc43df02cf0bd69b1e865c0f179182eef (diff)
downloadPeerTube-b247a132709eb212fef4f77c4912dc0ec108f36b.tar.gz
PeerTube-b247a132709eb212fef4f77c4912dc0ec108f36b.tar.zst
PeerTube-b247a132709eb212fef4f77c4912dc0ec108f36b.zip
Add success icon on registration
Diffstat (limited to 'client/src/app/+signup/+verify-account')
-rw-r--r--client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html22
-rw-r--r--client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.scss12
-rw-r--r--client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts57
-rw-r--r--client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html15
-rw-r--r--client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.ts50
-rw-r--r--client/src/app/+signup/+verify-account/verify-account-routing.module.ts38
-rw-r--r--client/src/app/+signup/+verify-account/verify-account.module.ts25
7 files changed, 219 insertions, 0 deletions
diff --git a/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html b/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html
new file mode 100644
index 000000000..2e4180632
--- /dev/null
+++ b/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html
@@ -0,0 +1,22 @@
1<div class="margin-content">
2 <div i18n class="title-page title-page-single">
3 Request email for account verification
4 </div>
5
6 <form *ngIf="requiresEmailVerification; else emailVerificationNotRequired" role="form" (ngSubmit)="askSendVerifyEmail()" [formGroup]="form">
7 <div class="form-group">
8 <label i18n for="verify-email-email">Email</label>
9 <input
10 type="email" id="verify-email-email" i18n-placeholder placeholder="Email address" required
11 formControlName="verify-email-email" [ngClass]="{ 'input-error': formErrors['verify-email-email'] }"
12 >
13 <div *ngIf="formErrors['verify-email-email']" class="form-error">
14 {{ formErrors['verify-email-email'] }}
15 </div>
16 </div>
17 <input type="submit" i18n-value value="Send verification email" [disabled]="!form.valid">
18 </form>
19 <ng-template #emailVerificationNotRequired>
20 <div i18n>This instance does not require email verification.</div>
21 </ng-template>
22</div>
diff --git a/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.scss b/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.scss
new file mode 100644
index 000000000..efec6b706
--- /dev/null
+++ b/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.scss
@@ -0,0 +1,12 @@
1@import '_variables';
2@import '_mixins';
3
4input:not([type=submit]) {
5 @include peertube-input-text(340px);
6 display: block;
7}
8
9input[type=submit] {
10 @include peertube-button;
11 @include orange-button;
12}
diff --git a/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts b/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts
new file mode 100644
index 000000000..cfd471fa4
--- /dev/null
+++ b/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts
@@ -0,0 +1,57 @@
1import { Component, OnInit } from '@angular/core'
2import { I18n } from '@ngx-translate/i18n-polyfill'
3import { Notifier, RedirectService } from '@app/core'
4import { ServerService } from '@app/core/server'
5import { FormReactive, UserService } from '@app/shared'
6import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
7import { UserValidatorsService } from '@app/shared/forms/form-validators/user-validators.service'
8
9@Component({
10 selector: 'my-verify-account-ask-send-email',
11 templateUrl: './verify-account-ask-send-email.component.html',
12 styleUrls: [ './verify-account-ask-send-email.component.scss' ]
13})
14
15export class VerifyAccountAskSendEmailComponent extends FormReactive implements OnInit {
16
17 constructor (
18 protected formValidatorService: FormValidatorService,
19 private userValidatorsService: UserValidatorsService,
20 private userService: UserService,
21 private serverService: ServerService,
22 private notifier: Notifier,
23 private redirectService: RedirectService,
24 private i18n: I18n
25 ) {
26 super()
27 }
28
29 get requiresEmailVerification () {
30 return this.serverService.getConfig().signup.requiresEmailVerification
31 }
32
33 ngOnInit () {
34 this.buildForm({
35 'verify-email-email': this.userValidatorsService.USER_EMAIL
36 })
37 }
38
39 askSendVerifyEmail () {
40 const email = this.form.value['verify-email-email']
41 this.userService.askSendVerifyEmail(email)
42 .subscribe(
43 () => {
44 const message = this.i18n(
45 'An email with verification link will be sent to {{email}}.',
46 { email }
47 )
48 this.notifier.success(message)
49 this.redirectService.redirectToHomepage()
50 },
51
52 err => {
53 this.notifier.error(err.message)
54 }
55 )
56 }
57}
diff --git a/client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html b/client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html
new file mode 100644
index 000000000..728709ca6
--- /dev/null
+++ b/client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html
@@ -0,0 +1,15 @@
1<div class="margin-content">
2 <div i18n class="title-page title-page-single">
3 Verify account email confirmation
4 </div>
5
6 <my-signup-success i18n *ngIf="success; else verificationError" message="Your email has been verified and you may now login.">
7 </my-signup-success>
8
9 <ng-template #verificationError>
10 <div>
11 <span i18n>An error occurred. </span>
12 <a i18n routerLink="/verify-account/ask-send-email">Request new verification email.</a>
13 </div>
14 </ng-template>
15</div>
diff --git a/client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.ts b/client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.ts
new file mode 100644
index 000000000..3fb2d1cd8
--- /dev/null
+++ b/client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.ts
@@ -0,0 +1,50 @@
1import { Component, OnInit } from '@angular/core'
2import { ActivatedRoute, Router } from '@angular/router'
3import { I18n } from '@ngx-translate/i18n-polyfill'
4import { Notifier } from '@app/core'
5import { UserService } from '@app/shared'
6
7@Component({
8 selector: 'my-verify-account-email',
9 templateUrl: './verify-account-email.component.html'
10})
11
12export class VerifyAccountEmailComponent implements OnInit {
13 success = false
14
15 private userId: number
16 private verificationString: string
17
18 constructor (
19 private userService: UserService,
20 private notifier: Notifier,
21 private router: Router,
22 private route: ActivatedRoute,
23 private i18n: I18n
24 ) {
25 }
26
27 ngOnInit () {
28 this.userId = this.route.snapshot.queryParams['userId']
29 this.verificationString = this.route.snapshot.queryParams['verificationString']
30
31 if (!this.userId || !this.verificationString) {
32 this.notifier.error(this.i18n('Unable to find user id or verification string.'))
33 } else {
34 this.verifyEmail()
35 }
36 }
37
38 verifyEmail () {
39 this.userService.verifyEmail(this.userId, this.verificationString)
40 .subscribe(
41 () => {
42 this.success = true
43 },
44
45 err => {
46 this.notifier.error(err.message)
47 }
48 )
49 }
50}
diff --git a/client/src/app/+signup/+verify-account/verify-account-routing.module.ts b/client/src/app/+signup/+verify-account/verify-account-routing.module.ts
new file mode 100644
index 000000000..16d5fe0d0
--- /dev/null
+++ b/client/src/app/+signup/+verify-account/verify-account-routing.module.ts
@@ -0,0 +1,38 @@
1import { NgModule } from '@angular/core'
2import { RouterModule, Routes } from '@angular/router'
3import { MetaGuard } from '@ngx-meta/core'
4import { VerifyAccountEmailComponent } from './verify-account-email/verify-account-email.component'
5import { VerifyAccountAskSendEmailComponent } from './verify-account-ask-send-email/verify-account-ask-send-email.component'
6
7const verifyAccountRoutes: Routes = [
8 {
9 path: '',
10 canActivateChild: [ MetaGuard ],
11 children: [
12 {
13 path: 'email',
14 component: VerifyAccountEmailComponent,
15 data: {
16 meta: {
17 title: 'Verify account email'
18 }
19 }
20 },
21 {
22 path: 'ask-send-email',
23 component: VerifyAccountAskSendEmailComponent,
24 data: {
25 meta: {
26 title: 'Verify account ask send email'
27 }
28 }
29 }
30 ]
31 }
32]
33
34@NgModule({
35 imports: [ RouterModule.forChild(verifyAccountRoutes) ],
36 exports: [ RouterModule ]
37})
38export class VerifyAccountRoutingModule {}
diff --git a/client/src/app/+signup/+verify-account/verify-account.module.ts b/client/src/app/+signup/+verify-account/verify-account.module.ts
new file mode 100644
index 000000000..9fe14e81e
--- /dev/null
+++ b/client/src/app/+signup/+verify-account/verify-account.module.ts
@@ -0,0 +1,25 @@
1import { NgModule } from '@angular/core'
2import { VerifyAccountRoutingModule } from './verify-account-routing.module'
3import { VerifyAccountEmailComponent } from './verify-account-email/verify-account-email.component'
4import { VerifyAccountAskSendEmailComponent } from './verify-account-ask-send-email/verify-account-ask-send-email.component'
5import { SharedModule } from '@app/shared'
6import { SignupSharedModule } from '@app/+signup/shared/signup-shared.module'
7
8@NgModule({
9 imports: [
10 VerifyAccountRoutingModule,
11 SharedModule,
12 SignupSharedModule
13 ],
14
15 declarations: [
16 VerifyAccountEmailComponent,
17 VerifyAccountAskSendEmailComponent
18 ],
19
20 exports: [],
21
22 providers: []
23})
24export class VerifyAccountModule {
25}