From 01420bf08ffe1399c3371267f77d7ff9f1ef89c6 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Wed, 15 Mar 2023 21:12:53 +0200 Subject: [PATCH] RED-6394: fix dossier state name --- ...delete-dossier-state-dialog.component.html | 2 +- ...m-delete-dossier-state-dialog.component.ts | 51 ++++++++----------- ...ssier-states-listing-screen.component.html | 3 +- ...dossier-states-listing-screen.component.ts | 9 ++-- .../entity-services/dossier-states.service.ts | 7 ++- 5 files changed, 32 insertions(+), 40 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.html index 32e3c9315..0311a09eb 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.html @@ -4,7 +4,7 @@
-
{{ 'confirm-delete-dossier-state.warning' | translate : translateArgs }}
+
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.ts index 50d35b6ec..9a669a851 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.ts @@ -1,14 +1,13 @@ import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; import { DossierState } from '@red/domain'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { FormBuilder } from '@angular/forms'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { firstValueFrom, forkJoin } from 'rxjs'; +import { combineLatest, firstValueFrom } from 'rxjs'; import { DossierStatesService } from '@services/entity-services/dossier-states.service'; import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.service'; -import { take } from 'rxjs/operators'; interface DialogData { readonly toBeDeletedState: DossierState; @@ -17,17 +16,20 @@ interface DialogData { } @Component({ - selector: 'redaction-confirm-delete-dossier-state-dialog', templateUrl: './confirm-delete-dossier-state-dialog.component.html', styleUrls: ['./confirm-delete-dossier-state-dialog.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) export class ConfirmDeleteDossierStateDialogComponent { readonly iconButtonTypes = IconButtonTypes; - readonly form: UntypedFormGroup; + readonly form = this.#form; + readonly translateArgs = { + name: this.data.toBeDeletedState.name, + count: this.data.dossierCount, + }; constructor( - private readonly _formBuilder: UntypedFormBuilder, + private readonly _formBuilder: FormBuilder, private readonly _loadingService: LoadingService, private readonly _toaster: Toaster, private readonly _dossierStatesService: DossierStatesService, @@ -35,40 +37,31 @@ export class ConfirmDeleteDossierStateDialogComponent { private readonly _activeDossiersService: ActiveDossiersService, private readonly _archivedDossiersService: ArchivedDossiersService, @Inject(MAT_DIALOG_DATA) readonly data: DialogData, - ) { - this.form = this.#getForm(); - } - - get translateArgs() { - return { - name: this.data.toBeDeletedState.name, - count: this.data.dossierCount, - }; - } + ) {} get label(): string { return this.#replaceDossierStatusId ? _('confirm-delete-dossier-state.delete-replace') : _('confirm-delete-dossier-state.delete'); } get #replaceDossierStatusId(): string { - return this.form.get('replace').value ? this.form.get('replaceDossierStatusId').value : undefined; + return this.form.controls.replace.value ? this.form.controls.replaceDossierStatusId.value : undefined; } - async save(): Promise { - this._loadingService.start(); - await firstValueFrom(this._dossierStatesService.deleteState(this.data.toBeDeletedState, this.#replaceDossierStatusId)); - await firstValueFrom( - forkJoin([this._activeDossiersService.loadAll().pipe(take(1)), this._archivedDossiersService.loadAll().pipe(take(1))]), - ); - this._toaster.success(_('confirm-delete-dossier-state.success')); - this._dialogRef.close(); - this._loadingService.stop(); - } - - #getForm(): UntypedFormGroup { + get #form() { return this._formBuilder.group({ replace: [false], replaceDossierStatusId: [null], }); } + + async save() { + this._loadingService.start(); + + await this._dossierStatesService.deleteState(this.data.toBeDeletedState, this.#replaceDossierStatusId); + await firstValueFrom(combineLatest([this._activeDossiersService.loadAll(), this._archivedDossiersService.loadAll()])); + + this._toaster.success(_('confirm-delete-dossier-state.success')); + this._dialogRef.close(); + this._loadingService.stop(); + } } diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen.component.html index 46106d68b..0332051c9 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen.component.html @@ -37,7 +37,7 @@ [config]="chartConfig" [radius]="80" [strokeWidth]="15" - [subtitles]="['dossier-states-listing.chart.dossier-states' | translate: { count: chartConfig.length }]" + [subtitles]="['dossier-states-listing.chart.dossier-states' | translate : { count: chartConfig.length }]" [totalType]="'simpleLabel'" >
@@ -88,6 +88,7 @@ [type]="circleButtonTypes.dark" icon="iqser:edit" > + implements OnInit, OnDestroy { @@ -32,8 +31,8 @@ export class DossierStatesListingScreenComponent extends ListingComponent; - readonly #dossierTemplateId = getParam('dossierTemplateId'); + readonly chartConfig$: Observable; + readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID); constructor( private readonly _dialogService: AdminDialogService, diff --git a/apps/red-ui/src/app/services/entity-services/dossier-states.service.ts b/apps/red-ui/src/app/services/entity-services/dossier-states.service.ts index ac986008d..25a3ee518 100644 --- a/apps/red-ui/src/app/services/entity-services/dossier-states.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dossier-states.service.ts @@ -52,10 +52,9 @@ export class DossierStatesService extends EntitiesService { + async deleteState(dossierState: IDossierState, replaceDossierStatusId?: string) { const queryParams = replaceDossierStatusId ? [{ key: 'replaceDossierStatusId', value: replaceDossierStatusId }] : null; - return super - .delete(dossierState.dossierStatusId, this._defaultModelPath, queryParams) - .pipe(switchMap(() => this.loadAllForTemplate(dossierState.dossierTemplateId))); + await firstValueFrom(super.delete(dossierState.dossierStatusId, this._defaultModelPath, queryParams)); + return firstValueFrom(this.loadAllForTemplate(dossierState.dossierTemplateId)); } }