From 27f2ab35a9082d2bc40bd943ff433b0cd2a95f39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 23 Jun 2022 14:54:24 +0300 Subject: [PATCH] RED-4361: Improve actions after archiving dossier --- .../edit-dossier-general-info.component.ts | 1 - .../dictionary-manager.component.ts | 2 +- .../dossier-templates/dashboard-stats.service.ts | 3 +-- .../services/dossiers/archived-dossiers.service.ts | 12 +++++++++++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts index 663e6dd41..443f074bc 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts @@ -165,7 +165,6 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti if (result === ConfirmOptions.CONFIRM) { this._loadingService.start(); await firstValueFrom(this._archivedDossiersService.archive([this.dossier])); - await this._router.navigate([this.dossier.dossiersListRouterLink]); this._toaster.success(_('dossier-listing.archive.archive-succeeded'), { params: this.dossier }); this._editDossierDialogRef.close(); this._loadingService.stop(); diff --git a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.ts b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.ts index 1c9a9bca7..a951b9321 100644 --- a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.ts @@ -62,7 +62,7 @@ export class DictionaryManagerComponent implements OnChanges { return this._dossierTemplate; } - set dossierTemplate(value) { + set dossierTemplate(value: DossierTemplate) { this._dossierTemplate = value; this.dictionaries = this._dictionaries; this._compareDictionary = this.selectDictionary; diff --git a/apps/red-ui/src/app/services/dossier-templates/dashboard-stats.service.ts b/apps/red-ui/src/app/services/dossier-templates/dashboard-stats.service.ts index 75c248f89..e5b57103a 100644 --- a/apps/red-ui/src/app/services/dossier-templates/dashboard-stats.service.ts +++ b/apps/red-ui/src/app/services/dossier-templates/dashboard-stats.service.ts @@ -11,9 +11,8 @@ const templatesSorter = (a: DashboardStats, b: DashboardStats) => { return -1; } else if (a.isEmpty && !b.isEmpty) { return 1; - } else { - return 0; } + return 0; }; @Injectable({ diff --git a/apps/red-ui/src/app/services/dossiers/archived-dossiers.service.ts b/apps/red-ui/src/app/services/dossiers/archived-dossiers.service.ts index e27e8150f..733f47d70 100644 --- a/apps/red-ui/src/app/services/dossiers/archived-dossiers.service.ts +++ b/apps/red-ui/src/app/services/dossiers/archived-dossiers.service.ts @@ -1,5 +1,5 @@ import { Injectable, Injector } from '@angular/core'; -import { ARCHIVE_ROUTE, Dossier, DOSSIERS_ARCHIVE } from '@red/domain'; +import { ARCHIVE_ROUTE, Dossier, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE } from '@red/domain'; import { catchError, switchMap, tap } from 'rxjs/operators'; import { Observable, of } from 'rxjs'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -8,6 +8,7 @@ import { DossiersService } from './dossiers.service'; import { FilesMapService } from '../files/files-map.service'; import { FeaturesService } from '../features.service'; import { DashboardStatsService } from '@services/dossier-templates/dashboard-stats.service'; +import { Router } from '@angular/router'; @Injectable({ providedIn: 'root' }) export class ArchivedDossiersService extends DossiersService { @@ -17,6 +18,7 @@ export class ArchivedDossiersService extends DossiersService { private readonly _filesMapService: FilesMapService, private readonly _featuresService: FeaturesService, private readonly _dashboardStats: DashboardStatsService, + private readonly _router: Router, ) { super(_injector, 'archived-dossiers', ARCHIVE_ROUTE); } @@ -28,10 +30,18 @@ export class ArchivedDossiersService extends DossiersService { }; const archivedDossiersIds = dossiers.map(d => d.dossierId); + const dossierTemplateId = dossiers[0].dossierTemplateId; return this._post(archivedDossiersIds, `${this._defaultModelPath}/archive`).pipe( switchMap(() => this._dashboardStats.loadAll()), tap(() => this.#removeFromActiveDossiers(archivedDossiersIds)), + switchMap(async () => { + let route = dossiers[0].dossiersListRouterLink; + if (!this._activeDossiersService.all.find(d => d.dossierTemplateId === dossierTemplateId)) { + route = route.replace(DOSSIERS_ROUTE, ARCHIVE_ROUTE); + } + await this._router.navigate([route]); + }), catchError(showArchiveFailedToast), ); }