mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-4524] Checkbox widget is not displayed on a form on APS1 when having some visibility conditions on it (#4838)
* fix visibbility conditions form * fix visibbility conditions form
This commit is contained in:
@@ -52,7 +52,7 @@ export class WidgetVisibilityService {
|
||||
}
|
||||
|
||||
evaluateVisibility(form: FormModel, visibilityObj: WidgetVisibilityModel): boolean {
|
||||
const isLeftFieldPresent = visibilityObj && ( visibilityObj.leftFormFieldId || visibilityObj.leftRestResponseId );
|
||||
const isLeftFieldPresent = visibilityObj && (visibilityObj.leftFormFieldId || visibilityObj.leftRestResponseId);
|
||||
if (!isLeftFieldPresent || isLeftFieldPresent === 'null') {
|
||||
return true;
|
||||
} else {
|
||||
@@ -60,19 +60,28 @@ export class WidgetVisibilityService {
|
||||
}
|
||||
}
|
||||
|
||||
isFieldVisible(form: FormModel, visibilityObj: WidgetVisibilityModel): boolean {
|
||||
isFieldVisible(form: FormModel, visibilityObj: WidgetVisibilityModel, accumulator: any[] = [], result: boolean = false): boolean {
|
||||
const leftValue = this.getLeftValue(form, visibilityObj);
|
||||
const rightValue = this.getRightValue(form, visibilityObj);
|
||||
const actualResult = this.evaluateCondition(leftValue, rightValue, visibilityObj.operator);
|
||||
|
||||
accumulator.push({ value: actualResult, operator: visibilityObj.nextConditionOperator });
|
||||
if (visibilityObj.nextCondition) {
|
||||
return this.evaluateLogicalOperation(
|
||||
visibilityObj.nextConditionOperator,
|
||||
actualResult,
|
||||
this.isFieldVisible(form, visibilityObj.nextCondition)
|
||||
);
|
||||
result = this.isFieldVisible(form, visibilityObj.nextCondition, accumulator);
|
||||
} else {
|
||||
return actualResult;
|
||||
result = accumulator[0].value;
|
||||
|
||||
for (let i = 1; i < accumulator.length; i++) {
|
||||
result = this.evaluateLogicalOperation(
|
||||
accumulator[i - 1].operator,
|
||||
result,
|
||||
accumulator[i].value
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
getLeftValue(form: FormModel, visibilityObj: WidgetVisibilityModel): string {
|
||||
|
Reference in New Issue
Block a user