From 7298a817c30ed2b70ce66ec90e1f6ee2eca2fe79 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Thu, 27 Jan 2022 17:59:38 +0200 Subject: [PATCH] filter not active dossier templates when adding or editing a dossier --- .../translations/dossier-template-status-translations.ts | 3 ++- .../add-dossier-dialog/add-dossier-dialog.component.ts | 2 +- .../general-info/edit-dossier-general-info.component.ts | 2 +- .../src/lib/dossier-templates/dossier-template.model.ts | 7 ++++++- .../src/lib/dossier-templates/dossier-template.ts | 3 ++- libs/red-domain/src/lib/dossier-templates/index.ts | 1 + libs/red-domain/src/lib/dossier-templates/types.ts | 6 ++++++ 7 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 libs/red-domain/src/lib/dossier-templates/types.ts diff --git a/apps/red-ui/src/app/modules/admin/translations/dossier-template-status-translations.ts b/apps/red-ui/src/app/modules/admin/translations/dossier-template-status-translations.ts index a9de7a50b..452ab8825 100644 --- a/apps/red-ui/src/app/modules/admin/translations/dossier-template-status-translations.ts +++ b/apps/red-ui/src/app/modules/admin/translations/dossier-template-status-translations.ts @@ -1,6 +1,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { DossierTemplateStatus } from '@red/domain'; -export const dossierTemplateStatusTranslations = { +export const dossierTemplateStatusTranslations: { readonly [key in DossierTemplateStatus]: string } = { ACTIVE: _('dossier-templates.status.active'), INCOMPLETE: _('dossier-templates.status.incomplete'), } as const; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts index 121c9cda1..edc03ca0e 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts @@ -117,7 +117,7 @@ export class AddDossierDialogComponent extends BaseDialogComponent { .filter(r => { const notYetValid = !!r.validFrom && moment(r.validFrom).isAfter(moment()); const notValidAnymore = !!r.validTo && moment(r.validTo).add(1, 'd').isBefore(moment()); - return !(notYetValid || notValidAnymore); + return !(notYetValid || notValidAnymore) && r.isActive; }) .sort((t1, t2) => t1.name.toLowerCase().localeCompare(t2.name.toLowerCase())); } diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts index c7eb44a96..4925acddb 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts @@ -153,7 +153,7 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti } const notYetValid = !!r.validFrom && moment(r.validFrom).isAfter(moment()); const notValidAnymore = !!r.validTo && moment(r.validTo).add(1, 'd').isBefore(moment()); - return !(notYetValid || notValidAnymore); + return !(notYetValid || notValidAnymore) && r.isActive; }); } } diff --git a/libs/red-domain/src/lib/dossier-templates/dossier-template.model.ts b/libs/red-domain/src/lib/dossier-templates/dossier-template.model.ts index d4b58a5ac..703853f39 100644 --- a/libs/red-domain/src/lib/dossier-templates/dossier-template.model.ts +++ b/libs/red-domain/src/lib/dossier-templates/dossier-template.model.ts @@ -1,6 +1,7 @@ import { IListable, List } from '@iqser/common-ui'; import { IDossierTemplate } from './dossier-template'; import { DownloadFileType } from '../shared'; +import { DossierTemplateStatus, DossierTemplateStatuses } from './types'; export class DossierTemplate implements IDossierTemplate, IListable { readonly createdBy: string; @@ -14,7 +15,7 @@ export class DossierTemplate implements IDossierTemplate, IListable { readonly reportTemplateIds?: List; readonly validFrom?: string; readonly validTo?: string; - readonly dossierTemplateStatus: string; + readonly dossierTemplateStatus: DossierTemplateStatus; constructor(dossierTemplate: IDossierTemplate) { this.createdBy = dossierTemplate.createdBy; @@ -31,6 +32,10 @@ export class DossierTemplate implements IDossierTemplate, IListable { this.dossierTemplateStatus = dossierTemplate.dossierTemplateStatus; } + get isActive(): boolean { + return this.dossierTemplateStatus === DossierTemplateStatuses.ACTIVE; + } + get id(): string { return this.dossierTemplateId; } diff --git a/libs/red-domain/src/lib/dossier-templates/dossier-template.ts b/libs/red-domain/src/lib/dossier-templates/dossier-template.ts index cf2b60574..f05c44084 100644 --- a/libs/red-domain/src/lib/dossier-templates/dossier-template.ts +++ b/libs/red-domain/src/lib/dossier-templates/dossier-template.ts @@ -1,5 +1,6 @@ import { List } from '@iqser/common-ui'; import { DownloadFileType } from '../shared'; +import { DossierTemplateStatus } from './types'; export interface IDossierTemplate { /** @@ -46,5 +47,5 @@ export interface IDossierTemplate { * Validity of end this dossierTemplate. */ readonly validTo?: string; - readonly dossierTemplateStatus: string; + readonly dossierTemplateStatus: DossierTemplateStatus; } diff --git a/libs/red-domain/src/lib/dossier-templates/index.ts b/libs/red-domain/src/lib/dossier-templates/index.ts index 1e5fdfe97..cf815ad22 100644 --- a/libs/red-domain/src/lib/dossier-templates/index.ts +++ b/libs/red-domain/src/lib/dossier-templates/index.ts @@ -2,3 +2,4 @@ export * from './dossier-template'; export * from './dossier-template.model'; export * from './dossier-template-stats'; export * from './dossier-template-stats.model'; +export * from './types'; diff --git a/libs/red-domain/src/lib/dossier-templates/types.ts b/libs/red-domain/src/lib/dossier-templates/types.ts new file mode 100644 index 000000000..cf3d4e675 --- /dev/null +++ b/libs/red-domain/src/lib/dossier-templates/types.ts @@ -0,0 +1,6 @@ +export const DossierTemplateStatuses = { + ACTIVE: 'ACTIVE', + INCOMPLETE: 'INCOMPLETE', +} as const; + +export type DossierTemplateStatus = keyof typeof DossierTemplateStatuses;