[AAE-5872] - Prevent form keydown events from triggerring viewer actions (#7252)

Co-authored-by: Ardit Domi <arditdomi@apl-c02g64vpmd6t.home>
This commit is contained in:
arditdomi
2021-09-28 15:34:00 +01:00
committed by GitHub
parent ccb17bb1a6
commit 8113b9b10b
2 changed files with 15 additions and 1 deletions

View File

@@ -25,6 +25,7 @@ import { TaskFormCloudComponent } from './task-form-cloud.component';
import { TaskDetailsCloudModel } from '../../start-task/models/task-details-cloud.model';
import { TaskCloudService } from '../../services/task-cloud.service';
import { TranslateModule } from '@ngx-translate/core';
import { ESCAPE } from '@angular/cdk/keycodes';
const taskDetails: TaskDetailsCloudModel = {
appName: 'simple-app',
@@ -456,4 +457,12 @@ describe('TaskFormCloudComponent', () => {
expect(noFormTemplateTitle).toBeNull();
});
// For widgets like File Viewer bubbling the keydown events of the form needs to be cancelled
it('should cancel bubbling a keydown event ()', () => {
const escapeKeyboardEvent = new KeyboardEvent('keydown', { 'keyCode': ESCAPE } as any);
fixture.debugElement.triggerEventHandler('keydown', escapeKeyboardEvent);
expect(escapeKeyboardEvent.cancelBubble).toBe(true);
});
});

View File

@@ -17,7 +17,7 @@
import {
Component, EventEmitter, Input, OnChanges,
Output, SimpleChanges, OnInit
Output, SimpleChanges, OnInit, HostListener
} from '@angular/core';
import { TaskDetailsCloudModel } from '../../start-task/models/task-details-cloud.model';
import { TaskCloudService } from '../../services/task-cloud.service';
@@ -111,6 +111,11 @@ export class TaskFormCloudComponent implements OnInit, OnChanges {
this.formRenderingService.setComponentTypeResolver('date', () => DateCloudWidgetComponent, true);
}
@HostListener('keydown', ['$event'])
onKeyDown(event: KeyboardEvent) {
event.cancelBubble = true;
}
ngOnInit() {
if (this.appName === '' && this.taskId) {
this.loadTask();