75 lines
2.2 KiB
TypeScript
75 lines
2.2 KiB
TypeScript
|
|
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();
|
||
|
|
}
|
||
|
|
}
|