diff --git a/ng2-components/ng2-activiti-tasklist/src/components/activiti-task-details.component.ts b/ng2-components/ng2-activiti-tasklist/src/components/activiti-task-details.component.ts index e6c73c9b47..82babb1715 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/activiti-task-details.component.ts +++ b/ng2-components/ng2-activiti-tasklist/src/components/activiti-task-details.component.ts @@ -177,8 +177,8 @@ export class ActivitiTaskDetails implements OnInit, OnChanges { ); this.activitiTaskList.getTasks(requestNode).subscribe( (response) => { - if (response.data && response.data.length > 0) { - this.taskDetails = response.data[0]; + if (response && response.length > 0) { + this.taskDetails = response[0]; } else { this.reset(); } diff --git a/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.spec.ts b/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.spec.ts index 7f0ab7c960..f27d622c47 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.spec.ts +++ b/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.spec.ts @@ -26,23 +26,24 @@ import { ActivitiTaskListService } from '../services/activiti-tasklist.service'; describe('ActivitiTaskList', () => { - let fakeGlobalTask = { - size: 2, total: 2, start: 0, - data: [ - { - id: 14, name: 'fake-long-name-fake-long-name-fake-long-name-fak50-long-name', description: null, category: null, - assignee: { - id: 1, firstName: null, lastName: 'Administrator', email: 'admin' - } - }, - { - id: 2, name: '', description: null, category: null, - assignee: { - id: 1, firstName: null, lastName: 'Administrator', email: 'admin' - } + let fakeGlobalTask = [ + { + id: 14, name: 'fake-long-name-fake-long-name-fake-long-name-fak50-long-name', + processDefinitionId: 'fakeprocess:5:7507', + processDefinitionKey: 'fakeprocess', + processDefinitionName: 'Fake Process Name', + description: null, category: null, + assignee: { + id: 1, firstName: null, lastName: 'Administrator', email: 'admin' } - ] - }; + }, + { + id: 2, name: '', description: null, category: null, + assignee: { + id: 1, firstName: null, lastName: 'Administrator', email: 'admin' + } + } + ]; let fakeGlobalTotalTasks = { size: 2, total: 2, start: 0, @@ -126,6 +127,7 @@ describe('ActivitiTaskList', () => { spyOn(component.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeGlobalTotalTasksPromise)); spyOn(component.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise)); component.state = 'open'; + component.processDefinitionKey = null, component.assignment = 'fake-assignee'; component.onSuccess.subscribe( (res) => { expect(res).toBeDefined(); @@ -136,7 +138,24 @@ describe('ActivitiTaskList', () => { expect(component.data.getRows()[1].getValue('name')).toEqual('Nameless task'); done(); }); + component.ngOnInit(); + }); + it('should return the filtered task list by processDefinitionKey', (done) => { + spyOn(component.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeGlobalTotalTasksPromise)); + spyOn(component.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise)); + component.state = 'open'; + component.processDefinitionKey = 'fakeprocess'; + component.assignment = 'fake-assignee'; + component.onSuccess.subscribe( (res) => { + expect(res).toBeDefined(); + expect(component.data).toBeDefined(); + expect(component.isTaskListEmpty()).not.toBeTruthy(); + expect(component.data.getRows().length).toEqual(2); + expect(component.data.getRows()[0].getValue('name')).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...'); + expect(component.data.getRows()[1].getValue('name')).toEqual('Nameless task'); + done(); + }); component.ngOnInit(); }); diff --git a/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.ts b/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.ts index a9dd614e23..06ff37c90e 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.ts +++ b/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.ts @@ -35,7 +35,7 @@ export class ActivitiTaskList implements OnInit, OnChanges { appId: string; @Input() - processDefinitionId: string; + processDefinitionKey: string; @Input() state: string; @@ -81,23 +81,29 @@ export class ActivitiTaskList implements OnInit, OnChanges { ngOnInit() { if (!this.data) { - this.data = new ObjectDataTableAdapter( - [], - this.defaultSchemaColumn - ); + this.data = this.initDefaultSchemaColumns(); } - - this.requestNode = this.createRequestNode(); - this.load(this.requestNode); + this.reload(); } ngOnChanges(changes: SimpleChanges) { + this.reload(); + } + + public reload() { this.requestNode = this.createRequestNode(); this.load(this.requestNode); } - public reload() { - this.load(this.requestNode); + /** + * Return an initDefaultSchemaColumns instance with the default Schema Column + * @returns {ObjectDataTableAdapter} + */ + initDefaultSchemaColumns(): ObjectDataTableAdapter { + return new ObjectDataTableAdapter( + [], + this.defaultSchemaColumn + ); } private load(requestNode: TaskQueryRequestRepresentationModel) { @@ -106,7 +112,7 @@ export class ActivitiTaskList implements OnInit, OnChanges { requestNode.size = res.total; this.activiti.getTasks(requestNode).subscribe( (response) => { - let taskRow = this.createDataRow(response.data); + let taskRow = this.createDataRow(response); this.renderTasks(taskRow); this.selectFirstTask(); this.onSuccess.emit(response); @@ -202,7 +208,7 @@ export class ActivitiTaskList implements OnInit, OnChanges { private createRequestNode() { let requestNode = { appDefinitionId: this.appId, - processDefinitionId: this.processDefinitionId, + processDefinitionKey: this.processDefinitionKey, text: this.name, assignment: this.assignment, state: this.state, diff --git a/ng2-components/ng2-activiti-tasklist/src/services/activiti-tasklist.service.spec.ts b/ng2-components/ng2-activiti-tasklist/src/services/activiti-tasklist.service.spec.ts index b25120ce93..9b644ab58f 100644 --- a/ng2-components/ng2-activiti-tasklist/src/services/activiti-tasklist.service.spec.ts +++ b/ng2-components/ng2-activiti-tasklist/src/services/activiti-tasklist.service.spec.ts @@ -202,13 +202,11 @@ describe('ActivitiTaskListService', () => { service.getTasks(fakeFilter).subscribe( res => { expect(res).toBeDefined(); - expect(res.size).toEqual(1); - expect(res.total).toEqual(1); - expect(res.data.length).toEqual(1); - expect(res.data[0].name).toEqual('FakeNameTask'); - expect(res.data[0].assignee.email).toEqual('fake-email@dom.com'); - expect(res.data[0].assignee.firstName).toEqual('firstName'); - expect(res.data[0].assignee.lastName).toEqual('lastName'); + expect(res.length).toEqual(1); + expect(res[0].name).toEqual('FakeNameTask'); + expect(res[0].assignee.email).toEqual('fake-email@dom.com'); + expect(res[0].assignee.firstName).toEqual('firstName'); + expect(res[0].assignee.lastName).toEqual('lastName'); done(); } ); diff --git a/ng2-components/ng2-activiti-tasklist/src/services/activiti-tasklist.service.ts b/ng2-components/ng2-activiti-tasklist/src/services/activiti-tasklist.service.ts index 05411845f8..7f90ab44ac 100644 --- a/ng2-components/ng2-activiti-tasklist/src/services/activiti-tasklist.service.ts +++ b/ng2-components/ng2-activiti-tasklist/src/services/activiti-tasklist.service.ts @@ -69,10 +69,14 @@ export class ActivitiTaskListService { * @param filter - TaskFilterRepresentationModel * @returns {any} */ - getTasks(requestNode: TaskQueryRequestRepresentationModel): Observable { + getTasks(requestNode: TaskQueryRequestRepresentationModel): Observable { return Observable.fromPromise(this.callApiTasksFiltered(requestNode)) .map((res: any) => { - return res; + if (requestNode.processDefinitionKey) { + return res.data.filter(p => p.processDefinitionKey === requestNode.processDefinitionKey); + } else { + return res.data; + } }).catch(this.handleError); }