diff --git a/src/openforms/js/compiled-lang/en.json b/src/openforms/js/compiled-lang/en.json index f0f116a9aa..56c6b49f27 100644 --- a/src/openforms/js/compiled-lang/en.json +++ b/src/openforms/js/compiled-lang/en.json @@ -2517,6 +2517,12 @@ "value": "Add variable" } ], + "LbiXCA": [ + { + "type": 0, + "value": "Something went wrong while retrieving the available products defined in the selected case. Please check that the services in the selected API group are configured correctly." + } + ], "LeVpdf": [ { "type": 0, @@ -5337,12 +5343,6 @@ "value": "Add item" } ], - "ln2iyc": [ - { - "type": 0, - "value": "Something went wrong while retrieving the available catalogues or products defined in the selected case. Please check that the services in the selected API group are configured correctly." - } - ], "ln72CJ": [ { "type": 0, diff --git a/src/openforms/js/compiled-lang/nl.json b/src/openforms/js/compiled-lang/nl.json index 6e50fb8430..5adf4e2df3 100644 --- a/src/openforms/js/compiled-lang/nl.json +++ b/src/openforms/js/compiled-lang/nl.json @@ -2538,6 +2538,12 @@ "value": "Variabele toevoegen" } ], + "LbiXCA": [ + { + "type": 0, + "value": "Er ging iets fout bij het ophalen van de beschikbare producten binnen het geselecteerde zaaktype. Controleer of de services in de geselecteerde API-groep goed ingesteld zijn." + } + ], "LeVpdf": [ { "type": 0, @@ -5109,12 +5115,6 @@ "value": "optie 2: € 15,99" } ], - "jtWzSW": [ - { - "type": 0, - "value": "optie 2: € 15,99" - } - ], "jy1jTd": [ { "offset": 0, @@ -5365,12 +5365,6 @@ "value": "Item toevoegen" } ], - "ln2iyc": [ - { - "type": 0, - "value": "Er ging iets fout bij het ophalen van de beschikbare catalogi of geselecteerde zaak producten. Controleer of de services in de geselecteerde API-groep goed ingesteld zijn." - } - ], "ln72CJ": [ { "type": 0, diff --git a/src/openforms/js/components/admin/form_design/registrations/zgw/BasicOptionsFieldset.js b/src/openforms/js/components/admin/form_design/registrations/zgw/BasicOptionsFieldset.js index 3744042439..fe15b86074 100644 --- a/src/openforms/js/components/admin/form_design/registrations/zgw/BasicOptionsFieldset.js +++ b/src/openforms/js/components/admin/form_design/registrations/zgw/BasicOptionsFieldset.js @@ -1,19 +1,23 @@ import {useFormikContext} from 'formik'; import PropTypes from 'prop-types'; -import {FormattedMessage, useIntl} from 'react-intl'; -import {useAsync, usePrevious, useUpdateEffect} from 'react-use'; +import {FormattedMessage} from 'react-intl'; import useConfirm from 'components/admin/form_design/useConfirm'; import Fieldset from 'components/admin/forms/Fieldset'; -import {getCatalogueOption} from 'components/admin/forms/zgw'; +import {CatalogueSelectOptions} from 'components/admin/forms/zgw'; import ErrorBoundary from 'components/errors/ErrorBoundary'; import {CaseTypeSelect, CatalogueSelect, DocumentTypeSelect, ZGWAPIGroup} from './fields'; -import {getCatalogues} from './utils'; // Components -const BasicOptionsFieldset = ({apiGroupChoices}) => { +const BasicOptionsFieldset = ({ + apiGroupChoices, + loadingCatalogues, + catalogueOptionGroups = [], + cataloguesError = undefined, + catalogueUrl = '', +}) => { const { values: { caseTypeIdentification, @@ -61,7 +65,10 @@ const BasicOptionsFieldset = ({apiGroupChoices}) => { /> } > - + + + + { - const { - values: { - zgwApiGroup = null, - catalogue = undefined, - caseTypeIdentification = '', - documentTypeDescription = '', - productUrl = '', - }, - setFieldValue, - } = useFormikContext(); - - const previousCatalogue = usePrevious(catalogue); - const previousCaseTypeIdentification = usePrevious(caseTypeIdentification); - - // fetch available catalogues and re-use the result - const { - loading: loadingCatalogues, - value: catalogueOptionGroups = [], - error: cataloguesError, - } = useAsync(async () => { - if (!zgwApiGroup) return []; - return await getCatalogues(zgwApiGroup); - }, [zgwApiGroup]); - if (cataloguesError) throw cataloguesError; - - const catalogueValue = getCatalogueOption(catalogueOptionGroups, catalogue || {}); - const catalogueUrl = catalogueValue?.url; - - // Synchronize dependent fields when dependencies change. - // 1. Clear case type when catalogue changes. - useUpdateEffect(() => { - const catalogueChanged = catalogue !== previousCatalogue; - if (previousCatalogue && catalogueChanged && caseTypeIdentification) { - setFieldValue('caseTypeIdentification', ''); - } - }, [setFieldValue, previousCatalogue, catalogue, caseTypeIdentification]); - - // 2. Clear document type when case type changes - useUpdateEffect(() => { - const caseTypeChanged = caseTypeIdentification !== previousCaseTypeIdentification; - if (previousCaseTypeIdentification && caseTypeChanged && documentTypeDescription) { - setFieldValue('documentTypeDescription', ''); - } - }, [ - setFieldValue, - previousCaseTypeIdentification, - caseTypeIdentification, - documentTypeDescription, - ]); - - // 3. Clear selected product when case type changes - useUpdateEffect(() => { - const caseTypeChanged = caseTypeIdentification !== previousCaseTypeIdentification; - if (previousCaseTypeIdentification && caseTypeChanged && productUrl) { - setFieldValue('productUrl', ''); - } - }, [setFieldValue, previousCaseTypeIdentification, caseTypeIdentification, productUrl]); +/** + * Component that only throws an error if it's not undefined, intended to trigger a + * parent error boundary. + */ +const MaybeThrowError = ({error = undefined}) => { + if (error) throw error; + return null; +}; - return ( - <> - - - - - ); +MaybeThrowError.propTypes = { + error: PropTypes.any, }; export default BasicOptionsFieldset; diff --git a/src/openforms/js/components/admin/form_design/registrations/zgw/LegacyOptionsFieldset.js b/src/openforms/js/components/admin/form_design/registrations/zgw/LegacyOptionsFieldset.js new file mode 100644 index 0000000000..62d818e748 --- /dev/null +++ b/src/openforms/js/components/admin/form_design/registrations/zgw/LegacyOptionsFieldset.js @@ -0,0 +1,35 @@ +import {FormattedMessage} from 'react-intl'; + +import Fieldset from 'components/admin/forms/Fieldset'; + +import {LegacyCaseType, LegacyDocumentType} from './fields'; + +/** + * @deprecated + */ +const LegacyOptionsFieldset = () => ( +
+ } + fieldNames={['zaaktype', 'informatieobjecttype']} + collapsible + > +
+ +
+ + +
+); + +export default LegacyOptionsFieldset; diff --git a/src/openforms/js/components/admin/form_design/registrations/zgw/ObjectsAPIOptionsFieldset.js b/src/openforms/js/components/admin/form_design/registrations/zgw/ObjectsAPIOptionsFieldset.js new file mode 100644 index 0000000000..0ffab53287 --- /dev/null +++ b/src/openforms/js/components/admin/form_design/registrations/zgw/ObjectsAPIOptionsFieldset.js @@ -0,0 +1,62 @@ +import {useFormikContext} from 'formik'; +import PropTypes from 'prop-types'; +import {FormattedMessage} from 'react-intl'; + +import {ContentJSON} from 'components/admin/form_design/registrations/objectsapi/LegacyConfigFields'; +import Fieldset from 'components/admin/forms/Fieldset'; +import {ObjectsAPIGroup} from 'components/admin/forms/objects_api'; + +import {ObjectType, ObjectTypeVersion} from './fields'; + +/** + * Callback to invoke when the API group changes - used to reset the dependent fields. + */ +const onApiGroupChange = prevValues => ({ + ...prevValues, + objecttype: '', + objecttypeVersion: undefined, +}); + +/** + * Configuration fields related to the Objects API (template based) integration. + */ +const ObjectsAPIOptionsFieldset = ({objectsApiGroupChoices}) => { + const { + values: {objecttype = ''}, + } = useFormikContext(); + return ( +
+ } + collapsible + fieldNames={['objecttype', 'objecttypeVersion', 'contentJson']} + > + + + + +
+ ); +}; + +ObjectsAPIOptionsFieldset.propTypes = { + objectsApiGroupChoices: PropTypes.arrayOf( + PropTypes.arrayOf( + PropTypes.oneOfType([ + PropTypes.number, // value + PropTypes.string, // label + ]) + ) + ), +}; + +export default ObjectsAPIOptionsFieldset; diff --git a/src/openforms/js/components/admin/form_design/registrations/zgw/OptionalOptionsFieldset.js b/src/openforms/js/components/admin/form_design/registrations/zgw/OptionalOptionsFieldset.js index 708d541ae5..156cd40ecd 100644 --- a/src/openforms/js/components/admin/form_design/registrations/zgw/OptionalOptionsFieldset.js +++ b/src/openforms/js/components/admin/form_design/registrations/zgw/OptionalOptionsFieldset.js @@ -1,16 +1,12 @@ -import {useFormikContext} from 'formik'; import PropTypes from 'prop-types'; import {FormattedMessage} from 'react-intl'; -import {useAsync} from 'react-use'; import Fieldset from 'components/admin/forms/Fieldset'; -import {getCatalogueOption} from 'components/admin/forms/zgw'; import ErrorBoundary from 'components/errors/ErrorBoundary'; import {ConfidentialityLevel, MedewerkerRoltype, OrganisationRSIN, ProductSelect} from './fields'; -import {getCatalogues} from './utils'; -const OptionalOptionsFieldset = ({confidentialityLevelChoices}) => { +const OptionalOptionsFieldset = ({confidentialityLevelChoices, catalogueUrl}) => { return (
{ } > - +
); }; -const CatalogiApiField = () => { - const { - values: {zgwApiGroup = null, catalogue = undefined}, - } = useFormikContext(); - - // fetch available catalogues and re-use the result - const {value: catalogueOptionGroups = [], error: cataloguesError} = useAsync(async () => { - if (!zgwApiGroup) return []; - return await getCatalogues(zgwApiGroup); - }, [zgwApiGroup]); - if (cataloguesError) throw cataloguesError; - - const catalogueValue = getCatalogueOption(catalogueOptionGroups, catalogue || {}); - const catalogueUrl = catalogueValue?.url; - return ; -}; - OptionalOptionsFieldset.propTypes = { confidentialityLevelChoices: PropTypes.arrayOf( PropTypes.arrayOf(PropTypes.string) // value & label are both string ).isRequired, + catalogueUrl: PropTypes.string, }; export default OptionalOptionsFieldset; diff --git a/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsForm.js b/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsForm.js index 4657d9c4b4..f035023a79 100644 --- a/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsForm.js +++ b/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsForm.js @@ -3,7 +3,11 @@ import React, {useContext} from 'react'; import {FormattedMessage} from 'react-intl'; import ModalOptionsConfiguration from 'components/admin/forms/ModalOptionsConfiguration'; -import {ValidationErrorContext, filterErrors} from 'components/admin/forms/ValidationErrors'; +import { + ValidationErrorContext, + ValidationErrorsProvider, + filterErrors, +} from 'components/admin/forms/ValidationErrors'; import {getChoicesFromSchema} from 'utils/json-schema'; import ZGWFormFields from './ZGWOptionsFormFields'; @@ -22,14 +26,14 @@ const ZGWOptionsForm = ({name, label, schema, formData, onChange}) => { zaakVertrouwelijkheidaanduiding.enumNames ); - const numErrors = filterErrors(name, validationErrors).length; const defaultGroup = apiGroupChoices.length === 1 ? apiGroupChoices[0][0] : undefined; + const relevantErrors = filterErrors(name, validationErrors); return ( { }} onSubmit={values => onChange({formData: values})} > - + + + ); }; diff --git a/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsFormFields.js b/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsFormFields.js index c43929489a..67911e76e7 100644 --- a/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsFormFields.js +++ b/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsFormFields.js @@ -5,28 +5,14 @@ import {FormattedMessage} from 'react-intl'; import {TabList, TabPanel, Tabs} from 'react-tabs'; import Tab from 'components/admin/form_design/Tab'; -import {ContentJSON} from 'components/admin/form_design/registrations/objectsapi/LegacyConfigFields'; -import Fieldset from 'components/admin/forms/Fieldset'; -import { - ValidationErrorContext, - ValidationErrorsProvider, - filterErrors, -} from 'components/admin/forms/ValidationErrors'; -import {ObjectsAPIGroup} from 'components/admin/forms/objects_api'; +import {ValidationErrorContext, filterErrors} from 'components/admin/forms/ValidationErrors'; import BasicOptionsFieldset from './BasicOptionsFieldset'; +import LegacyOptionsFieldset from './LegacyOptionsFieldset'; import ManageVariableToPropertyMappings from './ManageVariableToPropertyMappings'; +import ObjectsAPIOptionsFieldset from './ObjectsAPIOptionsFieldset'; import OptionalOptionsFieldset from './OptionalOptionsFieldset'; -import {LegacyCaseType, LegacyDocumentType, ObjectType, ObjectTypeVersion} from './fields'; - -/** - * Callback to invoke when the API group changes - used to reset the dependent fields. - */ -const onApiGroupChange = prevValues => ({ - ...prevValues, - objecttype: '', - objecttypeVersion: undefined, -}); +import useCatalogueOptions from './useCatalogueOptions'; const ZGWFormFields = ({ name, @@ -35,93 +21,59 @@ const ZGWFormFields = ({ confidentialityLevelChoices, }) => { const { - values: {propertyMappings = [], objecttype = ''}, + values: {propertyMappings = []}, } = useFormikContext(); const validationErrors = useContext(ValidationErrorContext); - const relevantErrors = filterErrors(name, validationErrors); + + // load the available catalogues + const {loadingCatalogues, catalogueOptionGroups, cataloguesError, catalogueUrl} = + useCatalogueOptions(); const numCasePropertyErrors = filterErrors(`${name}.propertyMappings`, validationErrors).length; - const numBaseErrors = relevantErrors.length - numCasePropertyErrors; + const numBaseErrors = validationErrors.length - numCasePropertyErrors; return ( - - - - 0}> - - - 0}> - - - - - {/* Base configuration */} - - - - {/* @deprecated */} -
- } - fieldNames={['zaaktype', 'informatieobjecttype']} - collapsible - > -
- -
- - -
- - + + + 0}> + + + 0}> + + + -
- } - collapsible - fieldNames={['objecttype', 'objecttypeVersion', 'contentJson']} - > - - - - -
-
+ {/* Base configuration */} + + + + + + - {/* zaakeigenschappen / case properties */} - - - -
-
+ {/* zaakeigenschappen / case properties */} + + + + ); }; diff --git a/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsFormFields.stories.js b/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsFormFields.stories.js index 3707b86e93..9ff47e8d1c 100644 --- a/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsFormFields.stories.js +++ b/src/openforms/js/components/admin/form_design/registrations/zgw/ZGWOptionsFormFields.stories.js @@ -9,7 +9,13 @@ import { import {rsSelect} from 'utils/storybookTestHelpers'; import ZGWFormFields from './ZGWOptionsFormFields'; -import {mockCaseTypesGet, mockCataloguesGet, mockDocumenTypesGet, mockProductsGet} from './mocks'; +import { + mockCaseTypesGet, + mockCataloguesGet, + mockCataloguesGetError, + mockDocumenTypesGet, + mockProductsGet, +} from './mocks'; const NAME = 'form.registrationBackends.0.options'; @@ -54,7 +60,12 @@ export default { }, parameters: { msw: { - handlers: [mockCataloguesGet(), mockCaseTypesGet(), mockDocumenTypesGet(), mockProductsGet()], + handlers: { + catalogues: [mockCataloguesGet()], + caseTypes: [mockCaseTypesGet()], + documentTypes: [mockDocumenTypesGet()], + products: [mockProductsGet()], + }, }, }, }; @@ -132,3 +143,20 @@ export const SelectCaseTypeAndDocumentType = { await rsSelect(documentTypeSelect, 'Attachment'); }, }; + +export const CataloguesLoadingFails = { + args: { + formData: { + zgwApiGroup: 1, + zaaktype: '', + propertyMappings: [], + }, + }, + parameters: { + msw: { + handlers: { + catalogues: [mockCataloguesGetError()], + }, + }, + }, +}; diff --git a/src/openforms/js/components/admin/form_design/registrations/zgw/mocks.js b/src/openforms/js/components/admin/form_design/registrations/zgw/mocks.js index 605ee97ec8..72b5d26331 100644 --- a/src/openforms/js/components/admin/form_design/registrations/zgw/mocks.js +++ b/src/openforms/js/components/admin/form_design/registrations/zgw/mocks.js @@ -29,6 +29,11 @@ export const mockCataloguesGet = () => HttpResponse.json(CATALOGUES) ); +export const mockCataloguesGetError = () => + http.get(`${API_BASE_URL}/api/v2/registration/plugins/zgw-api/catalogues`, () => + HttpResponse.json({unexpected: 'error'}, {status: 500}) + ); + const CASE_TYPES = { 'https://example.com/catalogi/api/v1/catalogussen/1': [ { @@ -143,14 +148,14 @@ export const mockDocumenTypesGet = () => const PRODUCTS = [ { - uri: 'https://example.com/product/1234', + url: 'https://example.com/product/1234', }, { - uri: 'https://example.com/product/4321', + url: 'https://example.com/product/4321', description: undefined, }, { - uri: 'https://example.com/product/1423', + url: 'https://example.com/product/1423', description: 'Product 1423', }, ]; diff --git a/src/openforms/js/components/admin/form_design/registrations/zgw/useCatalogueOptions.js b/src/openforms/js/components/admin/form_design/registrations/zgw/useCatalogueOptions.js new file mode 100644 index 0000000000..e19e271f60 --- /dev/null +++ b/src/openforms/js/components/admin/form_design/registrations/zgw/useCatalogueOptions.js @@ -0,0 +1,90 @@ +import {useFormikContext} from 'formik'; +import {useAsync, usePrevious, useUpdateEffect} from 'react-use'; + +import {getCatalogueOption} from 'components/admin/forms/zgw'; + +import {getCatalogues} from './utils'; + +/** + * Hook that manages everything related to the ZGW API group available catalogues. + * + * It's responsible for retrieving the options and the derived catalogueUrl if a + * catalogue is selected. It also takes care of resetting dependent form state if the + * catalogue changes. + */ +const useCatalogueOptions = () => { + const { + values: { + zgwApiGroup = null, + catalogue = undefined, + caseTypeIdentification = '', + documentTypeDescription = '', + medewerkerRoltype = '', + productUrl = '', + }, + setFieldValue, + } = useFormikContext(); + + const previousCatalogue = usePrevious(catalogue); + const previousCaseTypeIdentification = usePrevious(caseTypeIdentification); + + // fetch available catalogues and re-use the result + const { + loading: loadingCatalogues, + value: catalogueOptionGroups = [], + error: cataloguesError, + } = useAsync(async () => { + if (!zgwApiGroup) return []; + return await getCatalogues(zgwApiGroup); + }, [zgwApiGroup]); + + const catalogueValue = getCatalogueOption(catalogueOptionGroups, catalogue || {}); + const catalogueUrl = catalogueValue?.url; + + // Synchronize dependent fields when dependencies change. + // 1. Clear case type when catalogue changes. + useUpdateEffect(() => { + const catalogueChanged = catalogue !== previousCatalogue; + if (previousCatalogue && catalogueChanged && caseTypeIdentification) { + setFieldValue('caseTypeIdentification', ''); + } + }, [setFieldValue, previousCatalogue, catalogue, caseTypeIdentification]); + + // 2. Clear document type when case type changes + useUpdateEffect(() => { + const caseTypeChanged = caseTypeIdentification !== previousCaseTypeIdentification; + if (previousCaseTypeIdentification && caseTypeChanged && documentTypeDescription) { + setFieldValue('documentTypeDescription', ''); + } + }, [ + setFieldValue, + previousCaseTypeIdentification, + caseTypeIdentification, + documentTypeDescription, + ]); + + // 3. Clear selected product when case type changes + useUpdateEffect(() => { + const caseTypeChanged = caseTypeIdentification !== previousCaseTypeIdentification; + if (previousCaseTypeIdentification && caseTypeChanged && productUrl) { + setFieldValue('productUrl', ''); + } + }, [setFieldValue, previousCaseTypeIdentification, caseTypeIdentification, productUrl]); + + // 4. Clear medewerker roltype when case type changes + useUpdateEffect(() => { + const caseTypeChanged = caseTypeIdentification !== previousCaseTypeIdentification; + if (previousCaseTypeIdentification && caseTypeChanged && medewerkerRoltype) { + setFieldValue('medewerkerRoltype', ''); + } + }, [setFieldValue, previousCaseTypeIdentification, caseTypeIdentification, medewerkerRoltype]); + + return { + loadingCatalogues, + catalogueOptionGroups, + cataloguesError, + catalogueUrl, + }; +}; + +export default useCatalogueOptions; diff --git a/src/openforms/js/components/admin/forms/zgw/CatalogueSelect.js b/src/openforms/js/components/admin/forms/zgw/CatalogueSelect.js index ff74f63ec8..f811ea7a44 100644 --- a/src/openforms/js/components/admin/forms/zgw/CatalogueSelect.js +++ b/src/openforms/js/components/admin/forms/zgw/CatalogueSelect.js @@ -78,22 +78,24 @@ const CatalogueSelect = ({label, isDisabled = false, loading, optionGroups}) => ); }; +export const CatalogueSelectOptions = PropTypes.arrayOf( + PropTypes.shape({ + label: PropTypes.string.isRequired, + options: PropTypes.arrayOf( + PropTypes.shape({ + rsin: PropTypes.string.isRequired, + domain: PropTypes.string.isRequired, + label: PropTypes.string.isRequired, + }) + ).isRequired, + }) +); + CatalogueSelect.propTypes = { label: PropTypes.node.isRequired, isDisabled: PropTypes.bool, loading: PropTypes.bool.isRequired, - optionGroups: PropTypes.arrayOf( - PropTypes.shape({ - label: PropTypes.string.isRequired, - options: PropTypes.arrayOf( - PropTypes.shape({ - rsin: PropTypes.string.isRequired, - domain: PropTypes.string.isRequired, - label: PropTypes.string.isRequired, - }) - ).isRequired, - }) - ), + optionGroups: CatalogueSelectOptions, }; export default CatalogueSelect; diff --git a/src/openforms/js/components/admin/forms/zgw/index.js b/src/openforms/js/components/admin/forms/zgw/index.js index a227a42ef0..e771ba7cf5 100644 --- a/src/openforms/js/components/admin/forms/zgw/index.js +++ b/src/openforms/js/components/admin/forms/zgw/index.js @@ -3,6 +3,7 @@ */ export { default as CatalogueSelect, + CatalogueSelectOptions, extractValue as getCatalogueOption, groupAndSortOptions as groupAndSortCatalogueOptions, } from './CatalogueSelect'; diff --git a/src/openforms/js/lang/en.json b/src/openforms/js/lang/en.json index 0c535db7ce..e4b6a7dbf7 100644 --- a/src/openforms/js/lang/en.json +++ b/src/openforms/js/lang/en.json @@ -1214,6 +1214,11 @@ "description": "Add process variable button", "originalDefault": "Add variable" }, + "LbiXCA": { + "defaultMessage": "Something went wrong while retrieving the available products defined in the selected case. Please check that the services in the selected API group are configured correctly.", + "description": "ZGW APIs registrations options: case product error", + "originalDefault": "Something went wrong while retrieving the available products defined in the selected case. Please check that the services in the selected API group are configured correctly." + }, "LeVpdf": { "defaultMessage": "Plugin configuration: Email", "description": "Email registration options modal title", @@ -2494,11 +2499,6 @@ "description": "Add item to multi-input field", "originalDefault": "Add item" }, - "ln2iyc": { - "defaultMessage": "Something went wrong while retrieving the available catalogues or products defined in the selected case. Please check that the services in the selected API group are configured correctly.", - "description": "ZGW APIs registrations options: case product error", - "originalDefault": "Something went wrong while retrieving the available catalogues or products defined in the selected case. Please check that the services in the selected API group are configured correctly." - }, "ln72CJ": { "defaultMessage": "URL to the object type in the objecttypes API. If provided, an object will be created and a case object relation will be added to the case.", "description": "ZGW APIs registration options 'objecttype' help text", diff --git a/src/openforms/js/lang/nl.json b/src/openforms/js/lang/nl.json index d078487879..763208f174 100644 --- a/src/openforms/js/lang/nl.json +++ b/src/openforms/js/lang/nl.json @@ -1223,6 +1223,11 @@ "description": "Add process variable button", "originalDefault": "Add variable" }, + "LbiXCA": { + "defaultMessage": "Er ging iets fout bij het ophalen van de beschikbare producten binnen het geselecteerde zaaktype. Controleer of de services in de geselecteerde API-groep goed ingesteld zijn.", + "description": "ZGW APIs registrations options: case product error", + "originalDefault": "Something went wrong while retrieving the available products defined in the selected case. Please check that the services in the selected API group are configured correctly." + }, "LeVpdf": { "defaultMessage": "Plugin-insellingen: e-mail", "description": "Email registration options modal title", @@ -2515,11 +2520,6 @@ "description": "Add item to multi-input field", "originalDefault": "Add item" }, - "ln2iyc": { - "defaultMessage": "Er ging iets fout bij het ophalen van de beschikbare catalogi of geselecteerde zaak producten. Controleer of de services in de geselecteerde API-groep goed ingesteld zijn.", - "description": "ZGW APIs registrations options: case product error", - "originalDefault": "Something went wrong while retrieving the available catalogues or products defined in the selected case. Please check that the services in the selected API group are configured correctly." - }, "ln72CJ": { "defaultMessage": "Objecttyperesource-URL in de Objecttypen-API. Wanneer dit ingesteld is, dan wordt een object van dit type aangemaakt en aan de zaak gerelateerd.", "description": "ZGW APIs registration options 'objecttype' help text",