RED-4361: Improve actions after archiving dossier

This commit is contained in:
Adina Țeudan 2022-06-23 14:54:24 +03:00
parent c1eee73804
commit 27f2ab35a9
4 changed files with 13 additions and 5 deletions

View File

@ -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();

View File

@ -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;

View File

@ -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({

View File

@ -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),
);
}