From 6a84aafd23c2f887f837cc4826cf7c8c07d1c60f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 19 Oct 2017 17:33:32 +0200 Subject: Take in account transcoding for video quota --- .../+admin/users/user-edit/user-add.component.ts | 5 ++++- .../users/user-edit/user-edit.component.html | 5 +++++ .../users/user-edit/user-edit.component.scss | 4 ++++ client/src/app/+admin/users/user-edit/user-edit.ts | 24 +++++++++++++++++++++- .../users/user-edit/user-update.component.ts | 7 +++++-- client/src/app/core/server/server.service.ts | 3 +++ 6 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 client/src/app/+admin/users/user-edit/user-edit.component.scss (limited to 'client/src/app') diff --git a/client/src/app/+admin/users/user-edit/user-add.component.ts b/client/src/app/+admin/users/user-edit/user-add.component.ts index 5dc069104..6d8151b42 100644 --- a/client/src/app/+admin/users/user-edit/user-add.component.ts +++ b/client/src/app/+admin/users/user-edit/user-add.component.ts @@ -11,12 +11,14 @@ import { USER_PASSWORD, USER_VIDEO_QUOTA } from '../../../shared' +import { ServerService } from '../../../core' import { UserCreate } from '../../../../../../shared' import { UserEdit } from './user-edit' @Component({ selector: 'my-user-add', - templateUrl: './user-edit.component.html' + templateUrl: './user-edit.component.html', + styleUrls: [ './user-edit.component.scss' ] }) export class UserAddComponent extends UserEdit implements OnInit { error: string @@ -36,6 +38,7 @@ export class UserAddComponent extends UserEdit implements OnInit { } constructor ( + protected serverService: ServerService, private formBuilder: FormBuilder, private router: Router, private notificationsService: NotificationsService, diff --git a/client/src/app/+admin/users/user-edit/user-edit.component.html b/client/src/app/+admin/users/user-edit/user-edit.component.html index 0e23cb731..6988071ce 100644 --- a/client/src/app/+admin/users/user-edit/user-edit.component.html +++ b/client/src/app/+admin/users/user-edit/user-edit.component.html @@ -47,6 +47,11 @@ {{ videoQuotaOption.label }} + +
+ Transcoding is enabled on server. The video quota only take in account original video.
+ In maximum, this user could use ~ {{ computeQuotaWithTranscoding() | bytes }}. +
diff --git a/client/src/app/+admin/users/user-edit/user-edit.component.scss b/client/src/app/+admin/users/user-edit/user-edit.component.scss new file mode 100644 index 000000000..401caa0c6 --- /dev/null +++ b/client/src/app/+admin/users/user-edit/user-edit.component.scss @@ -0,0 +1,4 @@ +.transcoding-information { + margin-top: 5px; + font-size: 11px; +} diff --git a/client/src/app/+admin/users/user-edit/user-edit.ts b/client/src/app/+admin/users/user-edit/user-edit.ts index 657c0f1c0..76497c9b6 100644 --- a/client/src/app/+admin/users/user-edit/user-edit.ts +++ b/client/src/app/+admin/users/user-edit/user-edit.ts @@ -1,17 +1,39 @@ +import { ServerService } from '../../../core' import { FormReactive } from '../../../shared' +import { VideoResolution } from '../../../../../../shared/models/videos/video-resolution.enum' export abstract class UserEdit extends FormReactive { videoQuotaOptions = [ { value: -1, label: 'Unlimited' }, { value: 0, label: '0'}, { value: 100 * 1024 * 1024, label: '100MB' }, - { value: 5 * 1024 * 1024, label: '500MB' }, + { value: 500 * 1024 * 1024, label: '500MB' }, { value: 1024 * 1024 * 1024, label: '1GB' }, { value: 5 * 1024 * 1024 * 1024, label: '5GB' }, { value: 20 * 1024 * 1024 * 1024, label: '20GB' }, { value: 50 * 1024 * 1024 * 1024, label: '50GB' } ] + protected abstract serverService: ServerService abstract isCreation (): boolean abstract getFormButtonTitle (): string + + isTranscodingInformationDisplayed () { + const formVideoQuota = parseInt(this.form.value['videoQuota'], 10) + + return this.serverService.getConfig().transcoding.enabledResolutions.length !== 0 && + formVideoQuota > 0 + } + + computeQuotaWithTranscoding () { + const resolutions = this.serverService.getConfig().transcoding.enabledResolutions + const higherResolution = VideoResolution.H_1080P + let multiplier = 0 + + for (const resolution of resolutions) { + multiplier += resolution / higherResolution + } + + return multiplier * parseInt(this.form.value['videoQuota'], 10) + } } diff --git a/client/src/app/+admin/users/user-edit/user-update.component.ts b/client/src/app/+admin/users/user-edit/user-update.component.ts index 0966981c0..bd901e655 100644 --- a/client/src/app/+admin/users/user-edit/user-update.component.ts +++ b/client/src/app/+admin/users/user-edit/user-update.component.ts @@ -7,13 +7,15 @@ import { NotificationsService } from 'angular2-notifications' import { UserService } from '../shared' import { USER_EMAIL, USER_VIDEO_QUOTA } from '../../../shared' +import { ServerService } from '../../../core' import { UserUpdate } from '../../../../../../shared/models/users/user-update.model' import { User } from '../../../shared/users/user.model' import { UserEdit } from './user-edit' @Component({ selector: 'my-user-update', - templateUrl: './user-edit.component.html' + templateUrl: './user-edit.component.html', + styleUrls: [ './user-edit.component.scss' ] }) export class UserUpdateComponent extends UserEdit implements OnInit, OnDestroy { error: string @@ -33,10 +35,11 @@ export class UserUpdateComponent extends UserEdit implements OnInit, OnDestroy { private paramsSub: Subscription constructor ( - private formBuilder: FormBuilder, + protected serverService: ServerService, private route: ActivatedRoute, private router: Router, private notificationsService: NotificationsService, + private formBuilder: FormBuilder, private userService: UserService ) { super() diff --git a/client/src/app/core/server/server.service.ts b/client/src/app/core/server/server.service.ts index f24df5a89..ae507afce 100644 --- a/client/src/app/core/server/server.service.ts +++ b/client/src/app/core/server/server.service.ts @@ -11,6 +11,9 @@ export class ServerService { private config: ServerConfig = { signup: { allowed: false + }, + transcoding: { + enabledResolutions: [] } } private videoCategories: Array<{ id: number, label: string }> = [] -- cgit v1.2.3