import {Component, Input, OnInit} from '@angular/core';
import {FormGroup, NgForm} from '@angular/forms';

@Component({
  selector: 'app-show-error',
  template: `
    <div *ngIf="errorMessages" class="alert alert-danger error-msg">
        <div *ngFor="let errorMessage of errorMessages">
            {{errorMessage}}
        </div>
    </div>`
})
export class ShowErrorComponent {

  @Input('path') controlPath: string;

  private form: FormGroup;

  constructor(ngForm: NgForm) {
    this.form = ngForm.form;
  }

  get errorMessages(): string[] {
    const control = this.form.get(this.controlPath);
    const messages = [];
    if (!control || !(control.touched) || !control.errors) {
      return null;
    }
    for (const code in control.errors) {

      // Berechnung der lesbaren Fehlermeldungen
      if (control.errors.hasOwnProperty(code)) {
        const error = control.errors[code];
        let message = '';
        switch (code) {
          case 'invalidIfCond':
            message = `${error.msg}`;
            break;
          default:
            message = `${name} is not valid`;
        }
        messages.push(message);
      }
    }
    return messages;
  }
}