extended base dialog for 'add dossier' component
This commit is contained in:
parent
5e0af3e614
commit
8bae52c895
@ -1,5 +1,5 @@
|
|||||||
<section class="dialog">
|
<section class="dialog">
|
||||||
<form (submit)="saveDossier()" [formGroup]="form">
|
<form (submit)="save()" [formGroup]="form">
|
||||||
<div class="dialog-header heading-l" translate="add-dossier-dialog.header-new"></div>
|
<div class="dialog-header heading-l" translate="add-dossier-dialog.header-new"></div>
|
||||||
|
|
||||||
<div class="dialog-content">
|
<div class="dialog-content">
|
||||||
@ -91,7 +91,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<iqser-icon-button
|
<iqser-icon-button
|
||||||
(action)="saveDossier(true)"
|
(action)="save({ addMembers: true })"
|
||||||
[disabled]="disabled"
|
[disabled]="disabled"
|
||||||
[label]="'add-dossier-dialog.actions.save-and-add-members' | translate"
|
[label]="'add-dossier-dialog.actions.save-and-add-members' | translate"
|
||||||
[type]="iconButtonTypes.dark"
|
[type]="iconButtonTypes.dark"
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component, Injector } from '@angular/core';
|
||||||
import { MatDialogRef } from '@angular/material/dialog';
|
import { MatDialogRef } from '@angular/material/dialog';
|
||||||
import { DownloadFileType, IDossierRequest, IDossierTemplate, IReportTemplate } from '@red/domain';
|
import { DownloadFileType, IDossierRequest, IDossierTemplate, IReportTemplate } from '@red/domain';
|
||||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||||
import * as moment from 'moment';
|
import * as moment from 'moment';
|
||||||
import { downloadTypesTranslations } from '../../../../translations/download-types-translations';
|
import { downloadTypesTranslations } from '../../../../translations/download-types-translations';
|
||||||
import { IconButtonTypes } from '@iqser/common-ui';
|
import { BaseDialogComponent, IconButtonTypes, SaveOptions } from '@iqser/common-ui';
|
||||||
import { DossiersService } from '@services/entity-services/dossiers.service';
|
import { DossiersService } from '@services/entity-services/dossiers.service';
|
||||||
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
|
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
|
||||||
import { ReportTemplateService } from '@services/report-template.service';
|
import { ReportTemplateService } from '@services/report-template.service';
|
||||||
@ -13,10 +13,9 @@ import { ReportTemplateService } from '@services/report-template.service';
|
|||||||
templateUrl: './add-dossier-dialog.component.html',
|
templateUrl: './add-dossier-dialog.component.html',
|
||||||
styleUrls: ['./add-dossier-dialog.component.scss'],
|
styleUrls: ['./add-dossier-dialog.component.scss'],
|
||||||
})
|
})
|
||||||
export class AddDossierDialogComponent {
|
export class AddDossierDialogComponent extends BaseDialogComponent {
|
||||||
readonly iconButtonTypes = IconButtonTypes;
|
readonly iconButtonTypes = IconButtonTypes;
|
||||||
|
|
||||||
readonly form: FormGroup;
|
|
||||||
hasDueDate = false;
|
hasDueDate = false;
|
||||||
downloadTypes: { key: DownloadFileType; label: string }[] = ['ORIGINAL', 'PREVIEW', 'REDACTED'].map((type: DownloadFileType) => ({
|
downloadTypes: { key: DownloadFileType; label: string }[] = ['ORIGINAL', 'PREVIEW', 'REDACTED'].map((type: DownloadFileType) => ({
|
||||||
key: type,
|
key: type,
|
||||||
@ -30,10 +29,13 @@ export class AddDossierDialogComponent {
|
|||||||
private readonly _dossierTemplatesService: DossierTemplatesService,
|
private readonly _dossierTemplatesService: DossierTemplatesService,
|
||||||
private readonly _formBuilder: FormBuilder,
|
private readonly _formBuilder: FormBuilder,
|
||||||
private readonly _reportTemplateController: ReportTemplateService,
|
private readonly _reportTemplateController: ReportTemplateService,
|
||||||
readonly dialogRef: MatDialogRef<AddDossierDialogComponent>,
|
protected readonly _injector: Injector,
|
||||||
|
protected readonly _dialogRef: MatDialogRef<AddDossierDialogComponent>,
|
||||||
) {
|
) {
|
||||||
|
super(_injector, _dialogRef);
|
||||||
this._getDossierTemplates();
|
this._getDossierTemplates();
|
||||||
this.form = this._getForm();
|
this.form = this._getForm();
|
||||||
|
this.initialFormValue = this.form.getRawValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
private _getForm(): FormGroup {
|
private _getForm(): FormGroup {
|
||||||
@ -75,10 +77,10 @@ export class AddDossierDialogComponent {
|
|||||||
|
|
||||||
reportTemplateValueMapper = (reportTemplate: IReportTemplate) => reportTemplate.templateId;
|
reportTemplateValueMapper = (reportTemplate: IReportTemplate) => reportTemplate.templateId;
|
||||||
|
|
||||||
async saveDossier(addMembers = false) {
|
async save(options?: SaveOptions) {
|
||||||
const savedDossier = await this._dossiersService.createOrUpdate(this._formToObject()).toPromise();
|
const savedDossier = await this._dossiersService.createOrUpdate(this._formToObject()).toPromise();
|
||||||
if (savedDossier) {
|
if (savedDossier) {
|
||||||
this.dialogRef.close({ dossier: savedDossier, addMembers });
|
this._dialogRef.close({ dossier: savedDossier, addMembers: options?.addMembers });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -53,7 +53,7 @@
|
|||||||
{{ 'edit-dossier-dialog.actions.save' | translate }}
|
{{ 'edit-dossier-dialog.actions.save' | translate }}
|
||||||
</button>
|
</button>
|
||||||
<iqser-icon-button
|
<iqser-icon-button
|
||||||
(action)="save(true)"
|
(action)="save({ closeAfterSave: true })"
|
||||||
[disabled]="disabled || !valid || !changed"
|
[disabled]="disabled || !valid || !changed"
|
||||||
[label]="'edit-dossier-dialog.actions.save-and-close' | translate"
|
[label]="'edit-dossier-dialog.actions.save-and-close' | translate"
|
||||||
[type]="iconButtonTypes.dark"
|
[type]="iconButtonTypes.dark"
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { Dossier } from '@red/domain';
|
|||||||
import { EditDossierGeneralInfoComponent } from './general-info/edit-dossier-general-info.component';
|
import { EditDossierGeneralInfoComponent } from './general-info/edit-dossier-general-info.component';
|
||||||
import { EditDossierDownloadPackageComponent } from './download-package/edit-dossier-download-package.component';
|
import { EditDossierDownloadPackageComponent } from './download-package/edit-dossier-download-package.component';
|
||||||
import { EditDossierSectionInterface } from './edit-dossier-section.interface';
|
import { EditDossierSectionInterface } from './edit-dossier-section.interface';
|
||||||
import { BaseDialogComponent, ConfirmOptions, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
|
import { BaseDialogComponent, ConfirmOptions, IconButtonTypes, LoadingService, SaveOptions, Toaster } from '@iqser/common-ui';
|
||||||
import { EditDossierDictionaryComponent } from './dictionary/edit-dossier-dictionary.component';
|
import { EditDossierDictionaryComponent } from './dictionary/edit-dossier-dictionary.component';
|
||||||
import { EditDossierAttributesComponent } from './attributes/edit-dossier-attributes.component';
|
import { EditDossierAttributesComponent } from './attributes/edit-dossier-attributes.component';
|
||||||
|
|
||||||
@ -128,7 +128,7 @@ export class EditDossierDialogComponent extends BaseDialogComponent {
|
|||||||
return this.activeComponent?.disabled;
|
return this.activeComponent?.disabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
async save(closeAfterSave: boolean = false) {
|
async save(options?: SaveOptions) {
|
||||||
this._loadingService.start();
|
this._loadingService.start();
|
||||||
const result = await this.activeComponent.save();
|
const result = await this.activeComponent.save();
|
||||||
this._loadingService.stop();
|
this._loadingService.stop();
|
||||||
@ -137,7 +137,7 @@ export class EditDossierDialogComponent extends BaseDialogComponent {
|
|||||||
this._toaster.success(_('edit-dossier-dialog.change-successful'), { params: { dossierName: this._dossierName } });
|
this._toaster.success(_('edit-dossier-dialog.change-successful'), { params: { dossierName: this._dossierName } });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result.success && closeAfterSave) {
|
if (result.success && options?.closeAfterSave) {
|
||||||
this._dialogRef.close();
|
this._dialogRef.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user