#960 fix event handling for FF

- use cross browser `event.target` instead of IE-specific
`event.srcElement`
This commit is contained in:
Denys Vuika
2016-11-01 15:25:04 +00:00
parent b0882e7322
commit 8c1f2cc957
8 changed files with 11 additions and 11 deletions

View File

@@ -29,7 +29,7 @@ describe('BooleanEditorComponent', () => {
it('should update row value on change', () => {
let row = <DynamicTableRow> { value: {} };
let column = <DynamicTableColumn> { id: 'key' };
let event = { srcElement: { checked: true } };
let event = { target: { checked: true } };
component.onValueChanged(row, column, event);
expect(row.value[column.id]).toBeTruthy();

View File

@@ -28,7 +28,7 @@ import { DynamicTableRow, DynamicTableColumn } from './../../../core/index';
export class BooleanEditorComponent extends CellEditorComponent {
onValueChanged(row: DynamicTableRow, column: DynamicTableColumn, event: any) {
let value: boolean = (<HTMLInputElement>event.srcElement).checked;
let value: boolean = (<HTMLInputElement>event.target).checked;
row.value[column.id] = value;
}

View File

@@ -146,7 +146,7 @@ describe('DropdownEditorComponent', () => {
});
it('should update row on value change', () => {
let event = { srcElement: { value: 'two' } };
let event = { target: { value: 'two' } };
component.onValueChanged(row, column, event);
expect(row.value[column.id]).toBe(column.options[1]);
});

View File

@@ -61,7 +61,7 @@ export class DropdownEditorComponent extends CellEditorComponent implements OnIn
}
onValueChanged(row: DynamicTableRow, column: DynamicTableColumn, event: any) {
let value: any = (<HTMLInputElement>event.srcElement).value;
let value: any = (<HTMLInputElement>event.target).value;
value = column.options.find(opt => opt.name === value);
row.value[column.id] = value;
}

View File

@@ -31,7 +31,7 @@ describe('TextEditorComponent', () => {
let column = <DynamicTableColumn> { id: 'key' };
const value = '<value>';
let event = { srcElement: { value } };
let event = { target: { value } };
editor.onValueChanged(row, column, event);
expect(row.value[column.id]).toBe(value);

View File

@@ -28,7 +28,7 @@ import { DynamicTableRow, DynamicTableColumn } from './../../../core/index';
export class TextEditorComponent extends CellEditorComponent {
onValueChanged(row: DynamicTableRow, column: DynamicTableColumn, event: any) {
let value: any = (<HTMLInputElement>event.srcElement).value;
let value: any = (<HTMLInputElement>event.target).value;
row.value[column.id] = value;
}

View File

@@ -314,26 +314,26 @@ describe('DataTable', () => {
it('should replace image source with fallback thumbnail on error', () => {
let event = <any> {
srcElement: {
target: {
src: 'missing-image'
}
};
dataTable.fallbackThumbnail = '<fallback>';
dataTable.onImageLoadingError(event);
expect(event.srcElement.src).toBe(dataTable.fallbackThumbnail);
expect(event.target.src).toBe(dataTable.fallbackThumbnail);
});
it('should replace image source only when fallback available', () => {
const originalSrc = 'missing-image';
let event = <any> {
srcElement: {
target: {
src: originalSrc
}
};
dataTable.fallbackThumbnail = null;
dataTable.onImageLoadingError(event);
expect(event.srcElement.src).toBe(originalSrc);
expect(event.target.src).toBe(originalSrc);
});
});

View File

@@ -146,7 +146,7 @@ export class DataTableComponent implements OnInit, AfterViewChecked {
onImageLoadingError(event: Event) {
if (event && this.fallbackThumbnail) {
let element = <any> event.srcElement;
let element = <any> event.target;
element.src = this.fallbackThumbnail;
}
}