From bfea2fe23ae2ea85743395c06e6a898e72addccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Mon, 14 Mar 2022 15:32:54 +0200 Subject: [PATCH] RED-3591: stop loading after trying to delete used dossier templates --- .../dossier-template-actions.component.ts | 6 ++++-- .../services/entity-services/dossier-templates.service.ts | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.ts b/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.ts index ad648ebec..6a5f06a10 100644 --- a/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.ts +++ b/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.ts @@ -42,8 +42,10 @@ export class DossierTemplateActionsComponent implements OnInit { this._dialogService.openDialog('confirm', $event, null, async () => { this._loadingService.start(); - await firstValueFrom(this._dossierTemplatesService.delete([this.dossierTemplateId])); - await this._router.navigate(['main', 'admin']); + const success = await firstValueFrom(this._dossierTemplatesService.delete([this.dossierTemplateId])); + if (success) { + await this._router.navigate(['main', 'admin']); + } this._loadingService.stop(); }); diff --git a/apps/red-ui/src/app/services/entity-services/dossier-templates.service.ts b/apps/red-ui/src/app/services/entity-services/dossier-templates.service.ts index af3c25801..471459d81 100644 --- a/apps/red-ui/src/app/services/entity-services/dossier-templates.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dossier-templates.service.ts @@ -1,7 +1,7 @@ import { EntitiesService, List, mapEach, RequiredParam, Toaster, Validate } from '@iqser/common-ui'; import { DossierTemplate, IDossierTemplate } from '@red/domain'; import { Injectable, Injector } from '@angular/core'; -import { forkJoin, map, Observable, of, throwError } from 'rxjs'; +import { forkJoin, Observable, of } from 'rxjs'; import { FileAttributesService } from './file-attributes.service'; import { catchError, mapTo, switchMap, tap } from 'rxjs/operators'; import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service'; @@ -49,19 +49,19 @@ export class DossierTemplatesService extends EntitiesService { + delete(body: List): Observable { const showToast = (error: HttpErrorResponse) => { if (error.status === HttpStatusCode.Conflict) { this._toaster.error(DOSSIER_TEMPLATE_CONFLICT_MSG); } else { this._toaster.error(GENERIC_MSG); } - return throwError(() => error); + return of(true); }; return super._post(body, `${this._defaultModelPath}/delete`).pipe( catchError(showToast), - switchMap(() => this.loadAll()), + switchMap(error => (error ? of(false) : this.loadAll().pipe(mapTo(true)))), ); }