Skip to content

Commit 6849a20

Browse files
Merge pull request #5952 from IgniteUI/tzhelev/fix-5886-8.2.x
Exclude column groups from column select in advanced filtering dialog - 8.2.x
2 parents e0a0eaf + f5c0d86 commit 6849a20

File tree

3 files changed

+56
-3
lines changed

3 files changed

+56
-3
lines changed

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDes
254254
}
255255

256256
get filterableColumns(): IgxColumnComponent[] {
257-
return this.grid.columns.filter((col) => col.filterable);
257+
return this.grid.columns.filter((col) => !col.columnGroup && col.filterable);
258258
}
259259

260260
public dragStart(dragArgs: IDragStartEventArgs) {

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

+30-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { changei18n, getCurrentResourceStrings } from '../../core/i18n/resources
1313
import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
1414
import { FilteringLogic } from '../../data-operations/filtering-expression.interface';
1515
import {
16+
IgxGridAdvancedFilteringColumnGroupComponent,
1617
IgxGridAdvancedFilteringComponent
1718
} from '../../test-utils/grid-samples.spec';
1819

@@ -26,6 +27,7 @@ describe('IgxGrid - Advanced Filtering', () => {
2627
beforeEach(async(() => {
2728
TestBed.configureTestingModule({
2829
declarations: [
30+
IgxGridAdvancedFilteringColumnGroupComponent,
2931
IgxGridAdvancedFilteringComponent
3032
],
3133
imports: [
@@ -2660,6 +2662,34 @@ describe('IgxGrid - Advanced Filtering', () => {
26602662
}));
26612663
});
26622664
});
2665+
2666+
describe('', () => {
2667+
let fix, grid: IgxGridComponent;
2668+
beforeEach(fakeAsync(() => {
2669+
fix = TestBed.createComponent(IgxGridAdvancedFilteringColumnGroupComponent);
2670+
grid = fix.componentInstance.grid;
2671+
fix.detectChanges();
2672+
}));
2673+
2674+
it('Should not display column groups in advanced filtering dialog.', fakeAsync(() => {
2675+
// Open dialog through API.
2676+
grid.openAdvancedFilteringDialog();
2677+
fix.detectChanges();
2678+
2679+
// Click the initial 'Add And Group' button.
2680+
const addAndGroupButton = GridFunctions.getAdvancedFilteringInitialAddGroupButtons(fix)[0];
2681+
addAndGroupButton.click();
2682+
tick(100);
2683+
fix.detectChanges();
2684+
2685+
// Open column dropdown and verify that there are no column groups present.
2686+
GridFunctions.clickAdvancedFilteringColumnSelect(fix);
2687+
fix.detectChanges();
2688+
const dropdownValues = GridFunctions.getAdvancedFilteringSelectDropdownItems(fix).map((x: any) => x.innerText);
2689+
const expectedValues = ['ID', 'ProductName', 'Downloads', 'Released', 'ReleaseDate', 'Another Field'];
2690+
expect(expectedValues).toEqual(dropdownValues);
2691+
}));
2692+
});
26632693
});
26642694

26652695

@@ -2852,8 +2882,6 @@ function verifyContextMenuType(fix, shouldBeContextualGroup: boolean) {
28522882

28532883
function verifyEqualArrays(firstArr: any[], secondArr: any[]) {
28542884
expect(firstArr.length).toEqual(secondArr.length, 'Array lengths mismatch.');
2855-
firstArr = firstArr.sort();
2856-
secondArr = secondArr.sort();
28572885
// Verify sorted arrays have equal respective elements.
28582886
const len = firstArr.length;
28592887
for (let index = 0; index < len; index++) {

projects/igniteui-angular/src/lib/test-utils/grid-samples.spec.ts

+25
Original file line numberDiff line numberDiff line change
@@ -1198,6 +1198,31 @@ export class IgxGridAdvancedFilteringComponent extends BasicGridComponent {
11981198
}
11991199
}
12001200

1201+
@Component({
1202+
template: `<igx-grid [data]="data" height="500px" [allowAdvancedFiltering]="true" [showToolbar]="true">
1203+
<igx-column width="100px" [field]="'ID'" [header]="'ID'" [hasSummary]="true"></igx-column>
1204+
<igx-column width="100px" [field]="'ProductName'" dataType="string"></igx-column>
1205+
<igx-column width="100px" [field]="'Downloads'" dataType="number" [hasSummary]="true"></igx-column>
1206+
<igx-column-group header="Released Group">
1207+
<igx-column width="100px" [field]="'Released'" dataType="boolean"></igx-column>
1208+
<igx-column width="100px" [field]="'ReleaseDate'" dataType="date" headerClasses="header-release-date"></igx-column>
1209+
</igx-column-group>
1210+
<igx-column width="100px" [field]="'AnotherField'" [header]="'Another Field'" dataType="string" [filters]="customFilter">
1211+
</igx-column>
1212+
</igx-grid>`
1213+
})
1214+
export class IgxGridAdvancedFilteringColumnGroupComponent extends BasicGridComponent {
1215+
public customFilter = CustomFilter.instance();
1216+
public resizable = false;
1217+
public filterable = true;
1218+
1219+
public data = SampleTestData.excelFilteringData();
1220+
public activateFiltering(activate: boolean) {
1221+
this.grid.allowFiltering = activate;
1222+
this.grid.cdr.markForCheck();
1223+
}
1224+
}
1225+
12011226
@Component({
12021227
template: `
12031228
<igx-grid [data]="data" height="500px" width="500px">

0 commit comments

Comments
 (0)