Merge branch 'SI-2938-BUG-Freitextfilter-filtert-nicht-nach-BACKSPACE' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.frontend into SI-2944-BUG-Stationsfilter-zeigt-keine-zusammengesetzte-Zellwerte
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts
index 5da79e0..5f2ab1f 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts
@@ -234,6 +234,6 @@
const spy2: any = spyOn(mockGridApi, 'getFilterModel').and.returnValue('test');
component.initGridFilter({ api: mockGridApi });
component.setMapFilter();
- expect(component.sandbox.filterOptions).toEqual({ filterModel: 'test' });
+ expect(component.sandbox.filterOptions['filterModel'][0][0]).toEqual('t');
});
});
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts
index 29f2f70..b524c94 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts
@@ -181,7 +181,16 @@
filteredGridFailureMapList.push(new GridFailure(node.data));
});
this.sandbox.setFilteredGridFailureMapList(filteredGridFailureMapList);
- this.sandbox.filterOptions = isColumnFilterActive ? { ...this.sandbox.filterOptions, filterModel } : {};
+ if (isColumnFilterActive && !!Object.keys(filterModel).length) {
+ Object.keys(filterModel).forEach(columnFilter => {
+ if (!('filterModel' in this.sandbox.filterOptions)) {
+ this.sandbox.filterOptions['filterModel'] = {};
+ }
+ this.sandbox.filterOptions['filterModel'][columnFilter] = { ...filterModel[columnFilter] };
+ });
+ } else {
+ this.sandbox.filterOptions = {};
+ }
}
private _setInitialGridOptions(): void {
diff --git a/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.ts b/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.ts
index 21a9baa..e6db916 100644
--- a/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.ts
+++ b/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.ts
@@ -135,19 +135,21 @@
const allGridRowNodes = (this._params.rowModel as any).nodeManager.allNodesMap || {};
const oldFilterItems = {};
Object.assign(oldFilterItems, this.setItems);
- this.setItems = {};
- for (const nodeKey in Object.keys(allGridRowNodes)) {
- const rowNode = allGridRowNodes[nodeKey];
- if (this._params.doesRowPassOtherFilter(rowNode)) {
- let filterItem = convertEmptyValueToNull(this._valueGetter(rowNode));
- const valueSeparator: string = this._params.colDef['valueSeparator'];
- if (!!filterItem && !!valueSeparator) {
- const filterItems: string[] = filterItem.split(valueSeparator);
- filterItems.forEach(item => {
- this._addItemToFilterModel(oldFilterItems, item);
- });
- } else {
- this._addItemToFilterModel(oldFilterItems, filterItem);
+ if (Object.keys(allGridRowNodes).length > 0) {
+ this.setItems = {};
+ for (const nodeKey in Object.keys(allGridRowNodes)) {
+ const rowNode = allGridRowNodes[nodeKey];
+ if (this._params.doesRowPassOtherFilter(rowNode)) {
+ let filterItem = convertEmptyValueToNull(this._valueGetter(rowNode));
+ const valueSeparator: string = this._params.colDef['valueSeparator'];
+ if (!!filterItem && !!valueSeparator) {
+ const filterItems: string[] = filterItem.split(valueSeparator);
+ filterItems.forEach(item => {
+ this._addItemToFilterModel(oldFilterItems, item);
+ });
+ } else {
+ this._addItemToFilterModel(oldFilterItems, filterItem);
+ }
}
}
}
diff --git a/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts b/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts
index 3c72fd9..ba97cda 100644
--- a/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts
+++ b/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts
@@ -90,21 +90,20 @@
};
export function dateTimeComparator(filterLocalDateAtMidnight: Date, cellValue: string): number {
- const dateTimeAsString: string = cellValue;
- if (dateTimeAsString == null) return -1;
- const cellDate: Date = new Date(dateTimeAsString);
- cellDate.setHours(0);
- cellDate.setMinutes(0);
- cellDate.setSeconds(0);
- cellDate.setMilliseconds(0);
+ if (cellValue == null) return -1;
+ const cellDate: Date = new Date(cellValue.replace('Z', ''));
+ cellDate.setHours(0, 0, 0, 0);
- if (filterLocalDateAtMidnight.getTime() == cellDate.getTime()) {
+ const filterLocalDateAtMidnightTimeStamp = filterLocalDateAtMidnight.getTime();
+ const cellDateTimeStamp = cellDate.getTime();
+
+ if (filterLocalDateAtMidnightTimeStamp === cellDateTimeStamp) {
return 0;
}
- if (cellDate < filterLocalDateAtMidnight) {
+ if (cellDateTimeStamp < filterLocalDateAtMidnightTimeStamp) {
return -1;
}
- if (cellDate > filterLocalDateAtMidnight) {
+ if (cellDateTimeStamp > filterLocalDateAtMidnightTimeStamp) {
return 1;
}
}
diff --git a/projects/grid-failure-information-table-app/src/app/utilityHelpers.ts b/projects/grid-failure-information-table-app/src/app/utilityHelpers.ts
index d7fbec7..6dc987e 100644
--- a/projects/grid-failure-information-table-app/src/app/utilityHelpers.ts
+++ b/projects/grid-failure-information-table-app/src/app/utilityHelpers.ts
@@ -12,21 +12,20 @@
********************************************************************************/
export function dateTimeComparator(filterLocalDateAtMidnight: Date, cellValue: string): number {
- const dateTimeAsString: string = cellValue;
- if (dateTimeAsString == null) return -1;
- const cellDate: Date = new Date(dateTimeAsString);
- cellDate.setHours(0);
- cellDate.setMinutes(0);
- cellDate.setSeconds(0);
- cellDate.setMilliseconds(0);
+ if (cellValue == null) return -1;
+ const cellDate: Date = new Date(cellValue.replace('Z', ''));
+ cellDate.setHours(0, 0, 0, 0);
- if (filterLocalDateAtMidnight.getTime() == cellDate.getTime()) {
+ const filterLocalDateAtMidnightTimeStamp = filterLocalDateAtMidnight.getTime();
+ const cellDateTimeStamp = cellDate.getTime();
+
+ if (filterLocalDateAtMidnightTimeStamp === cellDateTimeStamp) {
return 0;
}
- if (cellDate < filterLocalDateAtMidnight) {
+ if (cellDateTimeStamp < filterLocalDateAtMidnightTimeStamp) {
return -1;
}
- if (cellDate > filterLocalDateAtMidnight) {
+ if (cellDateTimeStamp > filterLocalDateAtMidnightTimeStamp) {
return 1;
}
}