X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Badmin%2Fconfig%2Fedit-custom-config%2Fedit-custom-config.component.ts;h=330ab075a91bc1c59d35de5e339f0687e7a02ab9;hb=b7085c713220c9c5a96c9bb77330c2ba6ae9274e;hp=d442df0e377f6e59e739137f9e90e97833df9f73;hpb=210856a7be4631540791bad027fb3ef0f7a51f14;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts index d442df0e3..330ab075a 100644 --- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts +++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts @@ -20,6 +20,7 @@ import { USER_VIDEO_QUOTA_DAILY_VALIDATOR, USER_VIDEO_QUOTA_VALIDATOR } from '@a import { FormReactive, FormValidatorService, SelectOptionsItem } from '@app/shared/shared-forms' import { NgbNav } from '@ng-bootstrap/ng-bootstrap' import { CustomConfig, ServerConfig } from '@shared/models' +import { pairwise } from 'rxjs/operators' @Component({ selector: 'my-edit-custom-config', @@ -41,6 +42,8 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A languageItems: SelectOptionsItem[] = [] categoryItems: SelectOptionsItem[] = [] + signupAlertMessage: string + private serverConfig: ServerConfig constructor ( @@ -78,6 +81,10 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A id: '1080p', label: $localize`1080p` }, + { + id: '1440p', + label: $localize`1440p` + }, { id: '2160p', label: $localize`2160p` @@ -95,7 +102,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A ] this.liveMaxDurationOptions = [ - { value: null, label: $localize`No limit` }, + { value: -1, label: $localize`No limit` }, { value: 1000 * 3600, label: $localize`1 hour` }, { value: 1000 * 3600 * 3, label: $localize`3 hours` }, { value: 1000 * 3600 * 5, label: $localize`5 hours` }, @@ -116,6 +123,34 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A .map(t => t.name) } + get liveRTMPPort () { + return this.serverConfig.live.rtmp.port + } + + getTotalTranscodingThreads () { + const transcodingEnabled = this.form.value['transcoding']['enabled'] + const transcodingThreads = this.form.value['transcoding']['threads'] + const liveTranscodingEnabled = this.form.value['live']['transcoding']['enabled'] + const liveTranscodingThreads = this.form.value['live']['transcoding']['threads'] + + // checks whether all enabled method are on fixed values and not on auto (= 0) + let noneOnAuto = !transcodingEnabled || +transcodingThreads > 0 + noneOnAuto &&= !liveTranscodingEnabled || +liveTranscodingThreads > 0 + + // count total of fixed value, repalcing auto by a single thread (knowing it will display "at least") + let value = 0 + if (transcodingEnabled) value += +transcodingThreads || 1 + if (liveTranscodingEnabled) value += +liveTranscodingThreads || 1 + + return { + value, + atMost: noneOnAuto, // auto switches everything to a least estimation since ffmpeg will take as many threads as possible + unit: value > 1 + ? $localize`threads` + : $localize`thread` + } + } + getResolutionKey (resolution: string) { return 'transcoding.resolutions.' + resolution } @@ -293,7 +328,9 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A this.buildForm(formGroupData) this.loadForm() + this.checkTranscodingFields() + this.checkSignupField() } ngAfterViewChecked () { @@ -330,10 +367,6 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A async formValidated () { const value: CustomConfig = this.form.getRawValue() - // Transform "null" to null - const maxDuration = value.live.maxDuration as any - if (maxDuration === 'null') value.live.maxDuration = null - this.configService.updateCustomConfig(value) .subscribe( res => { @@ -428,4 +461,27 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A } }) } + + private checkSignupField () { + const signupControl = this.form.get('signup.enabled') + + signupControl.valueChanges + .pipe(pairwise()) + .subscribe(([ oldValue, newValue ]) => { + if (oldValue !== true && newValue === true) { + // tslint:disable:max-line-length + this.signupAlertMessage = $localize`You enabled signup: we automatically enabled the "Block new videos automatically" checkbox of the "Videos" section just below.` + + this.form.patchValue({ + autoBlacklist: { + videos: { + ofUsers: { + enabled: true + } + } + } + }) + } + }) + } }