From 4ef4782a6ece2365b7a819bcff56747f8a9a724a Mon Sep 17 00:00:00 2001 From: Mario Romano Date: Fri, 11 Nov 2016 15:47:53 +0000 Subject: [PATCH] #1058 fix start process dialog --- .../src/components/activiti-form.component.ts | 29 +++++++++++++++ .../src/services/form.service.ts | 12 +++++++ ...viti-process-instance-tasks.component.html | 36 +++++++++---------- ...tiviti-process-instance-tasks.component.ts | 26 +++++++++++--- 4 files changed, 79 insertions(+), 24 deletions(-) diff --git a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts index e25ee1e82c..7303d583f8 100644 --- a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts +++ b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts @@ -84,6 +84,9 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges { static COMPLETE_OUTCOME_ID: string = '$complete'; static CUSTOM_OUTCOME_ID: string = '$custom'; + @Input() + processId: string; + @Input() taskId: string; @@ -193,6 +196,11 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges { } ngOnInit() { + if (this.processId) { + this.loadStartForm(this.processId); + return; + } + if (this.nodeId) { this.loadFormForEcmNode(); } else { @@ -222,6 +230,12 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges { this.getFormDefinitionByFormName(formName.currentValue); return; } + + let processId = changes['processId']; + if (processId && processId.currentValue) { + this.loadStartForm(processId.currentValue); + return; + } } /** @@ -316,6 +330,21 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges { ); } + loadStartForm(processId: string) { + this.formService + .getStartFormInstance(processId) + .subscribe( + form => { + this.formName = form.name; + this.form = this.parseForm(form); + this.formLoaded.emit(this.form); + }, + (error) => { + this.handleError(error); + } + ); + } + getFormDefinitionByFormId(formId: string) { this.formService .getFormDefinitionById(formId) diff --git a/ng2-components/ng2-activiti-form/src/services/form.service.ts b/ng2-components/ng2-activiti-form/src/services/form.service.ts index a36ad0d368..5370353656 100644 --- a/ng2-components/ng2-activiti-form/src/services/form.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/form.service.ts @@ -206,6 +206,18 @@ export class FormService { .catch(this.handleError); } + /** + * Get start form instance for a given processId + * @param processId Process definition ID + * @returns {Observable} + */ + getStartFormInstance(processId: string): Observable { + return Observable.fromPromise( + this.apiService.getInstance().activiti.processApi.getProcessInstanceStartForm(processId)) + .map(this.toJson) + .catch(this.handleError); + } + /** * Get start form definition for a given process * @param processId Process definition ID diff --git a/ng2-components/ng2-activiti-processlist/src/components/activiti-process-instance-tasks.component.html b/ng2-components/ng2-activiti-processlist/src/components/activiti-process-instance-tasks.component.html index a588ed6571..143dff4835 100644 --- a/ng2-components/ng2-activiti-processlist/src/components/activiti-process-instance-tasks.component.html +++ b/ng2-components/ng2-activiti-processlist/src/components/activiti-process-instance-tasks.component.html @@ -32,34 +32,18 @@ {{ 'DETAILS.LABELS.START_FORM'|translate }} - @@ -89,6 +73,18 @@
- + +
+ + + +

{{ 'DETAILS.LABELS.START_FORM'|translate }}

+
+ + +
+
+
diff --git a/ng2-components/ng2-activiti-processlist/src/components/activiti-process-instance-tasks.component.ts b/ng2-components/ng2-activiti-processlist/src/components/activiti-process-instance-tasks.component.ts index bcb62e4fa2..1951162193 100644 --- a/ng2-components/ng2-activiti-processlist/src/components/activiti-process-instance-tasks.component.ts +++ b/ng2-components/ng2-activiti-processlist/src/components/activiti-process-instance-tasks.component.ts @@ -55,9 +55,14 @@ export class ActivitiProcessInstanceTasks implements OnInit { selectedTaskId: string; + processId: string; + @ViewChild('dialog') dialog: any; + @ViewChild('startDialog') + startDialog: any; + @ViewChild('taskdetails') taskdetails: any; @@ -67,8 +72,8 @@ export class ActivitiProcessInstanceTasks implements OnInit { translate.addTranslationFolder('node_modules/ng2-activiti-processlist/src'); } - this.task$ = new Observable(observer => this.taskObserver = observer).share(); - this.completedTask$ = new Observable(observer => this.completedTaskObserver = observer).share(); + this.task$ = new Observable(observer => this.taskObserver = observer).share(); + this.completedTask$ = new Observable(observer => this.completedTaskObserver = observer).share(); } ngOnInit() { @@ -149,14 +154,27 @@ export class ActivitiProcessInstanceTasks implements OnInit { this.showDialog(); } + public clickStartTask() { + this.processId = this.processInstanceDetails.id; + this.showStartDialog(); + } + + public showStartDialog() { + if (this.startDialog) { + this.startDialog.nativeElement.showModal(); + } + } + public showDialog() { if (this.dialog) { this.dialog.nativeElement.showModal(); } } - public cancelDialog() { - this.closeDialog(); + public closeSartDialog() { + if (this.startDialog) { + this.startDialog.nativeElement.close(); + } } private closeDialog() {