fix RED-3395: mark page as seen when user changes

This commit is contained in:
Dan Percic 2022-02-14 12:58:01 +02:00
parent 57eba9eb2d
commit 38616a76ce
2 changed files with 7 additions and 13 deletions

View File

@ -92,7 +92,7 @@
<mat-icon svgIcon="red:nav-first"></mat-icon>
</div>
<div class="pages" id="pages">
<div *ngIf="state.fileData$ | async as fileData" class="pages" id="pages">
<redaction-page-indicator
(pageSelected)="pageSelectedByClick($event)"
*ngFor="let pageNumber of displayedPages"
@ -100,6 +100,7 @@
[active]="pageNumber === activeViewerPage"
[number]="pageNumber"
[showDottedIcon]="hasOnlyManualRedactionsAndIsExcluded(pageNumber)"
[viewedPages]="fileData.viewedPages"
></redaction-page-indicator>
</div>

View File

@ -1,11 +1,9 @@
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, Output } from '@angular/core';
import { PermissionsService } from '@services/permissions.service';
import { ConfigService } from '@services/config.service';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { ViewedPagesService } from '@services/entity-services/viewed-pages.service';
import { IViewedPage } from '@red/domain';
import { AutoUnsubscribe } from '@iqser/common-ui';
import { FilesMapService } from '@services/entity-services/files-map.service';
import { FilePreviewStateService } from '../../services/file-preview-state.service';
import { firstValueFrom } from 'rxjs';
@ -20,6 +18,7 @@ export class PageIndicatorComponent extends AutoUnsubscribe implements OnDestroy
@Input() showDottedIcon = false;
@Input() number: number;
@Input() activeSelection = false;
@Input() viewedPages: IViewedPage[] = [];
@Output() readonly pageSelected = new EventEmitter<number>();
@ -28,8 +27,6 @@ export class PageIndicatorComponent extends AutoUnsubscribe implements OnDestroy
constructor(
private readonly _viewedPagesService: ViewedPagesService,
private readonly _filesMapService: FilesMapService,
private readonly _dossiersService: DossiersService,
private readonly _configService: ConfigService,
private readonly _changeDetectorRef: ChangeDetectorRef,
private readonly _permissionService: PermissionsService,
@ -39,7 +36,7 @@ export class PageIndicatorComponent extends AutoUnsubscribe implements OnDestroy
}
get activePage() {
return this._viewedPages.find(p => p.page === this.number);
return this.viewedPages.find(p => p.page === this.number);
}
get dossierId() {
@ -50,10 +47,6 @@ export class PageIndicatorComponent extends AutoUnsubscribe implements OnDestroy
return this._stateService.fileId;
}
private get _viewedPages(): IViewedPage[] {
return this._stateService.fileData?.viewedPages || [];
}
ngOnChanges() {
this._setReadState();
return this.handlePageRead();
@ -104,7 +97,7 @@ export class PageIndicatorComponent extends AutoUnsubscribe implements OnDestroy
if (this.activePage) {
this.activePage.showAsUnseen = false;
} else {
this._viewedPages.push({ page: this.number, fileId: this.fileId });
this.viewedPages.push({ page: this.number, fileId: this.fileId });
}
this._setReadState();
}
@ -113,8 +106,8 @@ export class PageIndicatorComponent extends AutoUnsubscribe implements OnDestroy
const removePage$ = this._viewedPagesService.removePage(this.dossierId, this.fileId, this.number);
await firstValueFrom(removePage$);
this._viewedPages.splice(
this._viewedPages.findIndex(p => p.page === this.number),
this.viewedPages.splice(
this.viewedPages.findIndex(p => p.page === this.number),
1,
);
this._setReadState();