diff --git a/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.spec.ts b/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.spec.ts index 2f94294e437896891c8c55521ca86c71a7b255d8..69c11f3b7ff394d26ec6472161c281fe59ff2cae 100644 --- a/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.spec.ts +++ b/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.spec.ts @@ -87,6 +87,20 @@ describe('SearchOrganisationsEinheitContainerComponent', () => { }); }); + describe('onKeyDownHandler', () => { + it('should prevent default behavior for enter key', () => { + const keyboardEvent: KeyboardEvent = { + ...new KeyboardEvent('enter'), + key: 'Enter', + preventDefault: jest.fn(), + }; + + component.onKeyDownHandler(keyboardEvent); + + expect(keyboardEvent.preventDefault).toHaveBeenCalled(); + }); + }); + describe('search organisationsEinheit component', () => { beforeEach(() => { component.organisationsEinheitStateListResource$ = of(organisationsEinheitStateListResource); @@ -175,7 +189,7 @@ describe('SearchOrganisationsEinheitContainerComponent', () => { it('should close dialog', () => { component.selectSearchResult(organisationsEinheitResource); - expect(dialogRefMock.close).toHaveBeenCalledWith(); + expect(dialogRefMock.close).toHaveBeenCalled(); }); }); diff --git a/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.ts b/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.ts index 963ef863886ec30268528d90e3d9c5ea09d877d6..14a54da18681ed93697757c2cbcd13e81346414c 100644 --- a/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.ts +++ b/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.ts @@ -4,7 +4,7 @@ import { } from '@alfa-client/collaboration-shared'; import { StateResource } from '@alfa-client/tech-shared'; import { DialogRef } from '@angular/cdk/dialog'; -import { Component, OnInit } from '@angular/core'; +import { Component, HostListener, OnInit } from '@angular/core'; import { OrganisationsEinheitListResource, OrganisationsEinheitResource, @@ -31,6 +31,10 @@ export class SearchOrganisationsEinheitContainerComponent implements OnInit { this.organisationsEinheitStateListResource$ = this.service.getSearchResultList(); } + @HostListener('document:keydown', ['$event']) onKeyDownHandler(e: KeyboardEvent) { + if (e.key === 'Enter') e.preventDefault(); + } + public search(searchBy: string): void { this.service.search(searchBy); } diff --git a/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-form/search-organisations-einheit-form.component.spec.ts b/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-form/search-organisations-einheit-form.component.spec.ts index e93e7403bfa65080636bf44355f942ab224f063f..11fa9f5ebd5cfdcca46bf05fd71833602391e270 100644 --- a/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-form/search-organisations-einheit-form.component.spec.ts +++ b/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-form/search-organisations-einheit-form.component.spec.ts @@ -94,7 +94,7 @@ describe('SearchOrganisationsEinheitFormComponent', () => { const instantSearchResult: InstantSearchResult<OrganisationsEinheitResource> = component.mapToInstantantSearchResult(organisationsEinheitResource); - const expectedDescription: string = `${organisationsEinheitResource.anschrift.strasse} ${organisationsEinheitResource.anschrift.plz} ${organisationsEinheitResource.anschrift.ort}`; + const expectedDescription: string = `${organisationsEinheitResource.anschrift.strasse} ${organisationsEinheitResource.anschrift.hausnummer}, ${organisationsEinheitResource.anschrift.plz} ${organisationsEinheitResource.anschrift.ort}`; expect(instantSearchResult.description).toBe(expectedDescription); }); diff --git a/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-form/search-organisations-einheit-form.component.ts b/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-form/search-organisations-einheit-form.component.ts index 2e49ca660d004820de961dd252ef7ed156040a1a..e144eb1257283beea80b37d9b1d79b1a1fee50ab 100644 --- a/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-form/search-organisations-einheit-form.component.ts +++ b/alfa-client/libs/collaboration/src/lib/search-organisations-einheit-container/search-organisations-einheit-form/search-organisations-einheit-form.component.ts @@ -34,7 +34,7 @@ export class SearchOrganisationsEinheitFormComponent { ): InstantSearchResult<OrganisationsEinheitResource> { return <any>{ title: organisationsEinheit.name, - description: `${organisationsEinheit.anschrift.strasse} ${organisationsEinheit.anschrift.plz} ${organisationsEinheit.anschrift.ort}`, + description: `${organisationsEinheit.anschrift.strasse} ${organisationsEinheit.anschrift.hausnummer}, ${organisationsEinheit.anschrift.plz} ${organisationsEinheit.anschrift.ort}`, data: organisationsEinheit, }; } diff --git a/alfa-client/libs/design-system/src/lib/instant-search/instant-search/instant-search.component.ts b/alfa-client/libs/design-system/src/lib/instant-search/instant-search/instant-search.component.ts index ab653fe9d22fae4f7f7faf447d5b7a5685e85342..80a889a7bfa1211c008d3891cfb80d98d811448e 100644 --- a/alfa-client/libs/design-system/src/lib/instant-search/instant-search/instant-search.component.ts +++ b/alfa-client/libs/design-system/src/lib/instant-search/instant-search/instant-search.component.ts @@ -47,7 +47,7 @@ import { InstantSearchQuery, InstantSearchResult } from './instant-search.model' <ods-aria-live-region [text]="ariaLiveText" /> <ods-search-result-layer *ngIf="results.length && areResultsVisible" - class="absolute z-50 mt-3 w-full" + containerClass="absolute z-50 mt-3 max-h-[calc(50vh)] w-full overflow-y-auto" id="results" > <ods-search-result-header diff --git a/alfa-client/libs/design-system/src/lib/instant-search/search-result-layer/search-result-layer.component.ts b/alfa-client/libs/design-system/src/lib/instant-search/search-result-layer/search-result-layer.component.ts index 971e06b585e2292b36be429b6972ba91090ccaa0..f06c873fc8e184fa6eb56a399e67a39633bf95da 100644 --- a/alfa-client/libs/design-system/src/lib/instant-search/search-result-layer/search-result-layer.component.ts +++ b/alfa-client/libs/design-system/src/lib/instant-search/search-result-layer/search-result-layer.component.ts @@ -1,15 +1,22 @@ import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; +import { Component, Input } from '@angular/core'; @Component({ selector: 'ods-search-result-layer', standalone: true, imports: [CommonModule], - template: `<div class="rounded-lg border border-primary-600/50 bg-background-50 shadow-lg"> + template: `<div + [ngClass]="[ + 'rounded-lg border border-primary-600/50 bg-background-50 shadow-lg', + containerClass, + ]" + > <ng-content select="[header]" /> <ul role="list"> <ng-content /> </ul> </div>`, }) -export class SearchResultLayerComponent {} +export class SearchResultLayerComponent { + @Input() containerClass: string = ''; +}