Deleted dossier stats
This commit is contained in:
parent
7e93e2f0f2
commit
d854c12b84
@ -7,25 +7,11 @@
|
||||
[file]="file"
|
||||
></redaction-file-name-column>
|
||||
|
||||
<ng-container *ngIf="item.isDossier && dossier(item) as dossier">
|
||||
<div [matTooltip]="dossier.name" class="table-item-title heading" matTooltipPosition="above">
|
||||
{{ dossier.name }}
|
||||
</div>
|
||||
<div class="small-label stats-subtitle">
|
||||
<div>
|
||||
<mat-icon svgIcon="red:user"></mat-icon>
|
||||
{{ dossier.memberIds.length }}
|
||||
</div>
|
||||
<div>
|
||||
<mat-icon svgIcon="red:calendar"></mat-icon>
|
||||
{{ dossier.date | date: 'mediumDate' }}
|
||||
</div>
|
||||
<div *ngIf="dossier.dueDate">
|
||||
<mat-icon svgIcon="red:lightning"></mat-icon>
|
||||
{{ dossier.dueDate | date: 'mediumDate' }}
|
||||
</div>
|
||||
</div>
|
||||
</ng-container>
|
||||
<redaction-dossier-name-column
|
||||
*ngIf="item.isDossier"
|
||||
[dossierStats]="dossierStats$ | async"
|
||||
[dossier]="dossier(item)"
|
||||
></redaction-dossier-name-column>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -34,9 +20,9 @@
|
||||
</div>
|
||||
|
||||
<div class="cell">
|
||||
<span *ngIf="item.isFile" [routerLink]="fileDossier.routerLink" class="small-label link-action">
|
||||
<a *ngIf="item.isFile && fileDossier$ | async as fileDossier" [routerLink]="fileDossier.routerLink" class="small-label link-action">
|
||||
{{ fileDossier.dossierName }}
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<span *ngIf="item.isDossier" class="small-label">-</span>
|
||||
</div>
|
||||
|
||||
@ -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<TrashItem[]>();
|
||||
@Output() hardDelete = new EventEmitter<TrashItem[]>();
|
||||
fileDossier: Dossier;
|
||||
fileDossier$: Observable<Dossier>;
|
||||
dossierStats$: Observable<DossierStats>;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,10 +12,10 @@
|
||||
<div *ngIf="dossierStats" class="stats-subtitle">
|
||||
<div class="small-label">
|
||||
<mat-icon svgIcon="iqser:document"></mat-icon>
|
||||
{{ dossierStats.numberOfFiles }}
|
||||
{{ dossier.isSoftDeleted ? dossierStats.numberOfSoftDeletedFiles : dossierStats.numberOfFiles }}
|
||||
</div>
|
||||
|
||||
<div class="small-label">
|
||||
<div *ngIf="!dossier.isSoftDeleted" class="small-label">
|
||||
<mat-icon svgIcon="iqser:pages"></mat-icon>
|
||||
{{ dossierStats.numberOfPages }}
|
||||
</div>
|
||||
|
||||
@ -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<Dossier> {
|
||||
readonly dossierName: string;
|
||||
readonly dossierTemplateId: string;
|
||||
readonly dueDate?: string;
|
||||
readonly date?: string;
|
||||
readonly memberIds: List;
|
||||
readonly isSoftDeleted: boolean;
|
||||
}
|
||||
|
||||
@Component({
|
||||
|
||||
@ -73,8 +73,7 @@ export class TrashService extends GenericService<TrashItem> {
|
||||
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))),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit a6c4093d3553c4d0f95e496678e2a8f1cab0b9de
|
||||
Subproject commit 8a992aa440ff24d1244e24edea3ce75fdadbebd5
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user