Improve edit config submit error

pull/3745/head
Chocobozzz 2021-02-10 12:06:26 +01:00
parent 4e55c132a0
commit 45ba09fef3
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 34 additions and 4 deletions

View File

@ -54,11 +54,16 @@
<div class="form-row mt-4"> <!-- submit placement block -->
<div class="col-md-7 col-xl-5"></div>
<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>
<div class="form-error submit-error" i18n *ngIf="!form.valid">
There are errors in the form:
<ul>
<li *ngFor="let error of grabAllErrors()">
{{ error }}
</li>
</ul>
</div>
<span class="form-error submit-error" i18n *ngIf="!hasLiveAllowReplayConsistentOptions()">
You cannot allow live replay if you don't enable transcoding.

View File

@ -290,6 +290,25 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
this.router.navigate([], { fragment: this.activeNav })
}
grabAllErrors (errorObjectArg?: any) {
const errorObject = errorObjectArg || this.formErrors
let acc: string[] = []
for (const key of Object.keys(errorObject)) {
const value = errorObject[key]
if (!value) continue
if (typeof value === 'string') {
acc.push(value)
} else {
acc = acc.concat(this.grabAllErrors(value))
}
}
return acc
}
private updateForm () {
this.form.patchValue(this.customConfig)
}

View File

@ -45,6 +45,8 @@
<input type="number" name="liveMaxInstanceLives" formControlName="maxInstanceLives" />
<span i18n>{form.value['live']['maxInstanceLives'], plural, =1 {live} other {lives}}</span>
</div>
<div *ngIf="formErrors.live.maxInstanceLives" class="form-error">{{ formErrors.live.maxInstanceLives }}</div>
</div>
<div class="form-group" [ngClass]="getDisabledLiveClass()">
@ -56,6 +58,8 @@
<input type="number" name="liveMaxUserLives" formControlName="maxUserLives" />
<span i18n>{form.value['live']['maxUserLives'], plural, =1 {live} other {lives}}</span>
</div>
<div *ngIf="formErrors.live.maxUserLives" class="form-error">{{ formErrors.live.maxUserLives }}</div>
</div>
<div class="form-group" [ngClass]="getDisabledLiveClass()">
@ -65,6 +69,8 @@
labelForId="liveMaxDuration" [items]="liveMaxDurationOptions" formControlName="maxDuration"
bindLabel="label" bindValue="value" [clearable]="false" [searchable]="true"
></my-select-options>
<div *ngIf="formErrors.live.maxDuration" class="form-error">{{ formErrors.live.maxDuration }}</div>
</div>
</ng-container>