diff --git a/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.html b/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.html index 4a86c9beb..3e36230b7 100644 --- a/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.html @@ -43,13 +43,13 @@
- -
+
- + diff --git a/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts b/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts index f8048607f..2e1a482be 100644 --- a/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts @@ -1,10 +1,10 @@ -import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Inject, Injector } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Justification } from '@red/domain'; import { JustificationsService } from '@services/entity-services/justifications.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; -import { LoadingService } from '@iqser/common-ui'; +import { BaseDialogComponent, LoadingService } from '@iqser/common-ui'; @Component({ selector: 'redaction-add-edit-justification-dialog', @@ -12,23 +12,21 @@ import { LoadingService } from '@iqser/common-ui'; styleUrls: ['./add-edit-justification-dialog.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class AddEditJustificationDialogComponent { - readonly form: FormGroup = this._getForm(); +export class AddEditJustificationDialogComponent extends BaseDialogComponent { constructor( private readonly _formBuilder: FormBuilder, private readonly _justificationService: JustificationsService, private readonly _dossierTemplatesService: DossierTemplatesService, private readonly _loadingService: LoadingService, - public dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public justification: Justification, - ) {} + ) { + super(_injector, _dialogRef); - get changed(): boolean { - return ( - !this.justification || - Object.keys(this.form.getRawValue()).reduce((prev, key) => prev || this.justification[key] !== this.form.get(key).value, false) - ); + this.form = this._getForm(); + this.initialFormValue = this.form.getRawValue(); } async save() { @@ -38,7 +36,7 @@ export class AddEditJustificationDialogComponent { await this._justificationService.createOrUpdate(this.form.getRawValue(), dossierTemplateId).toPromise(); await this._justificationService.loadAll(dossierTemplateId).toPromise(); this._loadingService.stop(); - this.dialogRef.close(true); + this._dialogRef.close(true); } private _getForm(): FormGroup {