Umbau Filter linksseitig

This commit is contained in:
2025-07-20 17:35:45 -05:00
parent 466e1dcdce
commit 24db8927e8
40 changed files with 894 additions and 626 deletions

View File

@@ -0,0 +1,60 @@
import { Injectable } from '@angular/core';
export interface ValidationMessage {
field: string;
message: string;
}
@Injectable({
providedIn: 'root',
})
export class ValidationService {
private messages: ValidationMessage[] = [];
constructor() {}
/**
* Fügt Validierungsnachrichten hinzu oder aktualisiert bestehende
* @param messages Array von Validierungsnachrichten
*/
setMessages(messages: ValidationMessage[]): void {
this.messages = messages;
}
/**
* Löscht alle Validierungsmeldungen
*/
clearMessages(): void {
this.messages = [];
}
/**
* Prüft, ob für ein bestimmtes Feld eine Validierungsmeldung existiert
* @param field Name des Feldes
* @returns true, wenn eine Meldung existiert
*/
hasMessage(field: string): boolean {
return this.messages.some(message => message.field === field);
}
/**
* Gibt die Validierungsmeldung für ein bestimmtes Feld zurück
* @param field Name des Feldes
* @returns ValidationMessage oder null, wenn keine Meldung existiert
*/
getMessage(field: string): ValidationMessage | null {
return this.messages.find(message => message.field === field) || null;
}
/**
* Hilfsmethode zur Verarbeitung von API-Fehlermeldungen
* @param error API-Fehler mit message-Array
*/
handleApiError(error: any): void {
if (error && error.message && Array.isArray(error.message)) {
this.setMessages(error.message);
} else {
this.clearMessages();
}
}
}