client-app/src/app/home/copy-carnet-dialog.component.ts

75 lines
2.2 KiB
TypeScript
Raw Normal View History

2025-08-15 17:04:59 -03:00
import { Component, inject, Inject } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { CommonModule } from '@angular/common';
import { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
import { AngularMaterialModule } from '../shared/module/angular-material.module';
@Component({
selector: 'app-copy-carnet-dialog',
imports: [AngularMaterialModule, CommonModule, ReactiveFormsModule],
template: `
<h2 mat-dialog-title>Copy Carnet</h2>
<mat-dialog-content>
<form [formGroup]="carnetForm">
<div class="form-row">
<!-- Application Name Field -->
<mat-form-field appearance="outline">
<mat-label>Application Name</mat-label>
<input matInput formControlName="applicationName" required>
<mat-error *ngIf="carnetForm.get('applicationName')?.errors?.['required']">
Application name is required
</mat-error>
</mat-form-field>
</div>
</form>
</mat-dialog-content>
<mat-dialog-actions>
<button mat-raised-button color="primary" (click)="onSubmit()" [disabled]="!carnetForm.valid">
Ok
</button>
<button mat-button (click)="onCancel()">Cancel</button>
</mat-dialog-actions>
`,
styles: [`
.form-row {
display: flex;
gap: 16px;
margin-top: 0.5rem;
align-items: start;
mat-form-field {
flex: 1;
margin-bottom: 6px;
}
}
`]
})
export class CopyCarnetDialogComponent {
headerid: number = 0;
carnetForm: FormGroup;
private fb = inject(FormBuilder);
constructor(
public dialogRef: MatDialogRef<CopyCarnetDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: { headerid: number }
) {
this.headerid = data.headerid;
this.carnetForm = this.fb.group({
applicationName: ['', Validators.required]
});
}
onSubmit(): void {
const data = {
applicationName: this.carnetForm.value.applicationName,
headerid: this.headerid
}
this.dialogRef.close(data);
}
onCancel(): void {
this.dialogRef.close();
}
}