Merge pull request #717 from Alfresco/dev-mvitale-673

Add first task selection on filter change
This commit is contained in:
Denys Vuika 2016-09-08 15:08:04 +01:00 committed by GitHub
commit de099e505e
4 changed files with 54 additions and 2 deletions

View File

@ -18,7 +18,8 @@
<div class="mdl-cell mdl-cell--3-col task-column mdl-shadow--2dp"> <div class="mdl-cell mdl-cell--3-col task-column mdl-shadow--2dp">
<span>Task List</span> <span>Task List</span>
<activiti-tasklist *ngIf="isTaskListSelected()" [taskFilter]="taskFilter" [schemaColumn]="taskSchemaColumns" <activiti-tasklist *ngIf="isTaskListSelected()" [taskFilter]="taskFilter" [schemaColumn]="taskSchemaColumns"
(rowClick)="onTaskRowClick($event)" #activititasklist></activiti-tasklist> (rowClick)="onTaskRowClick($event)" (onSuccess)="onSuccessTaskList($event)"
#activititasklist></activiti-tasklist>
</div> </div>
<div class="mdl-cell mdl-cell--7-col task-column mdl-shadow--2dp"> <div class="mdl-cell mdl-cell--7-col task-column mdl-shadow--2dp">
<span>Task Details</span> <span>Task Details</span>

View File

@ -85,6 +85,11 @@ export class ActivitiDemoComponent implements AfterViewChecked {
this.activititasklist.load(this.taskFilter.filter); this.activititasklist.load(this.taskFilter.filter);
} }
onSuccessTaskList(event: any) {
this.currentTaskId = this.activititasklist.getCurrentTaskId();
this.activitidetails.loadDetails(this.currentTaskId);
}
onProcessFilterClick(event: any) { onProcessFilterClick(event: any) {
this.processFilter = event.filter; this.processFilter = event.filter;
this.activitiprocesslist.load(this.processFilter); this.activitiprocesslist.load(this.processFilter);

View File

@ -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) { loadDetails(taskId: string) {
this.taskForm = null; this.taskForm = null;
this.taskPeople = []; this.taskPeople = [];
@ -142,10 +153,13 @@ export class ActivitiTaskDetails implements OnInit {
} }
); );
} else { } else {
this.taskDetails = null; this.reset();
} }
} }
/**
* Complete the activiti task
*/
onComplete() { onComplete() {
this.activitiTaskList.completeTask(this.taskId).subscribe( this.activitiTaskList.completeTask(this.taskId).subscribe(
(res) => { (res) => {
@ -154,14 +168,26 @@ export class ActivitiTaskDetails implements OnInit {
); );
} }
/**
* Emit the form saved event
* @param data
*/
formSavedEmitter(data: any) { formSavedEmitter(data: any) {
this.formSaved.emit(data); this.formSaved.emit(data);
} }
/**
* Emit the form completed event
* @param data
*/
formCompletedEmitter(data: any) { formCompletedEmitter(data: any) {
this.formCompleted.emit(data); this.formCompleted.emit(data);
} }
/**
* Emit the form loaded event
* @param data
*/
formLoadedEmitter(data: any) { formLoadedEmitter(data: any) {
this.formLoaded.emit(data); this.formLoaded.emit(data);
} }

View File

@ -95,6 +95,7 @@ export class ActivitiTaskList implements OnInit {
this.activiti.getTasks(filterParam).subscribe( this.activiti.getTasks(filterParam).subscribe(
(response) => { (response) => {
this.renderTasks(response.data); this.renderTasks(response.data);
this.selectFirstTask();
this.onSuccess.emit(response); this.onSuccess.emit(response);
}, (error) => { }, (error) => {
console.error(error); console.error(error);
@ -115,6 +116,25 @@ export class ActivitiTaskList implements OnInit {
this.tasks = new ObjectDataTableAdapter(tasks, this.data.getColumns()); 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 * Check if the tasks list is empty
* @returns {ObjectDataTableAdapter|boolean} * @returns {ObjectDataTableAdapter|boolean}