diff --git a/src/openforms/js/components/admin/form_design/registrations/objectsapi/ObjectsApiOptionsFormFields.js b/src/openforms/js/components/admin/form_design/registrations/objectsapi/ObjectsApiOptionsFormFields.js
index e80cb04c91..96b3d2af7e 100644
--- a/src/openforms/js/components/admin/form_design/registrations/objectsapi/ObjectsApiOptionsFormFields.js
+++ b/src/openforms/js/components/admin/form_design/registrations/objectsapi/ObjectsApiOptionsFormFields.js
@@ -43,6 +43,7 @@ const ObjectsApiOptionsFormFields = ({index, name, schema, formData, onChange})
draft.version = realVersion;
if (realVersion === 2) {
draft.variablesMapping = [];
+ draft.geometryVariableKey = '';
} else {
delete draft.variablesMapping;
}
diff --git a/src/openforms/js/components/admin/form_design/registrations/objectsapi/ObjectsApiVariableConfigurationEditor.js b/src/openforms/js/components/admin/form_design/registrations/objectsapi/ObjectsApiVariableConfigurationEditor.js
index 7042ee1b1b..1a9206990f 100644
--- a/src/openforms/js/components/admin/form_design/registrations/objectsapi/ObjectsApiVariableConfigurationEditor.js
+++ b/src/openforms/js/components/admin/form_design/registrations/objectsapi/ObjectsApiVariableConfigurationEditor.js
@@ -10,7 +10,7 @@ import {REGISTRATION_OBJECTS_TARGET_PATHS} from 'components/admin/form_design/co
import Field from 'components/admin/forms/Field';
import Fieldset from 'components/admin/forms/Fieldset';
import FormRow from 'components/admin/forms/FormRow';
-import {TextInput} from 'components/admin/forms/Inputs';
+import {Checkbox, TextInput} from 'components/admin/forms/Inputs';
import Select, {LOADING_OPTION} from 'components/admin/forms/Select';
import ErrorMessage from 'components/errors/ErrorMessage';
import {post} from 'utils/fetch';
@@ -25,6 +25,7 @@ import {asJsonSchema} from './utils';
* objecttype: string;
* objecttypeVersion: number;
* variablesMapping: {variableKey: string, targetPath: string[]}[];
+ * geometryVariableKey: string;
* }} ObjectsAPIRegistrationBackendOptions
*
* @param {Object} p
@@ -35,10 +36,11 @@ const ObjectsApiVariableConfigurationEditor = ({variable}) => {
const {csrftoken} = useContext(APIContext);
const [jsonSchemaVisible, toggleJsonSchemaVisible] = useToggle(false);
- const {values: backendOptions, getFieldProps} = useFormikContext();
+ const {values: backendOptions, getFieldProps, setFieldValue} = useFormikContext();
/** @type {ObjectsAPIRegistrationBackendOptions} */
- const {objecttype, objecttypeVersion, variablesMapping, version} = backendOptions;
+ const {objecttype, objecttypeVersion, geometryVariableKey, variablesMapping, version} =
+ backendOptions;
if (version !== 2) throw new Error('Not supported, must be config version 2.');
// get the index of our variable in the mapping, if it exists
@@ -110,6 +112,32 @@ const ObjectsApiVariableConfigurationEditor = ({variable}) => {
/>
+
+
+ }
+ helpText={
+ record.geometry}}
+ />
+ }
+ name="geometryVariableKey"
+ disabled={!!mappedVariable.targetPath}
+ >
+ {
+ const newValue = event.target.checked ? variable.key : undefined;
+ setFieldValue('geometryVariableKey', newValue);
+ }}
+ />
+
+
{
description="'JSON Schema target' label"
/>
}
+ disabled={!!geometryVariableKey}
>