show deleted dossiers count in dossiers details

This commit is contained in:
Dan Percic 2021-11-17 18:05:50 +02:00
parent 39e6fcac92
commit cae558c77e
6 changed files with 14 additions and 16 deletions

View File

@ -1,6 +1,7 @@
<div> <div>
<redaction-simple-doughnut-chart <redaction-simple-doughnut-chart
[config]="dossiersChartData$ | async" *ngIf="dossiersChartData$ | async as config"
[config]="config"
[radius]="80" [radius]="80"
[strokeWidth]="15" [strokeWidth]="15"
[subtitle]="'dossier-listing.stats.charts.dossiers' | translate" [subtitle]="'dossier-listing.stats.charts.dossiers' | translate"

View File

@ -3,7 +3,7 @@ import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/si
import { FilterService, mapEach } from '@iqser/common-ui'; import { FilterService, mapEach } from '@iqser/common-ui';
import { DossiersService } from '@services/entity-services/dossiers.service'; import { DossiersService } from '@services/entity-services/dossiers.service';
import { combineLatest, Observable } from 'rxjs'; import { combineLatest, Observable } from 'rxjs';
import { Dossier, DossierStats, DossierStatuses, FileCountPerWorkflowStatus, StatusSorter } from '@red/domain'; import { Dossier, DossierStats, FileCountPerWorkflowStatus, StatusSorter } from '@red/domain';
import { workflowFileStatusTranslations } from '../../../../translations/file-status-translations'; import { workflowFileStatusTranslations } from '../../../../translations/file-status-translations';
import { TranslateChartService } from '@services/translate-chart.service'; import { TranslateChartService } from '@services/translate-chart.service';
import { filter, map, switchMap } from 'rxjs/operators'; import { filter, map, switchMap } from 'rxjs/operators';
@ -33,16 +33,15 @@ export class DossiersListingDetailsComponent {
map(stats => this._toChartData(stats)), map(stats => this._toChartData(stats)),
); );
this.dossiersChartData$ = this.dossiersService.all$.pipe(map(dossiers => this._toDossierChartData(dossiers))); this.dossiersChartData$ = this.dossiersService.all$.pipe(switchMap(dossiers => this._toDossierChartData(dossiers)));
} }
private _toDossierChartData(dossiers: Dossier[]): DoughnutChartConfig[] { private async _toDossierChartData(dossiers: Dossier[]): Promise<DoughnutChartConfig[]> {
const activeDossiersCount = dossiers.filter(p => p.status === DossierStatuses.ACTIVE).length; // TODO: deleted dossiers count should come with stats
const inactiveDossiersCount = dossiers.length - activeDossiersCount; const deletedDossiers = await this.dossiersService.getDeleted();
return [ return [
{ value: activeDossiersCount, color: 'ACTIVE', label: _('active') }, { value: dossiers.length, color: 'ACTIVE', label: _('active') },
{ value: inactiveDossiersCount, color: 'DELETED', label: _('archived') }, { value: deletedDossiers.length, color: 'DELETED', label: _('archived') },
]; ];
} }

View File

@ -75,7 +75,7 @@ export class DossiersService extends EntitiesService<Dossier, IDossier> {
return combineLatest([dossier$, stats$]).pipe( return combineLatest([dossier$, stats$]).pipe(
map(([updatedDossier]) => new Dossier(updatedDossier)), map(([updatedDossier]) => new Dossier(updatedDossier)),
tap(newDossier => this.replace(newDossier)), tap(newDossier => this.replace([newDossier])),
catchError(showToast), catchError(showToast),
); );
} }

View File

@ -56,7 +56,7 @@ export class UserService extends EntitiesService<User, IUser> {
const userId = (<{ sub: string }>decoded).sub; const userId = (<{ sub: string }>decoded).sub;
const roles = this._keycloakService.getUserRoles(true).filter(role => role.startsWith('RED_')); const roles = this._keycloakService.getUserRoles(true).filter(role => role.startsWith('RED_'));
this.replace(new User(await this._keycloakService.loadUserProfile(true), roles, userId)); this.replace([new User(await this._keycloakService.loadUserProfile(true), roles, userId)]);
this._currentUser$.next(this.find(userId)); this._currentUser$.next(this.find(userId));
} }

View File

@ -123,9 +123,7 @@ export class AppStateService {
const dossierIds = dossiers.map(dossier => dossier.dossierId); const dossierIds = dossiers.map(dossier => dossier.dossierId);
await this._dossierStatsService.getFor(dossierIds).toPromise(); await this._dossierStatsService.getFor(dossierIds).toPromise();
dossiers.forEach(dossier => { this._dossiersService.replace(dossiers.map(dossier => new Dossier(dossier)));
this._dossiersService.replace(new Dossier(dossier));
});
} }
async reloadFile(dossierId: string, fileId: string) { async reloadFile(dossierId: string, fileId: string) {
@ -201,7 +199,7 @@ export class AppStateService {
await this._fileAttributesService.getFileAttributesConfig(dossierTemplateId).toPromise(); await this._fileAttributesService.getFileAttributesConfig(dossierTemplateId).toPromise();
const newDossierTemplate = new DossierTemplate(dossierTemplate); const newDossierTemplate = new DossierTemplate(dossierTemplate);
this._dossierTemplatesService.replace(newDossierTemplate); this._dossierTemplatesService.replace([newDossierTemplate]);
await this.refreshDossierTemplateDictionaryData(dossierTemplateId); await this.refreshDossierTemplateDictionaryData(dossierTemplateId);
} }

@ -1 +1 @@
Subproject commit 74fcbf080b593622220bb2c7de08f69163acab04 Subproject commit 17c65675b934698a61a2c80435f532e5a77f0c97