X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bsignup%2F%2Bregister%2Fregister.component.ts;h=ae944ec15b57594f4ca605a7e06b3ce6c9414d6c;hb=1d17d86349fd2b3a9bc85145d02383ba4aea4dc0;hp=cd605972842e9f7c471c7ce8ad7e68d857a9b02b;hpb=b91bc1d1f3591c35ab4426f6ab594b4bd9f1ef62;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+signup/+register/register.component.ts b/client/src/app/+signup/+register/register.component.ts index cd6059728..ae944ec15 100644 --- a/client/src/app/+signup/+register/register.component.ts +++ b/client/src/app/+signup/+register/register.component.ts @@ -1,37 +1,75 @@ -import { Component } from '@angular/core' +import { Component, OnInit, ViewChild } from '@angular/core' import { AuthService, Notifier, RedirectService, ServerService } from '@app/core' import { UserService, UserValidatorsService } from '@app/shared' import { I18n } from '@ngx-translate/i18n-polyfill' import { UserRegister } from '@shared/models/users/user-register.model' import { FormGroup } from '@angular/forms' +import { About, ServerConfig } from '@shared/models/server' +import { InstanceService } from '@app/shared/instance/instance.service' +import { HooksService } from '@app/core/plugins/hooks.service' +import { NgbAccordion } from '@ng-bootstrap/ng-bootstrap' +import { ActivatedRoute } from '@angular/router' @Component({ selector: 'my-register', templateUrl: './register.component.html', styleUrls: [ './register.component.scss' ] }) -export class RegisterComponent { +export class RegisterComponent implements OnInit { + @ViewChild('accordion', { static: true }) accordion: NgbAccordion + info: string = null error: string = null success: string = null signupDone = false + about: About + aboutHtml = { + description: '', + terms: '', + codeOfConduct: '', + moderationInformation: '', + administrator: '' + } + formStepUser: FormGroup formStepChannel: FormGroup + private serverConfig: ServerConfig + constructor ( + private route: ActivatedRoute, private authService: AuthService, private userValidatorsService: UserValidatorsService, private notifier: Notifier, private userService: UserService, private serverService: ServerService, private redirectService: RedirectService, + private instanceService: InstanceService, + private hooks: HooksService, private i18n: I18n ) { } get requiresEmailVerification () { - return this.serverService.getConfig().signup.requiresEmailVerification + return this.serverConfig.signup.requiresEmailVerification + } + + ngOnInit (): void { + this.serverConfig = this.route.snapshot.data.serverConfig + + this.instanceService.getAbout() + .subscribe( + async about => { + this.about = about + + this.aboutHtml = await this.instanceService.buildHtml(about) + }, + + err => this.notifier.error(err.message) + ) + + this.hooks.runAction('action:signup.register.init', 'signup') } hasSameChannelAndAccountNames () { @@ -58,10 +96,22 @@ export class RegisterComponent { this.formStepChannel = form } - signup () { + onTermsClick () { + if (this.accordion) this.accordion.toggle('terms') + } + + onCodeOfConductClick () { + if (this.accordion) this.accordion.toggle('code-of-conduct') + } + + async signup () { this.error = null - const body: UserRegister = Object.assign(this.formStepUser.value, { channel: this.formStepChannel.value }) + const body: UserRegister = await this.hooks.wrapObject( + Object.assign(this.formStepUser.value, { channel: this.formStepChannel.value }), + 'signup', + 'filter:api.signup.registration.create.params' + ) this.userService.signup(body).subscribe( () => {