Skip to content

Commit 90cf9b0

Browse files
authored
Merge branch 'master' into sivanova/fix-toast-margin
2 parents 3f3e44e + 718ab8b commit 90cf9b0

File tree

13 files changed

+379
-383
lines changed

13 files changed

+379
-383
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
TemplateRef,
1111
Output,
1212
EventEmitter,
13+
ElementRef,
1314
} from '@angular/core';
1415
import { notifyChanges } from '../watch-changes';
1516
import { WatchColumnChanges } from '../watch-changes';
@@ -1319,7 +1320,7 @@ export class IgxColumnComponent implements AfterContentInit {
13191320
protected collapseIndicatorTemplate: IgxCollapsibleIndicatorTemplateDirective;
13201321

13211322
constructor(public gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>, public cdr: ChangeDetectorRef,
1322-
public rowIslandAPI: IgxRowIslandAPIService) { }
1323+
public rowIslandAPI: IgxRowIslandAPIService, public elementRef: ElementRef) { }
13231324

13241325
/**
13251326
* @hidden

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1573,6 +1573,23 @@ describe('IgxGrid - multi-column headers #grid', () => {
15731573

15741574
expect(grid.columnList.length).toEqual(10);
15751575
});
1576+
1577+
it('should set title attribute on column group header spans', () => {
1578+
const fixture = TestBed.createComponent(ColumnGroupTestComponent);
1579+
fixture.detectChanges();
1580+
1581+
const grid = fixture.componentInstance.grid;
1582+
const generalGroup = grid.columnList.find(c => c.header === 'General Information');
1583+
generalGroup.elementRef.nativeElement.title = 'General Information Title';
1584+
fixture.detectChanges();
1585+
1586+
const headers = fixture.debugElement.queryAll(By.css('.' + GRID_COL_GROUP_THEAD_TITLE_CLASS));
1587+
const generalHeader = headers.find(h => h.nativeElement.textContent === 'General Information');
1588+
const addressHeader = headers.find(h => h.nativeElement.textContent === 'Address Information');
1589+
1590+
expect(generalHeader.nativeElement.firstElementChild.title).toBe('General Information Title');
1591+
expect(addressHeader.nativeElement.firstElementChild.title).toBe('Address Information');
1592+
});
15761593
});
15771594

15781595
@Component({

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,29 @@ describe('IgxGrid - Column properties #grid', () => {
375375
const row = grid.getRowByIndex(0);
376376
row.cells.forEach(cell => expect(cell.nativeElement.getAttribute('style')).toMatch('background: black'));
377377
});
378+
379+
it('should set title attribute on column header spans', () => {
380+
const fix = TestBed.createComponent(ColumnsFromIterableComponent);
381+
fix.detectChanges();
382+
383+
const grid = fix.componentInstance.instance;
384+
const idColumn = grid.getColumnByName('ID');
385+
const nameColumn = grid.getColumnByName('Name');
386+
387+
idColumn.header = 'ID Header';
388+
idColumn.elementRef.nativeElement.title = 'ID Title';
389+
nameColumn.header = 'Name Header';
390+
fix.detectChanges();
391+
392+
const headers = fix.debugElement.queryAll(By.css(COLUMN_HEADER_CLASS));
393+
const idHeader = headers[0].nativeElement;
394+
const nameHeader = headers[1].nativeElement;
395+
expect(idHeader.textContent).toBe('ID Header');
396+
expect(idHeader.firstElementChild.firstElementChild.title).toBe('ID Title');
397+
expect(nameHeader.textContent).toBe('Name Header');
398+
expect(nameHeader.firstElementChild.firstElementChild.title).toBe('Name Header');
399+
});
400+
378401
});
379402

380403
@Component({

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

Lines changed: 266 additions & 351 deletions
Large diffs are not rendered by default.

projects/igniteui-angular/src/lib/grids/headers/grid-header-group.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626

2727
<ng-template #defaultColumn>
28-
<span class="igx-grid__th-group-title" [attr.title]="column.header">{{column.header}}</span>
28+
<span class="igx-grid__th-group-title" [attr.title]="columnTitle">{{column.header}}</span>
2929
</ng-template>
3030

3131
<ng-template #defaultCollapseIndicator>

projects/igniteui-angular/src/lib/grids/headers/grid-header-group.component.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,13 @@ export class IgxGridHeaderGroupComponent implements DoCheck {
236236
return this.element.nativeElement.getBoundingClientRect().height;
237237
}
238238

239+
/**
240+
* @hidden
241+
*/
242+
get columnTitle() {
243+
return this.column.elementRef.nativeElement.getAttribute('title') || this.column.header;
244+
}
245+
239246
/**
240247
* @hidden
241248
*/

projects/igniteui-angular/src/lib/grids/headers/grid-header.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<ng-template #defaultColumn>
2-
<span [attr.title]="column.header || column.field">{{ column.header || column.field }}</span>
2+
<span [attr.title]="columnTitle">{{ column.header || column.field }}</span>
33
</ng-template>
44

55
<span class="igx-grid__th-title">

projects/igniteui-angular/src/lib/grids/headers/grid-header.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,11 @@ export class IgxGridHeaderComponent implements DoCheck, OnInit, OnDestroy {
130130
&& (!this.grid.filteringService.isFilterRowVisible || this.grid.filteringService.filteredColumn !== this.column);
131131
}
132132

133+
get columnTitle() {
134+
return this.column.elementRef.nativeElement.getAttribute('title') ||
135+
this.column.header || this.column.field;
136+
}
137+
133138
@HostBinding('attr.role')
134139
public hostRole = 'columnheader';
135140

projects/igniteui-angular/src/lib/test-utils/controls-functions.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { By } from '@angular/platform-browser';
22
import { DebugElement } from '@angular/core';
33
import { ComponentFixture } from '@angular/core/testing';
44
import { UIInteractions } from './ui-interactions.spec';
5+
import { IgxChipComponent } from '../chips/chip.component';
56

67
const CHIP_REMOVE_BUTTON = '.igx-chip__remove';
78
const DROP_DOWN_SELECTED_ITEM_CLASS = '.igx-drop-down__item--selected';

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1846,6 +1846,7 @@ export class GridFunctions {
18461846
}
18471847
}
18481848

1849+
18491850
public static getHeaderSortIcon(header: DebugElement): DebugElement {
18501851
return header.query(By.css(SORT_ICON_CLASS));
18511852
}

0 commit comments

Comments
 (0)