diff --git a/CHANGELOG.md b/CHANGELOG.md index a2fd286dc5..ce30ef0f44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.50.7](https://github.com/dhis2/capture-app/compare/v100.50.6...v100.50.7) (2024-01-23) + + +### Bug Fixes + +* [DHIS2-15888] multi text element in program rules ([#3482](https://github.com/dhis2/capture-app/issues/3482)) ([fd0776d](https://github.com/dhis2/capture-app/commit/fd0776d2261b761c9985db3f6bfb0fda4a2ad18c)) + ## [100.50.6](https://github.com/dhis2/capture-app/compare/v100.50.5...v100.50.6) (2024-01-21) diff --git a/package.json b/package.json index bfe4c80cbf..46abe8f40f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.50.6", + "version": "100.50.7", "cacheVersion": "7", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.50.6", + "@dhis2/rules-engine-javascript": "100.50.7", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 095f43a095..1b4e0c33de 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.50.6", + "version": "100.50.7", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { diff --git a/packages/rules-engine/src/commonUtils/normalizeRuleVariable.js b/packages/rules-engine/src/commonUtils/normalizeRuleVariable.js index 34f76e1bb5..6c10602fc7 100644 --- a/packages/rules-engine/src/commonUtils/normalizeRuleVariable.js +++ b/packages/rules-engine/src/commonUtils/normalizeRuleVariable.js @@ -39,6 +39,7 @@ export const normalizeRuleVariable = (data: any, valueType: string) => { [typeKeys.AGE]: convertString, [typeKeys.TEXT]: convertString, [typeKeys.LONG_TEXT]: convertString, + [typeKeys.MULTI_TEXT]: convertString, }; if (!data && data !== 0 && data !== false) { diff --git a/packages/rules-engine/src/constants/typeKeys.const.js b/packages/rules-engine/src/constants/typeKeys.const.js index 93bec23586..9280d683dc 100644 --- a/packages/rules-engine/src/constants/typeKeys.const.js +++ b/packages/rules-engine/src/constants/typeKeys.const.js @@ -1,6 +1,7 @@ // @flow export const typeKeys = { TEXT: 'TEXT', + MULTI_TEXT: 'MULTI_TEXT', LONG_TEXT: 'LONG_TEXT', LETTER: 'LETTER', PHONE_NUMBER: 'PHONE_NUMBER', diff --git a/packages/rules-engine/src/constants/typeToInterfaceFnName.const.js b/packages/rules-engine/src/constants/typeToInterfaceFnName.const.js index e8513c6858..f1fc9af926 100644 --- a/packages/rules-engine/src/constants/typeToInterfaceFnName.const.js +++ b/packages/rules-engine/src/constants/typeToInterfaceFnName.const.js @@ -3,6 +3,7 @@ import { typeKeys } from './typeKeys.const'; export const mapTypeToInterfaceFnName = { [typeKeys.TEXT]: 'convertText', + [typeKeys.MULTI_TEXT]: 'convertMultiText', [typeKeys.LONG_TEXT]: 'convertLongText', [typeKeys.LETTER]: 'convertLetter', [typeKeys.PHONE_NUMBER]: 'convertPhoneNumber', diff --git a/packages/rules-engine/src/d2Functions/getD2Functions.js b/packages/rules-engine/src/d2Functions/getD2Functions.js index e128bd871a..459238f447 100644 --- a/packages/rules-engine/src/d2Functions/getD2Functions.js +++ b/packages/rules-engine/src/d2Functions/getD2Functions.js @@ -296,4 +296,11 @@ export const getD2Functions = ({ return params[0]; }, }, + multiTextContains: { + parameters: 2, + execute: (params: any) => { + log.warn('multiTextContains not implemented yet'); + return params[0]; + }, + }, }); diff --git a/packages/rules-engine/src/d2Functions/getD2Functions.types.js b/packages/rules-engine/src/d2Functions/getD2Functions.types.js index 237127a052..4d2403997c 100644 --- a/packages/rules-engine/src/d2Functions/getD2Functions.types.js +++ b/packages/rules-engine/src/d2Functions/getD2Functions.types.js @@ -55,4 +55,5 @@ export type D2Functions = $ReadOnly<{| lastEventDate: D2FunctionConfig, addControlDigits: D2FunctionConfig, checkControlDigits: D2FunctionConfig, + multiTextContains: D2FunctionConfig, |}>; diff --git a/packages/rules-engine/src/helpers/OptionSetHelper.js b/packages/rules-engine/src/helpers/OptionSetHelper.js index 36cf148175..b84720da43 100644 --- a/packages/rules-engine/src/helpers/OptionSetHelper.js +++ b/packages/rules-engine/src/helpers/OptionSetHelper.js @@ -1,6 +1,19 @@ +// @flow +import { typeKeys } from '../constants'; +import type { Option } from '../services/VariableService'; + export class OptionSetHelper { - static getName(options, key) { + static getName(options: Array