diff --git a/demo-shell-ng2/app/components/datatable/datatable-demo.component.html b/demo-shell-ng2/app/components/datatable/datatable-demo.component.html index 9ff3e6c874..110d0be5cb 100644 --- a/demo-shell-ng2/app/components/datatable/datatable-demo.component.html +++ b/demo-shell-ng2/app/components/datatable/datatable-demo.component.html @@ -20,30 +20,11 @@
- + Multiselect
- - - - + + + +
diff --git a/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.html b/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.html index 91d4583b78..d3135b021b 100644 --- a/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.html +++ b/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.html @@ -9,13 +9,7 @@ - + - + { expect(e.preventDefault).toHaveBeenCalled(); }); - it('should prevent default behaviour on select all click', () => { - let e = jasmine.createSpyObj('event', ['preventDefault']); - dataTable.onSelectAllClick(e); - expect(e.preventDefault).toHaveBeenCalled(); - }); - it('should not sort if column is missing', () => { dataTable.ngAfterContentInit(); let adapter = dataTable.data; @@ -266,9 +261,9 @@ describe('DataTable', () => { it('should invert "select all" status', () => { expect(dataTable.isSelectAllChecked).toBeFalsy(); - dataTable.onSelectAllClick(null); + dataTable.onSelectAllClick( { checked: true }); expect(dataTable.isSelectAllChecked).toBeTruthy(); - dataTable.onSelectAllClick(null); + dataTable.onSelectAllClick( { checked: false }); expect(dataTable.isSelectAllChecked).toBeFalsy(); }); @@ -280,13 +275,13 @@ describe('DataTable', () => { dataTable.multiselect = true; dataTable.ngAfterContentInit(); - dataTable.onSelectAllClick(null); + dataTable.onSelectAllClick( { checked: true }); expect(dataTable.isSelectAllChecked).toBe(true); for (let i = 0; i < rows.length; i++) { expect(rows[i].isSelected).toBe(true); } - dataTable.onSelectAllClick(null); + dataTable.onSelectAllClick( { checked: false }); expect(dataTable.isSelectAllChecked).toBe(false); for (let i = 0; i < rows.length; i++) { expect(rows[i].isSelected).toBe(false); @@ -297,7 +292,7 @@ describe('DataTable', () => { dataTable.multiselect = true; dataTable.ngAfterContentInit(); - dataTable.onSelectAllClick(null); + dataTable.onSelectAllClick( { checked: true }); expect(dataTable.isSelectAllChecked).toBe(true); }); @@ -309,7 +304,7 @@ describe('DataTable', () => { dataTable.multiselect = false; dataTable.ngAfterContentInit(); - dataTable.onSelectAllClick(null); + dataTable.onSelectAllClick( { checked: true }); expect(dataTable.isSelectAllChecked).toBe(true); for (let i = 0; i < rows.length; i++) { expect(rows[i].isSelected).toBe(false); diff --git a/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.ts b/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.ts index 39481b380d..f7cc5e8518 100644 --- a/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.ts +++ b/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.ts @@ -32,6 +32,7 @@ import { DataTableAdapter, DataRow, DataColumn, DataSorting, DataRowEvent, Objec import { DataCellEvent } from './data-cell.event'; import { DataRowActionEvent } from './data-row-action.event'; import { DataColumnListComponent } from 'ng2-alfresco-core'; +import { MdCheckboxChange } from '@angular/material'; declare var componentHandler; @@ -178,25 +179,15 @@ export class DataTableComponent implements AfterContentInit, OnChanges { } } - onSelectAllClick(e?: Event) { - if (e) { - e.preventDefault(); - } - - this.isSelectAllChecked = !this.isSelectAllChecked; + onSelectAllClick(e: MdCheckboxChange) { + this.isSelectAllChecked = e.checked; if (this.multiselect) { let rows = this.data.getRows(); if (rows && rows.length > 0) { for (let i = 0; i < rows.length; i++) { - rows[i].isSelected = this.isSelectAllChecked; + rows[i].isSelected = e.checked; } - // TODO: left for reference, will be removed during future revisions - /* - this._ngZone.run(() => { - this.data.getRows()[1].isSelected = true; - }); - */ } } }