[AAE-612] Support for Form Outcome Visibility Conditions (#5934)

This commit is contained in:
davidcanonieto
2020-07-30 17:05:10 +01:00
committed by GitHub
parent 0afbe36787
commit 1e692252a5
8 changed files with 101 additions and 12 deletions

View File

@@ -20,7 +20,7 @@ import { LogService } from '../../services/log.service';
import { Injectable } from '@angular/core';
import moment from 'moment-es6';
import { Observable, from, throwError } from 'rxjs';
import { FormFieldModel, FormModel, TabModel, ContainerModel } from '../components/widgets/core/index';
import { FormFieldModel, FormModel, TabModel, ContainerModel, FormOutcomeModel } from '../components/widgets/core/index';
import { TaskProcessVariableModel } from '../models/task-process-variable.model';
import { WidgetVisibilityModel, WidgetTypeEnum } from '../models/widget-visibility.model';
import { map, catchError } from 'rxjs/operators';
@@ -43,6 +43,10 @@ export class WidgetVisibilityService {
form.tabs.map((tabModel) => this.refreshEntityVisibility(tabModel));
}
if (form && form.outcomes && form.outcomes.length > 0) {
form.outcomes.map((outcomeModel) => this.refreshOutcomeVisibility(outcomeModel));
}
if (form) {
form.getFormFields().map((field) => this.refreshEntityVisibility(field));
}
@@ -53,6 +57,10 @@ export class WidgetVisibilityService {
element.isVisible = visible && this.isParentTabVisible(this.form, element);
}
refreshOutcomeVisibility(element: FormOutcomeModel) {
element.isVisible = this.evaluateVisibility(element.form, element.visibilityCondition);
}
evaluateVisibility(form: FormModel, visibilityObj: WidgetVisibilityModel): boolean {
const isLeftFieldPresent = visibilityObj && (visibilityObj.leftType || visibilityObj.leftValue);
if (!isLeftFieldPresent || isLeftFieldPresent === 'null') {