mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
#960 fix event handling for FF
- use cross browser `event.target` instead of IE-specific `event.srcElement`
This commit is contained in:
@@ -29,7 +29,7 @@ describe('BooleanEditorComponent', () => {
|
|||||||
it('should update row value on change', () => {
|
it('should update row value on change', () => {
|
||||||
let row = <DynamicTableRow> { value: {} };
|
let row = <DynamicTableRow> { value: {} };
|
||||||
let column = <DynamicTableColumn> { id: 'key' };
|
let column = <DynamicTableColumn> { id: 'key' };
|
||||||
let event = { srcElement: { checked: true } };
|
let event = { target: { checked: true } };
|
||||||
|
|
||||||
component.onValueChanged(row, column, event);
|
component.onValueChanged(row, column, event);
|
||||||
expect(row.value[column.id]).toBeTruthy();
|
expect(row.value[column.id]).toBeTruthy();
|
||||||
|
@@ -28,7 +28,7 @@ import { DynamicTableRow, DynamicTableColumn } from './../../../core/index';
|
|||||||
export class BooleanEditorComponent extends CellEditorComponent {
|
export class BooleanEditorComponent extends CellEditorComponent {
|
||||||
|
|
||||||
onValueChanged(row: DynamicTableRow, column: DynamicTableColumn, event: any) {
|
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;
|
row.value[column.id] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -146,7 +146,7 @@ describe('DropdownEditorComponent', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should update row on value change', () => {
|
it('should update row on value change', () => {
|
||||||
let event = { srcElement: { value: 'two' } };
|
let event = { target: { value: 'two' } };
|
||||||
component.onValueChanged(row, column, event);
|
component.onValueChanged(row, column, event);
|
||||||
expect(row.value[column.id]).toBe(column.options[1]);
|
expect(row.value[column.id]).toBe(column.options[1]);
|
||||||
});
|
});
|
||||||
|
@@ -61,7 +61,7 @@ export class DropdownEditorComponent extends CellEditorComponent implements OnIn
|
|||||||
}
|
}
|
||||||
|
|
||||||
onValueChanged(row: DynamicTableRow, column: DynamicTableColumn, event: any) {
|
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);
|
value = column.options.find(opt => opt.name === value);
|
||||||
row.value[column.id] = value;
|
row.value[column.id] = value;
|
||||||
}
|
}
|
||||||
|
@@ -31,7 +31,7 @@ describe('TextEditorComponent', () => {
|
|||||||
let column = <DynamicTableColumn> { id: 'key' };
|
let column = <DynamicTableColumn> { id: 'key' };
|
||||||
|
|
||||||
const value = '<value>';
|
const value = '<value>';
|
||||||
let event = { srcElement: { value } };
|
let event = { target: { value } };
|
||||||
|
|
||||||
editor.onValueChanged(row, column, event);
|
editor.onValueChanged(row, column, event);
|
||||||
expect(row.value[column.id]).toBe(value);
|
expect(row.value[column.id]).toBe(value);
|
||||||
|
@@ -28,7 +28,7 @@ import { DynamicTableRow, DynamicTableColumn } from './../../../core/index';
|
|||||||
export class TextEditorComponent extends CellEditorComponent {
|
export class TextEditorComponent extends CellEditorComponent {
|
||||||
|
|
||||||
onValueChanged(row: DynamicTableRow, column: DynamicTableColumn, event: any) {
|
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;
|
row.value[column.id] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -314,26 +314,26 @@ describe('DataTable', () => {
|
|||||||
|
|
||||||
it('should replace image source with fallback thumbnail on error', () => {
|
it('should replace image source with fallback thumbnail on error', () => {
|
||||||
let event = <any> {
|
let event = <any> {
|
||||||
srcElement: {
|
target: {
|
||||||
src: 'missing-image'
|
src: 'missing-image'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
dataTable.fallbackThumbnail = '<fallback>';
|
dataTable.fallbackThumbnail = '<fallback>';
|
||||||
dataTable.onImageLoadingError(event);
|
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', () => {
|
it('should replace image source only when fallback available', () => {
|
||||||
const originalSrc = 'missing-image';
|
const originalSrc = 'missing-image';
|
||||||
let event = <any> {
|
let event = <any> {
|
||||||
srcElement: {
|
target: {
|
||||||
src: originalSrc
|
src: originalSrc
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
dataTable.fallbackThumbnail = null;
|
dataTable.fallbackThumbnail = null;
|
||||||
dataTable.onImageLoadingError(event);
|
dataTable.onImageLoadingError(event);
|
||||||
expect(event.srcElement.src).toBe(originalSrc);
|
expect(event.target.src).toBe(originalSrc);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -146,7 +146,7 @@ export class DataTableComponent implements OnInit, AfterViewChecked {
|
|||||||
|
|
||||||
onImageLoadingError(event: Event) {
|
onImageLoadingError(event: Event) {
|
||||||
if (event && this.fallbackThumbnail) {
|
if (event && this.fallbackThumbnail) {
|
||||||
let element = <any> event.srcElement;
|
let element = <any> event.target;
|
||||||
element.src = this.fallbackThumbnail;
|
element.src = this.fallbackThumbnail;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user