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)