@strapi/content-manager 0.0.0-next.3dfa46a688dac778822b4cb229acfc1ce41e71ed → 0.0.0-next.3e666b1ad96ac2e82634e548e10ea7c7797a7474
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 +161 -0
- package/dist/admin/components/Widgets.js.map +1 -0
- package/dist/admin/components/Widgets.mjs +158 -0
- package/dist/admin/components/Widgets.mjs.map +1 -0
- package/dist/admin/content-manager.js.map +1 -1
- package/dist/admin/content-manager.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/history/pages/History.js +1 -9
- package/dist/admin/history/pages/History.js.map +1 -1
- package/dist/admin/history/pages/History.mjs +1 -9
- package/dist/admin/history/pages/History.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentActions.js +20 -5
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +20 -5
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentContext.js +57 -0
- package/dist/admin/hooks/useDocumentContext.js.map +1 -0
- package/dist/admin/hooks/useDocumentContext.mjs +36 -0
- package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
- package/dist/admin/index.js +42 -5
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +42 -3
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +100 -91
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +102 -93
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +288 -104
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +294 -110
- 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 +61 -26
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
- 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/BlocksInput/EditorLayout.js +46 -95
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +14 -3
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +15 -4
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +17 -4
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +18 -5
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +23 -21
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +25 -23
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +506 -345
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +506 -347
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +174 -68
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +178 -72
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.js +11 -9
- package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +11 -9
- 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/EditorLayout.js +50 -97
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.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/components/InputRenderer.js +3 -10
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs +3 -10
- package/dist/admin/pages/EditView/components/InputRenderer.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 +77 -0
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +78 -1
- 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/preview/components/PreviewHeader.js +3 -6
- package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
- package/dist/admin/preview/components/PreviewHeader.mjs +3 -6
- package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
- package/dist/admin/preview/pages/Preview.js +94 -102
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/pages/Preview.mjs +94 -102
- package/dist/admin/preview/pages/Preview.mjs.map +1 -1
- package/dist/admin/services/documents.js +2 -2
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +2 -2
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/services/homepage.js +30 -0
- package/dist/admin/services/homepage.js.map +1 -0
- package/dist/admin/services/homepage.mjs +28 -0
- package/dist/admin/services/homepage.mjs.map +1 -0
- package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
- package/dist/admin/src/components/Widgets.d.ts +3 -0
- package/dist/admin/src/content-manager.d.ts +0 -3
- package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
- package/dist/admin/src/history/pages/History.d.ts +1 -1
- package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
- package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +73 -7
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
- 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/components/InputRenderer.d.ts +1 -1
- package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
- package/dist/admin/src/preview/pages/Preview.d.ts +2 -1
- package/dist/admin/src/services/documents.d.ts +7 -1
- package/dist/admin/src/services/homepage.d.ts +5 -0
- package/dist/admin/src/utils/validation.d.ts +1 -0
- package/dist/admin/translations/en.json.js +3 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +3 -1
- package/dist/admin/translations/en.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/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 +57 -0
- package/dist/server/homepage/controllers/homepage.js.map +1 -0
- package/dist/server/homepage/controllers/homepage.mjs +36 -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 +25 -0
- package/dist/server/homepage/routes/homepage.js.map +1 -0
- package/dist/server/homepage/routes/homepage.mjs +23 -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 +157 -0
- package/dist/server/homepage/services/homepage.js.map +1 -0
- package/dist/server/homepage/services/homepage.mjs +155 -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 +7 -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 +16 -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 +11 -0
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/services/index.d.ts +9 -0
- package/dist/server/src/homepage/services/index.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +8 -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 +7 -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 +25 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -0
- package/package.json +12 -9
- package/dist/admin/features/DocumentContext.js +0 -71
- package/dist/admin/features/DocumentContext.js.map +0 -1
- package/dist/admin/features/DocumentContext.mjs +0 -49
- package/dist/admin/features/DocumentContext.mjs.map +0 -1
- package/dist/admin/src/features/DocumentContext.d.ts +0 -53
|
@@ -6,19 +6,24 @@ 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
|
-
var DocumentContext = require('../../../features/DocumentContext.js');
|
|
15
16
|
var DocumentRBAC = require('../../../features/DocumentRBAC.js');
|
|
16
17
|
var useDocument = require('../../../hooks/useDocument.js');
|
|
17
18
|
var useDocumentActions = require('../../../hooks/useDocumentActions.js');
|
|
19
|
+
var useDocumentContext = require('../../../hooks/useDocumentContext.js');
|
|
20
|
+
var Preview = require('../../../preview/pages/Preview.js');
|
|
18
21
|
var router = require('../../../router.js');
|
|
19
22
|
var documents = require('../../../services/documents.js');
|
|
20
23
|
var api = require('../../../utils/api.js');
|
|
21
24
|
var translations = require('../../../utils/translations.js');
|
|
25
|
+
var data = require('../utils/data.js');
|
|
26
|
+
var RelationModal = require('./FormInputs/Relations/RelationModal.js');
|
|
22
27
|
|
|
23
28
|
function _interopNamespaceDefault(e) {
|
|
24
29
|
var n = Object.create(null);
|
|
@@ -39,6 +44,38 @@ function _interopNamespaceDefault(e) {
|
|
|
39
44
|
|
|
40
45
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
41
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
|
+
};
|
|
42
79
|
const DocumentActions = ({ actions })=>{
|
|
43
80
|
const { formatMessage } = reactIntl.useIntl();
|
|
44
81
|
const [primaryAction, secondaryAction, ...restActions] = actions.filter((action)=>{
|
|
@@ -137,11 +174,6 @@ const DocumentActionButton = (action)=>{
|
|
|
137
174
|
]
|
|
138
175
|
});
|
|
139
176
|
};
|
|
140
|
-
const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
|
|
141
|
-
&:hover {
|
|
142
|
-
background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
|
|
143
|
-
}
|
|
144
|
-
`;
|
|
145
177
|
const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
|
|
146
178
|
const [isOpen, setIsOpen] = React__namespace.useState(false);
|
|
147
179
|
const [dialogId, setDialogId] = React__namespace.useState(null);
|
|
@@ -203,27 +235,19 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
|
|
|
203
235
|
popoverPlacement: "bottom-end",
|
|
204
236
|
children: [
|
|
205
237
|
actions.map((action)=>{
|
|
206
|
-
return /*#__PURE__*/ jsxRuntime.jsx(
|
|
238
|
+
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
|
|
207
239
|
disabled: action.disabled,
|
|
208
240
|
/* @ts-expect-error – TODO: this is an error in the DS where it is most likely a synthetic event, not regular. */ onSelect: handleClick(action),
|
|
209
241
|
display: "block",
|
|
210
|
-
|
|
211
|
-
|
|
242
|
+
variant: action.variant === 'danger' ? action.variant : 'default',
|
|
243
|
+
startIcon: action.icon,
|
|
212
244
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
213
245
|
justifyContent: "space-between",
|
|
214
246
|
gap: 4,
|
|
215
|
-
children: /*#__PURE__*/ jsxRuntime.
|
|
216
|
-
color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
|
|
247
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
217
248
|
gap: 2,
|
|
218
249
|
tag: "span",
|
|
219
|
-
children:
|
|
220
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
221
|
-
tag: "span",
|
|
222
|
-
color: !action.disabled ? convertActionVariantToIconColor(action.variant) : 'inherit',
|
|
223
|
-
children: action.icon
|
|
224
|
-
}),
|
|
225
|
-
action.label
|
|
226
|
-
]
|
|
250
|
+
children: action.label
|
|
227
251
|
})
|
|
228
252
|
})
|
|
229
253
|
}, action.id);
|
|
@@ -251,30 +275,6 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
|
|
|
251
275
|
]
|
|
252
276
|
});
|
|
253
277
|
};
|
|
254
|
-
const convertActionVariantToColor = (variant = 'secondary')=>{
|
|
255
|
-
switch(variant){
|
|
256
|
-
case 'danger':
|
|
257
|
-
return 'danger600';
|
|
258
|
-
case 'secondary':
|
|
259
|
-
return undefined;
|
|
260
|
-
case 'success':
|
|
261
|
-
return 'success600';
|
|
262
|
-
default:
|
|
263
|
-
return 'primary600';
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
const convertActionVariantToIconColor = (variant = 'secondary')=>{
|
|
267
|
-
switch(variant){
|
|
268
|
-
case 'danger':
|
|
269
|
-
return 'danger600';
|
|
270
|
-
case 'secondary':
|
|
271
|
-
return 'neutral500';
|
|
272
|
-
case 'success':
|
|
273
|
-
return 'success600';
|
|
274
|
-
default:
|
|
275
|
-
return 'primary600';
|
|
276
|
-
}
|
|
277
|
-
};
|
|
278
278
|
const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
|
|
279
279
|
const { formatMessage } = reactIntl.useIntl();
|
|
280
280
|
const handleClose = async ()=>{
|
|
@@ -371,8 +371,8 @@ const transformData = (data)=>{
|
|
|
371
371
|
};
|
|
372
372
|
/* -------------------------------------------------------------------------------------------------
|
|
373
373
|
* DocumentActionComponents
|
|
374
|
-
* -----------------------------------------------------------------------------------------------*/ const PublishAction = ({ activeTab, documentId, model, collectionType, meta, document
|
|
375
|
-
const schema =
|
|
374
|
+
* -----------------------------------------------------------------------------------------------*/ const PublishAction = ({ activeTab, documentId, model, collectionType, meta, document })=>{
|
|
375
|
+
const { currentDocument: { schema } } = useDocumentContext.useDocumentContext('PublishAction');
|
|
376
376
|
const navigate = reactRouterDom.useNavigate();
|
|
377
377
|
const { toggleNotification } = strapiAdmin.useNotification();
|
|
378
378
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
|
@@ -380,23 +380,36 @@ const transformData = (data)=>{
|
|
|
380
380
|
const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
|
|
381
381
|
const { id } = reactRouterDom.useParams();
|
|
382
382
|
const { formatMessage } = reactIntl.useIntl();
|
|
383
|
-
const canPublish = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish })=>
|
|
384
|
-
|
|
383
|
+
const { canPublish, canReadFields } = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
|
|
384
|
+
canPublish,
|
|
385
|
+
canReadFields
|
|
386
|
+
}));
|
|
387
|
+
const { publish, isLoading } = useDocumentActions.useDocumentActions();
|
|
388
|
+
const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
|
385
389
|
const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = documents.useGetDraftRelationCountQuery();
|
|
386
390
|
const [localCountOfDraftRelations, setLocalCountOfDraftRelations] = React__namespace.useState(0);
|
|
387
391
|
const [serverCountOfDraftRelations, setServerCountOfDraftRelations] = React__namespace.useState(0);
|
|
388
|
-
const [{
|
|
389
|
-
const params = React__namespace.useMemo(()=>api.buildValidParams(query), [
|
|
390
|
-
query
|
|
391
|
-
]);
|
|
392
|
+
const [{ rawQuery }] = strapiAdmin.useQueryParams();
|
|
392
393
|
const modified = strapiAdmin.useForm('PublishAction', ({ modified })=>modified);
|
|
393
394
|
const setSubmitting = strapiAdmin.useForm('PublishAction', ({ setSubmitting })=>setSubmitting);
|
|
394
395
|
const isSubmitting = strapiAdmin.useForm('PublishAction', ({ isSubmitting })=>isSubmitting);
|
|
395
396
|
const validate = strapiAdmin.useForm('PublishAction', (state)=>state.validate);
|
|
396
397
|
const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
|
|
397
398
|
const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
|
|
398
|
-
const
|
|
399
|
-
const
|
|
399
|
+
const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
|
|
400
|
+
const { currentDocument: { components } } = useDocumentContext.useDocumentContext('PublishAction');
|
|
401
|
+
// need to discriminate if the publish is coming from a relation modal or in the edit view
|
|
402
|
+
const relationContext = RelationModal.useRelationModal('PublishAction', ()=>true, false);
|
|
403
|
+
const fromRelationModal = relationContext != undefined;
|
|
404
|
+
const dispatch = RelationModal.useRelationModal('PublishAction', (state)=>state.dispatch);
|
|
405
|
+
const fieldToConnect = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnect, false);
|
|
406
|
+
const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
|
|
407
|
+
const documentHistory = RelationModal.useRelationModal('PublishAction', (state)=>state.state.documentHistory, false);
|
|
408
|
+
const rootDocumentMeta = RelationModal.useRelationModal('PublishAction', (state)=>state.rootDocumentMeta);
|
|
409
|
+
const { currentDocumentMeta } = useDocumentContext.useDocumentContext('PublishAction');
|
|
410
|
+
const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
|
|
411
|
+
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
412
|
+
const idToPublish = currentDocumentMeta.documentId || id;
|
|
400
413
|
React__namespace.useEffect(()=>{
|
|
401
414
|
if (isErrorDraftRelations) {
|
|
402
415
|
toggleNotification({
|
|
@@ -460,7 +473,7 @@ const transformData = (data)=>{
|
|
|
460
473
|
collectionType,
|
|
461
474
|
model,
|
|
462
475
|
documentId,
|
|
463
|
-
params
|
|
476
|
+
params: currentDocumentMeta.params
|
|
464
477
|
});
|
|
465
478
|
if (error) {
|
|
466
479
|
throw error;
|
|
@@ -477,8 +490,18 @@ const transformData = (data)=>{
|
|
|
477
490
|
countDraftRelations,
|
|
478
491
|
collectionType,
|
|
479
492
|
model,
|
|
480
|
-
params
|
|
493
|
+
currentDocumentMeta.params
|
|
481
494
|
]);
|
|
495
|
+
const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
|
|
496
|
+
const parentDocumentData = useDocument.useDocument({
|
|
497
|
+
documentId: parentDocumentMetaToUpdate?.documentId,
|
|
498
|
+
model: parentDocumentMetaToUpdate?.model,
|
|
499
|
+
collectionType: parentDocumentMetaToUpdate?.collectionType,
|
|
500
|
+
params: parentDocumentMetaToUpdate?.params
|
|
501
|
+
}, {
|
|
502
|
+
skip: !parentDocumentMetaToUpdate
|
|
503
|
+
});
|
|
504
|
+
const { getInitialFormValues } = useDocument.useDoc();
|
|
482
505
|
const isDocumentPublished = (document?.[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc)=>doc[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== 'modified';
|
|
483
506
|
if (!schema?.options?.draftAndPublish) {
|
|
484
507
|
return null;
|
|
@@ -490,30 +513,99 @@ const transformData = (data)=>{
|
|
|
490
513
|
status: 'published'
|
|
491
514
|
});
|
|
492
515
|
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
|
-
})
|
|
516
|
+
const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
|
|
517
|
+
const attribute = schema.attributes[fieldName];
|
|
518
|
+
return attribute?.required && !(canReadFields ?? []).includes(fieldName);
|
|
499
519
|
});
|
|
520
|
+
if (hasUnreadableRequiredField) {
|
|
521
|
+
toggleNotification({
|
|
522
|
+
type: 'danger',
|
|
523
|
+
message: formatMessage({
|
|
524
|
+
id: 'content-manager.validation.error.unreadable-required-field',
|
|
525
|
+
defaultMessage: 'Your current permissions prevent access to certain required fields. Please request access from an administrator to proceed.'
|
|
526
|
+
})
|
|
527
|
+
});
|
|
528
|
+
} else {
|
|
529
|
+
toggleNotification({
|
|
530
|
+
type: 'danger',
|
|
531
|
+
message: formatMessage({
|
|
532
|
+
id: 'content-manager.validation.error',
|
|
533
|
+
defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
|
|
534
|
+
})
|
|
535
|
+
});
|
|
536
|
+
}
|
|
500
537
|
return;
|
|
501
538
|
}
|
|
502
|
-
const
|
|
539
|
+
const { data: data$1 } = data.handleInvisibleAttributes(transformData(formValues), {
|
|
540
|
+
schema,
|
|
541
|
+
components
|
|
542
|
+
});
|
|
503
543
|
const res = await publish({
|
|
504
544
|
collectionType,
|
|
505
545
|
model,
|
|
506
546
|
documentId,
|
|
507
|
-
params:
|
|
508
|
-
},
|
|
547
|
+
params: currentDocumentMeta.params
|
|
548
|
+
}, data$1);
|
|
549
|
+
// Reset form if successful
|
|
550
|
+
if ('data' in res) {
|
|
551
|
+
resetForm();
|
|
552
|
+
}
|
|
509
553
|
if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
|
|
510
554
|
/**
|
|
511
555
|
* TODO: refactor the router so we can just do `../${res.data.documentId}` instead of this.
|
|
512
|
-
*/ if (
|
|
556
|
+
*/ if (idToPublish === 'create' && !fromRelationModal) {
|
|
513
557
|
navigate({
|
|
514
558
|
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
|
515
559
|
search: rawQuery
|
|
516
560
|
});
|
|
561
|
+
} else if (fromRelationModal) {
|
|
562
|
+
const newRelation = {
|
|
563
|
+
documentId: res.data.documentId,
|
|
564
|
+
collectionType,
|
|
565
|
+
model,
|
|
566
|
+
params: currentDocumentMeta.params
|
|
567
|
+
};
|
|
568
|
+
/*
|
|
569
|
+
* Update, if needed, the parent relation with the newly published document.
|
|
570
|
+
* Check if in history we have the parent relation otherwise use the
|
|
571
|
+
* rootDocument
|
|
572
|
+
*/ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
|
|
573
|
+
const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
|
|
574
|
+
const metaDocumentToUpdate = documentHistory.at(-2) ?? rootDocumentMeta;
|
|
575
|
+
const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
|
|
576
|
+
try {
|
|
577
|
+
const updateRes = await updateDocumentMutation({
|
|
578
|
+
collectionType: metaDocumentToUpdate.collectionType,
|
|
579
|
+
model: metaDocumentToUpdate.model,
|
|
580
|
+
documentId: metaDocumentToUpdate.collectionType !== collections.SINGLE_TYPES ? metaDocumentToUpdate.documentId : undefined,
|
|
581
|
+
params: metaDocumentToUpdate.params,
|
|
582
|
+
data: dataToUpdate
|
|
583
|
+
});
|
|
584
|
+
if ('error' in updateRes) {
|
|
585
|
+
toggleNotification({
|
|
586
|
+
type: 'danger',
|
|
587
|
+
message: formatAPIError(updateRes.error)
|
|
588
|
+
});
|
|
589
|
+
return;
|
|
590
|
+
}
|
|
591
|
+
} catch (err) {
|
|
592
|
+
toggleNotification({
|
|
593
|
+
type: 'danger',
|
|
594
|
+
message: formatMessage({
|
|
595
|
+
id: 'notification.error',
|
|
596
|
+
defaultMessage: 'An error occurred'
|
|
597
|
+
})
|
|
598
|
+
});
|
|
599
|
+
throw err;
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
dispatch({
|
|
603
|
+
type: 'GO_TO_CREATED_RELATION',
|
|
604
|
+
payload: {
|
|
605
|
+
document: newRelation,
|
|
606
|
+
shouldBypassConfirmation: true
|
|
607
|
+
}
|
|
608
|
+
});
|
|
517
609
|
}
|
|
518
610
|
} else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
519
611
|
setErrors(formatValidationErrors(res.error));
|
|
@@ -579,27 +671,48 @@ PublishAction.position = [
|
|
|
579
671
|
'preview',
|
|
580
672
|
'relation-modal'
|
|
581
673
|
];
|
|
582
|
-
const UpdateAction = ({ activeTab, documentId, model, collectionType
|
|
674
|
+
const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
583
675
|
const navigate = reactRouterDom.useNavigate();
|
|
584
676
|
const { toggleNotification } = strapiAdmin.useNotification();
|
|
585
677
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
|
586
678
|
const cloneMatch = reactRouterDom.useMatch(router.CLONE_PATH);
|
|
587
679
|
const isCloning = cloneMatch !== null;
|
|
588
680
|
const { formatMessage } = reactIntl.useIntl();
|
|
589
|
-
const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions(
|
|
590
|
-
const
|
|
591
|
-
const
|
|
592
|
-
|
|
593
|
-
|
|
681
|
+
const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions();
|
|
682
|
+
const { currentDocument: { components } } = useDocumentContext.useDocumentContext('UpdateAction');
|
|
683
|
+
const [{ rawQuery }] = strapiAdmin.useQueryParams();
|
|
684
|
+
const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
|
685
|
+
const { getInitialFormValues } = useDocument.useDoc();
|
|
594
686
|
const isSubmitting = strapiAdmin.useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
|
|
595
687
|
const modified = strapiAdmin.useForm('UpdateAction', ({ modified })=>modified);
|
|
596
688
|
const setSubmitting = strapiAdmin.useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
|
|
689
|
+
const initialValues = strapiAdmin.useForm('UpdateAction', ({ initialValues })=>initialValues);
|
|
597
690
|
const document = strapiAdmin.useForm('UpdateAction', ({ values })=>values);
|
|
598
691
|
const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
|
|
599
692
|
const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
|
|
600
|
-
const resetForm = strapiAdmin.useForm('
|
|
601
|
-
const
|
|
602
|
-
|
|
693
|
+
const resetForm = strapiAdmin.useForm('UpdateAction', ({ resetForm })=>resetForm);
|
|
694
|
+
const dispatch = RelationModal.useRelationModal('UpdateAction', (state)=>state.dispatch);
|
|
695
|
+
// need to discriminate if the update is coming from a relation modal or in the edit view
|
|
696
|
+
const relationContext = RelationModal.useRelationModal('UpdateAction', ()=>true, false);
|
|
697
|
+
const relationalModalSchema = RelationModal.useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
|
|
698
|
+
const fieldToConnect = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
|
|
699
|
+
const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
|
|
700
|
+
const documentHistory = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
|
|
701
|
+
const rootDocumentMeta = RelationModal.useRelationModal('UpdateAction', (state)=>state.rootDocumentMeta);
|
|
702
|
+
const fromRelationModal = relationContext != undefined;
|
|
703
|
+
const { currentDocumentMeta } = useDocumentContext.useDocumentContext('UpdateAction');
|
|
704
|
+
const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
|
|
705
|
+
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
706
|
+
const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
|
|
707
|
+
const parentDocumentData = useDocument.useDocument({
|
|
708
|
+
documentId: parentDocumentMetaToUpdate?.documentId,
|
|
709
|
+
model: parentDocumentMetaToUpdate?.model,
|
|
710
|
+
collectionType: parentDocumentMetaToUpdate?.collectionType,
|
|
711
|
+
params: parentDocumentMetaToUpdate?.params
|
|
712
|
+
}, {
|
|
713
|
+
skip: !parentDocumentMetaToUpdate
|
|
714
|
+
});
|
|
715
|
+
const { schema } = useDocument.useDoc();
|
|
603
716
|
const handleUpdate = React__namespace.useCallback(async ()=>{
|
|
604
717
|
setSubmitting(true);
|
|
605
718
|
try {
|
|
@@ -623,7 +736,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview,
|
|
|
623
736
|
const res = await clone({
|
|
624
737
|
model,
|
|
625
738
|
documentId: cloneMatch.params.origin,
|
|
626
|
-
params
|
|
739
|
+
params: currentDocumentMeta.params
|
|
627
740
|
}, transformData(document));
|
|
628
741
|
if ('data' in res) {
|
|
629
742
|
navigate({
|
|
@@ -636,31 +749,91 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview,
|
|
|
636
749
|
setErrors(formatValidationErrors(res.error));
|
|
637
750
|
}
|
|
638
751
|
} else if (documentId || collectionType === collections.SINGLE_TYPES) {
|
|
639
|
-
const
|
|
752
|
+
const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
|
|
753
|
+
schema: fromRelationModal ? relationalModalSchema : schema,
|
|
754
|
+
initialValues,
|
|
755
|
+
components
|
|
756
|
+
});
|
|
640
757
|
const res = await update({
|
|
641
758
|
collectionType,
|
|
642
759
|
model,
|
|
643
760
|
documentId,
|
|
644
|
-
params:
|
|
645
|
-
},
|
|
761
|
+
params: currentDocumentMeta.params
|
|
762
|
+
}, data$1);
|
|
646
763
|
if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
647
764
|
setErrors(formatValidationErrors(res.error));
|
|
648
765
|
} else {
|
|
649
766
|
resetForm();
|
|
650
767
|
}
|
|
651
768
|
} else {
|
|
769
|
+
const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
|
|
770
|
+
schema: fromRelationModal ? relationalModalSchema : schema,
|
|
771
|
+
initialValues,
|
|
772
|
+
components
|
|
773
|
+
});
|
|
652
774
|
const res = await create({
|
|
653
775
|
model,
|
|
654
|
-
params
|
|
655
|
-
},
|
|
776
|
+
params: currentDocumentMeta.params
|
|
777
|
+
}, data$1);
|
|
656
778
|
if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
779
|
+
if (fromRelationModal) {
|
|
780
|
+
const createdRelation = {
|
|
781
|
+
documentId: res.data.documentId,
|
|
782
|
+
collectionType,
|
|
783
|
+
model,
|
|
784
|
+
params: currentDocumentMeta.params
|
|
785
|
+
};
|
|
786
|
+
/*
|
|
787
|
+
* Update, if needed, the parent relation with the newly published document.
|
|
788
|
+
* Check if in history we have the parent relation otherwise use the
|
|
789
|
+
* rootDocument
|
|
790
|
+
*/ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
|
|
791
|
+
const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
|
|
792
|
+
const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
|
|
793
|
+
try {
|
|
794
|
+
const updateRes = await updateDocumentMutation({
|
|
795
|
+
collectionType: parentDocumentMetaToUpdate.collectionType,
|
|
796
|
+
model: parentDocumentMetaToUpdate.model,
|
|
797
|
+
documentId: parentDocumentMetaToUpdate.collectionType !== collections.SINGLE_TYPES ? parentDocumentMetaToUpdate.documentId : undefined,
|
|
798
|
+
params: parentDocumentMetaToUpdate.params,
|
|
799
|
+
data: {
|
|
800
|
+
...dataToUpdate
|
|
801
|
+
}
|
|
802
|
+
});
|
|
803
|
+
if ('error' in updateRes) {
|
|
804
|
+
toggleNotification({
|
|
805
|
+
type: 'danger',
|
|
806
|
+
message: formatAPIError(updateRes.error)
|
|
807
|
+
});
|
|
808
|
+
return;
|
|
809
|
+
}
|
|
810
|
+
} catch (err) {
|
|
811
|
+
toggleNotification({
|
|
812
|
+
type: 'danger',
|
|
813
|
+
message: formatMessage({
|
|
814
|
+
id: 'notification.error',
|
|
815
|
+
defaultMessage: 'An error occurred'
|
|
816
|
+
})
|
|
817
|
+
});
|
|
818
|
+
throw err;
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
dispatch({
|
|
822
|
+
type: 'GO_TO_CREATED_RELATION',
|
|
823
|
+
payload: {
|
|
824
|
+
document: createdRelation,
|
|
825
|
+
shouldBypassConfirmation: true
|
|
826
|
+
}
|
|
827
|
+
});
|
|
828
|
+
} else {
|
|
829
|
+
navigate({
|
|
830
|
+
pathname: `../${res.data.documentId}`,
|
|
831
|
+
search: rawQuery
|
|
832
|
+
}, {
|
|
833
|
+
replace: true,
|
|
834
|
+
relative: 'path'
|
|
835
|
+
});
|
|
836
|
+
}
|
|
664
837
|
} else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
665
838
|
setErrors(formatValidationErrors(res.error));
|
|
666
839
|
}
|
|
@@ -672,30 +845,41 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview,
|
|
|
672
845
|
}
|
|
673
846
|
}
|
|
674
847
|
}, [
|
|
848
|
+
setSubmitting,
|
|
849
|
+
modified,
|
|
850
|
+
validate,
|
|
851
|
+
isCloning,
|
|
852
|
+
documentId,
|
|
853
|
+
collectionType,
|
|
854
|
+
toggleNotification,
|
|
855
|
+
formatMessage,
|
|
675
856
|
clone,
|
|
857
|
+
model,
|
|
676
858
|
cloneMatch?.params.origin,
|
|
677
|
-
collectionType,
|
|
678
|
-
create,
|
|
679
|
-
currentDocumentMeta.documentId,
|
|
680
859
|
currentDocumentMeta.params,
|
|
681
860
|
document,
|
|
682
|
-
documentId,
|
|
683
|
-
formatMessage,
|
|
684
|
-
formatValidationErrors,
|
|
685
|
-
isCloning,
|
|
686
|
-
model,
|
|
687
|
-
modified,
|
|
688
861
|
navigate,
|
|
689
|
-
onPreview,
|
|
690
|
-
params,
|
|
691
862
|
rawQuery,
|
|
692
|
-
resetForm,
|
|
693
|
-
rootDocumentMeta.documentId,
|
|
694
863
|
setErrors,
|
|
695
|
-
|
|
696
|
-
toggleNotification,
|
|
864
|
+
formatValidationErrors,
|
|
697
865
|
update,
|
|
698
|
-
|
|
866
|
+
resetForm,
|
|
867
|
+
create,
|
|
868
|
+
fromRelationModal,
|
|
869
|
+
fieldToConnect,
|
|
870
|
+
documentHistory,
|
|
871
|
+
parentDocumentMetaToUpdate,
|
|
872
|
+
dispatch,
|
|
873
|
+
getInitialFormValues,
|
|
874
|
+
parentDocumentData,
|
|
875
|
+
fieldToConnectUID,
|
|
876
|
+
updateDocumentMutation,
|
|
877
|
+
formatAPIError,
|
|
878
|
+
onPreview,
|
|
879
|
+
initialValues,
|
|
880
|
+
schema,
|
|
881
|
+
components,
|
|
882
|
+
relationalModalSchema
|
|
699
883
|
]);
|
|
700
884
|
// Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
|
|
701
885
|
React__namespace.useEffect(()=>{
|