mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
Merge pull request #672 from Alfresco/dev-mvitale-611
Activiti Task List does not show all entries
This commit is contained in:
commit
5e14cd69d5
@ -82,7 +82,7 @@ export class ActivitiDemoComponent implements AfterViewChecked {
|
|||||||
|
|
||||||
onTaskFilterClick(event: any) {
|
onTaskFilterClick(event: any) {
|
||||||
this.taskFilter = event;
|
this.taskFilter = event;
|
||||||
this.activititasklist.load(this.taskFilter);
|
this.activititasklist.load(this.taskFilter.filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
onProcessFilterClick(event: any) {
|
onProcessFilterClick(event: any) {
|
||||||
|
@ -50,7 +50,7 @@ Also make sure you include these dependencies in your `index.html` file:
|
|||||||
|
|
||||||
## Basic usage example Activiti Task List
|
## Basic usage example Activiti Task List
|
||||||
The component shows the list of all the tasks filter by the
|
The component shows the list of all the tasks filter by the
|
||||||
FilterModel passed in input.
|
FilterParamModel passed in input.
|
||||||
```html
|
```html
|
||||||
<activiti-tasklist [taskFilter]="taskFilterModel"></activiti-tasklist>
|
<activiti-tasklist [taskFilter]="taskFilterModel"></activiti-tasklist>
|
||||||
```
|
```
|
||||||
@ -62,25 +62,19 @@ clicked<br />
|
|||||||
|
|
||||||
#### Options
|
#### Options
|
||||||
|
|
||||||
**taskFilter**: { FilterModel } required) FilterModel object that
|
**taskFilter**: { FilterParamModel } required) FilterParamModel object that
|
||||||
is passed to the task list API to filter the task list.
|
is passed to the task list API to filter the task list.
|
||||||
Example:
|
Example:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"id": 4,
|
"appDefinitionId": "1",
|
||||||
"name": "Involved Tasks",
|
"processDefinitionId": "1533",
|
||||||
"recent": false,
|
"sort": "created-desc",
|
||||||
"icon": "glyphicon-align-left",
|
"text": "",
|
||||||
"filter": {
|
"state": "open",
|
||||||
"appDefinitionId": "1",
|
"assignment": "involved",
|
||||||
"processDefinitionId": "1533",
|
"page": "0",
|
||||||
"sort": "created-desc",
|
"size": "25"
|
||||||
"name": "",
|
|
||||||
"state": "open",
|
|
||||||
"assignment": "involved",
|
|
||||||
"page": "0",
|
|
||||||
"size": "25"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**schemaColumn**: { any[] } optional) JSON object that represent
|
**schemaColumn**: { any[] } optional) JSON object that represent
|
||||||
|
@ -34,7 +34,7 @@ describe('ActivitiTaskList', () => {
|
|||||||
let taskList: ActivitiTaskList;
|
let taskList: ActivitiTaskList;
|
||||||
|
|
||||||
let fakeGlobalTask = {
|
let fakeGlobalTask = {
|
||||||
size: 1, total: 12, start: 0,
|
size: 2, total: 2, start: 0,
|
||||||
data: [
|
data: [
|
||||||
{
|
{
|
||||||
id: 14, name: 'fake-long-name-fake-long-name-fake-long-name-fak50-long-name', description: null, category: null,
|
id: 14, name: 'fake-long-name-fake-long-name-fake-long-name-fak50-long-name', description: null, category: null,
|
||||||
@ -51,10 +51,19 @@ describe('ActivitiTaskList', () => {
|
|||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let fakeGlobalTotalTasks = {
|
||||||
|
size: 2, total: 2, start: 0,
|
||||||
|
data: []
|
||||||
|
};
|
||||||
|
|
||||||
let fakeGlobalTaskPromise = new Promise(function (resolve, reject) {
|
let fakeGlobalTaskPromise = new Promise(function (resolve, reject) {
|
||||||
resolve(fakeGlobalTask);
|
resolve(fakeGlobalTask);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let fakeGlobalTotalTasksPromise = new Promise(function (resolve, reject) {
|
||||||
|
resolve(fakeGlobalTotalTasks);
|
||||||
|
});
|
||||||
|
|
||||||
let fakeErrorTaskList = {
|
let fakeErrorTaskList = {
|
||||||
error: 'wrong request'
|
error: 'wrong request'
|
||||||
};
|
};
|
||||||
@ -91,6 +100,7 @@ describe('ActivitiTaskList', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should return the filtered task list when the taskFilter is passed', (done) => {
|
it('should return the filtered task list when the taskFilter is passed', (done) => {
|
||||||
|
spyOn(taskList.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeGlobalTotalTasksPromise));
|
||||||
spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise));
|
spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise));
|
||||||
taskList.taskFilter = new FilterModel('name', false, 'icon', '', 'open', 'fake-assignee');
|
taskList.taskFilter = new FilterModel('name', false, 'icon', '', 'open', 'fake-assignee');
|
||||||
|
|
||||||
@ -108,7 +118,7 @@ describe('ActivitiTaskList', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should throw an exception when the response is wrong', (done) => {
|
it('should throw an exception when the response is wrong', (done) => {
|
||||||
spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeErrorTaskPromise));
|
spyOn(taskList.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeErrorTaskPromise));
|
||||||
taskList.taskFilter = new FilterModel('name', false, 'icon', '', 'open', 'fake-assignee');
|
taskList.taskFilter = new FilterModel('name', false, 'icon', '', 'open', 'fake-assignee');
|
||||||
|
|
||||||
taskList.onError.subscribe( (err) => {
|
taskList.onError.subscribe( (err) => {
|
||||||
|
@ -19,7 +19,7 @@ import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';
|
|||||||
import { AlfrescoTranslationService, AlfrescoAuthenticationService, AlfrescoPipeTranslate } from 'ng2-alfresco-core';
|
import { AlfrescoTranslationService, AlfrescoAuthenticationService, AlfrescoPipeTranslate } from 'ng2-alfresco-core';
|
||||||
import { ALFRESCO_DATATABLE_DIRECTIVES, ObjectDataTableAdapter, DataTableAdapter, DataRowEvent } from 'ng2-alfresco-datatable';
|
import { ALFRESCO_DATATABLE_DIRECTIVES, ObjectDataTableAdapter, DataTableAdapter, DataRowEvent } from 'ng2-alfresco-datatable';
|
||||||
import { ActivitiTaskListService } from './../services/activiti-tasklist.service';
|
import { ActivitiTaskListService } from './../services/activiti-tasklist.service';
|
||||||
import { FilterModel } from '../models/filter.model';
|
import { FilterModel, FilterParamsModel } from '../models/filter.model';
|
||||||
|
|
||||||
declare let componentHandler: any;
|
declare let componentHandler: any;
|
||||||
declare let __moduleName: string;
|
declare let __moduleName: string;
|
||||||
@ -84,15 +84,22 @@ export class ActivitiTaskList implements OnInit {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (this.taskFilter) {
|
if (this.taskFilter) {
|
||||||
this.load(this.taskFilter);
|
this.load(this.taskFilter.filter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public load(filter: FilterModel) {
|
public load(filterParam: FilterParamsModel) {
|
||||||
this.activiti.getTasks(filter).subscribe(
|
this.activiti.getTotalTasks(filterParam).subscribe(
|
||||||
(res) => {
|
(res) => {
|
||||||
this.renderTasks(res.data);
|
filterParam.size = res.total;
|
||||||
this.onSuccess.emit(res);
|
this.activiti.getTasks(filterParam).subscribe(
|
||||||
|
(response) => {
|
||||||
|
this.renderTasks(response.data);
|
||||||
|
this.onSuccess.emit(response);
|
||||||
|
}, (error) => {
|
||||||
|
console.error(error);
|
||||||
|
this.onError.emit(error);
|
||||||
|
});
|
||||||
}, (err) => {
|
}, (err) => {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
this.onError.emit(err);
|
this.onError.emit(err);
|
||||||
|
@ -33,7 +33,7 @@ export class FilterModel {
|
|||||||
this.name = name;
|
this.name = name;
|
||||||
this.recent = recent;
|
this.recent = recent;
|
||||||
this.icon = icon;
|
this.icon = icon;
|
||||||
this.filter = new FilterParamsModel(query, state, assignment, appDefinitionId);
|
this.filter = new FilterParamsModel(assignment, state, query, appDefinitionId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,15 +45,25 @@ export class FilterModel {
|
|||||||
* @returns {FilterModel} .
|
* @returns {FilterModel} .
|
||||||
*/
|
*/
|
||||||
export class FilterParamsModel {
|
export class FilterParamsModel {
|
||||||
name: string;
|
|
||||||
state: string;
|
|
||||||
assignment: string;
|
|
||||||
appDefinitionId: string;
|
appDefinitionId: string;
|
||||||
|
processInstanceId: string;
|
||||||
|
processDefinitionId: string;
|
||||||
|
text: string;
|
||||||
|
assignment: string;
|
||||||
|
state: string;
|
||||||
|
sort: string;
|
||||||
|
page: number = 0;
|
||||||
|
size: number = 25;
|
||||||
|
|
||||||
constructor(query: string, state: string, assignment: string, appDefinitionId?: string) {
|
constructor(assignment: string, state: string, text: string, appDefinitionId?: string, processInstanceId?: string,
|
||||||
this.name = query;
|
processDefinitionId?: string, page?: number, size?: number) {
|
||||||
this.state = state;
|
|
||||||
this.assignment = assignment;
|
|
||||||
this.appDefinitionId = appDefinitionId;
|
this.appDefinitionId = appDefinitionId;
|
||||||
|
this.processInstanceId = processInstanceId;
|
||||||
|
this.processDefinitionId = processDefinitionId;
|
||||||
|
this.text = text;
|
||||||
|
this.assignment = assignment;
|
||||||
|
this.state = state;
|
||||||
|
this.page = page;
|
||||||
|
this.size = size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,8 +42,7 @@ describe('ActivitiTaskListService', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let fakeFilter = {
|
let fakeFilter = {
|
||||||
page: 2, filterId: 2, appDefinitionId: null,
|
sort: 'created-desc', text: '', state: 'open', assignment: 'fake-assignee'
|
||||||
filter: {sort: 'created-desc', name: '', state: 'open', assignment: 'fake-assignee'}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let fakeUser = {id: 1, email: 'fake-email@dom.com', firstName: 'firstName', lastName: 'lastName'};
|
let fakeUser = {id: 1, email: 'fake-email@dom.com', firstName: 'firstName', lastName: 'lastName'};
|
||||||
@ -130,7 +129,7 @@ describe('ActivitiTaskListService', () => {
|
|||||||
|
|
||||||
it('should return the task list filtered', (done) => {
|
it('should return the task list filtered', (done) => {
|
||||||
service.getTasks(fakeFilter).subscribe(
|
service.getTasks(fakeFilter).subscribe(
|
||||||
res => {
|
res => {
|
||||||
expect(res).toBeDefined();
|
expect(res).toBeDefined();
|
||||||
expect(res.size).toEqual(1);
|
expect(res.size).toEqual(1);
|
||||||
expect(res.total).toEqual(1);
|
expect(res.total).toEqual(1);
|
||||||
@ -302,4 +301,22 @@ describe('ActivitiTaskListService', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return the total number of tasks', (done) => {
|
||||||
|
service.getTotalTasks(fakeFilter).subscribe(
|
||||||
|
res => {
|
||||||
|
expect(res).toBeDefined();
|
||||||
|
expect(res.size).toEqual(1);
|
||||||
|
expect(res.total).toEqual(1);
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
'status': 200,
|
||||||
|
contentType: 'application/json',
|
||||||
|
responseText: JSON.stringify(fakeTaskList)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -59,11 +59,11 @@ export class ActivitiTaskListService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrive all the tasks filtered by filterModel
|
* Retrive all the tasks filtered by filterModel
|
||||||
* @param filter - FilterModel
|
* @param filter - FilterParamsModel
|
||||||
* @returns {any}
|
* @returns {any}
|
||||||
*/
|
*/
|
||||||
getTasks(filter: FilterModel): Observable<any> {
|
getTasks(filter: FilterParamsModel): Observable<any> {
|
||||||
return Observable.fromPromise(this.callApiTasksFiltered(filter.filter))
|
return Observable.fromPromise(this.callApiTasksFiltered(filter))
|
||||||
.map((res: any) => {
|
.map((res: any) => {
|
||||||
return res;
|
return res;
|
||||||
}).catch(this.handleError);
|
}).catch(this.handleError);
|
||||||
@ -156,6 +156,20 @@ export class ActivitiTaskListService {
|
|||||||
.map(res => res);
|
.map(res => res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the total number of the tasks by filter
|
||||||
|
* @param filter - FilterParamsModel
|
||||||
|
* @returns {any}
|
||||||
|
*/
|
||||||
|
public getTotalTasks(filter: FilterParamsModel): Observable<any> {
|
||||||
|
filter.size = 0;
|
||||||
|
return Observable.fromPromise(this.callApiTasksFiltered(filter))
|
||||||
|
.map((res: any) => {
|
||||||
|
return res;
|
||||||
|
}).catch(this.handleError);
|
||||||
|
}
|
||||||
|
|
||||||
private callApiTasksFiltered(filter: FilterParamsModel) {
|
private callApiTasksFiltered(filter: FilterParamsModel) {
|
||||||
return this.authService.getAlfrescoApi().activiti.taskApi.listTasks(filter);
|
return this.authService.getAlfrescoApi().activiti.taskApi.listTasks(filter);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user