Skip to content

Commit 1a5acab

Browse files
committed
Merge branch 'master' of https://github.com/IgniteUI/igniteui-angular into pbozhinov/row-pinning-tree-grid
2 parents f365e33 + 795e8a7 commit 1a5acab

File tree

8 files changed

+58
-5
lines changed

8 files changed

+58
-5
lines changed

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

+2-1
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

+17
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

+23
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

+1-1
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

+7
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

+1-1
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

+5
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

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
</ng-template>
77
<igx-grid [allowFiltering]="true" [pinning]="{columns: 1}" [rowSelectable]="false" #grid [data]="data" displayDensity="compact" [showToolbar]="true" [allowAdvancedFiltering]="true" [columnHiding]="true" [columnPinning]='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)