@strapi/content-manager 0.0.0-next.76f429d63541aef387ea84c657c9345fe2e62d8d → 0.0.0-next.7899d7020477ed75611335b08da36306d04789a2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/ConfigurationForm/Fields.js +300 -204
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.mjs +304 -209
- package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
- package/dist/admin/components/LeftMenu.js +34 -30
- package/dist/admin/components/LeftMenu.js.map +1 -1
- package/dist/admin/components/LeftMenu.mjs +36 -32
- package/dist/admin/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/components/Widgets.js +253 -0
- package/dist/admin/components/Widgets.js.map +1 -1
- package/dist/admin/components/Widgets.mjs +236 -3
- package/dist/admin/components/Widgets.mjs.map +1 -1
- package/dist/admin/history/components/VersionContent.js +24 -3
- package/dist/admin/history/components/VersionContent.js.map +1 -1
- package/dist/admin/history/components/VersionContent.mjs +25 -4
- package/dist/admin/history/components/VersionContent.mjs.map +1 -1
- package/dist/admin/history/components/VersionHeader.js +6 -0
- package/dist/admin/history/components/VersionHeader.js.map +1 -1
- package/dist/admin/history/components/VersionHeader.mjs +7 -1
- package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentActions.js +12 -4
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +12 -4
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentContext.js.map +1 -1
- package/dist/admin/hooks/useDocumentContext.mjs.map +1 -1
- package/dist/admin/index.js +23 -5
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +22 -3
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +99 -75
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +101 -77
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +289 -91
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +293 -95
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +15 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +16 -3
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +18 -5
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +20 -7
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +129 -55
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +129 -55
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +120 -32
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +124 -36
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.js +4 -2
- package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +4 -2
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +47 -27
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +47 -27
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +103 -0
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.mjs +103 -1
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +227 -132
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +229 -134
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +1 -0
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.mjs +1 -0
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.js +13 -3
- package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
- package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
- package/dist/admin/services/api.js +3 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs +3 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/services/documents.js +32 -16
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +32 -16
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/services/homepage.js +19 -6
- package/dist/admin/services/homepage.js.map +1 -1
- package/dist/admin/services/homepage.mjs +19 -7
- package/dist/admin/services/homepage.mjs.map +1 -1
- package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
- package/dist/admin/src/components/Widgets.d.ts +2 -1
- package/dist/admin/src/exports.d.ts +1 -0
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
- package/dist/admin/src/hooks/useDocumentContext.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +26 -5
- package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -8
- package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +23 -17
- package/dist/admin/src/services/homepage.d.ts +6 -2
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/src/utils/validation.d.ts +1 -0
- package/dist/admin/translations/en.json.js +5 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +5 -1
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +5 -2
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +5 -2
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +10 -2
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +10 -2
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/admin/translations/ru.json.js +235 -226
- package/dist/admin/translations/ru.json.js.map +1 -1
- package/dist/admin/translations/ru.json.mjs +230 -226
- package/dist/admin/translations/ru.json.mjs.map +1 -1
- package/dist/admin/utils/validation.js +17 -6
- package/dist/admin/utils/validation.js.map +1 -1
- package/dist/admin/utils/validation.mjs +17 -6
- package/dist/admin/utils/validation.mjs.map +1 -1
- package/dist/server/controllers/content-types.js +11 -1
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/content-types.mjs +11 -1
- package/dist/server/controllers/content-types.mjs.map +1 -1
- package/dist/server/controllers/index.js +3 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs +3 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/relations.js +2 -2
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +2 -2
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/validation/index.js +14 -2
- package/dist/server/controllers/validation/index.js.map +1 -1
- package/dist/server/controllers/validation/index.mjs +14 -2
- package/dist/server/controllers/validation/index.mjs.map +1 -1
- package/dist/server/history/services/lifecycles.js +3 -0
- package/dist/server/history/services/lifecycles.js.map +1 -1
- package/dist/server/history/services/lifecycles.mjs +3 -0
- package/dist/server/history/services/lifecycles.mjs.map +1 -1
- package/dist/server/homepage/controllers/homepage.js +62 -0
- package/dist/server/homepage/controllers/homepage.js.map +1 -0
- package/dist/server/homepage/controllers/homepage.mjs +41 -0
- package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
- package/dist/server/homepage/controllers/index.js +10 -0
- package/dist/server/homepage/controllers/index.js.map +1 -0
- package/dist/server/homepage/controllers/index.mjs +8 -0
- package/dist/server/homepage/controllers/index.mjs.map +1 -0
- package/dist/server/homepage/index.js +14 -0
- package/dist/server/homepage/index.js.map +1 -0
- package/dist/server/homepage/index.mjs +12 -0
- package/dist/server/homepage/index.mjs.map +1 -0
- package/dist/server/homepage/routes/homepage.js +36 -0
- package/dist/server/homepage/routes/homepage.js.map +1 -0
- package/dist/server/homepage/routes/homepage.mjs +34 -0
- package/dist/server/homepage/routes/homepage.mjs.map +1 -0
- package/dist/server/homepage/routes/index.js +13 -0
- package/dist/server/homepage/routes/index.js.map +1 -0
- package/dist/server/homepage/routes/index.mjs +11 -0
- package/dist/server/homepage/routes/index.mjs.map +1 -0
- package/dist/server/homepage/services/homepage.js +197 -0
- package/dist/server/homepage/services/homepage.js.map +1 -0
- package/dist/server/homepage/services/homepage.mjs +195 -0
- package/dist/server/homepage/services/homepage.mjs.map +1 -0
- package/dist/server/homepage/services/index.js +10 -0
- package/dist/server/homepage/services/index.js.map +1 -0
- package/dist/server/homepage/services/index.mjs +8 -0
- package/dist/server/homepage/services/index.mjs.map +1 -0
- package/dist/server/preview/services/preview.js +0 -1
- package/dist/server/preview/services/preview.js.map +1 -1
- package/dist/server/preview/services/preview.mjs +0 -1
- package/dist/server/preview/services/preview.mjs.map +1 -1
- package/dist/server/routes/index.js +3 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs +3 -1
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/data-mapper.js +4 -1
- package/dist/server/services/data-mapper.js.map +1 -1
- package/dist/server/services/data-mapper.mjs +4 -1
- package/dist/server/services/data-mapper.mjs.map +1 -1
- package/dist/server/services/document-manager.js +8 -1
- package/dist/server/services/document-manager.js.map +1 -1
- package/dist/server/services/document-manager.mjs +8 -1
- package/dist/server/services/document-manager.mjs.map +1 -1
- package/dist/server/services/document-metadata.js +3 -1
- package/dist/server/services/document-metadata.js.map +1 -1
- package/dist/server/services/document-metadata.mjs +3 -1
- package/dist/server/services/document-metadata.mjs.map +1 -1
- package/dist/server/services/index.js +3 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +3 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/utils/configuration/attributes.js +1 -1
- package/dist/server/services/utils/configuration/attributes.js.map +1 -1
- package/dist/server/services/utils/configuration/attributes.mjs +1 -1
- package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
- package/dist/server/services/utils/configuration/layouts.js +1 -1
- package/dist/server/services/utils/configuration/layouts.js.map +1 -1
- package/dist/server/services/utils/configuration/layouts.mjs +1 -1
- package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
- package/dist/server/services/utils/configuration/metadatas.js +8 -0
- package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
- package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
- package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
- package/dist/server/services/utils/populate.js +11 -0
- package/dist/server/services/utils/populate.js.map +1 -1
- package/dist/server/services/utils/populate.mjs +11 -0
- package/dist/server/services/utils/populate.mjs.map +1 -1
- package/dist/server/src/controllers/content-types.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/index.d.ts +6 -1
- package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
- package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/controllers/index.d.ts +2 -0
- package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
- package/dist/server/src/homepage/index.d.ts +23 -0
- package/dist/server/src/homepage/index.d.ts.map +1 -0
- package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
- package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/routes/index.d.ts +8 -0
- package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
- package/dist/server/src/homepage/services/homepage.d.ts +14 -0
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/services/index.d.ts +16 -0
- package/dist/server/src/homepage/services/index.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +15 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts +1 -0
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/data-mapper.d.ts +1 -0
- package/dist/server/src/services/data-mapper.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +14 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +0 -1
- package/dist/shared/contracts/collection-types.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +13 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -1
- package/package.json +11 -8
- package/dist/server/src/services/homepage.d.ts +0 -11
- package/dist/server/src/services/homepage.d.ts.map +0 -1
|
@@ -1,24 +1,60 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { useNotification, useAPIErrorHandler, useQueryParams, useForm } from '@strapi/admin/strapi-admin';
|
|
4
|
-
import {
|
|
3
|
+
import { unstable_tours, useNotification, useAPIErrorHandler, useQueryParams, useForm } from '@strapi/admin/strapi-admin';
|
|
4
|
+
import { Flex, Button, Menu, VisuallyHidden, Dialog, Modal, Typography, Radio } from '@strapi/design-system';
|
|
5
5
|
import { More, Cross, WarningCircle } from '@strapi/icons';
|
|
6
6
|
import mapValues from 'lodash/fp/mapValues';
|
|
7
|
+
import get from 'lodash/get';
|
|
8
|
+
import merge from 'lodash/merge';
|
|
9
|
+
import set from 'lodash/set';
|
|
7
10
|
import { useIntl } from 'react-intl';
|
|
8
11
|
import { useNavigate, useMatch, useParams } from 'react-router-dom';
|
|
9
|
-
import { styled } from 'styled-components';
|
|
10
12
|
import { PUBLISHED_AT_ATTRIBUTE_NAME } from '../../../constants/attributes.mjs';
|
|
11
13
|
import { SINGLE_TYPES } from '../../../constants/collections.mjs';
|
|
12
14
|
import { useDocumentRBAC } from '../../../features/DocumentRBAC.mjs';
|
|
13
|
-
import { useDoc } from '../../../hooks/useDocument.mjs';
|
|
15
|
+
import { useDocument, useDoc } from '../../../hooks/useDocument.mjs';
|
|
14
16
|
import { useDocumentActions } from '../../../hooks/useDocumentActions.mjs';
|
|
15
17
|
import { useDocumentContext } from '../../../hooks/useDocumentContext.mjs';
|
|
16
18
|
import { usePreviewContext } from '../../../preview/pages/Preview.mjs';
|
|
17
19
|
import { LIST_PATH, CLONE_PATH } from '../../../router.mjs';
|
|
18
|
-
import { useGetDraftRelationCountQuery as useLazyGetDraftRelationCountQuery } from '../../../services/documents.mjs';
|
|
20
|
+
import { useGetDraftRelationCountQuery as useLazyGetDraftRelationCountQuery, useUpdateDocumentMutation } from '../../../services/documents.mjs';
|
|
19
21
|
import { isBaseQueryError, buildValidParams } from '../../../utils/api.mjs';
|
|
20
22
|
import { getTranslation } from '../../../utils/translations.mjs';
|
|
23
|
+
import { handleInvisibleAttributes } from '../utils/data.mjs';
|
|
24
|
+
import { useRelationModal } from './FormInputs/Relations/RelationModal.mjs';
|
|
21
25
|
|
|
26
|
+
const connectRelationToParent = (parentDataToUpdate, fieldToConnect, data, fieldToConnectUID)=>{
|
|
27
|
+
/*
|
|
28
|
+
* Check if the fieldToConnect is already present in the parentDataToUpdate.
|
|
29
|
+
* This happens in particular when in the parentDocument you have created
|
|
30
|
+
* a new component without saving.
|
|
31
|
+
*/ const isFieldPresent = !!get(parentDataToUpdate, fieldToConnect);
|
|
32
|
+
const fieldToConnectPath = isFieldPresent ? fieldToConnect : fieldToConnect.split('.').slice(0, -1).join('.');
|
|
33
|
+
const fieldToConnectValue = isFieldPresent ? {
|
|
34
|
+
connect: [
|
|
35
|
+
{
|
|
36
|
+
id: data.documentId,
|
|
37
|
+
documentId: data.documentId,
|
|
38
|
+
locale: data.locale
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
} : {
|
|
42
|
+
[fieldToConnect.split('.').pop()]: {
|
|
43
|
+
connect: [
|
|
44
|
+
{
|
|
45
|
+
id: data.documentId,
|
|
46
|
+
documentId: data.documentId,
|
|
47
|
+
locale: data.locale
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
disconnect: []
|
|
51
|
+
},
|
|
52
|
+
// In case the object was not present you need to pass the componentUID of the parent document
|
|
53
|
+
__component: fieldToConnectUID
|
|
54
|
+
};
|
|
55
|
+
const objectToConnect = set({}, fieldToConnectPath, fieldToConnectValue);
|
|
56
|
+
return merge(parentDataToUpdate, objectToConnect);
|
|
57
|
+
};
|
|
22
58
|
const DocumentActions = ({ actions })=>{
|
|
23
59
|
const { formatMessage } = useIntl();
|
|
24
60
|
const [primaryAction, secondaryAction, ...restActions] = actions.filter((action)=>{
|
|
@@ -39,23 +75,33 @@ const DocumentActions = ({ actions })=>{
|
|
|
39
75
|
alignItems: "stretch",
|
|
40
76
|
width: "100%",
|
|
41
77
|
children: [
|
|
42
|
-
/*#__PURE__*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
78
|
+
/*#__PURE__*/ jsx(unstable_tours.contentManager.Publish, {
|
|
79
|
+
children: /*#__PURE__*/ jsxs(Flex, {
|
|
80
|
+
gap: 2,
|
|
81
|
+
children: [
|
|
82
|
+
primaryAction.label === 'Publish' ? /*#__PURE__*/ jsx(DocumentActionButton, {
|
|
83
|
+
...primaryAction,
|
|
84
|
+
variant: primaryAction.variant || 'default'
|
|
85
|
+
}) : /*#__PURE__*/ jsx(DocumentActionButton, {
|
|
86
|
+
...primaryAction,
|
|
87
|
+
variant: primaryAction.variant || 'default'
|
|
88
|
+
}),
|
|
89
|
+
restActions.length > 0 ? /*#__PURE__*/ jsx(DocumentActionsMenu, {
|
|
90
|
+
actions: restActions,
|
|
91
|
+
label: formatMessage({
|
|
92
|
+
id: 'content-manager.containers.edit.panels.default.more-actions',
|
|
93
|
+
defaultMessage: 'More document actions'
|
|
94
|
+
})
|
|
95
|
+
}) : null
|
|
96
|
+
]
|
|
97
|
+
})
|
|
57
98
|
}),
|
|
58
|
-
secondaryAction ? /*#__PURE__*/ jsx(
|
|
99
|
+
secondaryAction ? secondaryAction.label === 'Publish' ? /*#__PURE__*/ jsx(unstable_tours.contentManager.Publish, {
|
|
100
|
+
children: /*#__PURE__*/ jsx(DocumentActionButton, {
|
|
101
|
+
...secondaryAction,
|
|
102
|
+
variant: secondaryAction.variant || 'secondary'
|
|
103
|
+
})
|
|
104
|
+
}) : /*#__PURE__*/ jsx(DocumentActionButton, {
|
|
59
105
|
...secondaryAction,
|
|
60
106
|
variant: secondaryAction.variant || 'secondary'
|
|
61
107
|
}) : null
|
|
@@ -117,11 +163,6 @@ const DocumentActionButton = (action)=>{
|
|
|
117
163
|
]
|
|
118
164
|
});
|
|
119
165
|
};
|
|
120
|
-
const MenuItem = styled(Menu.Item)`
|
|
121
|
-
&:hover {
|
|
122
|
-
background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
|
|
123
|
-
}
|
|
124
|
-
`;
|
|
125
166
|
const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
|
|
126
167
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
127
168
|
const [dialogId, setDialogId] = React.useState(null);
|
|
@@ -183,27 +224,19 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
|
|
|
183
224
|
popoverPlacement: "bottom-end",
|
|
184
225
|
children: [
|
|
185
226
|
actions.map((action)=>{
|
|
186
|
-
return /*#__PURE__*/ jsx(
|
|
227
|
+
return /*#__PURE__*/ jsx(Menu.Item, {
|
|
187
228
|
disabled: action.disabled,
|
|
188
229
|
/* @ts-expect-error – TODO: this is an error in the DS where it is most likely a synthetic event, not regular. */ onSelect: handleClick(action),
|
|
189
230
|
display: "block",
|
|
190
|
-
|
|
191
|
-
|
|
231
|
+
variant: action.variant === 'danger' ? action.variant : 'default',
|
|
232
|
+
startIcon: action.icon,
|
|
192
233
|
children: /*#__PURE__*/ jsx(Flex, {
|
|
193
234
|
justifyContent: "space-between",
|
|
194
235
|
gap: 4,
|
|
195
|
-
children: /*#__PURE__*/
|
|
196
|
-
color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
|
|
236
|
+
children: /*#__PURE__*/ jsx(Flex, {
|
|
197
237
|
gap: 2,
|
|
198
238
|
tag: "span",
|
|
199
|
-
children:
|
|
200
|
-
/*#__PURE__*/ jsx(Flex, {
|
|
201
|
-
tag: "span",
|
|
202
|
-
color: !action.disabled ? convertActionVariantToIconColor(action.variant) : 'inherit',
|
|
203
|
-
children: action.icon
|
|
204
|
-
}),
|
|
205
|
-
action.label
|
|
206
|
-
]
|
|
239
|
+
children: action.label
|
|
207
240
|
})
|
|
208
241
|
})
|
|
209
242
|
}, action.id);
|
|
@@ -231,30 +264,6 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
|
|
|
231
264
|
]
|
|
232
265
|
});
|
|
233
266
|
};
|
|
234
|
-
const convertActionVariantToColor = (variant = 'secondary')=>{
|
|
235
|
-
switch(variant){
|
|
236
|
-
case 'danger':
|
|
237
|
-
return 'danger600';
|
|
238
|
-
case 'secondary':
|
|
239
|
-
return undefined;
|
|
240
|
-
case 'success':
|
|
241
|
-
return 'success600';
|
|
242
|
-
default:
|
|
243
|
-
return 'primary600';
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
const convertActionVariantToIconColor = (variant = 'secondary')=>{
|
|
247
|
-
switch(variant){
|
|
248
|
-
case 'danger':
|
|
249
|
-
return 'danger600';
|
|
250
|
-
case 'secondary':
|
|
251
|
-
return 'neutral500';
|
|
252
|
-
case 'success':
|
|
253
|
-
return 'success600';
|
|
254
|
-
default:
|
|
255
|
-
return 'primary600';
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
267
|
const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
|
|
259
268
|
const { formatMessage } = useIntl();
|
|
260
269
|
const handleClose = async ()=>{
|
|
@@ -360,7 +369,10 @@ const transformData = (data)=>{
|
|
|
360
369
|
const isCloning = useMatch(CLONE_PATH) !== null;
|
|
361
370
|
const { id } = useParams();
|
|
362
371
|
const { formatMessage } = useIntl();
|
|
363
|
-
const canPublish = useDocumentRBAC('PublishAction', ({ canPublish })=>
|
|
372
|
+
const { canPublish, canReadFields } = useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
|
|
373
|
+
canPublish,
|
|
374
|
+
canReadFields
|
|
375
|
+
}));
|
|
364
376
|
const { publish, isLoading } = useDocumentActions();
|
|
365
377
|
const onPreview = usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
|
366
378
|
const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = useLazyGetDraftRelationCountQuery();
|
|
@@ -374,7 +386,18 @@ const transformData = (data)=>{
|
|
|
374
386
|
const setErrors = useForm('PublishAction', (state)=>state.setErrors);
|
|
375
387
|
const formValues = useForm('PublishAction', ({ values })=>values);
|
|
376
388
|
const resetForm = useForm('PublishAction', ({ resetForm })=>resetForm);
|
|
389
|
+
const { currentDocument: { components } } = useDocumentContext('PublishAction');
|
|
390
|
+
// need to discriminate if the publish is coming from a relation modal or in the edit view
|
|
391
|
+
const relationContext = useRelationModal('PublishAction', ()=>true, false);
|
|
392
|
+
const fromRelationModal = relationContext != undefined;
|
|
393
|
+
const dispatch = useRelationModal('PublishAction', (state)=>state.dispatch);
|
|
394
|
+
const fieldToConnect = useRelationModal('PublishAction', (state)=>state.state.fieldToConnect, false);
|
|
395
|
+
const fieldToConnectUID = useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
|
|
396
|
+
const documentHistory = useRelationModal('PublishAction', (state)=>state.state.documentHistory, false);
|
|
397
|
+
const rootDocumentMeta = useRelationModal('PublishAction', (state)=>state.rootDocumentMeta);
|
|
377
398
|
const { currentDocumentMeta } = useDocumentContext('PublishAction');
|
|
399
|
+
const [updateDocumentMutation] = useUpdateDocumentMutation();
|
|
400
|
+
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
|
|
378
401
|
const idToPublish = currentDocumentMeta.documentId || id;
|
|
379
402
|
React.useEffect(()=>{
|
|
380
403
|
if (isErrorDraftRelations) {
|
|
@@ -458,6 +481,16 @@ const transformData = (data)=>{
|
|
|
458
481
|
model,
|
|
459
482
|
currentDocumentMeta.params
|
|
460
483
|
]);
|
|
484
|
+
const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
|
|
485
|
+
const parentDocumentData = useDocument({
|
|
486
|
+
documentId: parentDocumentMetaToUpdate?.documentId,
|
|
487
|
+
model: parentDocumentMetaToUpdate?.model,
|
|
488
|
+
collectionType: parentDocumentMetaToUpdate?.collectionType,
|
|
489
|
+
params: parentDocumentMetaToUpdate?.params
|
|
490
|
+
}, {
|
|
491
|
+
skip: !parentDocumentMetaToUpdate
|
|
492
|
+
});
|
|
493
|
+
const { getInitialFormValues } = useDoc();
|
|
461
494
|
const isDocumentPublished = (document?.[PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc)=>doc[PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== 'modified';
|
|
462
495
|
if (!schema?.options?.draftAndPublish) {
|
|
463
496
|
return null;
|
|
@@ -469,21 +502,39 @@ const transformData = (data)=>{
|
|
|
469
502
|
status: 'published'
|
|
470
503
|
});
|
|
471
504
|
if (errors) {
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
id: 'content-manager.validation.error',
|
|
476
|
-
defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
|
|
477
|
-
})
|
|
505
|
+
const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
|
|
506
|
+
const attribute = schema.attributes[fieldName];
|
|
507
|
+
return attribute?.required && !(canReadFields ?? []).includes(fieldName);
|
|
478
508
|
});
|
|
509
|
+
if (hasUnreadableRequiredField) {
|
|
510
|
+
toggleNotification({
|
|
511
|
+
type: 'danger',
|
|
512
|
+
message: formatMessage({
|
|
513
|
+
id: 'content-manager.validation.error.unreadable-required-field',
|
|
514
|
+
defaultMessage: 'Your current permissions prevent access to certain required fields. Please request access from an administrator to proceed.'
|
|
515
|
+
})
|
|
516
|
+
});
|
|
517
|
+
} else {
|
|
518
|
+
toggleNotification({
|
|
519
|
+
type: 'danger',
|
|
520
|
+
message: formatMessage({
|
|
521
|
+
id: 'content-manager.validation.error',
|
|
522
|
+
defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
|
|
523
|
+
})
|
|
524
|
+
});
|
|
525
|
+
}
|
|
479
526
|
return;
|
|
480
527
|
}
|
|
528
|
+
const { data } = handleInvisibleAttributes(transformData(formValues), {
|
|
529
|
+
schema,
|
|
530
|
+
components
|
|
531
|
+
});
|
|
481
532
|
const res = await publish({
|
|
482
533
|
collectionType,
|
|
483
534
|
model,
|
|
484
535
|
documentId,
|
|
485
536
|
params: currentDocumentMeta.params
|
|
486
|
-
},
|
|
537
|
+
}, data);
|
|
487
538
|
// Reset form if successful
|
|
488
539
|
if ('data' in res) {
|
|
489
540
|
resetForm();
|
|
@@ -491,11 +542,59 @@ const transformData = (data)=>{
|
|
|
491
542
|
if ('data' in res && collectionType !== SINGLE_TYPES) {
|
|
492
543
|
/**
|
|
493
544
|
* TODO: refactor the router so we can just do `../${res.data.documentId}` instead of this.
|
|
494
|
-
*/ if (idToPublish === 'create') {
|
|
545
|
+
*/ if (idToPublish === 'create' && !fromRelationModal) {
|
|
495
546
|
navigate({
|
|
496
547
|
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
|
497
548
|
search: rawQuery
|
|
498
549
|
});
|
|
550
|
+
} else if (fromRelationModal) {
|
|
551
|
+
const newRelation = {
|
|
552
|
+
documentId: res.data.documentId,
|
|
553
|
+
collectionType,
|
|
554
|
+
model,
|
|
555
|
+
params: currentDocumentMeta.params
|
|
556
|
+
};
|
|
557
|
+
/*
|
|
558
|
+
* Update, if needed, the parent relation with the newly published document.
|
|
559
|
+
* Check if in history we have the parent relation otherwise use the
|
|
560
|
+
* rootDocument
|
|
561
|
+
*/ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === SINGLE_TYPES)) {
|
|
562
|
+
const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
|
|
563
|
+
const metaDocumentToUpdate = documentHistory.at(-2) ?? rootDocumentMeta;
|
|
564
|
+
const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
|
|
565
|
+
try {
|
|
566
|
+
const updateRes = await updateDocumentMutation({
|
|
567
|
+
collectionType: metaDocumentToUpdate.collectionType,
|
|
568
|
+
model: metaDocumentToUpdate.model,
|
|
569
|
+
documentId: metaDocumentToUpdate.collectionType !== SINGLE_TYPES ? metaDocumentToUpdate.documentId : undefined,
|
|
570
|
+
params: metaDocumentToUpdate.params,
|
|
571
|
+
data: dataToUpdate
|
|
572
|
+
});
|
|
573
|
+
if ('error' in updateRes) {
|
|
574
|
+
toggleNotification({
|
|
575
|
+
type: 'danger',
|
|
576
|
+
message: formatAPIError(updateRes.error)
|
|
577
|
+
});
|
|
578
|
+
return;
|
|
579
|
+
}
|
|
580
|
+
} catch (err) {
|
|
581
|
+
toggleNotification({
|
|
582
|
+
type: 'danger',
|
|
583
|
+
message: formatMessage({
|
|
584
|
+
id: 'notification.error',
|
|
585
|
+
defaultMessage: 'An error occurred'
|
|
586
|
+
})
|
|
587
|
+
});
|
|
588
|
+
throw err;
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
dispatch({
|
|
592
|
+
type: 'GO_TO_CREATED_RELATION',
|
|
593
|
+
payload: {
|
|
594
|
+
document: newRelation,
|
|
595
|
+
shouldBypassConfirmation: true
|
|
596
|
+
}
|
|
597
|
+
});
|
|
499
598
|
}
|
|
500
599
|
} else if ('error' in res && isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
501
600
|
setErrors(formatValidationErrors(res.error));
|
|
@@ -569,16 +668,40 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
|
569
668
|
const isCloning = cloneMatch !== null;
|
|
570
669
|
const { formatMessage } = useIntl();
|
|
571
670
|
const { create, update, clone, isLoading } = useDocumentActions();
|
|
671
|
+
const { currentDocument: { components } } = useDocumentContext('UpdateAction');
|
|
572
672
|
const [{ rawQuery }] = useQueryParams();
|
|
573
673
|
const onPreview = usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
|
674
|
+
const { getInitialFormValues } = useDoc();
|
|
574
675
|
const isSubmitting = useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
|
|
575
676
|
const modified = useForm('UpdateAction', ({ modified })=>modified);
|
|
576
677
|
const setSubmitting = useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
|
|
678
|
+
const initialValues = useForm('UpdateAction', ({ initialValues })=>initialValues);
|
|
577
679
|
const document = useForm('UpdateAction', ({ values })=>values);
|
|
578
680
|
const validate = useForm('UpdateAction', (state)=>state.validate);
|
|
579
681
|
const setErrors = useForm('UpdateAction', (state)=>state.setErrors);
|
|
580
|
-
const resetForm = useForm('
|
|
682
|
+
const resetForm = useForm('UpdateAction', ({ resetForm })=>resetForm);
|
|
683
|
+
const dispatch = useRelationModal('UpdateAction', (state)=>state.dispatch);
|
|
684
|
+
// need to discriminate if the update is coming from a relation modal or in the edit view
|
|
685
|
+
const relationContext = useRelationModal('UpdateAction', ()=>true, false);
|
|
686
|
+
const relationalModalSchema = useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
|
|
687
|
+
const fieldToConnect = useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
|
|
688
|
+
const fieldToConnectUID = useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
|
|
689
|
+
const documentHistory = useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
|
|
690
|
+
const rootDocumentMeta = useRelationModal('UpdateAction', (state)=>state.rootDocumentMeta);
|
|
691
|
+
const fromRelationModal = relationContext != undefined;
|
|
581
692
|
const { currentDocumentMeta } = useDocumentContext('UpdateAction');
|
|
693
|
+
const [updateDocumentMutation] = useUpdateDocumentMutation();
|
|
694
|
+
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
|
|
695
|
+
const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
|
|
696
|
+
const parentDocumentData = useDocument({
|
|
697
|
+
documentId: parentDocumentMetaToUpdate?.documentId,
|
|
698
|
+
model: parentDocumentMetaToUpdate?.model,
|
|
699
|
+
collectionType: parentDocumentMetaToUpdate?.collectionType,
|
|
700
|
+
params: parentDocumentMetaToUpdate?.params
|
|
701
|
+
}, {
|
|
702
|
+
skip: !parentDocumentMetaToUpdate
|
|
703
|
+
});
|
|
704
|
+
const { schema } = useDoc();
|
|
582
705
|
const handleUpdate = React.useCallback(async ()=>{
|
|
583
706
|
setSubmitting(true);
|
|
584
707
|
try {
|
|
@@ -615,30 +738,91 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
|
615
738
|
setErrors(formatValidationErrors(res.error));
|
|
616
739
|
}
|
|
617
740
|
} else if (documentId || collectionType === SINGLE_TYPES) {
|
|
741
|
+
const { data } = handleInvisibleAttributes(transformData(document), {
|
|
742
|
+
schema: fromRelationModal ? relationalModalSchema : schema,
|
|
743
|
+
initialValues,
|
|
744
|
+
components
|
|
745
|
+
});
|
|
618
746
|
const res = await update({
|
|
619
747
|
collectionType,
|
|
620
748
|
model,
|
|
621
749
|
documentId,
|
|
622
750
|
params: currentDocumentMeta.params
|
|
623
|
-
},
|
|
751
|
+
}, data);
|
|
624
752
|
if ('error' in res && isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
625
753
|
setErrors(formatValidationErrors(res.error));
|
|
626
754
|
} else {
|
|
627
755
|
resetForm();
|
|
628
756
|
}
|
|
629
757
|
} else {
|
|
758
|
+
const { data } = handleInvisibleAttributes(transformData(document), {
|
|
759
|
+
schema: fromRelationModal ? relationalModalSchema : schema,
|
|
760
|
+
initialValues,
|
|
761
|
+
components
|
|
762
|
+
});
|
|
630
763
|
const res = await create({
|
|
631
764
|
model,
|
|
632
765
|
params: currentDocumentMeta.params
|
|
633
|
-
},
|
|
766
|
+
}, data);
|
|
634
767
|
if ('data' in res && collectionType !== SINGLE_TYPES) {
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
768
|
+
if (fromRelationModal) {
|
|
769
|
+
const createdRelation = {
|
|
770
|
+
documentId: res.data.documentId,
|
|
771
|
+
collectionType,
|
|
772
|
+
model,
|
|
773
|
+
params: currentDocumentMeta.params
|
|
774
|
+
};
|
|
775
|
+
/*
|
|
776
|
+
* Update, if needed, the parent relation with the newly published document.
|
|
777
|
+
* Check if in history we have the parent relation otherwise use the
|
|
778
|
+
* rootDocument
|
|
779
|
+
*/ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === SINGLE_TYPES)) {
|
|
780
|
+
const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
|
|
781
|
+
const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
|
|
782
|
+
try {
|
|
783
|
+
const updateRes = await updateDocumentMutation({
|
|
784
|
+
collectionType: parentDocumentMetaToUpdate.collectionType,
|
|
785
|
+
model: parentDocumentMetaToUpdate.model,
|
|
786
|
+
documentId: parentDocumentMetaToUpdate.collectionType !== SINGLE_TYPES ? parentDocumentMetaToUpdate.documentId : undefined,
|
|
787
|
+
params: parentDocumentMetaToUpdate.params,
|
|
788
|
+
data: {
|
|
789
|
+
...dataToUpdate
|
|
790
|
+
}
|
|
791
|
+
});
|
|
792
|
+
if ('error' in updateRes) {
|
|
793
|
+
toggleNotification({
|
|
794
|
+
type: 'danger',
|
|
795
|
+
message: formatAPIError(updateRes.error)
|
|
796
|
+
});
|
|
797
|
+
return;
|
|
798
|
+
}
|
|
799
|
+
} catch (err) {
|
|
800
|
+
toggleNotification({
|
|
801
|
+
type: 'danger',
|
|
802
|
+
message: formatMessage({
|
|
803
|
+
id: 'notification.error',
|
|
804
|
+
defaultMessage: 'An error occurred'
|
|
805
|
+
})
|
|
806
|
+
});
|
|
807
|
+
throw err;
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
dispatch({
|
|
811
|
+
type: 'GO_TO_CREATED_RELATION',
|
|
812
|
+
payload: {
|
|
813
|
+
document: createdRelation,
|
|
814
|
+
shouldBypassConfirmation: true
|
|
815
|
+
}
|
|
816
|
+
});
|
|
817
|
+
} else {
|
|
818
|
+
navigate({
|
|
819
|
+
pathname: `../${res.data.documentId}`,
|
|
820
|
+
search: rawQuery
|
|
821
|
+
}, {
|
|
822
|
+
replace: true,
|
|
823
|
+
relative: 'path'
|
|
824
|
+
});
|
|
825
|
+
}
|
|
642
826
|
} else if ('error' in res && isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
643
827
|
setErrors(formatValidationErrors(res.error));
|
|
644
828
|
}
|
|
@@ -650,27 +834,41 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
|
650
834
|
}
|
|
651
835
|
}
|
|
652
836
|
}, [
|
|
837
|
+
setSubmitting,
|
|
838
|
+
modified,
|
|
839
|
+
validate,
|
|
840
|
+
isCloning,
|
|
841
|
+
documentId,
|
|
842
|
+
collectionType,
|
|
843
|
+
toggleNotification,
|
|
844
|
+
formatMessage,
|
|
653
845
|
clone,
|
|
846
|
+
model,
|
|
654
847
|
cloneMatch?.params.origin,
|
|
655
|
-
collectionType,
|
|
656
|
-
create,
|
|
657
848
|
currentDocumentMeta.params,
|
|
658
849
|
document,
|
|
659
|
-
documentId,
|
|
660
|
-
formatMessage,
|
|
661
|
-
formatValidationErrors,
|
|
662
|
-
isCloning,
|
|
663
|
-
model,
|
|
664
|
-
modified,
|
|
665
850
|
navigate,
|
|
666
851
|
rawQuery,
|
|
667
|
-
resetForm,
|
|
668
852
|
setErrors,
|
|
669
|
-
|
|
670
|
-
toggleNotification,
|
|
853
|
+
formatValidationErrors,
|
|
671
854
|
update,
|
|
672
|
-
|
|
673
|
-
|
|
855
|
+
resetForm,
|
|
856
|
+
create,
|
|
857
|
+
fromRelationModal,
|
|
858
|
+
fieldToConnect,
|
|
859
|
+
documentHistory,
|
|
860
|
+
parentDocumentMetaToUpdate,
|
|
861
|
+
dispatch,
|
|
862
|
+
getInitialFormValues,
|
|
863
|
+
parentDocumentData,
|
|
864
|
+
fieldToConnectUID,
|
|
865
|
+
updateDocumentMutation,
|
|
866
|
+
formatAPIError,
|
|
867
|
+
onPreview,
|
|
868
|
+
initialValues,
|
|
869
|
+
schema,
|
|
870
|
+
components,
|
|
871
|
+
relationalModalSchema
|
|
674
872
|
]);
|
|
675
873
|
// Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
|
|
676
874
|
React.useEffect(()=>{
|