aboutsummaryrefslogtreecommitdiffhomepage
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html33
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts5
-rw-r--r--client/src/app/shared/form-validators/custom-config-validators.ts8
3 files changed, 46 insertions, 0 deletions
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
index 48678a194..5f0a5ff6c 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
@@ -436,8 +436,25 @@
436 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 436 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
437 437
438 <ng-container formGroupName="import"> 438 <ng-container formGroupName="import">
439
439 <ng-container formGroupName="videos"> 440 <ng-container formGroupName="videos">
440 441
442 <div class="form-group mt-4">
443 <label i18n for="importConcurrency">Import jobs concurrency</label>
444 <span class="text-muted ml-1">
445 <span i18n>allows to import multiple videos in parallel. ⚠️ Requires a PeerTube restart.</span>
446 </span>
447
448 <div class="peertube-select-container">
449 <select id="importConcurrency" formControlName="concurrency" class="form-control">
450 <option *ngFor="let option of concurrencyOptions" [value]="option">
451 {{ option }}
452 </option>
453 </select>
454 </div>
455 <div *ngIf="formErrors.import.concurrency" class="form-error">{{ formErrors.import.concurrency }}</div>
456 </div>
457
441 <div class="form-group" formGroupName="http"> 458 <div class="form-group" formGroupName="http">
442 <my-peertube-checkbox 459 <my-peertube-checkbox
443 inputName="importVideosHttpEnabled" formControlName="enabled" 460 inputName="importVideosHttpEnabled" formControlName="enabled"
@@ -886,6 +903,22 @@
886 </div> 903 </div>
887 904
888 <div class="form-group mt-4" [ngClass]="{ 'disabled-checkbox-extra': !isTranscodingEnabled() }"> 905 <div class="form-group mt-4" [ngClass]="{ 'disabled-checkbox-extra': !isTranscodingEnabled() }">
906 <label i18n for="transcodingConcurrency">Transcoding jobs concurrency</label>
907 <span class="text-muted ml-1">
908 <span i18n>allows to transcode multiple files in parallel. ⚠️ Requires a PeerTube restart.</span>
909 </span>
910
911 <div class="peertube-select-container">
912 <select id="transcodingConcurrency" formControlName="concurrency" class="form-control">
913 <option *ngFor="let option of concurrencyOptions" [value]="option">
914 {{ option }}
915 </option>
916 </select>
917 </div>
918 <div *ngIf="formErrors.transcoding.concurrency" class="form-error">{{ formErrors.transcoding.concurrency }}</div>
919 </div>
920
921 <div class="form-group mt-4" [ngClass]="{ 'disabled-checkbox-extra': !isTranscodingEnabled() }">
889 <label i18n for="transcodingProfile">Transcoding profile</label> 922 <label i18n for="transcodingProfile">Transcoding profile</label>
890 <span class="text-muted ml-1" i18n>new transcoding profiles can be added by PeerTube plugins</span> 923 <span class="text-muted ml-1" i18n>new transcoding profiles can be added by PeerTube plugins</span>
891 924
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 ae6a9e844..48fb86968 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
@@ -9,6 +9,7 @@ import {
9 ADMIN_EMAIL_VALIDATOR, 9 ADMIN_EMAIL_VALIDATOR,
10 CACHE_CAPTIONS_SIZE_VALIDATOR, 10 CACHE_CAPTIONS_SIZE_VALIDATOR,
11 CACHE_PREVIEWS_SIZE_VALIDATOR, 11 CACHE_PREVIEWS_SIZE_VALIDATOR,
12 CONCURRENCY_VALIDATOR,
12 INDEX_URL_VALIDATOR, 13 INDEX_URL_VALIDATOR,
13 INSTANCE_NAME_VALIDATOR, 14 INSTANCE_NAME_VALIDATOR,
14 INSTANCE_SHORT_DESCRIPTION_VALIDATOR, 15 INSTANCE_SHORT_DESCRIPTION_VALIDATOR,
@@ -36,6 +37,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A
36 37
37 resolutions: { id: string, label: string, description?: string }[] = [] 38 resolutions: { id: string, label: string, description?: string }[] = []
38 liveResolutions: { id: string, label: string, description?: string }[] = [] 39 liveResolutions: { id: string, label: string, description?: string }[] = []
40 concurrencyOptions: number[] = []
39 transcodingThreadOptions: { label: string, value: number }[] = [] 41 transcodingThreadOptions: { label: string, value: number }[] = []
40 liveMaxDurationOptions: { label: string, value: number }[] = [] 42 liveMaxDurationOptions: { label: string, value: number }[] = []
41 43
@@ -103,6 +105,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A
103 { value: 4, label: '4' }, 105 { value: 4, label: '4' },
104 { value: 8, label: '8' } 106 { value: 8, label: '8' }
105 ] 107 ]
108 this.concurrencyOptions = [ 1, 2, 3, 4, 5, 6 ]
106 109
107 this.vodTranscodingProfileOptions = [ 'default' ] 110 this.vodTranscodingProfileOptions = [ 'default' ]
108 this.liveTranscodingProfileOptions = [ 'default' ] 111 this.liveTranscodingProfileOptions = [ 'default' ]
@@ -230,6 +233,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A
230 }, 233 },
231 import: { 234 import: {
232 videos: { 235 videos: {
236 concurrency: CONCURRENCY_VALIDATOR,
233 http: { 237 http: {
234 enabled: null 238 enabled: null
235 }, 239 },
@@ -262,6 +266,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit, A
262 allowAdditionalExtensions: null, 266 allowAdditionalExtensions: null,
263 allowAudioFiles: null, 267 allowAudioFiles: null,
264 profile: null, 268 profile: null,
269 concurrency: CONCURRENCY_VALIDATOR,
265 resolutions: {}, 270 resolutions: {},
266 hls: { 271 hls: {
267 enabled: null 272 enabled: null
diff --git a/client/src/app/shared/form-validators/custom-config-validators.ts b/client/src/app/shared/form-validators/custom-config-validators.ts
index 41b3cbba9..23f2156c2 100644
--- a/client/src/app/shared/form-validators/custom-config-validators.ts
+++ b/client/src/app/shared/form-validators/custom-config-validators.ts
@@ -65,6 +65,14 @@ export const TRANSCODING_THREADS_VALIDATOR: BuildFormValidator = {
65 } 65 }
66} 66}
67 67
68export const CONCURRENCY_VALIDATOR: BuildFormValidator = {
69 VALIDATORS: [Validators.required, Validators.min(1)],
70 MESSAGES: {
71 'required': $localize`Concurrency is required.`,
72 'min': $localize`Concurrency should be greater or equal to 1.`
73 }
74}
75
68export const INDEX_URL_VALIDATOR: BuildFormValidator = { 76export const INDEX_URL_VALIDATOR: BuildFormValidator = {
69 VALIDATORS: [Validators.pattern(/^https:\/\//)], 77 VALIDATORS: [Validators.pattern(/^https:\/\//)],
70 MESSAGES: { 78 MESSAGES: {