X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Badmin%2Fusers%2Fuser-edit%2Fuser-create.component.ts;h=da333240cf050265326bf41a668576358f2a63dc;hb=3b6195f7993f1662e94994a2ea64390f5cecac62;hp=dd8e4efd53e21920a75402f6922346190e0a78e3;hpb=54b3316099ed7d2dfcb6d708fdb686f1e125ce61;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+admin/users/user-edit/user-create.component.ts b/client/src/app/+admin/users/user-edit/user-create.component.ts index dd8e4efd5..da333240c 100644 --- a/client/src/app/+admin/users/user-edit/user-create.component.ts +++ b/client/src/app/+admin/users/user-edit/user-create.component.ts @@ -1,14 +1,20 @@ import { Component, OnInit } from '@angular/core' -import { Router } from '@angular/router' -import { NotificationsService } from 'angular2-notifications' -import { ServerService } from '../../../core' -import { UserCreate, UserRole } from '../../../../../../shared' -import { UserEdit } from './user-edit' -import { I18n } from '@ngx-translate/i18n-polyfill' -import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service' -import { UserValidatorsService } from '@app/shared/forms/form-validators/user-validators.service' +import { ActivatedRoute, Router } from '@angular/router' import { ConfigService } from '@app/+admin/config/shared/config.service' -import { UserService } from '@app/shared' +import { AuthService, Notifier, ScreenService, ServerService, UserService } from '@app/core' +import { + USER_CHANNEL_NAME_VALIDATOR, + USER_EMAIL_VALIDATOR, + USER_PASSWORD_OPTIONAL_VALIDATOR, + USER_PASSWORD_VALIDATOR, + USER_ROLE_VALIDATOR, + USER_USERNAME_VALIDATOR, + USER_VIDEO_QUOTA_DAILY_VALIDATOR, + USER_VIDEO_QUOTA_VALIDATOR +} from '@app/shared/form-validators/user-validators' +import { FormValidatorService } from '@app/shared/shared-forms' +import { UserCreate, UserRole } from '@shared/models' +import { UserEdit } from './user-edit' @Component({ selector: 'my-user-create', @@ -22,31 +28,36 @@ export class UserCreateComponent extends UserEdit implements OnInit { protected serverService: ServerService, protected formValidatorService: FormValidatorService, protected configService: ConfigService, - private userValidatorsService: UserValidatorsService, + protected screenService: ScreenService, + protected auth: AuthService, + private route: ActivatedRoute, private router: Router, - private notificationsService: NotificationsService, - private userService: UserService, - private i18n: I18n - ) { + private notifier: Notifier, + private userService: UserService + ) { super() this.buildQuotaOptions() } ngOnInit () { + super.ngOnInit() + const defaultValues = { role: UserRole.USER.toString(), - videoQuota: '-1', - videoQuotaDaily: '-1' + videoQuota: -1, + videoQuotaDaily: -1 } this.buildForm({ - username: this.userValidatorsService.USER_USERNAME, - email: this.userValidatorsService.USER_EMAIL, - password: this.userValidatorsService.USER_PASSWORD, - role: this.userValidatorsService.USER_ROLE, - videoQuota: this.userValidatorsService.USER_VIDEO_QUOTA, - videoQuotaDaily: this.userValidatorsService.USER_VIDEO_QUOTA_DAILY + username: USER_USERNAME_VALIDATOR, + channelName: USER_CHANNEL_NAME_VALIDATOR, + email: USER_EMAIL_VALIDATOR, + password: this.isPasswordOptional() ? USER_PASSWORD_OPTIONAL_VALIDATOR : USER_PASSWORD_VALIDATOR, + role: USER_ROLE_VALIDATOR, + videoQuota: USER_VIDEO_QUOTA_VALIDATOR, + videoQuotaDaily: USER_VIDEO_QUOTA_DAILY_VALIDATOR, + byPassAutoBlock: null }, defaultValues) } @@ -55,15 +66,15 @@ export class UserCreateComponent extends UserEdit implements OnInit { const userCreate: UserCreate = this.form.value + userCreate.adminFlags = this.buildAdminFlags(this.form.value) + // A select in HTML is always mapped as a string, we convert it to number userCreate.videoQuota = parseInt(this.form.value['videoQuota'], 10) + userCreate.videoQuotaDaily = parseInt(this.form.value['videoQuotaDaily'], 10) this.userService.addUser(userCreate).subscribe( () => { - this.notificationsService.success( - this.i18n('Success'), - this.i18n('User {{username}} created.', { username: userCreate.username }) - ) + this.notifier.success($localize`User ${userCreate.username} created.`) this.router.navigate([ '/admin/users/list' ]) }, @@ -75,7 +86,12 @@ export class UserCreateComponent extends UserEdit implements OnInit { return true } + isPasswordOptional () { + const serverConfig = this.route.snapshot.data.serverConfig + return serverConfig.email.enabled + } + getFormButtonTitle () { - return this.i18n('Create user') + return $localize`Create user` } }