Skip to content

Commit acb7e7b

Browse files
committed
fix(grouping): grouping a pinned column was broken
If a pinned left column was grouped, the column was moved left of row headers
1 parent 448168b commit acb7e7b

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

src/features/grouping/js/grouping.js

+8-2
Original file line numberDiff line numberDiff line change
@@ -615,13 +615,19 @@
615615

616616
columns.sort(function(a, b){
617617
var a_group, b_group;
618-
if ( typeof(a.grouping) === 'undefined' || typeof(a.grouping.groupPriority) === 'undefined' || a.grouping.groupPriority < 0){
618+
if (a.isRowHeader){
619+
a_group = -1000;
620+
}
621+
else if ( typeof(a.grouping) === 'undefined' || typeof(a.grouping.groupPriority) === 'undefined' || a.grouping.groupPriority < 0){
619622
a_group = null;
620623
} else {
621624
a_group = a.grouping.groupPriority;
622625
}
623626

624-
if ( typeof(b.grouping) === 'undefined' || typeof(b.grouping.groupPriority) === 'undefined' || b.grouping.groupPriority < 0){
627+
if (b.isRowHeader){
628+
b_group = -1000;
629+
}
630+
else if ( typeof(b.grouping) === 'undefined' || typeof(b.grouping.groupPriority) === 'undefined' || b.grouping.groupPriority < 0){
625631
b_group = null;
626632
} else {
627633
b_group = b.grouping.groupPriority;

src/features/grouping/test/grouping.spec.js

+20-1
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,20 @@ describe('ui.grid.grouping uiGridGroupingService', function () {
77
var $rootScope;
88
var $scope;
99
var GridRow;
10+
var $timeout;
1011

1112
beforeEach(module('ui.grid.grouping'));
1213

1314
beforeEach(inject(function (_uiGridGroupingService_,_gridClassFactory_, $templateCache, _uiGridGroupingConstants_,
14-
_$rootScope_, _GridRow_, _uiGridTreeBaseService_) {
15+
_$rootScope_, _GridRow_, _uiGridTreeBaseService_,_$timeout_) {
1516
uiGridGroupingService = _uiGridGroupingService_;
1617
uiGridGroupingConstants = _uiGridGroupingConstants_;
1718
gridClassFactory = _gridClassFactory_;
1819
$rootScope = _$rootScope_;
1920
$scope = $rootScope.$new();
2021
GridRow = _GridRow_;
2122
uiGridTreeBaseService = _uiGridTreeBaseService_;
23+
$timeout = _$timeout_;
2224

2325
$templateCache.put('ui-grid/uiGridCell', '<div/>');
2426
$templateCache.put('ui-grid/editableCell', '<div editable_cell_directive></div>');
@@ -79,6 +81,23 @@ describe('ui.grid.grouping uiGridGroupingService', function () {
7981
it( 'move some columns left, and some columns right', function() {
8082
// TODO
8183
});
84+
85+
iit( 'will not move header columns', function() {
86+
87+
$timeout(function () {
88+
grid.addRowHeaderColumn({name:'aRowHeader'});
89+
});
90+
$timeout.flush();
91+
92+
93+
grid.columns[2].renderContainer = 'left';
94+
grid.columns[2].sort = { priority: 1};
95+
grid.columns[2].grouping = { groupPriority: 1};
96+
uiGridGroupingService.moveGroupColumns(grid,grid.columns,grid.rows);
97+
expect(grid.columns[0].colDef.name).toBe('aRowHeader');
98+
99+
100+
});
82101
});
83102

84103

0 commit comments

Comments
 (0)