diff options
3 files changed, 34 insertions, 5 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 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 @@ | |||
56 | <div class="col-md-5 col-xl-5"> | 56 | <div class="col-md-5 col-xl-5"> |
57 | <span class="form-error submit-error" i18n *ngIf="!form.valid"> | 57 | <span class="form-error submit-error" i18n *ngIf="!form.valid"> |
58 | It seems like the configuration is invalid. Please search for potential errors in the different tabs. | 58 | It seems like the configuration is invalid. Please search for potential errors in the different tabs. |
59 | |||
60 | {{ formErrors }} | ||
59 | </span> | 61 | </span> |
60 | 62 | ||
61 | <span class="form-error submit-error" i18n *ngIf="!hasLiveAllowReplayConsistentOptions()"> | 63 | <span class="form-error submit-error" i18n *ngIf="!hasLiveAllowReplayConsistentOptions()"> |
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 @@ | |||
1 | 1 | ||
2 | import { forkJoin } from 'rxjs' | ||
3 | import { SelectOptionsItem } from 'src/types/select-options-item.model' | ||
2 | import { Component, OnInit } from '@angular/core' | 4 | import { Component, OnInit } from '@angular/core' |
3 | import { ActivatedRoute, Router } from '@angular/router' | 5 | import { ActivatedRoute, Router } from '@angular/router' |
4 | import { ConfigService } from '@app/+admin/config/shared/config.service' | 6 | import { ConfigService } from '@app/+admin/config/shared/config.service' |
@@ -12,6 +14,9 @@ import { | |||
12 | INDEX_URL_VALIDATOR, | 14 | INDEX_URL_VALIDATOR, |
13 | INSTANCE_NAME_VALIDATOR, | 15 | INSTANCE_NAME_VALIDATOR, |
14 | INSTANCE_SHORT_DESCRIPTION_VALIDATOR, | 16 | INSTANCE_SHORT_DESCRIPTION_VALIDATOR, |
17 | MAX_INSTANCE_LIVES_VALIDATOR, | ||
18 | MAX_LIVE_DURATION_VALIDATOR, | ||
19 | MAX_USER_LIVES_VALIDATOR, | ||
15 | SEARCH_INDEX_URL_VALIDATOR, | 20 | SEARCH_INDEX_URL_VALIDATOR, |
16 | SERVICES_TWITTER_USERNAME_VALIDATOR, | 21 | SERVICES_TWITTER_USERNAME_VALIDATOR, |
17 | SIGNUP_LIMIT_VALIDATOR, | 22 | SIGNUP_LIMIT_VALIDATOR, |
@@ -20,8 +25,6 @@ import { | |||
20 | import { USER_VIDEO_QUOTA_DAILY_VALIDATOR, USER_VIDEO_QUOTA_VALIDATOR } from '@app/shared/form-validators/user-validators' | 25 | import { USER_VIDEO_QUOTA_DAILY_VALIDATOR, USER_VIDEO_QUOTA_VALIDATOR } from '@app/shared/form-validators/user-validators' |
21 | import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' | 26 | import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' |
22 | import { CustomConfig, ServerConfig } from '@shared/models' | 27 | import { CustomConfig, ServerConfig } from '@shared/models' |
23 | import { forkJoin } from 'rxjs' | ||
24 | import { SelectOptionsItem } from 'src/types/select-options-item.model' | ||
25 | import { EditConfigurationService } from './edit-configuration.service' | 28 | import { EditConfigurationService } from './edit-configuration.service' |
26 | 29 | ||
27 | @Component({ | 30 | @Component({ |
@@ -156,9 +159,9 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit { | |||
156 | live: { | 159 | live: { |
157 | enabled: null, | 160 | enabled: null, |
158 | 161 | ||
159 | maxDuration: null, | 162 | maxDuration: MAX_LIVE_DURATION_VALIDATOR, |
160 | maxInstanceLives: null, | 163 | maxInstanceLives: MAX_INSTANCE_LIVES_VALIDATOR, |
161 | maxUserLives: null, | 164 | maxUserLives: MAX_USER_LIVES_VALIDATOR, |
162 | allowReplay: null, | 165 | allowReplay: null, |
163 | 166 | ||
164 | transcoding: { | 167 | 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 = { | |||
65 | } | 65 | } |
66 | } | 66 | } |
67 | 67 | ||
68 | export const MAX_LIVE_DURATION_VALIDATOR: BuildFormValidator = { | ||
69 | VALIDATORS: [Validators.required, Validators.min(-1)], | ||
70 | MESSAGES: { | ||
71 | 'required': $localize`Max live duration is required.`, | ||
72 | 'min': $localize`Max live duration should be greater or equal to -1.` | ||
73 | } | ||
74 | } | ||
75 | |||
76 | export const MAX_INSTANCE_LIVES_VALIDATOR: BuildFormValidator = { | ||
77 | VALIDATORS: [Validators.required, Validators.min(-1)], | ||
78 | MESSAGES: { | ||
79 | 'required': $localize`Max instance lives is required.`, | ||
80 | 'min': $localize`Max instance lives should be greater or equal to -1.` | ||
81 | } | ||
82 | } | ||
83 | |||
84 | export const MAX_USER_LIVES_VALIDATOR: BuildFormValidator = { | ||
85 | VALIDATORS: [Validators.required, Validators.min(-1)], | ||
86 | MESSAGES: { | ||
87 | 'required': $localize`Max user lives is required.`, | ||
88 | 'min': $localize`Max user lives should be greater or equal to -1.` | ||
89 | } | ||
90 | } | ||
91 | |||
68 | export const CONCURRENCY_VALIDATOR: BuildFormValidator = { | 92 | export const CONCURRENCY_VALIDATOR: BuildFormValidator = { |
69 | VALIDATORS: [Validators.required, Validators.min(1)], | 93 | VALIDATORS: [Validators.required, Validators.min(1)], |
70 | MESSAGES: { | 94 | MESSAGES: { |