mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
restore historical selection order (#3467)
* restore historical selection order * fix test
This commit is contained in:
committed by
Eugenio Romano
parent
d152c367aa
commit
1d69f5c407
@@ -66,9 +66,9 @@ describe('DataTable', () => {
|
||||
fixture.destroy();
|
||||
});
|
||||
|
||||
it('should preserve the top-to-bottom selection order', () => {
|
||||
it('should preserve the historical selection order', () => {
|
||||
dataTable.data = new ObjectDataTableAdapter(
|
||||
[{ id: 1 }, { id: 2 }, { id: 3 }],
|
||||
[{ id: 0 }, { id: 1 }, { id: 2 }],
|
||||
[ new ObjectDataColumn({ key: 'id' })]
|
||||
);
|
||||
|
||||
@@ -79,9 +79,9 @@ describe('DataTable', () => {
|
||||
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);
|
||||
expect(selection[0].getValue('id')).toBe(2);
|
||||
expect(selection[1].getValue('id')).toBe(0);
|
||||
expect(selection[2].getValue('id')).toBe(1);
|
||||
});
|
||||
|
||||
it('should update schema if columns change', fakeAsync(() => {
|
||||
|
@@ -601,8 +601,16 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
|
||||
selectRow(row: DataRow, value: boolean) {
|
||||
if (row) {
|
||||
row.isSelected = value;
|
||||
const rows = this.data.getRows() || [];
|
||||
this.selection = rows.filter(r => r.isSelected);
|
||||
const idx = this.selection.indexOf(row);
|
||||
if (value) {
|
||||
if (idx < 0) {
|
||||
this.selection.push(row);
|
||||
}
|
||||
} else {
|
||||
if (idx > -1) {
|
||||
this.selection.splice(idx, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user