import { Component, Inject, OnInit } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import * as moment from 'moment'; import { CourtStatus } from '../../core/court-status'; import { Hearing } from '../../core/hearing'; @Component({ selector: 'app-hearing-dialog', templateUrl: './hearing-dialog.component.html', styleUrls: ['./hearing-dialog.component.css'], }) export class HearingDialogComponent implements OnInit { form: FormGroup; constructor( public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: { hearing: Hearing; courtStatuses: CourtStatus[] }, private fb: FormBuilder, ) { this.form = this.fb.group({ courtNumber: '', itemNumber: '', bench: '', latestStatus: '', proceedings: '', complianceDate: '', complianceDone: '', nextHearingDate: '', }); } ngOnInit() { this.form.setValue({ courtNumber: this.data.hearing.courtNumber, itemNumber: this.data.hearing.itemNumber, bench: this.data.hearing.bench, latestStatus: this.data.hearing.courtStatus.id, proceedings: this.data.hearing.proceedings, complianceDate: this.data.hearing.complianceDate ? moment(this.data.hearing.complianceDate, 'DD-MMM-YYYY').toDate() : '', complianceDone: this.data.hearing.complianceDone, nextHearingDate: this.data.hearing.nextHearingDate ? moment(this.data.hearing.nextHearingDate, 'DD-MMM-YYYY').toDate() : '', }); } accept(): void { const formValue = this.form.value; this.data.hearing.courtNumber = formValue.courtNumber; this.data.hearing.itemNumber = formValue.itemNumber; this.data.hearing.bench = formValue.bench; this.data.hearing.courtStatus = new CourtStatus({ id: formValue.latestStatus, name: (this.data.courtStatuses.find((x) => x.id === formValue.latestStatus) as CourtStatus) .name, }); this.data.hearing.proceedings = formValue.proceedings; this.data.hearing.complianceDate = formValue.complianceDate ? moment(formValue.complianceDate).format('DD-MMM-YYYY') : null; this.data.hearing.complianceDone = formValue.complianceDone; this.data.hearing.nextHearingDate = formValue.nextHearingDate ? moment(formValue.nextHearingDate).format('DD-MMM-YYYY') : null; this.dialogRef.close(this.data.hearing); } }