From 7677b599a4d53e788099f12e6b38169e9dc2be3c Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Fri, 24 Apr 2020 18:26:56 +0100 Subject: [PATCH] FEAT #13670 TIME 1:10 Clear interval + fix logout from process page --- src/frontend/app/actions/actions.service.ts | 6 ++++++ .../template/template-administration.component.ts | 3 +++ src/frontend/app/process/process.component.ts | 3 +++ src/frontend/app/signature-book.component.ts | 4 ++++ src/frontend/app/viewer/document-viewer.component.ts | 6 ++++++ src/frontend/service/app.guard.ts | 6 +++--- 6 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/frontend/app/actions/actions.service.ts b/src/frontend/app/actions/actions.service.ts index af2801d6055..e22014e5623 100644 --- a/src/frontend/app/actions/actions.service.ts +++ b/src/frontend/app/actions/actions.service.ts @@ -71,6 +71,12 @@ export class ActionsService { ) { } + ngOnDestroy(): void { + if (this.currentResourceLock) { + clearInterval(this.currentResourceLock); + } + } + catchAction(): Observable<any> { return this.eventAction.asObservable(); } diff --git a/src/frontend/app/administration/template/template-administration.component.ts b/src/frontend/app/administration/template/template-administration.component.ts index e60df48ac7e..0e052d36c34 100755 --- a/src/frontend/app/administration/template/template-administration.component.ts +++ b/src/frontend/app/administration/template/template-administration.component.ts @@ -672,6 +672,9 @@ export class TemplateAdministrationComponent implements OnInit, OnDestroy { ngOnDestroy() { tinymce.remove('textarea'); + if (this.intervalLockFile) { + clearInterval(this.intervalLockFile); + } } } @Component({ diff --git a/src/frontend/app/process/process.component.ts b/src/frontend/app/process/process.component.ts index 473c367f1d5..338b167a886 100755 --- a/src/frontend/app/process/process.component.ts +++ b/src/frontend/app/process/process.component.ts @@ -683,6 +683,9 @@ export class ProcessComponent implements OnInit { } ngOnDestroy() { + if (this.currentResourceLock) { + clearInterval(this.currentResourceLock); + } // unsubscribe to ensure no memory leaks this.subscription.unsubscribe(); } diff --git a/src/frontend/app/signature-book.component.ts b/src/frontend/app/signature-book.component.ts index e3d059125aa..7135f0f6576 100755 --- a/src/frontend/app/signature-book.component.ts +++ b/src/frontend/app/signature-book.component.ts @@ -600,6 +600,10 @@ export class SignatureBookComponent implements OnInit { } ngOnDestroy() { + if (this.currentResourceLock) { + clearInterval(this.currentResourceLock); + } + // unsubscribe to ensure no memory leaks this.subscription.unsubscribe(); } diff --git a/src/frontend/app/viewer/document-viewer.component.ts b/src/frontend/app/viewer/document-viewer.component.ts index d9ff3c6553f..e01c2548241 100755 --- a/src/frontend/app/viewer/document-viewer.component.ts +++ b/src/frontend/app/viewer/document-viewer.component.ts @@ -208,6 +208,12 @@ export class DocumentViewerComponent implements OnInit { } } + ngOnDestroy() { + if (this.intervalLockFile) { + clearInterval(this.intervalLockFile); + } + } + loadFileFromBase64() { this.loading = true; this.file = { diff --git a/src/frontend/service/app.guard.ts b/src/frontend/service/app.guard.ts index 1ead3da4c47..d71cca9b128 100644 --- a/src/frontend/service/app.guard.ts +++ b/src/frontend/service/app.guard.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, CanDeactivate } from '@angular/router'; +import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, CanDeactivate, UrlTree } from '@angular/router'; import { HttpClient } from '@angular/common/http'; import { Observable, of } from 'rxjs'; import { map, tap, catchError, exhaustMap, filter } from 'rxjs/operators'; @@ -181,8 +181,8 @@ export class AppGuard implements CanActivate { export class AfterProcessGuard implements CanDeactivate<ProcessComponent> { constructor() { } - async canDeactivate(component: ProcessComponent): Promise<boolean> { - if (!component.isActionEnded() && !component.detailMode) { + async canDeactivate(component: ProcessComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState: RouterStateSnapshot): Promise<boolean> { + if (nextState.url != '/login' && !component.isActionEnded() && !component.detailMode) { component.unlockResource(); } -- GitLab