Skip to content

Commit 99f71de

Browse files
Merge pull request #15456 from IgniteUI/ganastasov/fix-15424-19.1.x
fix(column): Update row island summaries when disabledSummaries changes - 19.1.x
2 parents 9898d98 + acca8fe commit 99f71de

File tree

3 files changed

+39
-3
lines changed

3 files changed

+39
-3
lines changed

projects/igniteui-angular/src/lib/grids/columns/column.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Subject } from 'rxjs';
2+
import { isEqual } from 'lodash-es';
23
import {
34
AfterContentInit,
45
ChangeDetectorRef,
@@ -1090,12 +1091,16 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy
10901091
*
10911092
* @memberof IgxColumnComponent
10921093
*/
1094+
@WatchColumnChanges()
10931095
@Input()
10941096
public get disabledSummaries(): string[] {
10951097
return this._disabledSummaries;
10961098
}
10971099

10981100
public set disabledSummaries(value: string[]) {
1101+
if (isEqual(this._disabledSummaries, value)) {
1102+
return;
1103+
}
10991104
this._disabledSummaries = value;
11001105
if (this.grid) {
11011106
this.grid.summaryService.removeSummariesCachePerColumn(this.field);

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,6 @@ describe('IgxGrid - Summaries #grid', () => {
160160

161161
const column = grid.getColumnByName('UnitsInStock');
162162

163-
column.disabledSummaries = [];
164-
fixture.detectChanges();
165-
tick();
166163
GridSummaryFunctions.verifyColumnSummaries(
167164
GridSummaryFunctions.getRootSummaryRow(fixture), 3,
168165
['Count', 'Min', 'Max', 'Sum', 'Avg'],

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

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,6 +1085,40 @@ describe('Basic IgxHierarchicalGrid #hGrid', () => {
10851085
expect(childGrid1.columns[0].editable).toBeTrue();
10861086
expect(childGrid1.columns[1].editable).toBeTrue();
10871087
});
1088+
1089+
it('should update the row island summary UI when disabledSummaries is changed at runtime', fakeAsync(() => {
1090+
const masterRow = hierarchicalGrid.gridAPI.get_row_by_index(0) as IgxHierarchicalRowComponent;
1091+
UIInteractions.simulateClickAndSelectEvent(masterRow.expander);
1092+
fixture.detectChanges();
1093+
1094+
const childGrid = hierarchicalGrid.gridAPI.getChildGrids(false)[0] as IgxHierarchicalGridComponent;
1095+
fixture.detectChanges();
1096+
1097+
childGrid.columns.forEach(c => c.hasSummary = true);
1098+
fixture.detectChanges();
1099+
tick();
1100+
1101+
const column = childGrid.columns.find(c => c.field === 'ProductName');
1102+
expect(column).toBeDefined();
1103+
fixture.detectChanges();
1104+
tick();
1105+
1106+
const summaryCells = childGrid.nativeElement.querySelectorAll('igx-grid-summary-cell');
1107+
const summaryCell = summaryCells[1];
1108+
1109+
expect(summaryCell).toBeDefined();
1110+
expect(summaryCell.textContent.trim().length).toBeGreaterThan(0);
1111+
1112+
const getterSpy = spyOnProperty(column, 'disabledSummaries', 'get').and.callThrough();
1113+
1114+
column.disabledSummaries = ['count'];
1115+
fixture.detectChanges();
1116+
tick();
1117+
fixture.detectChanges();
1118+
1119+
expect(getterSpy).toHaveBeenCalledTimes(7);
1120+
expect(summaryCell.textContent.trim()).toEqual('');
1121+
}));
10881122
});
10891123

10901124
describe('IgxHierarchicalGrid Children Sizing #hGrid', () => {

0 commit comments

Comments
 (0)