fix dossier stats's weird behaviour

This commit is contained in:
Dan Percic 2021-11-18 01:04:03 +02:00
parent 2034f00e75
commit 5ccf8b2111
4 changed files with 25 additions and 23 deletions

View File

@ -1,4 +1,4 @@
<iqser-status-bar *ngIf="dossierStats$ | async as stats" [configs]="statusConfig(stats)"></iqser-status-bar>
<iqser-status-bar *ngIf="stats" [configs]="statusConfig(stats)"></iqser-status-bar>
<div (longPress)="forceReanalysisAction($event)" class="action-buttons" redactionLongPress>
<iqser-circle-button

View File

@ -1,4 +1,4 @@
import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
import { PermissionsService } from '@services/permissions.service';
import { CircleButtonTypes, StatusBarConfig } from '@iqser/common-ui';
import { UserService } from '@services/user.service';
@ -10,8 +10,6 @@ import { UserPreferenceService } from '@services/user-preference.service';
import { FilesMapService } from '@services/entity-services/files-map.service';
import { ReanalysisService } from '@services/reanalysis.service';
import { switchMapTo, tap } from 'rxjs/operators';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { Observable } from 'rxjs';
@Component({
selector: 'redaction-dossiers-listing-actions',
@ -19,15 +17,16 @@ import { Observable } from 'rxjs';
styleUrls: ['./dossiers-listing-actions.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DossiersListingActionsComponent implements OnInit {
export class DossiersListingActionsComponent {
readonly circleButtonTypes = CircleButtonTypes;
readonly currentUser = this._userService.currentUser;
analysisForced: boolean;
@Input() dossier: Dossier;
@Input() stats: DossierStats;
@Output() readonly actionPerformed = new EventEmitter<Dossier | undefined>();
dossierStats$: Observable<DossierStats>;
constructor(
readonly appStateService: AppStateService,
@ -36,14 +35,9 @@ export class DossiersListingActionsComponent implements OnInit {
readonly permissionsService: PermissionsService,
readonly filesMapService: FilesMapService,
private readonly _dialogService: DossiersDialogService,
private readonly _dossierStatsService: DossierStatsService,
private readonly _userPreferenceService: UserPreferenceService,
) {}
ngOnInit() {
this.dossierStats$ = this._dossierStatsService.watch$(this.dossier.dossierId);
}
statusConfig(stats: DossierStats): readonly StatusBarConfig<string>[] {
return Object.keys(stats.fileCountPerWorkflowStatus)
.sort(StatusSorter.byStatus)

View File

@ -1,17 +1,19 @@
<ng-container *ngIf="dossierStatsService.watch$(dossier.dossierId) | async as stats">
<div class="cell">
<redaction-dossiers-listing-dossier-name [dossierStats]="stats" [dossier]="dossier"></redaction-dossiers-listing-dossier-name>
</div>
<div class="cell">
<redaction-dossiers-listing-dossier-name [dossierStats]="stats" [dossier]="dossier"></redaction-dossiers-listing-dossier-name>
</div>
<div class="cell">
<redaction-dossier-workload-column [dossierStats]="stats" [dossier]="dossier"></redaction-dossier-workload-column>
</div>
</ng-container>
<div class="cell">
<redaction-dossier-workload-column [dossierStats]="stats" [dossier]="dossier"></redaction-dossier-workload-column>
</div>
<div class="cell user-column">
<redaction-initials-avatar [user]="dossier.ownerId" [withName]="true"></redaction-initials-avatar>
</div>
<div class="cell status-container">
<redaction-dossiers-listing-actions (actionPerformed)="calculateData.emit()" [dossier]="dossier"></redaction-dossiers-listing-actions>
<redaction-dossiers-listing-actions
(actionPerformed)="calculateData.emit()"
[dossier]="dossier"
[stats]="stats"
></redaction-dossiers-listing-actions>
</div>

View File

@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
import { Dossier } from '@red/domain';
import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';
import { Dossier, DossierStats } from '@red/domain';
import { Required } from '@iqser/common-ui';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
@ -9,9 +9,15 @@ import { DossierStatsService } from '@services/entity-services/dossier-stats.ser
styleUrls: ['./table-item.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class TableItemComponent {
export class TableItemComponent implements OnChanges {
@Input() @Required() dossier!: Dossier;
@Output() readonly calculateData = new EventEmitter();
stats: DossierStats;
constructor(readonly dossierStatsService: DossierStatsService) {}
ngOnChanges() {
this.stats = this.dossierStatsService.get(this.dossier.dossierId);
}
}