mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-06-30 18:15:11 +00:00
[ADF-3131] fix selection order for DT/DL (#3433)
* fix selection order for DT/DL * remove fit
This commit is contained in:
parent
465a2d090d
commit
35d2a0b683
@ -52,6 +52,24 @@ describe('DataTable', () => {
|
|||||||
fixture.destroy();
|
fixture.destroy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should preserve the top-to-bottom selection order', () => {
|
||||||
|
dataTable.data = new ObjectDataTableAdapter(
|
||||||
|
[{ id: 1 }, { id: 2 }, { id: 3 }],
|
||||||
|
[ new ObjectDataColumn({ key: 'id' })]
|
||||||
|
);
|
||||||
|
|
||||||
|
const rows = dataTable.data.getRows();
|
||||||
|
|
||||||
|
dataTable.selectRow(rows[2], true);
|
||||||
|
dataTable.selectRow(rows[0], true);
|
||||||
|
dataTable.selectRow(rows[1], true);
|
||||||
|
|
||||||
|
const selection = dataTable.selection;
|
||||||
|
expect(selection[0].getValue('id')).toBe(1);
|
||||||
|
expect(selection[1].getValue('id')).toBe(2);
|
||||||
|
expect(selection[2].getValue('id')).toBe(3);
|
||||||
|
});
|
||||||
|
|
||||||
it('should update schema if columns change', fakeAsync(() => {
|
it('should update schema if columns change', fakeAsync(() => {
|
||||||
|
|
||||||
dataTable.columnList = new DataColumnListComponent();
|
dataTable.columnList = new DataColumnListComponent();
|
||||||
|
@ -422,7 +422,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
|
|||||||
if (rows && rows.length > 0) {
|
if (rows && rows.length > 0) {
|
||||||
rows.forEach(r => r.isSelected = false);
|
rows.forEach(r => r.isSelected = false);
|
||||||
}
|
}
|
||||||
this.selection.splice(0);
|
this.selection = [];
|
||||||
}
|
}
|
||||||
this.isSelectAllChecked = false;
|
this.isSelectAllChecked = false;
|
||||||
}
|
}
|
||||||
@ -613,17 +613,8 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
|
|||||||
selectRow(row: DataRow, value: boolean) {
|
selectRow(row: DataRow, value: boolean) {
|
||||||
if (row) {
|
if (row) {
|
||||||
row.isSelected = value;
|
row.isSelected = value;
|
||||||
const idx = this.selection.indexOf(row);
|
const rows = this.data.getRows() || [];
|
||||||
|
this.selection = rows.filter(r => r.isSelected);
|
||||||
if (value) {
|
|
||||||
if (idx < 0) {
|
|
||||||
this.selection.push(row);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (idx > -1) {
|
|
||||||
this.selection.splice(idx, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user