From dc0ea9d828fce3888208e619eb355cb184dccb57 Mon Sep 17 00:00:00 2001 From: mauriziovitale84 Date: Thu, 8 Sep 2016 13:31:44 +0100 Subject: [PATCH] Add first task selection on filter change --- .../activiti/activiti-demo.component.html | 3 +- .../activiti/activiti-demo.component.ts | 5 ++++ .../activiti-task-details.component.ts | 28 ++++++++++++++++++- .../components/activiti-tasklist.component.ts | 20 +++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/demo-shell-ng2/app/components/activiti/activiti-demo.component.html b/demo-shell-ng2/app/components/activiti/activiti-demo.component.html index 1292a0a30f..67af66d70b 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.html +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.html @@ -18,7 +18,8 @@
Task List + (rowClick)="onTaskRowClick($event)" (onSuccess)="onSuccessTaskList($event)" + #activititasklist>
Task Details 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 bbf1446184..82430d2b98 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts @@ -85,6 +85,11 @@ export class ActivitiDemoComponent implements AfterViewChecked { this.activititasklist.load(this.taskFilter.filter); } + onSuccessTaskList(event: any) { + this.currentTaskId = this.activititasklist.getCurrentTaskId(); + this.activitidetails.loadDetails(this.currentTaskId); + } + onProcessFilterClick(event: any) { this.processFilter = event.filter; this.activitiprocesslist.load(this.processFilter); 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 cfee98b438..f02bb586f4 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 @@ -110,6 +110,17 @@ export class ActivitiTaskDetails implements OnInit { } } + /** + * Reset the task detail to undefined + */ + reset() { + this.taskDetails = null; + } + + /** + * Load the activiti task details + * @param taskId + */ loadDetails(taskId: string) { this.taskForm = null; this.taskPeople = []; @@ -142,10 +153,13 @@ export class ActivitiTaskDetails implements OnInit { } ); } else { - this.taskDetails = null; + this.reset(); } } + /** + * Complete the activiti task + */ onComplete() { this.activitiTaskList.completeTask(this.taskId).subscribe( (res) => { @@ -154,14 +168,26 @@ export class ActivitiTaskDetails implements OnInit { ); } + /** + * Emit the form saved event + * @param data + */ formSavedEmitter(data: any) { this.formSaved.emit(data); } + /** + * Emit the form completed event + * @param data + */ formCompletedEmitter(data: any) { this.formCompleted.emit(data); } + /** + * Emit the form loaded event + * @param data + */ formLoadedEmitter(data: any) { this.formLoaded.emit(data); } 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 cee3700c62..19d3d7acde 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 @@ -95,6 +95,7 @@ export class ActivitiTaskList implements OnInit { this.activiti.getTasks(filterParam).subscribe( (response) => { this.renderTasks(response.data); + this.selectFirstTask(); this.onSuccess.emit(response); }, (error) => { console.error(error); @@ -115,6 +116,25 @@ export class ActivitiTaskList implements OnInit { this.tasks = new ObjectDataTableAdapter(tasks, this.data.getColumns()); } + /** + * Select the first task of a tasklist if present + */ + private selectFirstTask() { + if (!this.isTaskListEmpty()) { + this.currentTaskId = this.tasks.getRows()[0].getValue('id'); + } else { + this.currentTaskId = null; + } + } + + /** + * Return the current task + * @returns {string} + */ + getCurrentTaskId(): string { + return this.currentTaskId; + } + /** * Check if the tasks list is empty * @returns {ObjectDataTableAdapter|boolean}