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}