diff --git a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts index 9d88cd01d6b17d73e4984aa2ae8b80f236d3d973..ca7bf24afd1e3f7fb1f4ba918cc6e3fe768aca33 100644 --- a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts +++ b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts @@ -15,6 +15,7 @@ export class OzgcloudDialogService { readonly GREY_BLUR_CONFIG: DialogConfig = { backdropClass: ['backdrop-blur-1', 'bg-greybackdrop'], + disableClose: true, }; constructor(private dialog: Dialog) {} diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.spec.ts b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.spec.ts index 598a7320a662f0abbe12079f5b17d2bb5d47bcdf..acae04802df483db54c15fe926035a149519933e 100644 --- a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.spec.ts +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.spec.ts @@ -72,17 +72,31 @@ describe('SearchZustaendigeStelleDialogComponent', () => { }); describe('onKeyDownHandler', () => { - it('should prevent default behavior for enter key', () => { + it('should prevent default behavior for enter key on non buttons', () => { const keyboardEvent: KeyboardEvent = { ...new KeyboardEvent('enter'), key: 'Enter', preventDefault: jest.fn(), + target: new EventTarget(), }; component.onKeyDownHandler(keyboardEvent); expect(keyboardEvent.preventDefault).toHaveBeenCalled(); }); + + it('should not prevent default behavior for enter key on buttons', () => { + const keyboardEvent: KeyboardEvent = { + ...new KeyboardEvent('enter'), + key: 'Enter', + preventDefault: jest.fn(), + target: { ...new EventTarget(), tagName: 'BUTTON' } as Element, + }; + + component.onKeyDownHandler(keyboardEvent); + + expect(keyboardEvent.preventDefault).not.toHaveBeenCalled(); + }); }); describe('search organisationsEinheit component', () => { @@ -200,4 +214,22 @@ describe('SearchZustaendigeStelleDialogComponent', () => { expect(dialogRefMock.close).toHaveBeenCalled(); }); }); + + describe('isNotButtonElement', () => { + it('should return false', () => { + const element: Element = { tagName: 'BUTTON' } as Element; + + const result: boolean = component.isNotButtonElement(element); + + expect(result).toBe(false); + }); + + it('should return true', () => { + const element: Element = { tagName: 'INPUT' } as Element; + + const result: boolean = component.isNotButtonElement(element); + + expect(result).toBe(true); + }); + }); }); diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.ts b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.ts index ae06cf79be7c0787e166465c898e34472a68d343..848ffc0d98a31c99b190f659cbda6b528936e301 100644 --- a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.ts +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.ts @@ -26,7 +26,9 @@ export class SearchZustaendigeStelleDialogComponent<T extends Resource> implemen @HostListener('document:keydown', ['$event']) onKeyDownHandler(e: KeyboardEvent) { - if (e.key === 'Enter') e.preventDefault(); + if (e.key === 'Enter' && this.isNotButtonElement(e.target as Element)) { + e.preventDefault(); + } } public search(searchBy: string): void { @@ -47,4 +49,8 @@ export class SearchZustaendigeStelleDialogComponent<T extends Resource> implemen this.clearSearchResult(); this.dialogRef.close(); } + + public isNotButtonElement(e: Element): boolean { + return e.tagName !== 'BUTTON'; + } }