Skip to content

Commit 343f3b9

Browse files
authored
Merge branch '9.0.x' into hPopov/refactor-grid-paging-tests-90x
2 parents 6033ae9 + 2056e79 commit 343f3b9

File tree

9 files changed

+62
-5
lines changed

9 files changed

+62
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
All notable changes for each version of this project will be documented in this file.
44

5+
## 9.0.9
6+
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
7+
- The `title` attribute of the columns and the column groups is now used as `title` for the header text.
8+
59
## 9.0.1
610
- **Breaking Changes**
711
- Remove `$base-color` from igx-typography. The igx-typography class now inherits the parent color.

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';
@@ -1238,7 +1239,7 @@ export class IgxColumnComponent implements AfterContentInit {
12381239
protected collapseIndicatorTemplate: IgxCollapsibleIndicatorTemplateDirective;
12391240

12401241
constructor(public gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>, public cdr: ChangeDetectorRef,
1241-
public rowIslandAPI: IgxRowIslandAPIService) { }
1242+
public rowIslandAPI: IgxRowIslandAPIService, public elementRef: ElementRef) { }
12421243

12431244
/**
12441245
* @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
@@ -1569,6 +1569,23 @@ describe('IgxGrid - multi-column headers #grid', () => {
15691569

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

15741591
@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/headers/grid-header-group.component.html

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

2323

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

2828
<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
@@ -204,6 +204,13 @@ export class IgxGridHeaderGroupComponent implements DoCheck {
204204
return this.element.nativeElement.getBoundingClientRect().height;
205205
}
206206

207+
/**
208+
* @hidden
209+
*/
210+
get columnTitle() {
211+
return this.column.elementRef.nativeElement.getAttribute('title') || this.column.header;
212+
}
213+
207214
/**
208215
* @hidden
209216
*/

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
@@ -112,6 +112,11 @@ export class IgxGridHeaderComponent implements DoCheck, OnInit, OnDestroy {
112112
return this.column.filteringExpressionsTree ? 'igx-excel-filter__icon--filtered' : 'igx-excel-filter__icon';
113113
}
114114

115+
get columnTitle() {
116+
return this.column.elementRef.nativeElement.getAttribute('title') ||
117+
this.column.header || this.column.field;
118+
}
119+
115120
@HostBinding('attr.role')
116121
public hostRole = 'columnheader';
117122

src/app/grid-column-groups/grid-column-groups.sample.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
</ng-template>
77
<igx-grid [allowFiltering]="true" [rowSelectable]="false" #grid [data]="data" displayDensity="compact" [showToolbar]="true" [allowAdvancedFiltering]="true" [columnHiding]="true">
88
<igx-column [movable]="true" [resizable]="true" [pinned]="true" field="Missing"></igx-column>
9-
<igx-column-group [movable]="true" header="General Information" [collapsible]="true" [expanded]="true" [hidden]="true">
10-
<igx-column [movable]="true" [filterable]="false" [hidden]="true" sortable="true" resizable="true" field="CompanyName" width="200px" [visibleWhenCollapsed]="false"></igx-column>
9+
<igx-column-group [movable]="true" header="General Information" title="General Company Information" [collapsible]="true" [expanded]="true" [hidden]="true">
10+
<igx-column [movable]="true" [filterable]="false" [hidden]="true" sortable="true" resizable="true" field="CompanyName" title="Company Name" width="200px" [visibleWhenCollapsed]="false"></igx-column>
1111
<igx-column field="Missing"></igx-column>
1212
<igx-column-group [movable]="true" header="Person Details" [collapsible]="true" [expanded]="false" [visibleWhenCollapsed]="true">
1313
<igx-column [movable]="true" [visibleWhenCollapsed]="false" [hidden]="true" filterable="true" sortable="true" resizable="true" field="ContactName"></igx-column>

0 commit comments

Comments
 (0)