diff --git a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts index 66b05625f9..bbf1446184 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts @@ -82,7 +82,7 @@ export class ActivitiDemoComponent implements AfterViewChecked { onTaskFilterClick(event: any) { this.taskFilter = event; - this.activititasklist.load(this.taskFilter); + this.activititasklist.load(this.taskFilter.filter); } onProcessFilterClick(event: any) { 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 848c215aa3..cee3700c62 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 @@ -19,7 +19,7 @@ import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core'; import { AlfrescoTranslationService, AlfrescoAuthenticationService, AlfrescoPipeTranslate } from 'ng2-alfresco-core'; import { ALFRESCO_DATATABLE_DIRECTIVES, ObjectDataTableAdapter, DataTableAdapter, DataRowEvent } from 'ng2-alfresco-datatable'; 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 __moduleName: string; @@ -84,15 +84,22 @@ export class ActivitiTaskList implements OnInit { ); if (this.taskFilter) { - this.load(this.taskFilter); + this.load(this.taskFilter.filter); } } - public load(filter: FilterModel) { - this.activiti.getTasks(filter).subscribe( + public load(filterParam: FilterParamsModel) { + this.activiti.getTotalTasks(filterParam).subscribe( (res) => { - this.renderTasks(res.data); - this.onSuccess.emit(res); + filterParam.size = res.total; + this.activiti.getTasks(filterParam).subscribe( + (response) => { + this.renderTasks(response.data); + this.onSuccess.emit(response); + }, (error) => { + console.error(error); + this.onError.emit(error); + }); }, (err) => { console.error(err); this.onError.emit(err); diff --git a/ng2-components/ng2-activiti-tasklist/src/models/filter.model.ts b/ng2-components/ng2-activiti-tasklist/src/models/filter.model.ts index 22acd2523b..846559408e 100644 --- a/ng2-components/ng2-activiti-tasklist/src/models/filter.model.ts +++ b/ng2-components/ng2-activiti-tasklist/src/models/filter.model.ts @@ -33,7 +33,7 @@ export class FilterModel { this.name = name; this.recent = recent; 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} . */ export class FilterParamsModel { - name: string; - state: string; - assignment: 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) { - this.name = query; - this.state = state; - this.assignment = assignment; + constructor(assignment: string, state: string, text: string, appDefinitionId?: string, processInstanceId?: string, + processDefinitionId?: string, page?: number, size?: number) { this.appDefinitionId = appDefinitionId; + this.processInstanceId = processInstanceId; + this.processDefinitionId = processDefinitionId; + this.text = text; + this.assignment = assignment; + this.state = state; + this.page = page; + this.size = size; } } 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 5b9fb5afb0..94625760fb 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 @@ -59,11 +59,11 @@ export class ActivitiTaskListService { /** * Retrive all the tasks filtered by filterModel - * @param filter - FilterModel + * @param filter - FilterParamsModel * @returns {any} */ - getTasks(filter: FilterModel): Observable { - return Observable.fromPromise(this.callApiTasksFiltered(filter.filter)) + getTasks(filter: FilterParamsModel): Observable { + return Observable.fromPromise(this.callApiTasksFiltered(filter)) .map((res: any) => { return res; }).catch(this.handleError); @@ -156,6 +156,20 @@ export class ActivitiTaskListService { .map(res => res); } + + /** + * Return the total number of the tasks by filter + * @param filter - FilterParamsModel + * @returns {any} + */ + public getTotalTasks(filter: FilterParamsModel): Observable { + filter.size = 0; + return Observable.fromPromise(this.callApiTasksFiltered(filter)) + .map((res: any) => { + return res; + }).catch(this.handleError); + } + private callApiTasksFiltered(filter: FilterParamsModel) { return this.authService.getAlfrescoApi().activiti.taskApi.listTasks(filter); }