diff --git a/demo-shell-ng2/app/components/tasks/tasks-demo.component.ts b/demo-shell-ng2/app/components/tasks/tasks-demo.component.ts index f251a71656..e2e9c50827 100644 --- a/demo-shell-ng2/app/components/tasks/tasks-demo.component.ts +++ b/demo-shell-ng2/app/components/tasks/tasks-demo.component.ts @@ -17,22 +17,28 @@ import { Component, OnInit } from 'angular2/core'; import { ActivitiService } from './activiti.service'; +import { + ALFRESCO_DATATABLE_DIRECTIVES, + ObjectDataTableAdapter, + DataSorting, + ObjectDataRow, + ObjectDataColumn +} from 'ng2-alfresco-datatable/dist/ng2-alfresco-datatable'; @Component({ selector: 'tasks-demo', template: ` -

Tasks

- +
+ +
`, - providers: [ActivitiService] + directives: [ALFRESCO_DATATABLE_DIRECTIVES], + providers: [ActivitiService], + styles: [':host > .container { padding: 10px; }'] }) export class TasksDemoComponent implements OnInit { - tasks: any[]; + tasks: ObjectDataTableAdapter; constructor( private activitiService: ActivitiService) {} @@ -43,11 +49,29 @@ export class TasksDemoComponent implements OnInit { .then(() => { this.activitiService .getTasks() - .then((tasks) => { - this.tasks = tasks || [] - console.log(this.tasks); + .then((data) => { + let tasks = data || []; + console.log(tasks); + this.loadTasks(tasks) }); }); } + private loadTasks(tasks: any[]) { + tasks = tasks.map(t => { + t.name = t.name || 'Nameless task'; + if (t.name.length > 50) { + t.name = t.name.substring(0, 50) + '...'; + } + return t; + }); + + this.tasks = new ObjectDataTableAdapter(tasks, [ + { type: 'text', key: 'id', title: 'Id'}, + { type: 'text', key: 'name', title: 'Name', cssClass: 'full-width name-column', sortable: true }, + { type: 'text', key: 'formKey', title: 'Form Key', sortable: true }, + { type: 'text', key: 'created', title: 'Created', sortable: true } + ]); + } + } diff --git a/ng2-components/ng2-alfresco-datatable/src/data/object-datatable-adapter.ts b/ng2-components/ng2-alfresco-datatable/src/data/object-datatable-adapter.ts index 1eb80ebd66..16cf6ad0f7 100644 --- a/ng2-components/ng2-alfresco-datatable/src/data/object-datatable-adapter.ts +++ b/ng2-components/ng2-alfresco-datatable/src/data/object-datatable-adapter.ts @@ -91,10 +91,18 @@ export class ObjectDataTableAdapter implements DataTableAdapter { if (sorting && sorting.key) { this._rows.sort((a: DataRow, b: DataRow) => { let left = a.getValue(sorting.key); - left = (left instanceof Date) ? left.valueOf().toString() : left.toString(); + if (left) { + left = (left instanceof Date) ? left.valueOf().toString() : left.toString(); + } else { + left = ''; + } let right = b.getValue(sorting.key); - right = (right instanceof Date) ? right.valueOf().toString() : right.toString(); + if (right) { + right = (right instanceof Date) ? right.valueOf().toString() : right.toString(); + } else { + right = ''; + } return sorting.direction === 'asc' ? left.localeCompare(right)