From 60947f8d75e8425151ab13e4e4c56ff9671b2323 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Tue, 20 Oct 2020 21:12:58 +0300 Subject: [PATCH] linked total people --- .../project-listing-screen.component.html | 2 +- .../project-listing-screen.component.ts | 4 ++++ apps/red-ui/src/app/state/app-state.service.ts | 16 ++++++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html b/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html index b922e88c6..25d2e89bb 100644 --- a/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html +++ b/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html @@ -120,7 +120,7 @@
-
240
+
{{totalPeople}}
diff --git a/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.ts b/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.ts index ba2a3f0ff..8247f709c 100644 --- a/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.ts +++ b/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.ts @@ -93,6 +93,10 @@ export class ProjectListingScreenComponent implements OnInit { return this.appStateService.totalAnalysedPages; } + get totalPeople(){ + return this.appStateService.totalPeople; + } + documentCount(project: ProjectWrapper) { return project.files.length; } diff --git a/apps/red-ui/src/app/state/app-state.service.ts b/apps/red-ui/src/app/state/app-state.service.ts index 5d115e7d0..66b63dd97 100644 --- a/apps/red-ui/src/app/state/app-state.service.ts +++ b/apps/red-ui/src/app/state/app-state.service.ts @@ -12,6 +12,7 @@ export interface AppState { activeFile: FileStatus; totalAnalysedPages?: number; totalDocuments?: number; + totalPeople?: number; } export class ProjectWrapper { @@ -31,6 +32,7 @@ export class AppStateService { private _appState: AppState; + constructor( private readonly _router: Router, private readonly _projectControllerService: ProjectControllerService, @@ -45,8 +47,8 @@ export class AppStateService { } get aggregatedFiles(): FileStatus[] { - const result : FileStatus[] =[]; - this._appState.projects.forEach(p =>{ + const result: FileStatus[] = []; + this._appState.projects.forEach(p => { result.push(...p.files); }) return result; @@ -55,6 +57,7 @@ export class AppStateService { get activeProjectId(): string { return this._appState.activeProject?.project?.projectId; } + get activeProject(): ProjectWrapper { return this._appState.activeProject; } @@ -71,6 +74,10 @@ export class AppStateService { return this._appState.totalAnalysedPages; } + get totalPeople() { + return this._appState.totalPeople; + } + get totalDocuments() { return this._appState.totalDocuments; } @@ -150,13 +157,18 @@ export class AppStateService { private _computeStats() { let totalAnalysedPages = 0; let totalDocuments = 0; + const totalPeople = new Set(); this._appState.projects.forEach(p => { totalDocuments += p.files.length; + if (p.project.memberIds) { + p.project.memberIds.forEach(m => totalPeople.add(m)); + } p.files.forEach(f => { totalAnalysedPages += f.numberOfPages; }) }) + this._appState.totalPeople = totalPeople.size; this._appState.totalAnalysedPages = totalAnalysedPages; this._appState.totalDocuments = totalDocuments;