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