diff --git a/apps/red-ui/src/app/modules/archive/archive-routing.module.ts b/apps/red-ui/src/app/modules/archive/archive-routing.module.ts index 3e1c8f3ca..3fb43c206 100644 --- a/apps/red-ui/src/app/modules/archive/archive-routing.module.ts +++ b/apps/red-ui/src/app/modules/archive/archive-routing.module.ts @@ -29,7 +29,7 @@ const routes: Routes = [ path: `:${DOSSIER_ID}/file/:${FILE_ID}`, canActivate: [CompositeRouteGuard], data: { - routeGuards: [DossierFilesGuard, FilePreviewGuard], + routeGuards: [DossierFilesGuard], breadcrumbs: [BreadcrumbTypes.archive, BreadcrumbTypes.dossier, BreadcrumbTypes.file], dossiersService: ARCHIVED_DOSSIERS_SERVICE, }, diff --git a/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts b/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts index d83e69f31..8c31d2698 100644 --- a/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts +++ b/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts @@ -22,7 +22,7 @@ const routes: Routes = [ path: `:${DOSSIER_ID}/file/:${FILE_ID}`, canActivate: [CompositeRouteGuard], data: { - routeGuards: [DossierFilesGuard, FilePreviewGuard], + routeGuards: [DossierFilesGuard], breadcrumbs: [BreadcrumbTypes.main, BreadcrumbTypes.dossier, BreadcrumbTypes.file], dossiersService: ACTIVE_DOSSIERS_SERVICE, }, diff --git a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts index ddc08f024..0d2d29b9b 100644 --- a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts @@ -202,7 +202,8 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni async ngOnAttach(previousRoute: ActivatedRouteSnapshot): Promise { const file = await this.stateService.file; if (!file.canBeOpened) { - return this._router.navigate([this._dossiersService.find(this.dossierId)?.routerLink]); + this._navigateToDossier(); + return; } this._viewModeService.compareMode = false; this._viewModeService.switchToStandard(); @@ -214,18 +215,23 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } async ngOnInit(): Promise { - this.ready = false; - this._loadingService.start(); - await this.userPreferenceService.saveLastOpenedFileForDossier(this.dossierId, this.fileId); - this._subscribeToFileUpdates(); - const file = await this.stateService.file; - if (file?.analysisRequired && !file.excludedFromAutomaticAnalysis) { - const reanalyzeFiles = this._reanalysisService.reanalyzeFilesForDossier([file], this.dossierId, { force: true }); - await firstValueFrom(reanalyzeFiles); - } - this.displayPdfViewer = true; + if (!file) { + this._handleDeletedFile(); + } else { + this.ready = false; + this._loadingService.start(); + await this.userPreferenceService.saveLastOpenedFileForDossier(this.dossierId, this.fileId); + this._subscribeToFileUpdates(); + + if (file?.analysisRequired && !file.excludedFromAutomaticAnalysis) { + const reanalyzeFiles = this._reanalysisService.reanalyzeFilesForDossier([file], this.dossierId, { force: true }); + await firstValueFrom(reanalyzeFiles); + } + + this.displayPdfViewer = true; + } } async rebuildFilters() { @@ -586,10 +592,10 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni .pipe(tap(() => this._handleDeletedDossier())) .subscribe(); - this.addActiveScreenSubscription = this._filesMapService - .watchDeleted$(this.fileId) - .pipe(tap(() => this._handleDeletedFile())) - .subscribe(); + // this.addActiveScreenSubscription = this._filesMapService + // .watchDeleted$(this.fileId) + // .pipe(tap(() => this._handleDeletedFile())) + // .subscribe(); this.addActiveScreenSubscription = this._skippedService.hideSkipped$ .pipe(tap(hideSkipped => this._handleIgnoreAnnotationsDrawing(hideSkipped))) @@ -604,7 +610,13 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni private _handleDeletedFile(): void { this._errorService.set( - new CustomError(_('error.deleted-entity.file.label'), _('error.deleted-entity.file.action'), 'iqser:expand'), + new CustomError( + _('error.deleted-entity.file.label'), + _('error.deleted-entity.file.action'), + 'iqser:expand', + null, + this._navigateToDossier.bind(this), + ), ); } @@ -677,4 +689,8 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni annotation['FillColor'] = color; }); } + + private _navigateToDossier() { + this._router.navigate([this._dossiersService.find(this.dossierId)?.routerLink]); + } } diff --git a/apps/red-ui/src/app/modules/file-preview/services/file-data.service.ts b/apps/red-ui/src/app/modules/file-preview/services/file-data.service.ts index 074fa1187..ed193df33 100644 --- a/apps/red-ui/src/app/modules/file-preview/services/file-data.service.ts +++ b/apps/red-ui/src/app/modules/file-preview/services/file-data.service.ts @@ -102,12 +102,7 @@ export class FileDataService { async loadAnnotations() { const file = await this._state.file; - if (!file) { - const dossier = await this._state.dossier; - return this._router.navigate([dossier.routerLink]); - } - - if (file.isUnprocessed) { + if (!file || file.isUnprocessed) { return; }