Add new activiti api tasklist

This commit is contained in:
mauriziovitale84
2016-07-14 17:49:30 +01:00
parent 336e1c9d38
commit b0a9494096
3 changed files with 84 additions and 10 deletions

View File

@@ -17,7 +17,7 @@
import { Component, OnInit } from '@angular/core';
import { ActivitiTaskList } from 'ng2-alfresco-activiti-tasklist';
import { DataColumn, ObjectDataTableAdapter, ObjectDataColumn } from 'ng2-alfresco-datatable';
import { ObjectDataTableAdapter, ObjectDataColumn } from 'ng2-alfresco-datatable';
@Component({
selector: 'tasks-demo',

View File

@@ -29,7 +29,7 @@ declare let __moduleName: string;
moduleId: __moduleName,
templateUrl: './activiti-tasklist.component.html',
directives: [ALFRESCO_DATATABLE_DIRECTIVES],
providers: [ ActivitiTaskListService ]
providers: [ActivitiTaskListService]
})
export class ActivitiTaskList {
@@ -39,6 +39,9 @@ export class ActivitiTaskList {
@Input()
data: DataTableAdapter;
@Input()
assignment: string;
/**
* Constructor
* @param auth
@@ -51,11 +54,19 @@ export class ActivitiTaskList {
translate.addTranslationFolder('node_modules/ng2-alfresco-activiti-tasklist');
if (auth.isLoggedIn('BPM')) {
activiti.getTasks().subscribe((res) => {
activiti.getTaskListFilters().subscribe((resFilter) => {
let tasksListFilter = resFilter.data || [];
if (tasksListFilter.length === 0) {
activiti.createMyTaskFilter().subscribe(() => {
console.log('Default filters created');
});
activiti.getTasks(this.assignment).subscribe((res) => {
let tasks = res.data || [];
console.log(tasks);
this.loadTasks(tasks);
});
}
});
} else {
console.error('User unauthorized');
}

View File

@@ -24,23 +24,86 @@ export class ActivitiTaskListService {
constructor(private http: Http) {}
getTaskListFilters() {
let url = 'http://localhost:9999/activiti-app/app/rest/filters/tasks';
let headers = new Headers({
'Content-Type': 'application/json',
'Cache-Control': 'no-cache'
});
let options = new RequestOptions({ headers: headers });
return this.http
.get(url, options)
.map((res: Response) => res.json())
.catch(this.handleError);
}
createMyTaskFilter() {
let data = JSON.stringify({
'name': 'My Tasks',
'index': 1,
'icon': 'glyphicon-inbox',
'filter': {
'name': '',
'sort': 'created-desc',
'state': 'open',
'assignment': 'assignee'
},
'appId': null
});
return this.callApiCreateFilter(data);
}
/**
* Retrive all the tasks created in activiti
* @returns {any}
*/
getTasks(): Observable<any> {
// emulate filter value
getTasks(assignment: string = 'assignee'): Observable<any> {
let data = JSON.stringify({
'page': 0,
'filterId': 1,
'filter': {
'name': '',
'sort': 'created-desc',
'state': 'open',
'assignment': assignment
},
'appDefinitionId': null
});
return this.callApiFilterTasks(data);
}
getInvolvedTasks(): Observable<any> {
let data = JSON.stringify({
'page': 0,
'filterId': 3,
'filter': {
'sort': 'created-desc',
'name': '',
'sort': 'created-desc',
'state': 'open',
'assignment': 'involved'
},
'appDefinitionId': null
});
return this.callApiFilterTasks(data);
}
private callApiCreateFilter(data: Object): Observable<any> {
let url = 'http://localhost:9999/activiti-app/app/rest/filters/tasks';
let headers = new Headers({
'Content-Type': 'application/json',
'Cache-Control': 'no-cache'
});
let options = new RequestOptions({ headers: headers });
return this.http
.post(url, data, options)
.map((res: Response) => res.json())
.catch(this.handleError);
}
private callApiFilterTasks(data: Object): Observable<any> {
let url = 'http://localhost:9999/activiti-app/app/rest/filter/tasks';
let headers = new Headers({