Skip to content

Commit bbec2a2

Browse files
authored
Merge branch 'master' into mkirova/fix-6701-master
2 parents 33c78e5 + 054a622 commit bbec2a2

File tree

2 files changed

+51
-2
lines changed

2 files changed

+51
-2
lines changed

projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-column-moving.component.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,26 @@ export class IgxExcelStyleColumnMovingComponent {
4848
public onMoveButtonClicked(moveDirection) {
4949
let targetColumn;
5050
if (this.column.pinned) {
51-
if (this.column.isLastPinned && moveDirection === 1) {
51+
if (this.column.isLastPinned && moveDirection === 1 && this.grid.isPinningToStart) {
5252
targetColumn = this.grid.unpinnedColumns[0];
5353
moveDirection = 0;
54+
} else if (this.column.isFirstPinned && moveDirection === 0 && !this.grid.isPinningToStart) {
55+
targetColumn = this.grid.unpinnedColumns[this.grid.unpinnedColumns.length - 1];
56+
moveDirection = 1;
5457
} else {
5558
targetColumn = this.findColumn(moveDirection, this.grid.pinnedColumns);
5659
}
57-
} else if (this.grid.unpinnedColumns.indexOf(this.column) === 0 && moveDirection === 0) {
60+
} else if (this.grid.unpinnedColumns.indexOf(this.column) === 0 && moveDirection === 0 &&
61+
this.grid.isPinningToStart) {
5862
targetColumn = this.grid.pinnedColumns[this.grid.pinnedColumns.length - 1];
5963
if (targetColumn.parent) {
6064
targetColumn = targetColumn.topLevelParent;
6165
}
6266
moveDirection = 1;
67+
} else if (this.grid.unpinnedColumns.indexOf(this.column) === this.grid.unpinnedColumns.length - 1 &&
68+
moveDirection === 1 && !this.grid.isPinningToStart) {
69+
targetColumn = this.grid.pinnedColumns[0];
70+
moveDirection = 0;
6371
} else {
6472
targetColumn = this.findColumn(moveDirection, this.grid.unpinnedColumns);
6573
}

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

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2580,6 +2580,47 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => {
25802580
ControlsFunction.verifyButtonIsDisabled(moveLeft, false);
25812581
}));
25822582

2583+
it('Should right pin and unpin column after moving it left/right when clicking buttons.', fakeAsync(() => {
2584+
grid.pinning.columns = 1;
2585+
2586+
const columnToPin = grid.columns[grid.columns.length - 2];
2587+
columnToPin.pinned = true;
2588+
fix.detectChanges();
2589+
2590+
expect(grid.pinnedColumns.length).toBe(1);
2591+
2592+
const columnToMove = grid.unpinnedColumns[grid.unpinnedColumns.length - 1];
2593+
columnToMove.movable = true;
2594+
2595+
GridFunctions.clickExcelFilterIconFromCode(fix, grid, columnToMove.field);
2596+
2597+
const moveLeft = GridFunctions.getExcelStyleFilteringMoveButtons(fix)[0];
2598+
const moveRight = GridFunctions.getExcelStyleFilteringMoveButtons(fix)[1];
2599+
2600+
moveRight.click();
2601+
fix.detectChanges();
2602+
2603+
expect(grid.pinnedColumns.length).toBe(2);
2604+
2605+
expect(grid.pinnedColumns[0].field).toBe(columnToMove.field);
2606+
expect(grid.pinnedColumns[1].field).toBe(columnToPin.field);
2607+
2608+
moveRight.click();
2609+
fix.detectChanges();
2610+
2611+
expect(grid.pinnedColumns[0].field).toBe(columnToPin.field);
2612+
expect(grid.pinnedColumns[1].field).toBe(columnToMove.field);
2613+
2614+
moveLeft.click();
2615+
fix.detectChanges();
2616+
2617+
moveLeft.click();
2618+
fix.detectChanges();
2619+
2620+
expect(grid.pinnedColumns.length).toBe(1);
2621+
expect(grid.pinnedColumns[0].field).toBe(columnToPin.field);
2622+
}));
2623+
25832624
it('Should pin column when clicking buttons.', fakeAsync(() => {
25842625
GridFunctions.clickExcelFilterIconFromCode(fix, grid, 'Downloads');
25852626

0 commit comments

Comments
 (0)