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 10b31a65f8..1feceb707b 100644 --- a/demo-shell-ng2/app/components/datatable/datatable-demo.component.html +++ b/demo-shell-ng2/app/components/datatable/datatable-demo.component.html @@ -37,4 +37,5 @@ + diff --git a/demo-shell-ng2/app/components/datatable/datatable-demo.component.ts b/demo-shell-ng2/app/components/datatable/datatable-demo.component.ts index fc22fbf714..6cb99e0a25 100644 --- a/demo-shell-ng2/app/components/datatable/datatable-demo.component.ts +++ b/demo-shell-ng2/app/components/datatable/datatable-demo.component.ts @@ -17,6 +17,8 @@ import { Component, Input } from '@angular/core'; import { ObjectDataTableAdapter, DataSorting, ObjectDataRow, ObjectDataColumn, DataCellEvent, DataRowActionEvent } from 'ng2-alfresco-datatable'; +import { AlfrescoApiService } from 'ng2-alfresco-core'; +import { Observable } from 'rxjs/Rx'; @Component({ selector: 'datatable-demo', @@ -43,7 +45,7 @@ export class DataTableDemoComponent { email: 'denys.vuika@alfresco.com' }; - constructor() { + constructor(private apiService: AlfrescoApiService) { this.reset(); } @@ -80,11 +82,11 @@ export class DataTableDemoComponent { } ], [ - {type: 'image', key: 'icon', title: '', srTitle: 'Thumbnail'}, - {type: 'text', key: 'id', title: 'Id', sortable: true}, - {type: 'text', key: 'createdOn', title: 'Created On', sortable: true}, - {type: 'text', key: 'name', title: 'Name', cssClass: 'full-width name-column', sortable: true}, - {type: 'text', key: 'createdBy.name', title: 'Created By', sortable: true} + { type: 'image', key: 'icon', title: '', srTitle: 'Thumbnail' }, + { type: 'text', key: 'id', title: 'Id', sortable: true }, + { type: 'text', key: 'createdOn', title: 'Created On', sortable: true }, + { type: 'text', key: 'name', title: 'Name', cssClass: 'full-width name-column', sortable: true }, + { type: 'text', key: 'createdBy.name', title: 'Created By', sortable: true } ] ); @@ -172,4 +174,33 @@ export class DataTableDemoComponent { onRowDblClick(event) { console.log(event); } + + getRowForNode() { + let opts: any = { + includeSource: true, + include: ['path', 'properties', 'allowableOperations'] + }; + + Observable.fromPromise(this.apiService.getInstance().nodes + .getNodeInfo('-my-', opts)).subscribe((data) => { + console.log('FUnNy'); + console.log(data); + let objects = new ObjectDataTableAdapter([ + { + id: data.id, + name: data.name, + createdBy: data.createdByUser.displayName, + createdOn: new Date(data.createdAt), + icon: 'material-icons://face' + }], + [ + { type: 'image', key: 'icon', title: '', srTitle: 'Thumbnail' }, + { type: 'text', key: 'id', title: 'Id', sortable: true }, + { type: 'text', key: 'createdOn', title: 'Created On', sortable: true }, + { type: 'text', key: 'name', title: 'Name', cssClass: 'full-width name-column', sortable: true }, + { type: 'text', key: 'createdBy.name', title: 'Created By', sortable: true } + ]); + this.data = objects; + }); + } } diff --git a/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.spec.ts b/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.spec.ts index d353594a98..40fbc3ccb0 100644 --- a/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.spec.ts +++ b/ng2-components/ng2-alfresco-datatable/src/components/datatable/datatable.component.spec.ts @@ -66,6 +66,31 @@ describe('DataTable', () => { }; }); + it('should change the rows on changing of the data', () => { + let newData = new ObjectDataTableAdapter( + [ + { name: 'TEST' }, + { name: 'FAKE' } + ], + [new ObjectDataColumn({ key: 'name' })] + ); + dataTable.data = new ObjectDataTableAdapter( + [ + { name: '1' }, + { name: '2' } + ], + [new ObjectDataColumn({ key: 'name' })] + ); + + dataTable.ngOnChanges({ + data: new SimpleChange(null, newData, false) + }); + fixture.detectChanges(); + + expect(element.querySelector('[data-automation-id="text_TEST"]')).not.toBeNull(); + expect(element.querySelector('[data-automation-id="text_FAKE"]')).not.toBeNull(); + }); + it('should reset selection on mode change', () => { spyOn(dataTable, 'resetSelection').and.callThrough(); 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 26724b1714..47f3b400f5 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 @@ -133,6 +133,8 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck if (this.isPropertyChanged(changes['data'])) { if (this.isTableEmpty()) { this.initTable(); + }else { + this.data = changes['data'].currentValue; } return; }