Merge pull request #714 from Alfresco/dev-mromano-713

onError event for form component
This commit is contained in:
Denys Vuika
2016-09-08 10:38:37 +01:00
committed by GitHub
5 changed files with 53 additions and 9 deletions

View File

@@ -153,6 +153,7 @@ The recommended set of properties can be found in the following table:
| formSaved | Invoked when form is submitted with `Save` or custom outcomes. | | formSaved | Invoked when form is submitted with `Save` or custom outcomes. |
| formCompleted | Invoked when form is submitted with `Complete` outcome. | | formCompleted | Invoked when form is submitted with `Complete` outcome. |
| executeOutcome | Invoked when any outcome is executed, default behaviour can be prevented via `event.preventDefault()` | | executeOutcome | Invoked when any outcome is executed, default behaviour can be prevented via `event.preventDefault()` |
| onError | Invoked at any error |
All `form*` events receive an instance of the `FormModel` as event argument for ease of development: All `form*` events receive an instance of the `FormModel` as event argument for ease of development:

View File

@@ -147,6 +147,9 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
@Output() @Output()
executeOutcome: EventEmitter<FormOutcomeEvent> = new EventEmitter<FormOutcomeEvent>(); executeOutcome: EventEmitter<FormOutcomeEvent> = new EventEmitter<FormOutcomeEvent>();
@Output()
onError: EventEmitter<any> = new EventEmitter<any>();
form: FormModel; form: FormModel;
debugMode: boolean = false; debugMode: boolean = false;
@@ -301,7 +304,9 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
this.form = new FormModel(form, data, this.readOnly); this.form = new FormModel(form, data, this.readOnly);
this.formLoaded.emit(this.form); this.formLoaded.emit(this.form);
}, },
this.handleError (error) => {
this.handleError(error);
}
); );
} }
@@ -314,7 +319,9 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
this.form = this.parseForm(form); this.form = this.parseForm(form);
this.formLoaded.emit(this.form); this.formLoaded.emit(this.form);
}, },
this.handleError (error) => {
this.handleError(error);
}
); );
} }
@@ -329,10 +336,14 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
this.form = this.parseForm(form); this.form = this.parseForm(form);
this.formLoaded.emit(this.form); this.formLoaded.emit(this.form);
}, },
this.handleError (error) => {
this.handleError(error);
}
); );
}, },
this.handleError (error) => {
this.handleError(error);
}
); );
} }
@@ -345,7 +356,9 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
this.formSaved.emit(this.form); this.formSaved.emit(this.form);
this.storeFormAsMetadata(); this.storeFormAsMetadata();
}, },
this.handleError (error) => {
this.handleError(error);
}
); );
} }
} }
@@ -359,13 +372,16 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
this.formCompleted.emit(this.form); this.formCompleted.emit(this.form);
this.storeFormAsMetadata(); this.storeFormAsMetadata();
}, },
this.handleError (error) => {
this.handleError(error);
}
); );
} }
} }
handleError(err: any): any { handleError(err: any): any {
console.log(err); console.log(err);
this.onError.emit(err);
} }
parseForm(json: any): FormModel { parseForm(json: any): FormModel {
@@ -415,7 +431,9 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
this.loadFormFromFormId(form.id); this.loadFormFromFormId(form.id);
} }
}, },
this.handleError (error) => {
this.handleError(error);
}
); );
} }
@@ -428,7 +446,10 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
if (this.saveMetadata) { if (this.saveMetadata) {
this.ecmModelService.createEcmTypeForActivitiForm(this.formName, this.form).subscribe(type => { this.ecmModelService.createEcmTypeForActivitiForm(this.formName, this.form).subscribe(type => {
this.nodeService.createNodeMetadata(type.nodeType || type.entry.prefixedName, EcmModelService.MODEL_NAMESPACE, this.form.values, this.path, this.nameNode); this.nodeService.createNodeMetadata(type.nodeType || type.entry.prefixedName, EcmModelService.MODEL_NAMESPACE, this.form.values, this.path, this.nameNode);
}, this.handleError },
(error) => {
this.handleError(error);
}
); );
} }
} }

View File

@@ -96,7 +96,13 @@ The component shows the details of the task id passed in input
``` ```
#### Events #### Events
No events | Name | Description |
| --- | --- |
| formLoaded | Invoked when form is loaded or reloaded. |
| formSaved | Invoked when form is submitted with `Save` or custom outcomes. |
| formCompleted | Invoked when form is submitted with `Complete` outcome. |
| executeOutcome | Invoked when any outcome is executed, default behaviour can be prevented via `event.preventDefault()` |
| onError | Invoked at any error |
#### Options #### Options

View File

@@ -30,6 +30,8 @@
(formSaved)='formSavedEmitter($event)' (formSaved)='formSavedEmitter($event)'
(formCompleted)='formCompletedEmitter($event)' (formCompleted)='formCompletedEmitter($event)'
(formLoaded)='formLoadedEmitter($event)' (formLoaded)='formLoadedEmitter($event)'
(onError)='onErrorEmitter($event)'
(executeOutcome)='executeOutcomeEmitter($event)'
#activitiForm> #activitiForm>
</activiti-form> </activiti-form>

View File

@@ -75,6 +75,12 @@ export class ActivitiTaskDetails implements OnInit {
@Output() @Output()
formLoaded = new EventEmitter(); formLoaded = new EventEmitter();
@Output()
onError = new EventEmitter();
@Output()
executeOutcome = new EventEmitter();
taskDetails: TaskDetailsModel; taskDetails: TaskDetailsModel;
taskForm: FormModel; taskForm: FormModel;
@@ -159,4 +165,12 @@ export class ActivitiTaskDetails implements OnInit {
formLoadedEmitter(data: any) { formLoadedEmitter(data: any) {
this.formLoaded.emit(data); this.formLoaded.emit(data);
} }
onErrorEmitter(err: any) {
this.onError.emit(err);
}
executeOutcomeEmitter(data: any) {
this.executeOutcome.emit(data);
}
} }