X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fsignup%2Fsignup.component.ts;h=13941ec79542e978de2e9bb05a63ea0b2b3aeec8;hb=f8b2c1b4f509c037b9650cca2c5befd21f056df3;hp=a40f42cb11b0a2b678b9d1874d5f2118b8a8a6a8;hpb=e309822b93d9b69f30cbe830ef3d09dfdb2c13b2;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/signup/signup.component.ts b/client/src/app/signup/signup.component.ts index a40f42cb1..13941ec79 100644 --- a/client/src/app/signup/signup.component.ts +++ b/client/src/app/signup/signup.component.ts @@ -1,10 +1,7 @@ import { Component, OnInit } from '@angular/core' -import { Router } from '@angular/router' -import { ServerService } from '@app/core/server' -import { NotificationsService } from 'angular2-notifications' +import { AuthService, Notifier, RedirectService, ServerService } from '@app/core' import { UserCreate } from '../../../../shared' import { FormReactive, UserService, UserValidatorsService } from '../shared' -import { RedirectService } from '@app/core' import { I18n } from '@ngx-translate/i18n-polyfill' import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service' @@ -14,47 +11,38 @@ import { FormValidatorService } from '@app/shared/forms/form-validators/form-val styleUrls: [ './signup.component.scss' ] }) export class SignupComponent extends FormReactive implements OnInit { + info: string = null error: string = null - quotaHelpIndication = '' - - private static getApproximateTime (seconds: number) { - const hours = Math.floor(seconds / 3600) - let pluralSuffix = '' - if (hours > 1) pluralSuffix = 's' - if (hours > 0) return `~ ${hours} hour${pluralSuffix}` - - const minutes = Math.floor(seconds % 3600 / 60) - if (minutes > 1) pluralSuffix = 's' - - return `~ ${minutes} minute${pluralSuffix}` - } + signupDone = false constructor ( protected formValidatorService: FormValidatorService, + private authService: AuthService, private userValidatorsService: UserValidatorsService, - private router: Router, - private notificationsService: NotificationsService, + private notifier: Notifier, private userService: UserService, - private redirectService: RedirectService, private serverService: ServerService, + private redirectService: RedirectService, private i18n: I18n ) { super() } - get initialUserVideoQuota () { - return this.serverService.getConfig().user.videoQuota + get instanceHost () { + return window.location.host + } + + get requiresEmailVerification () { + return this.serverService.getConfig().signup.requiresEmailVerification } ngOnInit () { this.buildForm({ username: this.userValidatorsService.USER_USERNAME, password: this.userValidatorsService.USER_PASSWORD, - email: this.userValidatorsService.USER_EMAIL + email: this.userValidatorsService.USER_EMAIL, + terms: this.userValidatorsService.USER_TERMS }) - - this.serverService.configLoaded - .subscribe(() => this.buildQuotaHelpIndication()) } signup () { @@ -64,35 +52,27 @@ export class SignupComponent extends FormReactive implements OnInit { this.userService.signup(userCreate).subscribe( () => { - this.notificationsService.success( - this.i18n('Success'), - this.i18n('Registration for {{username}} complete.', { username: userCreate.username }) - ) - this.redirectService.redirectToHomepage() - }, - - err => this.error = err.message - ) - } + this.signupDone = true - private buildQuotaHelpIndication () { - if (this.initialUserVideoQuota === -1) return + if (this.requiresEmailVerification) { + this.info = this.i18n('Welcome! Now please check your emails to verify your account and complete signup.') + return + } - const initialUserVideoQuotaBit = this.initialUserVideoQuota * 8 + // Auto login + this.authService.login(userCreate.username, userCreate.password) + .subscribe( + () => { + this.notifier.success(this.i18n('You are now logged in as {{username}}!', { username: userCreate.username })) - // 1080p: ~ 6Mbps - // 720p: ~ 4Mbps - // 360p: ~ 1.5Mbps - const fullHdSeconds = initialUserVideoQuotaBit / (6 * 1000 * 1000) - const hdSeconds = initialUserVideoQuotaBit / (4 * 1000 * 1000) - const normalSeconds = initialUserVideoQuotaBit / (1.5 * 1000 * 1000) + this.redirectService.redirectToHomepage() + }, - const lines = [ - this.i18n('{{seconds}} of full HD videos', { seconds: SignupComponent.getApproximateTime(fullHdSeconds) }), - this.i18n('{{seconds}} of HD videos', { seconds: SignupComponent.getApproximateTime(hdSeconds) }), - this.i18n('{{seconds}} of average quality videos', { seconds: SignupComponent.getApproximateTime(normalSeconds) }) - ] + err => this.error = err.message + ) + }, - this.quotaHelpIndication = lines.join('
') + err => this.error = err.message + ) } }