Skip to content

Commit f693024

Browse files
Merge pull request #8764 from IgniteUI/mtsvyatkova/fix-8697-10.2.x
Inputs respect column formatter
2 parents 6bc8794 + 2c74158 commit f693024

File tree

6 files changed

+36
-7
lines changed

6 files changed

+36
-7
lines changed

projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.html

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,13 @@ <h6 class="igx-filter-empty__title">
108108
{{ getConditionFriendlyName(expressionItem.expression.condition.name) }}
109109
</span>
110110
<span igxSuffix *ngIf="!expressionItem.expression.condition.isUnary">
111-
{{ isDate(expressionItem.expression.searchVal) ? (expressionItem.expression.searchVal | date:getFormat(expressionItem.expression.fieldName):undefined:grid.locale) : expressionItem.expression.searchVal }}
111+
{{
112+
isDate(expressionItem.expression.searchVal)
113+
? getFormatter(expressionItem.expression.fieldName)
114+
? (expressionItem.expression.searchVal | columnFormatter:getFormatter(expressionItem.expression.fieldName))
115+
: (expressionItem.expression.searchVal | date:getFormat(expressionItem.expression.fieldName):undefined:grid.locale)
116+
: expressionItem.expression.searchVal
117+
}}
112118
</span>
113119
</igx-chip>
114120
<div class="igx-filter-tree__expression-actions"
@@ -191,7 +197,11 @@ <h6 class="igx-filter-empty__title">
191197
(click)="openDialog(dropDownTarget.element.nativeElement)"
192198
[placeholder]="grid.resourceStrings.igx_grid_filter_row_date_placeholder"
193199
autocomplete="off"
194-
[value]="value | date:selectedColumn.pipeArgs.format:undefined:grid.locale"
200+
[value]="
201+
selectedColumn.formatter
202+
? (value | columnFormatter:selectedColumn.formatter)
203+
: (value | date:selectedColumn.pipeArgs.format:undefined:grid.locale)
204+
"
195205
[readonly]="true"
196206
[disabled]="!selectedColumn || !selectedCondition || (selectedColumn && selectedColumn.filters.condition(selectedCondition).isUnary)"/>
197207
</igx-input-group>

projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,6 +1038,13 @@ export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDes
10381038
this._overlayComponentId = overlayComponentId;
10391039
}
10401040

1041+
/**
1042+
* @hidden @internal
1043+
*/
1044+
public getFormatter(field: string) {
1045+
return this.grid.getColumnByName(field).formatter;
1046+
}
1047+
10411048
/**
10421049
* @hidden @internal
10431050
*/

projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-row.component.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@
6565
(click)="expression.condition.isUnary ? noop() : openDialog(inputGroup.element.nativeElement)"
6666
[placeholder]="placeholder"
6767
autocomplete="off"
68-
[value]="value | date:column.pipeArgs.format:undefined:filteringService.grid.locale"
68+
[value]="
69+
column.formatter
70+
? (value | columnFormatter:column.formatter)
71+
: (value | date:column.pipeArgs.format:undefined:filteringService.grid.locale)
72+
"
6973
[readonly]="true"
7074
(keydown)="onInputKeyDown($event)"/>
7175
<igx-suffix *ngIf="value">

projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-date-expression.component.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
(click)="openDialog(dropDownTarget.element.nativeElement)"
2424
[placeholder]="inputDatePlaceholder"
2525
autocomplete="off"
26-
[value]="value | date:column.pipeArgs.format:undefined:grid.locale"
26+
[value]="
27+
column.formatter
28+
? (value | columnFormatter:column.formatter)
29+
: (value | date:column.pipeArgs.format:undefined:grid.locale)
30+
"
2731
[readonly]="true"
2832
[disabled]="expressionUI.expression.condition && expressionUI.expression.condition.isUnary"/>
2933
</igx-input-group>

projects/igniteui-angular/src/lib/grids/filtering/grid-filtering.service.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,12 @@ export class IgxFilteringService implements OnDestroy {
409409
if (expression.condition.isUnary) {
410410
return this.grid.resourceStrings[`igx_grid_filter_${expression.condition.name}`] || expression.condition.name;
411411
} else if (expression.searchVal instanceof Date) {
412-
const pipeArgs = this.grid.getColumnByName(expression.fieldName).pipeArgs;
412+
const column = this.grid.getColumnByName(expression.fieldName);
413+
const formatter = column.formatter;
414+
if (formatter) {
415+
return formatter(expression.searchVal);
416+
}
417+
const pipeArgs = column.pipeArgs;
413418
return this.grid.datePipe.transform(expression.searchVal, pipeArgs.format, undefined, this.grid.locale);
414419
} else {
415420
return expression.searchVal;

projects/igniteui-angular/src/lib/grids/grid/grid-filtering-ui.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4506,8 +4506,7 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => {
45064506
const inputText = column.formatter(filteredDate);
45074507
const cellText = column.formatter(filteredDate);
45084508
expect(cell.innerText).toMatch(cellText);
4509-
// TODO https://github.com/IgniteUI/igniteui-angular/issues/8697
4510-
// expect(datePickerInput.value).toMatch(inputText);
4509+
expect(datePickerInput.value).toMatch(inputText);
45114510
expect(grid.filteredData.length).toEqual(1);
45124511
}));
45134512

0 commit comments

Comments
 (0)