diff --git a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html index 73f64fe6e..ca0255dc1 100644 --- a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html +++ b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html @@ -26,7 +26,9 @@ [isOpenEntityForm]="isOpenProfileForm" [initialEntity]="vm.selectedProfile" (addEntity)="openForm()" - (menuItemClicked)="menuItemClicked($event, vm.profiles)"> + (menuItemClicked)=" + menuItemClicked($event, vm.profiles, vm.selectedProfile) + "> @@ -45,7 +47,7 @@ [profileFormat]="vm.profileFormat" (saveProfile)="saveProfileClicked($event, vm.selectedProfile)" (deleteCopy)="deleteCopy($event, vm.profiles)" - (delete)="deleteProfile($event, vm.profiles)" + (delete)="deleteProfile($event, vm.profiles, vm.selectedProfile)" (copyProfile)="copyProfile($event, vm.profiles)" (discard)="discard($event, vm.profiles)"> diff --git a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts index 3ae05d261..699a550a7 100644 --- a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts +++ b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts @@ -211,7 +211,7 @@ describe('RiskAssessmentComponent', () => { } as MatDialogRef); tick(); - component.deleteProfile(PROFILE_MOCK, [PROFILE_MOCK]); + component.deleteProfile(PROFILE_MOCK, [PROFILE_MOCK], PROFILE_MOCK); tick(); expect(openSpy).toHaveBeenCalledWith(SimpleDialogComponent, { @@ -247,7 +247,7 @@ describe('RiskAssessmentComponent', () => { tick(); - component.deleteProfile(PROFILE_MOCK, [PROFILE_MOCK]); + component.deleteProfile(PROFILE_MOCK, [PROFILE_MOCK], PROFILE_MOCK); tick(); expect( @@ -261,7 +261,11 @@ describe('RiskAssessmentComponent', () => { afterClosed: () => of(true), } as MatDialogRef); component.isCopyProfile = true; - component.deleteProfile(PROFILE_MOCK, [PROFILE_MOCK]); + component.deleteProfile( + DRAFT_COPY_PROFILE_MOCK, + [DRAFT_COPY_PROFILE_MOCK, PROFILE_MOCK], + DRAFT_COPY_PROFILE_MOCK + ); tick(); expect(mockRiskAssessmentStore.removeProfile).toHaveBeenCalled(); diff --git a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts index 1b98d82d6..6dc2297c0 100644 --- a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts +++ b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts @@ -168,7 +168,11 @@ export class RiskAssessmentComponent return copyOfProfile; } - deleteProfile(profile: Profile, profiles: Profile[]): void { + deleteProfile( + profile: Profile, + profiles: Profile[], + selectedProfile: Profile | null + ): void { const profileName = profile.name; const dialogRef = this.dialog.open(SimpleDialogComponent, { data: { @@ -186,16 +190,20 @@ export class RiskAssessmentComponent .pipe(takeUntil(this.destroy$)) .subscribe(deleteProfile => { if (deleteProfile) { - if (profile && this.isCopyProfile) { + if ( + profile && + profile.status === ProfileStatus.DRAFT && + !profile.created + ) { this.deleteCopy(profile, profiles); - this.closeFormAfterDelete(profile.name, profile); + this.closeFormAfterDelete(profile.name, selectedProfile); this.focusAddButton(); return; } else { this.store.deleteProfile({ name: profileName, onDelete: (idx = 0) => { - this.closeFormAfterDelete(profileName, profile); + this.closeFormAfterDelete(profileName, selectedProfile); timer(100).subscribe(() => { this.setFocus(idx); }); @@ -300,14 +308,15 @@ export class RiskAssessmentComponent menuItemClicked( { action, entity }: EntityActionResult, - profiles: Profile[] + profiles: Profile[], + selectedProfile: Profile | null ) { switch (action) { case ProfileAction.Copy: this.copyProfileAndOpenForm(entity, profiles); break; case ProfileAction.Delete: - this.deleteProfile(entity, profiles); + this.deleteProfile(entity, profiles, selectedProfile); break; } }