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 534b03517..4596a130e 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
@@ -56,6 +56,8 @@
It seems like the configuration is invalid. Please search for potential errors in the different tabs.
+
+ {{ formErrors }}
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 a5eddf6c2..bbdf1bfbe 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
@@ -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: {
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 23f2156c2..d6ce6db22 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,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: {