From 5afdd0a52f2f1fa79ed9bf241b5a525366658fa1 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 28 Mar 2018 17:05:46 +0200 Subject: Add initial video quota info in registration form --- client/src/app/signup/signup.component.ts | 57 +++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 11 deletions(-) (limited to 'client/src/app/signup/signup.component.ts') diff --git a/client/src/app/signup/signup.component.ts b/client/src/app/signup/signup.component.ts index 13390a32a..93d73a11e 100644 --- a/client/src/app/signup/signup.component.ts +++ b/client/src/app/signup/signup.component.ts @@ -1,18 +1,11 @@ import { Component, OnInit } from '@angular/core' -import { FormBuilder, FormGroup, Validators } from '@angular/forms' +import { FormBuilder, FormGroup } from '@angular/forms' import { Router } from '@angular/router' +import { ServerService } from '@app/core/server' import { NotificationsService } from 'angular2-notifications' - -import { AuthService } from '../core' -import { - FormReactive, - UserService, - USER_USERNAME, - USER_EMAIL, - USER_PASSWORD -} from '../shared' import { UserCreate } from '../../../../shared' +import { FormReactive, USER_EMAIL, USER_PASSWORD, USER_USERNAME, UserService } from '../shared' @Component({ selector: 'my-signup', @@ -21,6 +14,7 @@ import { UserCreate } from '../../../../shared' }) export class SignupComponent extends FormReactive implements OnInit { error: string = null + quotaHelpIndication = '' form: FormGroup formErrors = { @@ -34,15 +28,32 @@ export class SignupComponent extends FormReactive implements OnInit { 'password': USER_PASSWORD.MESSAGES } + 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}` + } + constructor ( private formBuilder: FormBuilder, private router: Router, private notificationsService: NotificationsService, - private userService: UserService + private userService: UserService, + private serverService: ServerService ) { super() } + get initialUserVideoQuota () { + return this.serverService.getConfig().user.videoQuota + } + buildForm () { this.form = this.formBuilder.group({ username: [ '', USER_USERNAME.VALIDATORS ], @@ -55,6 +66,9 @@ export class SignupComponent extends FormReactive implements OnInit { ngOnInit () { this.buildForm() + + this.serverService.configLoaded + .subscribe(() => this.buildQuotaHelpIndication()) } signup () { @@ -71,4 +85,25 @@ export class SignupComponent extends FormReactive implements OnInit { err => this.error = err.message ) } + + private buildQuotaHelpIndication () { + if (this.initialUserVideoQuota === -1) return + + const initialUserVideoQuotaBit = this.initialUserVideoQuota * 8 + + // 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) + + const lines = [ + SignupComponent.getApproximateTime(fullHdSeconds) + ' of full HD videos', + SignupComponent.getApproximateTime(hdSeconds) + ' of HD videos', + SignupComponent.getApproximateTime(normalSeconds) + ' of normal quality videos' + ] + + this.quotaHelpIndication = lines.join('
') + } } -- cgit v1.2.3