@strapi/content-manager 0.0.0-experimental.e100737b0ed96d0d80a5c6f4925c7374e63a342a → 0.0.0-experimental.e109058915a8a666fe344c3d221c5271225a1080
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 -89
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +102 -91
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +309 -120
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +316 -127
- 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 +86 -0
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +88 -2
- 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/api.js +2 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs +2 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/services/documents.js +4 -3
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +4 -3
- 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/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 +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/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 +5 -0
- 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 +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/fr.json.js +6 -1
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +6 -1
- 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 +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)=>{
|
|
@@ -59,23 +96,33 @@ const DocumentActions = ({ actions })=>{
|
|
|
59
96
|
alignItems: "stretch",
|
|
60
97
|
width: "100%",
|
|
61
98
|
children: [
|
|
62
|
-
/*#__PURE__*/ jsxRuntime.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
+
})
|
|
77
119
|
}),
|
|
78
|
-
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, {
|
|
79
126
|
...secondaryAction,
|
|
80
127
|
variant: secondaryAction.variant || 'secondary'
|
|
81
128
|
}) : null
|
|
@@ -137,11 +184,6 @@ const DocumentActionButton = (action)=>{
|
|
|
137
184
|
]
|
|
138
185
|
});
|
|
139
186
|
};
|
|
140
|
-
const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
|
|
141
|
-
&:hover {
|
|
142
|
-
background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
|
|
143
|
-
}
|
|
144
|
-
`;
|
|
145
187
|
const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
|
|
146
188
|
const [isOpen, setIsOpen] = React__namespace.useState(false);
|
|
147
189
|
const [dialogId, setDialogId] = React__namespace.useState(null);
|
|
@@ -203,27 +245,19 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
|
|
|
203
245
|
popoverPlacement: "bottom-end",
|
|
204
246
|
children: [
|
|
205
247
|
actions.map((action)=>{
|
|
206
|
-
return /*#__PURE__*/ jsxRuntime.jsx(
|
|
248
|
+
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
|
|
207
249
|
disabled: action.disabled,
|
|
208
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),
|
|
209
251
|
display: "block",
|
|
210
|
-
|
|
211
|
-
|
|
252
|
+
variant: action.variant === 'danger' ? action.variant : 'default',
|
|
253
|
+
startIcon: action.icon,
|
|
212
254
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
213
255
|
justifyContent: "space-between",
|
|
214
256
|
gap: 4,
|
|
215
|
-
children: /*#__PURE__*/ jsxRuntime.
|
|
216
|
-
color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
|
|
257
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
217
258
|
gap: 2,
|
|
218
259
|
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
|
-
]
|
|
260
|
+
children: action.label
|
|
227
261
|
})
|
|
228
262
|
})
|
|
229
263
|
}, action.id);
|
|
@@ -251,30 +285,6 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
|
|
|
251
285
|
]
|
|
252
286
|
});
|
|
253
287
|
};
|
|
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
288
|
const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
|
|
279
289
|
const { formatMessage } = reactIntl.useIntl();
|
|
280
290
|
const handleClose = async ()=>{
|
|
@@ -371,8 +381,8 @@ const transformData = (data)=>{
|
|
|
371
381
|
};
|
|
372
382
|
/* -------------------------------------------------------------------------------------------------
|
|
373
383
|
* DocumentActionComponents
|
|
374
|
-
* -----------------------------------------------------------------------------------------------*/ const PublishAction = ({ activeTab, documentId, model, collectionType, meta, document
|
|
375
|
-
const schema =
|
|
384
|
+
* -----------------------------------------------------------------------------------------------*/ const PublishAction = ({ activeTab, documentId, model, collectionType, meta, document })=>{
|
|
385
|
+
const { currentDocument: { schema } } = useDocumentContext.useDocumentContext('PublishAction');
|
|
376
386
|
const navigate = reactRouterDom.useNavigate();
|
|
377
387
|
const { toggleNotification } = strapiAdmin.useNotification();
|
|
378
388
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
|
@@ -380,15 +390,16 @@ const transformData = (data)=>{
|
|
|
380
390
|
const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
|
|
381
391
|
const { id } = reactRouterDom.useParams();
|
|
382
392
|
const { formatMessage } = reactIntl.useIntl();
|
|
383
|
-
const canPublish = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish })=>
|
|
384
|
-
|
|
393
|
+
const { canPublish, canReadFields } = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
|
|
394
|
+
canPublish,
|
|
395
|
+
canReadFields
|
|
396
|
+
}));
|
|
397
|
+
const { publish, isLoading } = useDocumentActions.useDocumentActions();
|
|
398
|
+
const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
|
385
399
|
const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = documents.useGetDraftRelationCountQuery();
|
|
386
400
|
const [localCountOfDraftRelations, setLocalCountOfDraftRelations] = React__namespace.useState(0);
|
|
387
401
|
const [serverCountOfDraftRelations, setServerCountOfDraftRelations] = React__namespace.useState(0);
|
|
388
|
-
const [{
|
|
389
|
-
const params = React__namespace.useMemo(()=>api.buildValidParams(query), [
|
|
390
|
-
query
|
|
391
|
-
]);
|
|
402
|
+
const [{ rawQuery }] = strapiAdmin.useQueryParams();
|
|
392
403
|
const modified = strapiAdmin.useForm('PublishAction', ({ modified })=>modified);
|
|
393
404
|
const setSubmitting = strapiAdmin.useForm('PublishAction', ({ setSubmitting })=>setSubmitting);
|
|
394
405
|
const isSubmitting = strapiAdmin.useForm('PublishAction', ({ isSubmitting })=>isSubmitting);
|
|
@@ -396,8 +407,19 @@ const transformData = (data)=>{
|
|
|
396
407
|
const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
|
|
397
408
|
const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
|
|
398
409
|
const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
|
|
399
|
-
const
|
|
400
|
-
|
|
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);
|
|
419
|
+
const { currentDocumentMeta } = useDocumentContext.useDocumentContext('PublishAction');
|
|
420
|
+
const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
|
|
421
|
+
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
422
|
+
const idToPublish = currentDocumentMeta.documentId || id;
|
|
401
423
|
React__namespace.useEffect(()=>{
|
|
402
424
|
if (isErrorDraftRelations) {
|
|
403
425
|
toggleNotification({
|
|
@@ -461,7 +483,7 @@ const transformData = (data)=>{
|
|
|
461
483
|
collectionType,
|
|
462
484
|
model,
|
|
463
485
|
documentId,
|
|
464
|
-
params
|
|
486
|
+
params: currentDocumentMeta.params
|
|
465
487
|
});
|
|
466
488
|
if (error) {
|
|
467
489
|
throw error;
|
|
@@ -478,8 +500,18 @@ const transformData = (data)=>{
|
|
|
478
500
|
countDraftRelations,
|
|
479
501
|
collectionType,
|
|
480
502
|
model,
|
|
481
|
-
params
|
|
503
|
+
currentDocumentMeta.params
|
|
482
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();
|
|
483
515
|
const isDocumentPublished = (document?.[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc)=>doc[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== 'modified';
|
|
484
516
|
if (!schema?.options?.draftAndPublish) {
|
|
485
517
|
return null;
|
|
@@ -491,22 +523,39 @@ const transformData = (data)=>{
|
|
|
491
523
|
status: 'published'
|
|
492
524
|
});
|
|
493
525
|
if (errors) {
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
id: 'content-manager.validation.error',
|
|
498
|
-
defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
|
|
499
|
-
})
|
|
526
|
+
const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
|
|
527
|
+
const attribute = schema.attributes[fieldName];
|
|
528
|
+
return attribute?.required && !(canReadFields ?? []).includes(fieldName);
|
|
500
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
|
+
}
|
|
501
547
|
return;
|
|
502
548
|
}
|
|
503
|
-
const
|
|
549
|
+
const { data: data$1 } = data.handleInvisibleAttributes(transformData(formValues), {
|
|
550
|
+
schema,
|
|
551
|
+
components
|
|
552
|
+
});
|
|
504
553
|
const res = await publish({
|
|
505
554
|
collectionType,
|
|
506
555
|
model,
|
|
507
556
|
documentId,
|
|
508
|
-
params:
|
|
509
|
-
},
|
|
557
|
+
params: currentDocumentMeta.params
|
|
558
|
+
}, data$1);
|
|
510
559
|
// Reset form if successful
|
|
511
560
|
if ('data' in res) {
|
|
512
561
|
resetForm();
|
|
@@ -514,11 +563,59 @@ const transformData = (data)=>{
|
|
|
514
563
|
if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
|
|
515
564
|
/**
|
|
516
565
|
* TODO: refactor the router so we can just do `../${res.data.documentId}` instead of this.
|
|
517
|
-
*/ if (
|
|
566
|
+
*/ if (idToPublish === 'create' && !fromRelationModal) {
|
|
518
567
|
navigate({
|
|
519
568
|
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
|
520
569
|
search: rawQuery
|
|
521
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
|
+
});
|
|
522
619
|
}
|
|
523
620
|
} else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
524
621
|
setErrors(formatValidationErrors(res.error));
|
|
@@ -584,27 +681,48 @@ PublishAction.position = [
|
|
|
584
681
|
'preview',
|
|
585
682
|
'relation-modal'
|
|
586
683
|
];
|
|
587
|
-
const UpdateAction = ({ activeTab, documentId, model, collectionType
|
|
684
|
+
const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
588
685
|
const navigate = reactRouterDom.useNavigate();
|
|
589
686
|
const { toggleNotification } = strapiAdmin.useNotification();
|
|
590
687
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
|
591
688
|
const cloneMatch = reactRouterDom.useMatch(router.CLONE_PATH);
|
|
592
689
|
const isCloning = cloneMatch !== null;
|
|
593
690
|
const { formatMessage } = reactIntl.useIntl();
|
|
594
|
-
const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions(
|
|
595
|
-
const
|
|
596
|
-
const
|
|
597
|
-
|
|
598
|
-
|
|
691
|
+
const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions();
|
|
692
|
+
const { currentDocument: { components } } = useDocumentContext.useDocumentContext('UpdateAction');
|
|
693
|
+
const [{ rawQuery }] = strapiAdmin.useQueryParams();
|
|
694
|
+
const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
|
695
|
+
const { getInitialFormValues } = useDocument.useDoc();
|
|
599
696
|
const isSubmitting = strapiAdmin.useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
|
|
600
697
|
const modified = strapiAdmin.useForm('UpdateAction', ({ modified })=>modified);
|
|
601
698
|
const setSubmitting = strapiAdmin.useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
|
|
699
|
+
const initialValues = strapiAdmin.useForm('UpdateAction', ({ initialValues })=>initialValues);
|
|
602
700
|
const document = strapiAdmin.useForm('UpdateAction', ({ values })=>values);
|
|
603
701
|
const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
|
|
604
702
|
const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
|
|
605
|
-
const resetForm = strapiAdmin.useForm('
|
|
606
|
-
const
|
|
607
|
-
|
|
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;
|
|
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();
|
|
608
726
|
const handleUpdate = React__namespace.useCallback(async ()=>{
|
|
609
727
|
setSubmitting(true);
|
|
610
728
|
try {
|
|
@@ -628,7 +746,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview,
|
|
|
628
746
|
const res = await clone({
|
|
629
747
|
model,
|
|
630
748
|
documentId: cloneMatch.params.origin,
|
|
631
|
-
params
|
|
749
|
+
params: currentDocumentMeta.params
|
|
632
750
|
}, transformData(document));
|
|
633
751
|
if ('data' in res) {
|
|
634
752
|
navigate({
|
|
@@ -641,31 +759,91 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview,
|
|
|
641
759
|
setErrors(formatValidationErrors(res.error));
|
|
642
760
|
}
|
|
643
761
|
} else if (documentId || collectionType === collections.SINGLE_TYPES) {
|
|
644
|
-
const
|
|
762
|
+
const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
|
|
763
|
+
schema: fromRelationModal ? relationalModalSchema : schema,
|
|
764
|
+
initialValues,
|
|
765
|
+
components
|
|
766
|
+
});
|
|
645
767
|
const res = await update({
|
|
646
768
|
collectionType,
|
|
647
769
|
model,
|
|
648
770
|
documentId,
|
|
649
|
-
params:
|
|
650
|
-
},
|
|
771
|
+
params: currentDocumentMeta.params
|
|
772
|
+
}, data$1);
|
|
651
773
|
if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
652
774
|
setErrors(formatValidationErrors(res.error));
|
|
653
775
|
} else {
|
|
654
776
|
resetForm();
|
|
655
777
|
}
|
|
656
778
|
} else {
|
|
779
|
+
const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
|
|
780
|
+
schema: fromRelationModal ? relationalModalSchema : schema,
|
|
781
|
+
initialValues,
|
|
782
|
+
components
|
|
783
|
+
});
|
|
657
784
|
const res = await create({
|
|
658
785
|
model,
|
|
659
|
-
params
|
|
660
|
-
},
|
|
786
|
+
params: currentDocumentMeta.params
|
|
787
|
+
}, data$1);
|
|
661
788
|
if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
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
|
+
}
|
|
669
847
|
} else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
|
670
848
|
setErrors(formatValidationErrors(res.error));
|
|
671
849
|
}
|
|
@@ -677,30 +855,41 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview,
|
|
|
677
855
|
}
|
|
678
856
|
}
|
|
679
857
|
}, [
|
|
858
|
+
setSubmitting,
|
|
859
|
+
modified,
|
|
860
|
+
validate,
|
|
861
|
+
isCloning,
|
|
862
|
+
documentId,
|
|
863
|
+
collectionType,
|
|
864
|
+
toggleNotification,
|
|
865
|
+
formatMessage,
|
|
680
866
|
clone,
|
|
867
|
+
model,
|
|
681
868
|
cloneMatch?.params.origin,
|
|
682
|
-
collectionType,
|
|
683
|
-
create,
|
|
684
|
-
currentDocumentMeta.documentId,
|
|
685
869
|
currentDocumentMeta.params,
|
|
686
870
|
document,
|
|
687
|
-
documentId,
|
|
688
|
-
formatMessage,
|
|
689
|
-
formatValidationErrors,
|
|
690
|
-
isCloning,
|
|
691
|
-
model,
|
|
692
|
-
modified,
|
|
693
871
|
navigate,
|
|
694
|
-
onPreview,
|
|
695
|
-
params,
|
|
696
872
|
rawQuery,
|
|
697
|
-
resetForm,
|
|
698
|
-
rootDocumentMeta.documentId,
|
|
699
873
|
setErrors,
|
|
700
|
-
|
|
701
|
-
toggleNotification,
|
|
874
|
+
formatValidationErrors,
|
|
702
875
|
update,
|
|
703
|
-
|
|
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
|
|
704
893
|
]);
|
|
705
894
|
// Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
|
|
706
895
|
React__namespace.useEffect(()=>{
|