]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Add missing live config validators
authorChocobozzz <me@florianbigard.com>
Wed, 10 Feb 2021 10:42:10 +0000 (11:42 +0100)
committerChocobozzz <me@florianbigard.com>
Wed, 10 Feb 2021 10:42:10 +0000 (11:42 +0100)
client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
client/src/app/shared/form-validators/custom-config-validators.ts

index 534b03517b4810b12d3490b88c5ddb8129eda6c0..4596a130e4e9f3a8fcd14d03d0f95ecffd86a5e2 100644 (file)
@@ -56,6 +56,8 @@
     <div class="col-md-5 col-xl-5">
       <span class="form-error submit-error" i18n *ngIf="!form.valid">
         It seems like the configuration is invalid. Please search for potential errors in the different tabs.
+
+        {{ formErrors }}
       </span>
 
       <span class="form-error submit-error" i18n *ngIf="!hasLiveAllowReplayConsistentOptions()">
index a5eddf6c2b49a7dbf5400874febe5c5a15cb00cd..bbdf1bfbe027918da8bff7f5136878892005f832 100644 (file)
@@ -1,4 +1,6 @@
 
+import { forkJoin } from 'rxjs'
+import { SelectOptionsItem } from 'src/types/select-options-item.model'
 import { Component, OnInit } from '@angular/core'
 import { ActivatedRoute, Router } from '@angular/router'
 import { ConfigService } from '@app/+admin/config/shared/config.service'
@@ -12,6 +14,9 @@ import {
   INDEX_URL_VALIDATOR,
   INSTANCE_NAME_VALIDATOR,
   INSTANCE_SHORT_DESCRIPTION_VALIDATOR,
+  MAX_INSTANCE_LIVES_VALIDATOR,
+  MAX_LIVE_DURATION_VALIDATOR,
+  MAX_USER_LIVES_VALIDATOR,
   SEARCH_INDEX_URL_VALIDATOR,
   SERVICES_TWITTER_USERNAME_VALIDATOR,
   SIGNUP_LIMIT_VALIDATOR,
@@ -20,8 +25,6 @@ import {
 import { USER_VIDEO_QUOTA_DAILY_VALIDATOR, USER_VIDEO_QUOTA_VALIDATOR } from '@app/shared/form-validators/user-validators'
 import { FormReactive, FormValidatorService } from '@app/shared/shared-forms'
 import { CustomConfig, ServerConfig } from '@shared/models'
-import { forkJoin } from 'rxjs'
-import { SelectOptionsItem } from 'src/types/select-options-item.model'
 import { EditConfigurationService } from './edit-configuration.service'
 
 @Component({
@@ -156,9 +159,9 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
       live: {
         enabled: null,
 
-        maxDuration: null,
-        maxInstanceLives: null,
-        maxUserLives: null,
+        maxDuration: MAX_LIVE_DURATION_VALIDATOR,
+        maxInstanceLives: MAX_INSTANCE_LIVES_VALIDATOR,
+        maxUserLives: MAX_USER_LIVES_VALIDATOR,
         allowReplay: null,
 
         transcoding: {
index 23f2156c2586896465c0106c25942e93c15b31f7..d6ce6db22dc63496580fd8728c6fba8454e2682a 100644 (file)
@@ -65,6 +65,30 @@ export const TRANSCODING_THREADS_VALIDATOR: BuildFormValidator = {
   }
 }
 
+export const MAX_LIVE_DURATION_VALIDATOR: BuildFormValidator = {
+  VALIDATORS: [Validators.required, Validators.min(-1)],
+  MESSAGES: {
+    'required': $localize`Max live duration is required.`,
+    'min': $localize`Max live duration should be greater or equal to -1.`
+  }
+}
+
+export const MAX_INSTANCE_LIVES_VALIDATOR: BuildFormValidator = {
+  VALIDATORS: [Validators.required, Validators.min(-1)],
+  MESSAGES: {
+    'required': $localize`Max instance lives is required.`,
+    'min': $localize`Max instance lives should be greater or equal to -1.`
+  }
+}
+
+export const MAX_USER_LIVES_VALIDATOR: BuildFormValidator = {
+  VALIDATORS: [Validators.required, Validators.min(-1)],
+  MESSAGES: {
+    'required': $localize`Max user lives is required.`,
+    'min': $localize`Max user lives should be greater or equal to -1.`
+  }
+}
+
 export const CONCURRENCY_VALIDATOR: BuildFormValidator = {
   VALIDATORS: [Validators.required, Validators.min(1)],
   MESSAGES: {