Skip to content

Commit 575b901

Browse files
authored
Merge pull request #5525 from dlgski/colMoveVisible
fix: prevent hidden columns triggering unnecessary re-order
2 parents cc5c602 + 8413d8e commit 575b901

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

Diff for: src/features/move-columns/js/column-movable.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,14 @@
175175
}
176176

177177
//check columns in between move-range to make sure they are visible columns
178-
var i0 = Math.min(originalPosition, newPosition);
179-
for (i0; i0 < Math.max(originalPosition, newPosition);i0++) {
178+
var pos = (originalPosition < newPosition) ? originalPosition + 1 : originalPosition - 1;
179+
var i0 = Math.min(pos, newPosition);
180+
for (i0; i0 <= Math.max(pos, newPosition); i0++) {
180181
if (columns[i0].visible) {
181182
break;
182183
}
183184
}
184-
if (i0 === Math.max(originalPosition, newPosition)) {
185+
if (i0 > Math.max(pos, newPosition)) {
185186
//no visible column found, column did not visibly move
186187
return;
187188
}

Diff for: src/features/move-columns/test/column-movable.spec.js

+11-1
Original file line numberDiff line numberDiff line change
@@ -183,5 +183,15 @@ describe('ui.grid.moveColumns', function () {
183183
expect(scope.grid.columns[3].name).toBe('company');
184184
expect(scope.grid.columns[4].name).toBe('phone');
185185
});
186-
186+
187+
it('expect column move not to happen if moving across hidden columns', function() {
188+
scope.gridOptions.columnDefs[1].visible = false;
189+
scope.gridApi.colMovable.moveColumn(0, 3);
190+
expect(scope.grid.columns[0].name).toBe('name');
191+
expect(scope.grid.columns[1].name).toBe('gender');
192+
expect(scope.grid.columns[2].name).toBe('age');
193+
expect(scope.grid.columns[3].name).toBe('company');
194+
expect(scope.grid.columns[4].name).toBe('phone');
195+
});
196+
187197
});

0 commit comments

Comments
 (0)