From 7d068a2bf8223498fa05633180a1117ad005e36f Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Thu, 21 Jul 2016 20:08:58 +0100 Subject: [PATCH] #440 ability to 'complete' task forms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - show ‘complete’ button when no custom outcomes present - save and complete task form --- .../src/components/activiti-form.component.ts | 21 ++++++++++++++++++- .../src/components/widgets/widget.model.ts | 9 +++++--- .../src/services/form.service.ts | 10 +++++++++ 3 files changed, 36 insertions(+), 4 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 544f8e6687..41f142a8d2 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 @@ -81,8 +81,14 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges { if (outcome.id === '$save') { return this.saveTaskForm(); } + + if (outcome.id === '$complete') { + return this.completeTaskForm(); + } + + } else { + alert(`Outcome clicked: ${outcome.name}`); } - alert(`Outcome clicked: ${outcome.name}`); } } @@ -108,4 +114,17 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges { ); } + private completeTaskForm() { + let form = { + values: this.form.values + }; + this.formService.completeTaskForm(this.form.taskId, form).subscribe( + (response) => { + console.log(response); + alert('Saved'); + }, + (err) => window.alert(err) + ); + } + } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/widget.model.ts b/ng2-components/ng2-activiti-form/src/components/widgets/widget.model.ts index f718f37eb6..9b97b64d44 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/widget.model.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/widget.model.ts @@ -281,10 +281,13 @@ export class FormModel { let saveOutcome = new FormOutcomeModel(this, { id: '$save', name: 'Save' }); saveOutcome.isSystem = true; - let systemOutcomes = [saveOutcome]; + let completeOutcome = new FormOutcomeModel(this, { id: '$complete', name: 'Complete' }); + completeOutcome.isSystem = true; - this.outcomes = systemOutcomes.concat( - (json.outcomes || []).map(obj => new FormOutcomeModel(this, obj)) + let customOutcomes = (json.outcomes || []).map(obj => new FormOutcomeModel(this, obj)); + + this.outcomes = [saveOutcome].concat( + customOutcomes.length > 0 ? customOutcomes : [completeOutcome] ); } } 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 ee1bb9377e..4d6c8b8c19 100644 --- a/ng2-components/ng2-activiti-form/src/services/form.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/form.service.ts @@ -58,6 +58,16 @@ export class FormService { .catch(this.handleError); } + completeTaskForm(id: string, form: { values: { [key: string]: any }}): Observable { + let url = `${this.basePath}/api/enterprise/task-forms/${id}`; + let body = JSON.stringify(form); + let options = this.getRequestOptions(); + + return this.http + .post(url, body, options) + .catch(this.handleError); + } + getTaskForm(id: string): Observable { let url = `${this.basePath}/api/enterprise/task-forms/${id}`; let options = this.getRequestOptions();