diff --git a/src/api/dimensions.js b/src/api/dimensions.js index 5fdc8f1ff..a294df6cc 100644 --- a/src/api/dimensions.js +++ b/src/api/dimensions.js @@ -46,8 +46,10 @@ const recommendedDimensionsQuery = { export const dataItemsQuery = { resource: 'dataItems', - params: ({ nameProp, filter, searchTerm, page }) => { - let fields = `id,${nameProp}~rename(name),dimensionItemType,expression,optionSetId` + params: ({ nameProp, filter, searchTerm, page, supportsOptionSetId }) => { + let fields = `id,${nameProp}~rename(name),dimensionItemType,expression${ + supportsOptionSetId ? ',optionSetId' : '' + }` const filters = [] // TODO: Extract all of this logic out of the query? @@ -289,6 +291,7 @@ export const apiFetchOptions = ({ filter, searchTerm, page, + supportsOptionSetId, }) => { switch (filter?.dataType) { case DIMENSION_TYPE_INDICATOR: { @@ -335,6 +338,7 @@ export const apiFetchOptions = ({ filter, searchTerm, page, + supportsOptionSetId, }) } } @@ -433,6 +437,7 @@ const fetchDataItems = async ({ filter, searchTerm, page, + supportsOptionSetId, }) => { const dataItemsData = await dataEngine.query( { dataItems: dataItemsQuery }, @@ -442,6 +447,7 @@ const fetchDataItems = async ({ filter, searchTerm, page, + supportsOptionSetId, }, onError, } diff --git a/src/components/DataDimension/DataDimension.js b/src/components/DataDimension/DataDimension.js index c7b38d011..106162e73 100644 --- a/src/components/DataDimension/DataDimension.js +++ b/src/components/DataDimension/DataDimension.js @@ -56,6 +56,7 @@ const DataDimension = ({ const supportsEDI = dataTypes .map(({ id }) => id) .includes(DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM) + const supportsOptionSetId = serverVersion.minor >= 42 const [currentCalculation, setCurrentCalculation] = useState() const [currentDataItem, setCurrentDataItem] = useState() @@ -126,6 +127,7 @@ const DataDimension = ({ dataTypes={dataTypes} itemsRef={itemsRef} supportsEDI={supportsEDI} + supportsOptionSetId={supportsOptionSetId} onEDISave={onCalculationSave} isOptionViewMode={Boolean(currentDataItem)} currentCalculation={currentCalculation} diff --git a/src/components/DataDimension/ItemSelector/ItemSelector.js b/src/components/DataDimension/ItemSelector/ItemSelector.js index a4bbb0c74..226cb0fa0 100644 --- a/src/components/DataDimension/ItemSelector/ItemSelector.js +++ b/src/components/DataDimension/ItemSelector/ItemSelector.js @@ -136,6 +136,7 @@ const ItemSelector = ({ onEditClick, isOptionViewMode, supportsEDI, + supportsOptionSetId, height = TRANSFER_HEIGHT, heightCalculation, maxSelections, @@ -176,6 +177,7 @@ const ItemSelector = ({ page, filter: state.filter, searchTerm: state.searchTerm, + supportsOptionSetId, }) const newOptions = [] result.dimensionItems?.forEach((item) => { @@ -492,6 +494,7 @@ ItemSelector.propTypes = { setCurrentCalculation: PropTypes.func, setInfoDataItem: PropTypes.func, supportsEDI: PropTypes.bool, + supportsOptionSetId: PropTypes.bool, onEDISave: PropTypes.func, onEditClick: PropTypes.func, }