mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-851] execute-outcome event for form service (#1989)
* execute-outcome event for form service * readme updates
This commit is contained in:
committed by
Eugenio Romano
parent
b7ab008081
commit
201741aeee
@@ -314,6 +314,7 @@ class MyComponent {
|
||||
| taskCompletedError | FormErrorEvent | Raised when a task is completed unsuccessfully |
|
||||
| taskSaved | FormEvent | Raised when a task is saved successfully |
|
||||
| taskSavedError | FormErrorEvent | Raised when a task is saved unsuccessfully |
|
||||
| executeOutcome | FormOutcomeEvent | Raised when a form outcome is executed |
|
||||
|
||||
### Methods
|
||||
|
||||
|
@@ -800,4 +800,18 @@ describe('ActivitiForm', () => {
|
||||
expect(formComponent.isOutcomeButtonEnabled(outcome)).toBeFalsy();
|
||||
});
|
||||
|
||||
it('should raise [executeOutcome] event for formService', (done) => {
|
||||
formService.executeOutcome.subscribe(() => {
|
||||
done();
|
||||
});
|
||||
|
||||
let outcome = new FormOutcomeModel(new FormModel(), {
|
||||
id: ActivitiForm.CUSTOM_OUTCOME_ID,
|
||||
name: 'Custom'
|
||||
});
|
||||
|
||||
formComponent.form = new FormModel();
|
||||
formComponent.onOutcomeClicked(outcome);
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -211,9 +211,7 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
|
||||
onOutcomeClicked(outcome: FormOutcomeModel): boolean {
|
||||
if (!this.readOnly && outcome && this.form) {
|
||||
|
||||
let args = new FormOutcomeEvent(outcome);
|
||||
this.executeOutcome.emit(args);
|
||||
if (args.defaultPrevented) {
|
||||
if (!this.onExecuteOutcome(outcome)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -491,4 +489,20 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
|
||||
this.handleError(error);
|
||||
this.formService.taskCompletedError.next(new FormErrorEvent(form, error));
|
||||
}
|
||||
|
||||
protected onExecuteOutcome(outcome: FormOutcomeModel): boolean {
|
||||
let args = new FormOutcomeEvent(outcome);
|
||||
|
||||
this.formService.executeOutcome.next(args);
|
||||
if (args.defaultPrevented) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.executeOutcome.emit(args);
|
||||
if (args.defaultPrevented) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -18,7 +18,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Observable, Subject } from 'rxjs/Rx';
|
||||
import { AlfrescoApiService, LogService } from 'ng2-alfresco-core';
|
||||
import { FormValues } from './../components/widgets/core/index';
|
||||
import { FormValues, FormOutcomeEvent } from './../components/widgets/core/index';
|
||||
import { FormDefinitionModel } from '../models/form-definition.model';
|
||||
import { EcmModelService } from './ecm-model.service';
|
||||
import { GroupModel } from './../components/widgets/core/group.model';
|
||||
@@ -40,6 +40,8 @@ export class FormService {
|
||||
taskSavedError: Subject<FormErrorEvent> = new Subject<FormErrorEvent>();
|
||||
formContentClicked: Subject<ContentLinkModel> = new Subject<ContentLinkModel>();
|
||||
|
||||
executeOutcome: Subject<FormOutcomeEvent> = new Subject<FormOutcomeEvent>();
|
||||
|
||||
constructor(private ecmModelService: EcmModelService,
|
||||
private apiService: AlfrescoApiService,
|
||||
private logService: LogService) {
|
||||
|
Reference in New Issue
Block a user