@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
|
@@ -6,9 +6,11 @@ var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
|
6
6
|
var designSystem = require('@strapi/design-system');
|
|
7
7
|
var Icons = require('@strapi/icons');
|
|
8
8
|
var mapValues = require('lodash/fp/mapValues');
|
|
9
|
+
var get = require('lodash/get');
|
|
10
|
+
var merge = require('lodash/merge');
|
|
11
|
+
var set = require('lodash/set');
|
|
9
12
|
var reactIntl = require('react-intl');
|
|
10
13
|
var reactRouterDom = require('react-router-dom');
|
|
11
|
-
var styledComponents = require('styled-components');
|
|
12
14
|
var attributes = require('../../../constants/attributes.js');
|
|
13
15
|
var collections = require('../../../constants/collections.js');
|
|
14
16
|
var DocumentRBAC = require('../../../features/DocumentRBAC.js');
|
|
@@ -20,6 +22,8 @@ var router = require('../../../router.js');
|
|
|
20
22
|
var documents = require('../../../services/documents.js');
|
|
21
23
|
var api = require('../../../utils/api.js');
|
|
22
24
|
var translations = require('../../../utils/translations.js');
|
|
25
|
+
var data = require('../utils/data.js');
|
|
26
|
+
var RelationModal = require('./FormInputs/Relations/RelationModal.js');
|
|
23
27
|
|
|
24
28
|
function _interopNamespaceDefault(e) {
|
|
25
29
|
var n = Object.create(null);
|
|
@@ -40,6 +44,38 @@ function _interopNamespaceDefault(e) {
|
|
|
40
44
|
|
|
41
45
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
42
46
|
|
|
47
|
+
const connectRelationToParent = (parentDataToUpdate, fieldToConnect, data, fieldToConnectUID)=>{
|
|
48
|
+
/*
|
|
49
|
+
* Check if the fieldToConnect is already present in the parentDataToUpdate.
|
|
50
|
+
* This happens in particular when in the parentDocument you have created
|
|
51
|
+
* a new component without saving.
|
|
52
|
+
*/ const isFieldPresent = !!get(parentDataToUpdate, fieldToConnect);
|
|
53
|
+
const fieldToConnectPath = isFieldPresent ? fieldToConnect : fieldToConnect.split('.').slice(0, -1).join('.');
|
|
54
|
+
const fieldToConnectValue = isFieldPresent ? {
|
|
55
|
+
connect: [
|
|
56
|
+
{
|
|
57
|
+
id: data.documentId,
|
|
58
|
+
documentId: data.documentId,
|
|
59
|
+
locale: data.locale
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
} : {
|
|
63
|
+
[fieldToConnect.split('.').pop()]: {
|
|
64
|
+
connect: [
|
|
65
|
+
{
|
|
66
|
+
id: data.documentId,
|
|
67
|
+
documentId: data.documentId,
|
|
68
|
+
locale: data.locale
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
disconnect: []
|
|
72
|
+
},
|
|
73
|
+
// In case the object was not present you need to pass the componentUID of the parent document
|
|
74
|
+
__component: fieldToConnectUID
|
|
75
|
+
};
|
|
76
|
+
const objectToConnect = set({}, fieldToConnectPath, fieldToConnectValue);
|
|
77
|
+
return merge(parentDataToUpdate, objectToConnect);
|
|
78
|
+
};
|
|
43
79
|
const DocumentActions = ({ actions })=>{
|
|
44
80
|
const { formatMessage } = reactIntl.useIntl();
|
|
45
81
|
const [primaryAction, secondaryAction, ...restActions] = actions.filter((action)=>{
|
|
@@ -60,23 +96,33 @@ const DocumentActions = ({ actions })=>{
|
|
|
60
96
|
alignItems: "stretch",
|
|
61
97
|
width: "100%",
|
|
62
98
|
children: [
|
|
63
|
-
/*#__PURE__*/ jsxRuntime.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
99
|
+
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.unstable_tours.contentManager.Publish, {
|
|
100
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
101
|
+
gap: 2,
|
|
102
|
+
children: [
|
|
103
|
+
primaryAction.label === 'Publish' ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
|
|
104
|
+
...primaryAction,
|
|
105
|
+
variant: primaryAction.variant || 'default'
|
|
106
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
|
|
107
|
+
...primaryAction,
|
|
108
|
+
variant: primaryAction.variant || 'default'
|
|
109
|
+
}),
|
|
110
|
+
restActions.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionsMenu, {
|
|
111
|
+
actions: restActions,
|
|
112
|
+
label: formatMessage({
|
|
113
|
+
id: 'content-manager.containers.edit.panels.default.more-actions',
|
|
114
|
+
defaultMessage: 'More document actions'
|
|
115
|
+
})
|
|
116
|
+
}) : null
|
|
117
|
+
]
|
|
118
|
+
})
|
|
78
119
|
}),
|
|
79
|
-
secondaryAction ? /*#__PURE__*/ jsxRuntime.jsx(
|
|
120
|
+
secondaryAction ? secondaryAction.label === 'Publish' ? /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.unstable_tours.contentManager.Publish, {
|
|
121
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
|
|
122
|
+
...secondaryAction,
|
|
123
|
+
variant: secondaryAction.variant || 'secondary'
|
|
124
|
+
})
|
|
125
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
|
|
80
126
|
...secondaryAction,
|
|
81
127
|
variant: secondaryAction.variant || 'secondary'
|
|
82
128
|
}) : null
|
|
@@ -138,11 +184,6 @@ const DocumentActionButton = (action)=>{
|
|
|
138
184
|
]
|
|
139
185
|
});
|
|
140
186
|
};
|
|
141
|
-
const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
|
|
142
|
-
&:hover {
|
|
143
|
-
background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
|
|
144
|
-
}
|
|
145
|
-
`;
|
|
146
187
|
const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
|
|
147
188
|
const [isOpen, setIsOpen] = React__namespace.useState(false);
|
|
148
189
|
const [dialogId, setDialogId] = React__namespace.useState(null);
|
|
@@ -204,27 +245,19 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
|
|
|
204
245
|
popoverPlacement: "bottom-end",
|
|
205
246
|
children: [
|
|
206
247
|
actions.map((action)=>{
|
|
207
|
-
return /*#__PURE__*/ jsxRuntime.jsx(
|
|
248
|
+
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
|
|
208
249
|
disabled: action.disabled,
|
|
209
250
|
/* @ts-expect-error – TODO: this is an error in the DS where it is most likely a synthetic event, not regular. */ onSelect: handleClick(action),
|
|
210
251
|
display: "block",
|
|
211
|
-
|
|
212
|
-
|
|
252
|
+
variant: action.variant === 'danger' ? action.variant : 'default',
|
|
253
|
+
startIcon: action.icon,
|
|
213
254
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
214
255
|
justifyContent: "space-between",
|
|
215
256
|
gap: 4,
|
|
216
|
-
children: /*#__PURE__*/ jsxRuntime.
|
|
217
|
-
color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
|
|
257
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
218
258
|
gap: 2,
|
|
219
259
|
tag: "span",
|
|
220
|
-
children:
|
|
221
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
222
|
-
tag: "span",
|
|
223
|
-
color: !action.disabled ? convertActionVariantToIconColor(action.variant) : 'inherit',
|
|
224
|
-
children: action.icon
|
|
225
|
-
}),
|
|
226
|
-
action.label
|
|
227
|
-
]
|
|
260
|
+
children: action.label
|
|
228
261
|
})
|
|
229
262
|
})
|
|
230
263
|
}, action.id);
|
|
@@ -252,30 +285,6 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
|
|
|
252
285
|
]
|
|
253
286
|
});
|
|
254
287
|
};
|
|
255
|
-
const convertActionVariantToColor = (variant = 'secondary')=>{
|
|
256
|
-
switch(variant){
|
|
257
|
-
case 'danger':
|
|
258
|
-
return 'danger600';
|
|
259
|
-
case 'secondary':
|
|
260
|
-
return undefined;
|
|
261
|
-
case 'success':
|
|
262
|
-
return 'success600';
|
|
263
|
-
default:
|
|
264
|
-
return 'primary600';
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
const convertActionVariantToIconColor = (variant = 'secondary')=>{
|
|
268
|
-
switch(variant){
|
|
269
|
-
case 'danger':
|
|
270
|
-
return 'danger600';
|
|
271
|
-
case 'secondary':
|
|
272
|
-
return 'neutral500';
|
|
273
|
-
case 'success':
|
|
274
|
-
return 'success600';
|
|
275
|
-
default:
|
|
276
|
-
return 'primary600';
|
|
277
|
-
}
|
|
278
|
-
};
|
|
279
288
|
const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
|
|
280
289
|
const { formatMessage } = reactIntl.useIntl();
|
|
281
290
|
const handleClose = async ()=>{
|
|
@@ -381,7 +390,10 @@ const transformData = (data)=>{
|
|
|
381
390
|
const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
|
|
382
391
|
const { id } = reactRouterDom.useParams();
|
|
383
392
|
const { formatMessage } = reactIntl.useIntl();
|
|
384
|
-
const canPublish = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish })=>
|
|
393
|
+
const { canPublish, canReadFields } = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
|
|
394
|
+
canPublish,
|
|
395
|
+
canReadFields
|
|
396
|
+
}));
|
|
385
397
|
const { publish, isLoading } = useDocumentActions.useDocumentActions();
|
|
386
398
|
const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
|
387
399
|
const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = documents.useGetDraftRelationCountQuery();
|
|
@@ -395,7 +407,18 @@ const transformData = (data)=>{
|
|
|
395
407
|
const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
|
|
396
408
|
const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
|
|
397
409
|
const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
|
|
410
|
+
const { currentDocument: { components } } = useDocumentContext.useDocumentContext('PublishAction');
|
|
411
|
+
// need to discriminate if the publish is coming from a relation modal or in the edit view
|
|
412
|
+
const relationContext = RelationModal.useRelationModal('PublishAction', ()=>true, false);
|
|
413
|
+
const fromRelationModal = relationContext != undefined;
|
|
414
|
+
const dispatch = RelationModal.useRelationModal('PublishAction', (state)=>state.dispatch);
|
|
415
|
+
const fieldToConnect = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnect, false);
|
|
416
|
+
const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
|
|
417
|
+
const documentHistory = RelationModal.useRelationModal('PublishAction', (state)=>state.state.documentHistory, false);
|
|
418
|
+
const rootDocumentMeta = RelationModal.useRelationModal('PublishAction', (state)=>state.rootDocumentMeta);
|
|
398
419
|
const { currentDocumentMeta } = useDocumentContext.useDocumentContext('PublishAction');
|
|
420
|
+
const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
|
|
421
|
+
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
399
422
|
const idToPublish = currentDocumentMeta.documentId || id;
|
|
400
423
|
React__namespace.useEffect(()=>{
|
|
401
424
|
if (isErrorDraftRelations) {
|
|
@@ -479,6 +502,16 @@ const transformData = (data)=>{
|
|
|
479
502
|
model,
|
|
480
503
|
currentDocumentMeta.params
|
|
481
504
|
]);
|
|
505
|
+
const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
|
|
506
|
+
const parentDocumentData = useDocument.useDocument({
|
|
507
|
+
documentId: parentDocumentMetaToUpdate?.documentId,
|
|
508
|
+
model: parentDocumentMetaToUpdate?.model,
|
|
509
|
+
collectionType: parentDocumentMetaToUpdate?.collectionType,
|
|
510
|
+
params: parentDocumentMetaToUpdate?.params
|
|
511
|
+
}, {
|
|
512
|
+
skip: !parentDocumentMetaToUpdate
|
|
513
|
+
});
|
|
514
|
+
const { getInitialFormValues } = useDocument.useDoc();
|
|
482
515
|
const isDocumentPublished = (document?.[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc)=>doc[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== 'modified';
|
|
483
516
|
if (!schema?.options?.draftAndPublish) {
|
|
484
517
|
return null;
|
|
@@ -490,21 +523,39 @@ const transformData = (data)=>{
|
|
|
490
523
|
status: 'published'
|
|
491
524
|
});
|
|
492
525
|
if (errors) {
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
id: 'content-manager.validation.error',
|
|
497
|
-
defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
|
|
498
|
-
})
|
|
526
|
+
const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
|
|
527
|
+
const attribute = schema.attributes[fieldName];
|
|
528
|
+
return attribute?.required && !(canReadFields ?? []).includes(fieldName);
|
|
499
529
|
});
|
|
530
|
+
if (hasUnreadableRequiredField) {
|
|
531
|
+
toggleNotification({
|
|
532
|
+
type: 'danger',
|
|
533
|
+
message: formatMessage({
|
|
534
|
+
id: 'content-manager.validation.error.unreadable-required-field',
|
|
535
|
+
defaultMessage: 'Your current permissions prevent access to certain required fields. Please request access from an administrator to proceed.'
|
|
536
|
+
})
|
|
537
|
+
});
|
|
538
|
+
} else {
|
|
539
|
+
toggleNotification({
|
|
540
|
+
type: 'danger',
|
|
541
|
+
message: formatMessage({
|
|
542
|
+
id: 'content-manager.validation.error',
|
|
543
|
+
defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
|
|
544
|
+
})
|
|
545
|
+
});
|
|
546
|
+
}
|
|
500
547
|
return;
|
|
501
548
|
}
|
|
549
|
+
const { data: data$1 } = data.handleInvisibleAttributes(transformData(formValues), {
|
|
550
|
+
schema,
|
|
551
|
+
components
|
|
552
|
+
});
|
|
502
553
|
const res = await publish({
|
|
503
554
|
collectionType,
|
|
504
555
|
model,
|
|
505
556
|
documentId,
|
|
506
557
|
params: currentDocumentMeta.params
|
|
507
|
-
},
|
|
558
|
+
}, data$1);
|
|
508
559
|
// Reset form if successful
|
|
509
560
|
if ('data' in res) {
|
|
510
561
|
resetForm();
|
|
@@ -512,11 +563,59 @@ const transformData = (data)=>{
|
|
|
512
563
|
if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
|
|
513
564
|
/**
|
|
514
565
|
* TODO: refactor the router so we can just do `../${res.data.documentId}` instead of this.
|
|
515
|
-
*/ if (idToPublish === 'create') {
|
|
566
|
+
*/ if (idToPublish === 'create' && !fromRelationModal) {
|
|
516
567
|
navigate({
|
|
517
568
|
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
|
518
569
|
search: rawQuery
|
|
519
570
|
});
|
|
571
|
+
} else if (fromRelationModal) {
|
|
572
|
+
const newRelation = {
|
|
573
|
+
documentId: res.data.documentId,
|
|
574
|
+
collectionType,
|
|
575
|
+
model,
|
|
576
|
+
params: currentDocumentMeta.params
|
|
577
|
+
};
|
|
578
|
+
/*
|
|
579
|
+
* Update, if needed, the parent relation with the newly published document.
|
|
580
|
+
* Check if in history we have the parent relation otherwise use the
|
|
581
|
+
* rootDocument
|
|
582
|
+
*/ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
|
|
583
|
+
const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
|
|
584
|
+
const metaDocumentToUpdate = documentHistory.at(-2) ?? rootDocumentMeta;
|
|
585
|
+
const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
|
|
586
|
+
try {
|
|
587
|
+
const updateRes = await updateDocumentMutation({
|
|
588
|
+
collectionType: metaDocumentToUpdate.collectionType,
|
|
589
|
+
model: metaDocumentToUpdate.model,
|
|
590
|
+
documentId: metaDocumentToUpdate.collectionType !== collections.SINGLE_TYPES ? metaDocumentToUpdate.documentId : undefined,
|
|
591
|
+
params: metaDocumentToUpdate.params,
|
|
592
|
+
data: dataToUpdate
|
|
593
|
+
});
|
|
594
|
+
if ('error' in updateRes) {
|
|
595
|
+
toggleNotification({
|
|
596
|
+
type: 'danger',
|
|
597
|
+
message: formatAPIError(updateRes.error)
|
|
598
|
+
});
|
|
599
|
+
return;
|
|
600
|
+
}
|
|
601
|
+
} catch (err) {
|
|
602
|
+
toggleNotification({
|
|
603
|
+
type: 'danger',
|
|
604
|
+
message: formatMessage({
|
|
605
|
+
id: 'notification.error',
|
|
606
|
+
defaultMessage: 'An error occurred'
|
|
607
|
+
})
|
|
608
|
+
});
|
|
609
|
+
throw err;
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
dispatch({
|
|
613
|
+
type: 'GO_TO_CREATED_RELATION',
|
|
614
|
+
payload: {
|
|
615
|
+
document: newRelation,
|
|
616
|
+
shouldBypassConfirmation: true
|
|
617
|
+
}
|
|
618
|
+
});
|
|
520
619
|
}
|
|
521
620
|
} else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
522
621
|
setErrors(formatValidationErrors(res.error));
|
|
@@ -590,16 +689,40 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
|
590
689
|
const isCloning = cloneMatch !== null;
|
|
591
690
|
const { formatMessage } = reactIntl.useIntl();
|
|
592
691
|
const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions();
|
|
692
|
+
const { currentDocument: { components } } = useDocumentContext.useDocumentContext('UpdateAction');
|
|
593
693
|
const [{ rawQuery }] = strapiAdmin.useQueryParams();
|
|
594
694
|
const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
|
695
|
+
const { getInitialFormValues } = useDocument.useDoc();
|
|
595
696
|
const isSubmitting = strapiAdmin.useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
|
|
596
697
|
const modified = strapiAdmin.useForm('UpdateAction', ({ modified })=>modified);
|
|
597
698
|
const setSubmitting = strapiAdmin.useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
|
|
699
|
+
const initialValues = strapiAdmin.useForm('UpdateAction', ({ initialValues })=>initialValues);
|
|
598
700
|
const document = strapiAdmin.useForm('UpdateAction', ({ values })=>values);
|
|
599
701
|
const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
|
|
600
702
|
const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
|
|
601
|
-
const resetForm = strapiAdmin.useForm('
|
|
703
|
+
const resetForm = strapiAdmin.useForm('UpdateAction', ({ resetForm })=>resetForm);
|
|
704
|
+
const dispatch = RelationModal.useRelationModal('UpdateAction', (state)=>state.dispatch);
|
|
705
|
+
// need to discriminate if the update is coming from a relation modal or in the edit view
|
|
706
|
+
const relationContext = RelationModal.useRelationModal('UpdateAction', ()=>true, false);
|
|
707
|
+
const relationalModalSchema = RelationModal.useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
|
|
708
|
+
const fieldToConnect = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
|
|
709
|
+
const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
|
|
710
|
+
const documentHistory = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
|
|
711
|
+
const rootDocumentMeta = RelationModal.useRelationModal('UpdateAction', (state)=>state.rootDocumentMeta);
|
|
712
|
+
const fromRelationModal = relationContext != undefined;
|
|
602
713
|
const { currentDocumentMeta } = useDocumentContext.useDocumentContext('UpdateAction');
|
|
714
|
+
const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
|
|
715
|
+
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
716
|
+
const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
|
|
717
|
+
const parentDocumentData = useDocument.useDocument({
|
|
718
|
+
documentId: parentDocumentMetaToUpdate?.documentId,
|
|
719
|
+
model: parentDocumentMetaToUpdate?.model,
|
|
720
|
+
collectionType: parentDocumentMetaToUpdate?.collectionType,
|
|
721
|
+
params: parentDocumentMetaToUpdate?.params
|
|
722
|
+
}, {
|
|
723
|
+
skip: !parentDocumentMetaToUpdate
|
|
724
|
+
});
|
|
725
|
+
const { schema } = useDocument.useDoc();
|
|
603
726
|
const handleUpdate = React__namespace.useCallback(async ()=>{
|
|
604
727
|
setSubmitting(true);
|
|
605
728
|
try {
|
|
@@ -636,30 +759,91 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
|
636
759
|
setErrors(formatValidationErrors(res.error));
|
|
637
760
|
}
|
|
638
761
|
} else if (documentId || collectionType === collections.SINGLE_TYPES) {
|
|
762
|
+
const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
|
|
763
|
+
schema: fromRelationModal ? relationalModalSchema : schema,
|
|
764
|
+
initialValues,
|
|
765
|
+
components
|
|
766
|
+
});
|
|
639
767
|
const res = await update({
|
|
640
768
|
collectionType,
|
|
641
769
|
model,
|
|
642
770
|
documentId,
|
|
643
771
|
params: currentDocumentMeta.params
|
|
644
|
-
},
|
|
772
|
+
}, data$1);
|
|
645
773
|
if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
646
774
|
setErrors(formatValidationErrors(res.error));
|
|
647
775
|
} else {
|
|
648
776
|
resetForm();
|
|
649
777
|
}
|
|
650
778
|
} else {
|
|
779
|
+
const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
|
|
780
|
+
schema: fromRelationModal ? relationalModalSchema : schema,
|
|
781
|
+
initialValues,
|
|
782
|
+
components
|
|
783
|
+
});
|
|
651
784
|
const res = await create({
|
|
652
785
|
model,
|
|
653
786
|
params: currentDocumentMeta.params
|
|
654
|
-
},
|
|
787
|
+
}, data$1);
|
|
655
788
|
if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
789
|
+
if (fromRelationModal) {
|
|
790
|
+
const createdRelation = {
|
|
791
|
+
documentId: res.data.documentId,
|
|
792
|
+
collectionType,
|
|
793
|
+
model,
|
|
794
|
+
params: currentDocumentMeta.params
|
|
795
|
+
};
|
|
796
|
+
/*
|
|
797
|
+
* Update, if needed, the parent relation with the newly published document.
|
|
798
|
+
* Check if in history we have the parent relation otherwise use the
|
|
799
|
+
* rootDocument
|
|
800
|
+
*/ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
|
|
801
|
+
const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
|
|
802
|
+
const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
|
|
803
|
+
try {
|
|
804
|
+
const updateRes = await updateDocumentMutation({
|
|
805
|
+
collectionType: parentDocumentMetaToUpdate.collectionType,
|
|
806
|
+
model: parentDocumentMetaToUpdate.model,
|
|
807
|
+
documentId: parentDocumentMetaToUpdate.collectionType !== collections.SINGLE_TYPES ? parentDocumentMetaToUpdate.documentId : undefined,
|
|
808
|
+
params: parentDocumentMetaToUpdate.params,
|
|
809
|
+
data: {
|
|
810
|
+
...dataToUpdate
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
if ('error' in updateRes) {
|
|
814
|
+
toggleNotification({
|
|
815
|
+
type: 'danger',
|
|
816
|
+
message: formatAPIError(updateRes.error)
|
|
817
|
+
});
|
|
818
|
+
return;
|
|
819
|
+
}
|
|
820
|
+
} catch (err) {
|
|
821
|
+
toggleNotification({
|
|
822
|
+
type: 'danger',
|
|
823
|
+
message: formatMessage({
|
|
824
|
+
id: 'notification.error',
|
|
825
|
+
defaultMessage: 'An error occurred'
|
|
826
|
+
})
|
|
827
|
+
});
|
|
828
|
+
throw err;
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
dispatch({
|
|
832
|
+
type: 'GO_TO_CREATED_RELATION',
|
|
833
|
+
payload: {
|
|
834
|
+
document: createdRelation,
|
|
835
|
+
shouldBypassConfirmation: true
|
|
836
|
+
}
|
|
837
|
+
});
|
|
838
|
+
} else {
|
|
839
|
+
navigate({
|
|
840
|
+
pathname: `../${res.data.documentId}`,
|
|
841
|
+
search: rawQuery
|
|
842
|
+
}, {
|
|
843
|
+
replace: true,
|
|
844
|
+
relative: 'path'
|
|
845
|
+
});
|
|
846
|
+
}
|
|
663
847
|
} else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
664
848
|
setErrors(formatValidationErrors(res.error));
|
|
665
849
|
}
|
|
@@ -671,27 +855,41 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
|
671
855
|
}
|
|
672
856
|
}
|
|
673
857
|
}, [
|
|
858
|
+
setSubmitting,
|
|
859
|
+
modified,
|
|
860
|
+
validate,
|
|
861
|
+
isCloning,
|
|
862
|
+
documentId,
|
|
863
|
+
collectionType,
|
|
864
|
+
toggleNotification,
|
|
865
|
+
formatMessage,
|
|
674
866
|
clone,
|
|
867
|
+
model,
|
|
675
868
|
cloneMatch?.params.origin,
|
|
676
|
-
collectionType,
|
|
677
|
-
create,
|
|
678
869
|
currentDocumentMeta.params,
|
|
679
870
|
document,
|
|
680
|
-
documentId,
|
|
681
|
-
formatMessage,
|
|
682
|
-
formatValidationErrors,
|
|
683
|
-
isCloning,
|
|
684
|
-
model,
|
|
685
|
-
modified,
|
|
686
871
|
navigate,
|
|
687
872
|
rawQuery,
|
|
688
|
-
resetForm,
|
|
689
873
|
setErrors,
|
|
690
|
-
|
|
691
|
-
toggleNotification,
|
|
874
|
+
formatValidationErrors,
|
|
692
875
|
update,
|
|
693
|
-
|
|
694
|
-
|
|
876
|
+
resetForm,
|
|
877
|
+
create,
|
|
878
|
+
fromRelationModal,
|
|
879
|
+
fieldToConnect,
|
|
880
|
+
documentHistory,
|
|
881
|
+
parentDocumentMetaToUpdate,
|
|
882
|
+
dispatch,
|
|
883
|
+
getInitialFormValues,
|
|
884
|
+
parentDocumentData,
|
|
885
|
+
fieldToConnectUID,
|
|
886
|
+
updateDocumentMutation,
|
|
887
|
+
formatAPIError,
|
|
888
|
+
onPreview,
|
|
889
|
+
initialValues,
|
|
890
|
+
schema,
|
|
891
|
+
components,
|
|
892
|
+
relationalModalSchema
|
|
695
893
|
]);
|
|
696
894
|
// Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
|
|
697
895
|
React__namespace.useEffect(()=>{
|