X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bsignup%2F%2Bregister%2Fregister.component.ts;h=8e89bb01a25d66692c9ff28c602f12e61400b7d2;hb=e0fea785bf28966da09cdc16a274c9e750b488f4;hp=d470ef4dcc1830f5f1e1f9ea4bc37f34ee5ffb9a;hpb=8c559fad1e1c4c2ab7f1388c73200aa4c6256d74;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 d470ef4dc..8e89bb01a 100644 --- a/client/src/app/+signup/+register/register.component.ts +++ b/client/src/app/+signup/+register/register.component.ts @@ -1,12 +1,12 @@ -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 { Component, OnInit } from '@angular/core' import { FormGroup } from '@angular/forms' -import { About } from '@shared/models/server' -import { InstanceService } from '@app/shared/instance/instance.service' +import { ActivatedRoute } from '@angular/router' +import { AuthService, UserService } from '@app/core' +import { HooksService } from '@app/core/plugins/hooks.service' import { NgbAccordion } from '@ng-bootstrap/ng-bootstrap' +import { UserRegister } from '@shared/models' +import { ServerConfig } from '@shared/models/server' +import { InstanceAboutAccordionComponent } from '@app/shared/shared-instance' @Component({ selector: 'my-register', @@ -14,52 +14,58 @@ import { NgbAccordion } from '@ng-bootstrap/ng-bootstrap' styleUrls: [ './register.component.scss' ] }) export class RegisterComponent implements OnInit { - @ViewChild('accordion', { static: true }) accordion: NgbAccordion - + accordion: NgbAccordion info: string = null error: string = null success: string = null signupDone = false - about: About - aboutHtml = { - description: '', - terms: '', - codeOfConduct: '', - moderationInformation: '', - administrator: '' - } + videoUploadDisabled: boolean + formStepTerms: FormGroup formStepUser: FormGroup formStepChannel: FormGroup + aboutHtml = { + codeOfConduct: '' + } + + instanceInformationPanels = { + codeOfConduct: true, + terms: true, + administrators: false, + features: false, + moderation: false + } + + defaultPreviousStepButtonLabel = $localize`:Button on the registration form to go to the previous step:Back` + defaultNextStepButtonLabel = $localize`:Button on the registration form to go to the previous step:Next` + stepUserButtonLabel = this.defaultNextStepButtonLabel + + 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 i18n: I18n - ) { + private hooks: HooksService + ) { } get requiresEmailVerification () { - return this.serverService.getConfig().signup.requiresEmailVerification + return this.serverConfig.signup.requiresEmailVerification } ngOnInit (): void { - this.instanceService.getAbout() - .subscribe( - async about => { - this.about = about + this.serverConfig = this.route.snapshot.data.serverConfig - this.aboutHtml = await this.instanceService.buildHtml(about) - }, + this.videoUploadDisabled = this.serverConfig.user.videoQuota === 0 + this.stepUserButtonLabel = this.videoUploadDisabled + ? $localize`:Button on the registration form to finalize the account and channel creation:Signup` + : this.defaultNextStepButtonLabel + + this.hooks.runAction('action:signup.register.init', 'signup') - err => this.notifier.error(err.message) - ) } hasSameChannelAndAccountNames () { @@ -78,6 +84,10 @@ export class RegisterComponent implements OnInit { return this.formStepChannel.value['name'] } + onTermsFormBuilt (form: FormGroup) { + this.formStepTerms = form + } + onUserFormBuilt (form: FormGroup) { this.formStepUser = form } @@ -94,17 +104,26 @@ export class RegisterComponent implements OnInit { if (this.accordion) this.accordion.toggle('code-of-conduct') } - signup () { + onInstanceAboutAccordionInit (instanceAboutAccordion: InstanceAboutAccordionComponent) { + this.accordion = instanceAboutAccordion.accordion + this.aboutHtml = instanceAboutAccordion.aboutHtml + } + + 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.videoUploadDisabled ? undefined : this.formStepChannel.value }), + 'signup', + 'filter:api.signup.registration.create.params' + ) this.userService.signup(body).subscribe( () => { this.signupDone = true if (this.requiresEmailVerification) { - this.info = this.i18n('Now please check your emails to verify your account and complete signup.') + this.info = $localize`Now please check your emails to verify your account and complete signup.` return } @@ -112,7 +131,7 @@ export class RegisterComponent implements OnInit { this.authService.login(body.username, body.password) .subscribe( () => { - this.success = this.i18n('You are now logged in as {{username}}!', { username: body.username }) + this.success = $localize`You are now logged in as ${body.username}!` }, err => this.error = err.message