add config upload and viewing returned errors for modules and routes

This commit is contained in:
Joel Wetzell
2026-03-12 17:07:09 -05:00
parent 9570428df9
commit 597e0c4aa4
17 changed files with 248 additions and 142 deletions
+23 -2
View File
@@ -3,13 +3,14 @@ import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angula
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
import { ModuleConfiguration } from '../../models/config.models';
import { ModuleConfig } from '../../models/config.models';
import { SchemaService } from '../../services/schema.service';
import { ParamsFormComponent } from '../params-form/params-form.component';
import { JsonPipe } from '@angular/common';
import { MatTooltipModule } from '@angular/material/tooltip';
import { EventsService } from '../../services/events.service';
import { tap, debounceTime } from 'rxjs';
import { ConfigService } from '../../services/config.service';
@Component({
selector: 'app-module',
@@ -27,7 +28,17 @@ import { tap, debounceTime } from 'rxjs';
})
export class ModuleComponent {
path = input<string>('');
module = model<ModuleConfiguration>();
index = computed(() => {
const path = this.path();
if (path) {
const parts = path.split('/');
const lastPart = parts[parts.length - 1];
return parseInt(lastPart, 10);
}
return undefined;
});
module = model<ModuleConfig>();
delete = output<void>();
params = computed(() => this.module()!.params);
@@ -39,6 +50,15 @@ export class ModuleComponent {
: undefined;
});
moduleConfigErrors = computed(() => {
const index = this.index();
const moduleErrors = this.configService.moduleErrors();
if (index !== undefined) {
return moduleErrors.filter((error) => error.index === index);
}
return [];
});
formGroup: FormGroup = new FormGroup({
id: new FormControl('', [Validators.required]),
type: new FormControl(''),
@@ -49,6 +69,7 @@ export class ModuleComponent {
private schemaService = inject(SchemaService);
private eventsService = inject(EventsService);
private configService = inject(ConfigService);
ngOnInit(): void {
this.formGroup.patchValue({
id: this.module()?.id,