mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-4774] - fix visibility condition between checkbox fields (#4964)
* [ADF-4774] - fix visibility condition between checkbox fields * [ADF-4774] - PR changes
This commit is contained in:
committed by
Eugenio Romano
parent
8a96ed2fbe
commit
78e60a4da4
@@ -271,10 +271,10 @@ describe('WidgetVisibilityCloudService', () => {
|
|||||||
(res: TaskProcessVariableModel[]) => {
|
(res: TaskProcessVariableModel[]) => {
|
||||||
visibilityObjTest.leftValue = 'TEST_VAR_2';
|
visibilityObjTest.leftValue = 'TEST_VAR_2';
|
||||||
visibilityObjTest.leftType = WidgetTypeEnum.field;
|
visibilityObjTest.leftType = WidgetTypeEnum.field;
|
||||||
const rightValue = service.getLeftValue(formTest, visibilityObjTest);
|
const leftValue = service.getLeftValue(formTest, visibilityObjTest);
|
||||||
|
|
||||||
expect(rightValue).not.toBeNull();
|
expect(leftValue).not.toBeNull();
|
||||||
expect(rightValue).toBe('test_value_2');
|
expect(leftValue).toBe('test_value_2');
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -897,6 +897,72 @@ describe('WidgetVisibilityCloudService', () => {
|
|||||||
service.refreshEntityVisibility(contModel.field);
|
service.refreshEntityVisibility(contModel.field);
|
||||||
expect(contModel.isVisible).toBeFalsy();
|
expect(contModel.isVisible).toBeFalsy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should evaluate checkbox condition', (done) => {
|
||||||
|
visibilityObjTest.leftType = WidgetTypeEnum.field;
|
||||||
|
visibilityObjTest.leftValue = 'CheckboxOne';
|
||||||
|
visibilityObjTest.operator = '==';
|
||||||
|
visibilityObjTest.rightType = WidgetTypeEnum.field;
|
||||||
|
visibilityObjTest.rightValue = 'CheckboxTwo';
|
||||||
|
|
||||||
|
const checkboxForm = new FormModel({
|
||||||
|
id: '9999',
|
||||||
|
name: 'CHECKBOX_VISIBILITY',
|
||||||
|
processDefinitionId: 'PROCESS_TEST:9:9999',
|
||||||
|
processDefinitionName: 'PROCESS_TEST',
|
||||||
|
processDefinitionKey: 'PROCESS_TEST',
|
||||||
|
taskId: '999',
|
||||||
|
taskName: 'TEST',
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
fieldType: 'ContainerRepresentation',
|
||||||
|
id: '000000000000000000',
|
||||||
|
name: 'Label',
|
||||||
|
type: 'container',
|
||||||
|
value: null,
|
||||||
|
numberOfColumns: 2,
|
||||||
|
fields: {
|
||||||
|
1: [
|
||||||
|
{
|
||||||
|
id: 'CheckboxOne',
|
||||||
|
name: 'CheckboxOne',
|
||||||
|
type: 'boolean',
|
||||||
|
required: false,
|
||||||
|
value: false,
|
||||||
|
colspan: 1,
|
||||||
|
visibilityCondition: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'CheckboxTwo',
|
||||||
|
name: 'CheckboxTwo',
|
||||||
|
type: 'boolean',
|
||||||
|
required: false,
|
||||||
|
value: false,
|
||||||
|
colspan: 1,
|
||||||
|
visibilityCondition: null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
2: [
|
||||||
|
{
|
||||||
|
id: 'CheckboxNotReq',
|
||||||
|
name: 'CheckboxNotReq',
|
||||||
|
type: 'boolean',
|
||||||
|
required: false,
|
||||||
|
colspan: 1,
|
||||||
|
visibilityCondition: visibilityObjTest
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
service.refreshVisibility(checkboxForm);
|
||||||
|
|
||||||
|
const fieldWithVisibilityAttached = checkboxForm.getFieldById('CheckboxNotReq');
|
||||||
|
expect(fieldWithVisibilityAttached.isVisible).toBeTruthy();
|
||||||
|
done();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Visibility based on form variables', () => {
|
describe('Visibility based on form variables', () => {
|
||||||
|
@@ -271,10 +271,10 @@ describe('WidgetVisibilityService', () => {
|
|||||||
service.getTaskProcessVariable('9999').subscribe(
|
service.getTaskProcessVariable('9999').subscribe(
|
||||||
(res: TaskProcessVariableModel[]) => {
|
(res: TaskProcessVariableModel[]) => {
|
||||||
visibilityObjTest.leftRestResponseId = 'TEST_VAR_2';
|
visibilityObjTest.leftRestResponseId = 'TEST_VAR_2';
|
||||||
const rightValue = service.getLeftValue(formTest, visibilityObjTest);
|
const leftValue = service.getLeftValue(formTest, visibilityObjTest);
|
||||||
|
|
||||||
expect(rightValue).not.toBeNull();
|
expect(leftValue).not.toBeNull();
|
||||||
expect(rightValue).toBe('test_value_2');
|
expect(leftValue).toBe('test_value_2');
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@@ -93,7 +93,9 @@ export class WidgetVisibilityService {
|
|||||||
leftValue = this.getVariableValue(form, visibilityObj.leftValue, this.processVarList);
|
leftValue = this.getVariableValue(form, visibilityObj.leftValue, this.processVarList);
|
||||||
} else if (visibilityObj.leftType && visibilityObj.leftType === WidgetTypeEnum.field) {
|
} else if (visibilityObj.leftType && visibilityObj.leftType === WidgetTypeEnum.field) {
|
||||||
leftValue = this.getFormValue(form, visibilityObj.leftValue);
|
leftValue = this.getFormValue(form, visibilityObj.leftValue);
|
||||||
leftValue = leftValue ? leftValue : this.getVariableValue(form, visibilityObj.leftValue, this.processVarList);
|
if (this.isInvalidValue(leftValue)) {
|
||||||
|
leftValue = this.getVariableValue(form, visibilityObj.leftValue, this.processVarList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return leftValue;
|
return leftValue;
|
||||||
}
|
}
|
||||||
@@ -138,6 +140,10 @@ export class WidgetVisibilityService {
|
|||||||
return valueFound;
|
return valueFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private isInvalidValue(value: any): boolean {
|
||||||
|
return value === undefined || value === '';
|
||||||
|
}
|
||||||
|
|
||||||
searchValueInForm(form: FormModel, fieldId: string): string {
|
searchValueInForm(form: FormModel, fieldId: string): string {
|
||||||
let fieldValue = '';
|
let fieldValue = '';
|
||||||
form.getFormFields().forEach((formField: FormFieldModel) => {
|
form.getFormFields().forEach((formField: FormFieldModel) => {
|
||||||
|
Reference in New Issue
Block a user