diff --git a/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.spec.ts b/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.spec.ts index 2099588d498d90965f498e9c9c8a1bce56d9bce5..f264006658fe044ac57ad9a2926427046ba6f029 100644 --- a/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.spec.ts +++ b/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.spec.ts @@ -99,4 +99,12 @@ describe('OrganisationsEinheitService', () => { expect(searchService.selectResult).toHaveBeenCalledWith(organisationsEinheitResource); }); }); + + describe('clear selected result', () => { + it('should call service', () => { + service.clearSelectedResult(); + + expect(searchService.clearSelectedResult).toHaveBeenCalled(); + }); + }); }); diff --git a/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.ts b/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.ts index f4fadaf317dfd2bc7bf9103e8bd4d953613c21aa..495c115446391b8d126feef91bc6b02ad9c24134 100644 --- a/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.ts +++ b/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.ts @@ -30,4 +30,8 @@ export class OrganisationsEinheitService { public selectSearchResult(organisationsEinheitResource: OrganisationsEinheitResource): void { this.searchService.selectResult(organisationsEinheitResource); } + + public clearSelectedResult(): void { + this.searchService.clearSelectedResult(); + } } diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.spec.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.spec.ts index 85649462f34ddd362382333feed07cf10693ed88..a5e6e9e22dc4c22f174f59115b1bb954d1addaf3 100644 --- a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.spec.ts +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.spec.ts @@ -155,4 +155,12 @@ describe('CollaborationInVorgangContainerComponent', () => { expect(service.hideRequestForm).toHaveBeenCalled(); }); }); + + describe('ngOnDestroy', () => { + it('should call service to clear selected result', () => { + component.ngOnDestroy(); + + expect(organisationsEinheitSearchService.clearSelectedResult).toHaveBeenCalled(); + }); + }); }); diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.ts index 63127377e2c066b9a8eedaa7e2ca7b58c74ba8fa..50c5d04bcffdbd5cd7171a14c5f696839b7447ea 100644 --- a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.ts +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.ts @@ -1,6 +1,6 @@ import { OrganisationsEinheitResource } from '@alfa-client/collaboration-shared'; import { StateResource } from '@alfa-client/tech-shared'; -import { Component, OnInit } from '@angular/core'; +import { Component, OnDestroy, OnInit } from '@angular/core'; import { CollaborationListResource } from 'libs/collaboration-shared/src/lib/collaboration.model'; import { CollaborationService } from 'libs/collaboration-shared/src/lib/collaboration.service'; import { OrganisationsEinheitResourceSearchService } from 'libs/collaboration-shared/src/lib/organisations-einheit-resource-search.service'; @@ -10,7 +10,7 @@ import { Observable } from 'rxjs'; selector: 'alfa-collaboration-in-vorgang-container', templateUrl: './collaboration-in-vorgang-container.component.html', }) -export class CollaborationInVorgangContainerComponent implements OnInit { +export class CollaborationInVorgangContainerComponent implements OnInit, OnDestroy { public collaborationStateListResource$: Observable<StateResource<CollaborationListResource>>; public isRequestFormVisible$: Observable<boolean>; public selectedOrganisationsEinheit$: Observable<OrganisationsEinheitResource>; @@ -33,4 +33,8 @@ export class CollaborationInVorgangContainerComponent implements OnInit { public hideRequestForm(): void { this.service.hideRequestForm(); } + + ngOnDestroy(): void { + this.searchService.clearSelectedResult(); + } } diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.spec.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.spec.ts index acbd45df651fd4343be7601e8a9886850f133f0e..1c1d30cbcd83ef02da378247d4e2792ff750d3a0 100644 --- a/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.spec.ts +++ b/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.spec.ts @@ -191,4 +191,16 @@ describe('ResourceSearchService', () => { expect(service.selectedResource.value).toEqual(dummyResource); }); }); + + describe('clear select result', () => { + const dummyResource: Resource = createDummyResource(); + + it('should update selected resource to null', () => { + service.selectedResource.next(dummyResource); + + service.clearSelectedResult(); + + expect(service.selectedResource.value).toBeNull(); + }); + }); }); diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.ts index d23b4be986f9a8fb880e582c5925f525459bf3dc..f8e52663e186ba7c2ebe4b8d6bec0dd593163e3a 100644 --- a/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.ts +++ b/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.ts @@ -98,4 +98,8 @@ export class ResourceSearchService< public selectResult(selected: I): void { this.selectedResource.next(selected); } + + public clearSelectedResult(): void { + this.selectedResource.next(null); + } }