From d854c12b84f71143ffc4187e90516b3f73dda7df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Tue, 15 Mar 2022 19:31:56 +0200 Subject: [PATCH] Deleted dossier stats --- .../trash-table-item.component.html | 28 +++++-------------- .../trash-table-item.component.ts | 16 ++++++++--- .../dossier-name-column.component.html | 4 +-- .../dossier-name-column.component.ts | 5 ++-- .../services/entity-services/trash.service.ts | 3 +- libs/common-ui | 2 +- .../src/lib/dossiers/dossier.model.ts | 4 +++ .../src/lib/trash/trash-dossier.model.ts | 2 ++ 8 files changed, 32 insertions(+), 32 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/screens/trash/trash-table-item/trash-table-item.component.html b/apps/red-ui/src/app/modules/admin/screens/trash/trash-table-item/trash-table-item.component.html index 669a54d8a..39d3eacbd 100644 --- a/apps/red-ui/src/app/modules/admin/screens/trash/trash-table-item/trash-table-item.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/trash/trash-table-item/trash-table-item.component.html @@ -7,25 +7,11 @@ [file]="file" > - -
- {{ dossier.name }} -
-
-
- - {{ dossier.memberIds.length }} -
-
- - {{ dossier.date | date: 'mediumDate' }} -
-
- - {{ dossier.dueDate | date: 'mediumDate' }} -
-
-
+ @@ -34,9 +20,9 @@
- + {{ fileDossier.dossierName }} - + -
diff --git a/apps/red-ui/src/app/modules/admin/screens/trash/trash-table-item/trash-table-item.component.ts b/apps/red-ui/src/app/modules/admin/screens/trash/trash-table-item/trash-table-item.component.ts index 97f4e4f8b..06190de02 100644 --- a/apps/red-ui/src/app/modules/admin/screens/trash/trash-table-item/trash-table-item.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/trash/trash-table-item/trash-table-item.component.ts @@ -1,7 +1,9 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output } from '@angular/core'; -import { Dossier, TrashDossier, TrashFile, TrashItem } from '@red/domain'; +import { Dossier, DossierStats, TrashDossier, TrashFile, TrashItem } from '@red/domain'; import { CircleButtonTypes } from '@iqser/common-ui'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; +import { Observable } from 'rxjs'; +import { DossierStatsService } from '@services/dossiers/dossier-stats.service'; @Component({ selector: 'redaction-trash-table-item [item]', @@ -15,9 +17,10 @@ export class TrashTableItemComponent implements OnChanges { @Input() item: TrashItem; @Output() restore = new EventEmitter(); @Output() hardDelete = new EventEmitter(); - fileDossier: Dossier; + fileDossier$: Observable; + dossierStats$: Observable; - constructor(private readonly _activeDossiersService: ActiveDossiersService) {} + constructor(private readonly _activeDossiersService: ActiveDossiersService, readonly dossierStatsService: DossierStatsService) {} file(item: TrashItem): TrashFile { return item as TrashFile; @@ -28,6 +31,11 @@ export class TrashTableItemComponent implements OnChanges { } ngOnChanges(): void { - this.fileDossier = this._activeDossiersService.find(this.dossier(this.item).dossierId); + if (this.item.isFile) { + this.fileDossier$ = this._activeDossiersService.getEntityChanged$(this.file(this.item).dossierId); + } + if (this.item.isDossier) { + this.dossierStats$ = this.dossierStatsService.watch$(this.dossier(this.item).id); + } } } diff --git a/apps/red-ui/src/app/modules/shared/components/dossier-name-column/dossier-name-column.component.html b/apps/red-ui/src/app/modules/shared/components/dossier-name-column/dossier-name-column.component.html index dea2c6bfa..978eb68c6 100644 --- a/apps/red-ui/src/app/modules/shared/components/dossier-name-column/dossier-name-column.component.html +++ b/apps/red-ui/src/app/modules/shared/components/dossier-name-column/dossier-name-column.component.html @@ -12,10 +12,10 @@
- {{ dossierStats.numberOfFiles }} + {{ dossier.isSoftDeleted ? dossierStats.numberOfSoftDeletedFiles : dossierStats.numberOfFiles }}
-
+
{{ dossierStats.numberOfPages }}
diff --git a/apps/red-ui/src/app/modules/shared/components/dossier-name-column/dossier-name-column.component.ts b/apps/red-ui/src/app/modules/shared/components/dossier-name-column/dossier-name-column.component.ts index d65488e93..710f5fdfc 100644 --- a/apps/red-ui/src/app/modules/shared/components/dossier-name-column/dossier-name-column.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/dossier-name-column/dossier-name-column.component.ts @@ -1,17 +1,18 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; -import { DossierStats } from '@red/domain'; +import { Dossier, DossierStats } from '@red/domain'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import * as moment from 'moment'; import { List } from '@iqser/common-ui'; const DUE_DATE_WARN_DAYS = 14; -interface PartialDossier { +interface PartialDossier extends Partial { readonly dossierName: string; readonly dossierTemplateId: string; readonly dueDate?: string; readonly date?: string; readonly memberIds: List; + readonly isSoftDeleted: boolean; } @Component({ diff --git a/apps/red-ui/src/app/services/entity-services/trash.service.ts b/apps/red-ui/src/app/services/entity-services/trash.service.ts index c9d968106..b8dc6ad17 100644 --- a/apps/red-ui/src/app/services/entity-services/trash.service.ts +++ b/apps/red-ui/src/app/services/entity-services/trash.service.ts @@ -73,8 +73,7 @@ export class TrashService extends GenericService { this._permissionsService.canDeleteDossier(dossier), ), ), - // TODO: API to include deleted dossiers - // switchMap(dossiers => this._dossierStatsService.getFor(dossiers.map(d => d.id)).pipe(mapTo(dossiers))), + switchMap(dossiers => this._dossierStatsService.getFor(dossiers.map(d => d.id) as string[]).pipe(map(() => dossiers))), ); } diff --git a/libs/common-ui b/libs/common-ui index a6c4093d3..8a992aa44 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit a6c4093d3553c4d0f95e496678e2a8f1cab0b9de +Subproject commit 8a992aa440ff24d1244e24edea3ce75fdadbebd5 diff --git a/libs/red-domain/src/lib/dossiers/dossier.model.ts b/libs/red-domain/src/lib/dossiers/dossier.model.ts index fba166c8a..b0e04911a 100644 --- a/libs/red-domain/src/lib/dossiers/dossier.model.ts +++ b/libs/red-domain/src/lib/dossiers/dossier.model.ts @@ -64,6 +64,10 @@ export class Dossier implements IDossier, IListable, IRouterPath { return this.status === DossierStatuses.ACTIVE; } + get isSoftDeleted(): boolean { + return this.status === DossierStatuses.DELETED; + } + hasMember(memberId: string): boolean { return !!this.memberIds && this.memberIds.indexOf(memberId) >= 0; } diff --git a/libs/red-domain/src/lib/trash/trash-dossier.model.ts b/libs/red-domain/src/lib/trash/trash-dossier.model.ts index c26d101de..7cd317f11 100644 --- a/libs/red-domain/src/lib/trash/trash-dossier.model.ts +++ b/libs/red-domain/src/lib/trash/trash-dossier.model.ts @@ -6,6 +6,8 @@ export class TrashDossier extends TrashItem { readonly type = 'dossier'; readonly icon = 'red:folder'; + readonly isSoftDeleted = true; + readonly dossierId: string; readonly dossierTemplateId: string; readonly dossierName: string;