@plone/volto 17.0.0-alpha.8 → 17.0.0
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/.eslintrc +26 -3
- package/CHANGELOG.md +488 -5
- package/CONTRIBUTING.md +5 -1
- package/README.md +12 -9
- package/addon-registry.js +10 -1
- package/create-addons-loader.js +1 -1
- package/cypress/support/commands.js +70 -14
- package/cypress/support/e2e.js +1 -2
- package/cypress/support/volto-slate.js +4 -5
- package/cypress.config.js +1 -0
- package/docker-compose.yml +1 -1
- package/locales/ca/LC_MESSAGES/volto.po +276 -53
- package/locales/ca.json +1 -1
- package/locales/de/LC_MESSAGES/volto.po +284 -61
- package/locales/de.json +1 -1
- package/locales/en/LC_MESSAGES/volto.po +274 -51
- package/locales/en.json +1 -1
- package/locales/es/LC_MESSAGES/volto.po +313 -90
- package/locales/es.json +1 -1
- package/locales/eu/LC_MESSAGES/volto.po +275 -52
- package/locales/eu.json +1 -1
- package/locales/fi/LC_MESSAGES/volto.po +275 -52
- package/locales/fi.json +1 -1
- package/locales/fr/LC_MESSAGES/volto.po +276 -53
- package/locales/fr.json +1 -1
- package/locales/it/LC_MESSAGES/volto.po +469 -246
- package/locales/it.json +1 -1
- package/locales/ja/LC_MESSAGES/volto.po +275 -52
- package/locales/ja.json +1 -1
- package/locales/nl/LC_MESSAGES/volto.po +276 -53
- package/locales/nl.json +1 -1
- package/locales/pt/LC_MESSAGES/volto.po +276 -53
- package/locales/pt.json +1 -1
- package/locales/pt_BR/LC_MESSAGES/volto.po +309 -86
- package/locales/pt_BR.json +1 -1
- package/locales/ro/LC_MESSAGES/volto.po +276 -53
- package/locales/ro.json +1 -1
- package/locales/volto.pot +279 -52
- package/locales/zh_CN/LC_MESSAGES/volto.po +276 -53
- package/locales/zh_CN.json +1 -1
- package/package.json +44 -34
- package/packages/volto-slate/package.json +1 -1
- package/packages/volto-slate/src/actions/index.js +1 -1
- package/packages/volto-slate/src/blocks/Table/TableBlockEdit.jsx +21 -212
- package/packages/volto-slate/src/blocks/Table/schema.js +122 -0
- package/packages/volto-slate/src/blocks/Text/DefaultTextBlockEditor.jsx +8 -3
- package/packages/volto-slate/src/blocks/Text/TextBlockView.jsx +21 -16
- package/packages/volto-slate/src/blocks/Text/extensions/withDeserializers.js +3 -1
- package/packages/volto-slate/src/blocks/Text/index.js +10 -7
- package/packages/volto-slate/src/editor/config.jsx +5 -4
- package/packages/volto-slate/src/editor/index.js +4 -4
- package/packages/volto-slate/src/editor/less/slate.less +28 -0
- package/packages/volto-slate/src/editor/plugins/Link/render.jsx +5 -6
- package/packages/volto-slate/src/editor/plugins/StyleMenu/StyleMenu.jsx +14 -4
- package/packages/volto-slate/src/editor/plugins/StyleMenu/utils.js +14 -5
- package/packages/volto-slate/src/editor/render.jsx +77 -8
- package/packages/volto-slate/src/editor/ui/SlateContextToolbar.jsx +2 -2
- package/packages/volto-slate/src/editor/ui/index.js +15 -15
- package/packages/volto-slate/src/index.js +2 -2
- package/packages/volto-slate/src/utils/blocks.js +7 -0
- package/packages/volto-slate/src/widgets/RichTextWidget.jsx +15 -8
- package/razzle.config.js +4 -6
- package/src/actions/index.js +4 -0
- package/src/actions/navroot/navroot.js +16 -0
- package/src/actions/navroot/navroot.test.js +15 -0
- package/src/actions/relations/rebuild.js +7 -7
- package/src/actions/relations/relations.js +17 -0
- package/src/actions/site/site.js +16 -0
- package/src/actions/site/site.test.js +15 -0
- package/src/actions/userSession/userSession.js +17 -1
- package/src/components/index.js +194 -192
- package/src/components/manage/Actions/Actions.jsx +133 -243
- package/src/components/manage/Add/Add.jsx +7 -8
- package/src/components/manage/AnchorPlugin/index.jsx +2 -2
- package/src/components/manage/AnchorPlugin/utils/EditorUtils.js +3 -1
- package/src/components/manage/Blocks/Block/BlocksForm.jsx +19 -2
- package/src/components/manage/Blocks/Block/Edit.jsx +1 -1
- package/src/components/manage/Blocks/Block/Settings.jsx +2 -0
- package/src/components/manage/Blocks/Block/Settings.test.jsx +92 -0
- package/src/components/manage/Blocks/Block/Style.jsx +2 -2
- package/src/components/manage/Blocks/Container/Data.jsx +32 -0
- package/src/components/manage/Blocks/Container/Edit.jsx +177 -0
- package/src/components/manage/Blocks/Container/EditBlockWrapper.jsx +121 -0
- package/src/components/manage/Blocks/Container/NewBlockAddButton.jsx +84 -0
- package/src/components/manage/Blocks/Container/SimpleContainerToolbar.jsx +54 -0
- package/src/components/manage/Blocks/Grid/Edit.jsx +47 -0
- package/src/components/manage/Blocks/Grid/View.jsx +43 -0
- package/src/components/manage/Blocks/Grid/adapter.js +14 -0
- package/src/components/manage/Blocks/Grid/grid-1.svg +6 -0
- package/src/components/manage/Blocks/Grid/grid-2.svg +9 -0
- package/src/components/manage/Blocks/Grid/grid-3.svg +10 -0
- package/src/components/manage/Blocks/Grid/grid-4.svg +11 -0
- package/src/components/manage/Blocks/Grid/schema.js +35 -0
- package/src/components/manage/Blocks/Grid/templates.js +47 -0
- package/src/components/manage/Blocks/HTML/Edit.jsx +8 -8
- package/src/components/manage/Blocks/HeroImageLeft/Edit.jsx +36 -26
- package/src/components/manage/Blocks/Image/Edit.jsx +51 -12
- package/src/components/manage/Blocks/Image/Edit.test.jsx +2 -0
- package/src/components/manage/Blocks/Image/ImageSidebar.jsx +66 -16
- package/src/components/manage/Blocks/Image/View.jsx +26 -5
- package/src/components/manage/Blocks/Image/View.test.jsx +20 -0
- package/src/components/manage/Blocks/Image/schema.js +17 -10
- package/src/components/manage/Blocks/Image/utils.js +14 -0
- package/src/components/manage/Blocks/LeadImage/Edit.jsx +32 -10
- package/src/components/manage/Blocks/LeadImage/Edit.test.jsx +11 -1
- package/src/components/manage/Blocks/LeadImage/LeadImageSidebar.jsx +28 -9
- package/src/components/manage/Blocks/LeadImage/LeadImageSidebar.test.jsx +8 -2
- package/src/components/manage/Blocks/LeadImage/View.jsx +50 -38
- package/src/components/manage/Blocks/LeadImage/View.test.jsx +11 -1
- package/src/components/manage/Blocks/Listing/DefaultTemplate.jsx +18 -3
- package/src/components/manage/Blocks/Listing/ListingBody.jsx +32 -8
- package/src/components/manage/Blocks/Listing/ListingBody.test.jsx +20 -0
- package/src/components/manage/Blocks/Listing/SummaryTemplate.jsx +1 -1
- package/src/components/manage/Blocks/Listing/getAsyncData.js +3 -5
- package/src/components/manage/Blocks/Listing/withQuerystringResults.jsx +27 -17
- package/src/components/manage/Blocks/Maps/Edit.jsx +135 -209
- package/src/components/manage/Blocks/Maps/Edit.test.jsx +1 -2
- package/src/components/manage/Blocks/Maps/View.test.jsx +1 -2
- package/src/components/manage/Blocks/Search/SearchBlockView.jsx +3 -2
- package/src/components/manage/Blocks/Search/components/Facets.jsx +66 -7
- package/src/components/manage/Blocks/Search/components/FilterList.jsx +4 -6
- package/src/components/manage/Blocks/Search/components/SearchInput.jsx +9 -2
- package/src/components/manage/Blocks/Search/components/SelectFacet.jsx +2 -9
- package/src/components/manage/Blocks/Search/components/index.js +13 -13
- package/src/components/manage/Blocks/Search/hocs/index.js +2 -2
- package/src/components/manage/Blocks/Search/hocs/withQueryString.jsx +5 -2
- package/src/components/manage/Blocks/Search/hocs/withSearch.jsx +70 -36
- package/src/components/manage/Blocks/Search/layout/LeftColumnFacets.jsx +17 -5
- package/src/components/manage/Blocks/Search/layout/RightColumnFacets.jsx +17 -5
- package/src/components/manage/Blocks/Search/layout/TopSideFacets.jsx +21 -5
- package/src/components/manage/Blocks/Search/schema.js +29 -14
- package/src/components/manage/Blocks/Table/Cell.jsx +2 -3
- package/src/components/manage/Blocks/Teaser/Body.jsx +0 -1
- package/src/components/manage/Blocks/Teaser/DefaultBody.jsx +5 -10
- package/src/components/manage/Blocks/Teaser/schema.js +5 -0
- package/src/components/manage/Blocks/Text/Edit.jsx +2 -3
- package/src/components/manage/Blocks/Title/View.jsx +0 -23
- package/src/components/manage/Blocks/Title/View.test.jsx +16 -1
- package/src/components/manage/Blocks/ToC/Schema.jsx +40 -7
- package/src/components/manage/Blocks/ToC/View.jsx +84 -14
- package/src/components/manage/Blocks/ToC/variations/DefaultTocRenderer.jsx +8 -3
- package/src/components/manage/Blocks/ToC/variations/DefaultTocRenderer.test.jsx +44 -0
- package/src/components/manage/Blocks/ToC/variations/HorizontalMenu.jsx +149 -10
- package/src/components/manage/Blocks/ToC/variations/index.js +3 -1
- package/src/components/manage/Contents/Contents.jsx +285 -114
- package/src/components/manage/Contents/ContentsPropertiesModal.jsx +90 -166
- package/src/components/manage/Contents/ContentsRenameModal.jsx +88 -139
- package/src/components/manage/Contents/ContentsRenameModal.stories.jsx +61 -0
- package/src/components/manage/Contents/ContentsTagsModal.jsx +83 -130
- package/src/components/manage/Contents/ContentsTagsModal.stories.jsx +68 -0
- package/src/components/manage/Contents/ContentsUploadModal.jsx +11 -7
- package/src/components/manage/Contents/ContentsWorkflowModal.jsx +87 -154
- package/src/components/manage/Controlpanels/Aliases.jsx +4 -12
- package/src/components/manage/Controlpanels/Groups/GroupsControlpanel.jsx +65 -38
- package/src/components/manage/Controlpanels/Groups/RenderGroups.jsx +2 -2
- package/src/components/manage/Controlpanels/Relations/BrokenRelations.jsx +38 -13
- package/src/components/manage/Controlpanels/Relations/Relations.jsx +5 -5
- package/src/components/manage/Controlpanels/Relations/RelationsListing.jsx +8 -7
- package/src/components/manage/Controlpanels/Relations/RelationsMatrix.jsx +68 -68
- package/src/components/manage/Controlpanels/Rules/AddRule.jsx +3 -10
- package/src/components/manage/Controlpanels/Rules/EditRule.jsx +1 -1
- package/src/components/manage/Controlpanels/UndoControlpanel.jsx +6 -9
- package/src/components/manage/Controlpanels/Users/RenderUsers.jsx +97 -7
- package/src/components/manage/Controlpanels/Users/UsersControlpanel.jsx +127 -99
- package/src/components/manage/Delete/Delete.jsx +96 -171
- package/src/components/manage/Diff/DiffField.jsx +25 -1
- package/src/components/manage/DragDropList/DragDropList.jsx +18 -13
- package/src/components/manage/Form/BlockDataForm.jsx +3 -2
- package/src/components/manage/Form/BlockDataForm.test.jsx +51 -17
- package/src/components/manage/Form/Form.jsx +7 -6
- package/src/components/manage/Form/InlineForm.test.jsx +16 -14
- package/src/components/manage/History/History.jsx +11 -1
- package/src/components/manage/LinksToItem/LinksToItem.jsx +209 -0
- package/src/components/manage/LinksToItem/LinksToItem.test.jsx +100 -0
- package/src/components/manage/LockingToastsFactory/LockingToastsFactory.jsx +1 -2
- package/src/components/manage/Messages/Messages.jsx +32 -99
- package/src/components/manage/Messages/Messages.test.jsx +0 -1
- package/src/components/manage/Preferences/ChangePassword.jsx +2 -2
- package/src/components/manage/Sharing/Sharing.jsx +62 -22
- package/src/components/manage/Sidebar/AlignBlock.jsx +1 -1
- package/src/components/manage/Sidebar/Sidebar.jsx +139 -220
- package/src/components/manage/TemplateChooser/TemplateChooser.jsx +38 -0
- package/src/components/manage/TemplateChooser/TemplateChooser.test.jsx +34 -0
- package/src/components/manage/TemplateChooser/template.svg +10 -0
- package/src/components/manage/Toast/Toast.jsx +1 -1
- package/src/components/manage/Toolbar/More.jsx +17 -2
- package/src/components/manage/Toolbar/PersonalTools.jsx +97 -155
- package/src/components/manage/Toolbar/Toolbar.jsx +2 -2
- package/src/components/manage/UniversalLink/UniversalLink.jsx +6 -12
- package/src/components/manage/UniversalLink/UniversalLink.test.jsx +37 -0
- package/src/components/manage/Widgets/AlignWidget.jsx +2 -4
- package/src/components/manage/Widgets/ArrayWidget.jsx +3 -1
- package/src/components/manage/Widgets/ArrayWidget.test.jsx +45 -1
- package/src/components/manage/Widgets/ColorPickerWidget.jsx +6 -1
- package/src/components/manage/Widgets/ColorPickerWidget.test.jsx +9 -7
- package/src/components/manage/Widgets/DatetimeWidget.jsx +2 -8
- package/src/components/manage/Widgets/FileWidget.jsx +2 -1
- package/src/components/manage/Widgets/FormFieldWrapper.jsx +1 -1
- package/src/components/manage/Widgets/IdWidget.jsx +1 -2
- package/src/components/manage/Widgets/ObjectBrowserWidget.jsx +2 -9
- package/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx +3 -10
- package/src/components/manage/Widgets/RecurrenceWidget/WeekdayOfTheMonthIndexField.jsx +4 -4
- package/src/components/manage/Widgets/RegistryImageWidget.jsx +210 -0
- package/src/components/manage/Widgets/RegistryImageWidget.test.jsx +91 -0
- package/src/components/manage/Widgets/SchemaWidget.jsx +6 -9
- package/src/components/manage/Widgets/SelectUtils.js +1 -1
- package/src/components/manage/Widgets/SelectWidget.jsx +15 -1
- package/src/components/manage/Widgets/SelectWidget.test.jsx +45 -1
- package/src/components/manage/Widgets/WysiwygWidget.jsx +2 -9
- package/src/components/manage/Workflow/Workflow.jsx +75 -184
- package/src/components/theme/Anontools/Anontools.jsx +44 -72
- package/src/components/theme/Anontools/Anontools.stories.jsx +16 -6
- package/src/components/theme/Anontools/Anontools.test.jsx +16 -2
- package/src/components/theme/Breadcrumbs/Breadcrumbs.jsx +52 -99
- package/src/components/theme/Breadcrumbs/Breadcrumbs.stories.jsx +14 -13
- package/src/components/theme/Comments/Comment.stories.jsx +84 -0
- package/src/components/theme/Comments/CommentEditModal.jsx +63 -115
- package/src/components/theme/Comments/Comments.jsx +268 -380
- package/src/components/theme/Component/Component.jsx +1 -1
- package/src/components/theme/ContactForm/ContactForm.jsx +108 -192
- package/src/components/theme/ContactForm/ContactForm.stories.jsx +1 -1
- package/src/components/theme/ContactForm/ContactForm.test.jsx +2 -3
- package/src/components/theme/ContentMetadataTags/ContentMetadataTags.jsx +41 -3
- package/src/components/theme/Error/ServerError.jsx +29 -0
- package/src/components/theme/Header/Header.jsx +37 -63
- package/src/components/theme/Header/Header.test.jsx +18 -0
- package/src/components/theme/Image/Image.jsx +96 -0
- package/src/components/theme/Image/Image.test.jsx +125 -0
- package/src/components/theme/Login/Login.jsx +160 -243
- package/src/components/theme/Logo/Logo.Multilingual.test.jsx +131 -1
- package/src/components/theme/Logo/Logo.jsx +35 -27
- package/src/components/theme/Logo/Logo.test.jsx +135 -1
- package/src/components/theme/Logout/Logout.jsx +36 -83
- package/src/components/theme/Navigation/Navigation.jsx +86 -171
- package/src/components/theme/NotFound/NotFound.jsx +55 -41
- package/src/components/theme/PasswordReset/PasswordReset.jsx +7 -5
- package/src/components/theme/PasswordReset/RequestPasswordReset.jsx +95 -170
- package/src/components/theme/PreviewImage/PreviewImage.jsx +31 -15
- package/src/components/theme/PreviewImage/PreviewImage.test.js +53 -13
- package/src/components/theme/Register/Register.jsx +2 -4
- package/src/components/theme/Search/SearchTags.jsx +30 -60
- package/src/components/theme/SearchWidget/SearchWidget.jsx +49 -97
- package/src/components/theme/SearchWidget/SearchWidget.test.jsx +8 -0
- package/src/components/theme/Sitemap/Sitemap.jsx +24 -13
- package/src/components/theme/Sitemap/Sitemap.test.jsx +23 -2
- package/src/components/theme/TsTest/TsTest.test.tsx +11 -0
- package/src/components/theme/TsTest/TsTest.tsx +15 -0
- package/src/components/theme/View/AlbumView.jsx +21 -16
- package/src/components/theme/View/EventView.jsx +36 -25
- package/src/components/theme/View/FileView.jsx +23 -18
- package/src/components/theme/View/ImageView.jsx +40 -32
- package/src/components/theme/View/ImageView.test.jsx +4 -0
- package/src/components/theme/View/LinkView.jsx +53 -78
- package/src/components/theme/View/ListingView.jsx +36 -28
- package/src/components/theme/View/NewsItemView.jsx +16 -17
- package/src/components/theme/View/RenderBlocks.jsx +56 -21
- package/src/components/theme/View/RenderEmptyBlock.jsx +5 -0
- package/src/components/theme/View/SummaryView.jsx +49 -39
- package/src/components/theme/View/TabularView.jsx +59 -53
- package/src/components/theme/View/View.jsx +2 -0
- package/src/components/theme/Widgets/ImageWidget.stories.jsx +1 -2
- package/src/config/Blocks.jsx +46 -0
- package/src/config/Components.jsx +3 -1
- package/src/config/ControlPanels.js +0 -1
- package/src/config/Loadables.jsx +1 -1
- package/src/config/NonContentRoutes.jsx +1 -0
- package/src/config/RichTextEditor/Blocks.jsx +4 -5
- package/src/config/RichTextEditor/FromHTML.jsx +2 -2
- package/src/config/RichTextEditor/Plugins.jsx +2 -3
- package/src/config/RichTextEditor/Styles.jsx +1 -1
- package/src/config/RichTextEditor/ToHTML.jsx +12 -10
- package/src/config/RichTextEditor/index.js +2 -3
- package/src/config/Views.jsx +6 -4
- package/src/config/Widgets.jsx +3 -0
- package/src/config/index.js +36 -2
- package/src/config/server.js +2 -0
- package/src/constants/ActionTypes.js +4 -0
- package/src/constants/Indexes.js +3 -1
- package/src/express-middleware/devproxy.js +1 -1
- package/src/express-middleware/files.js +11 -9
- package/src/express-middleware/images.js +12 -5
- package/src/express-middleware/ok.js +16 -0
- package/src/express-middleware/robotstxt.js +1 -1
- package/src/express-middleware/sitemap.js +1 -1
- package/src/express-middleware/static.js +3 -3
- package/src/helpers/Api/Api.js +1 -1
- package/src/helpers/Blocks/Blocks.js +52 -6
- package/src/helpers/Blocks/Blocks.test.js +92 -13
- package/src/helpers/Extensions/index.js +2 -1
- package/src/helpers/Extensions/withBlockSchemaEnhancer.js +63 -61
- package/src/helpers/Extensions/withBlockSchemaEnhancer.test.js +145 -0
- package/src/helpers/FormValidation/FormValidation.js +37 -7
- package/src/helpers/FormValidation/FormValidation.test.js +32 -0
- package/src/helpers/Html/Html.jsx +2 -8
- package/src/helpers/Loadable/__mocks__/Loadable.js +18 -18
- package/src/helpers/MessageLabels/MessageLabels.js +39 -4
- package/src/helpers/ScrollToTop/ScrollToTop.jsx +5 -3
- package/src/helpers/Site/index.js +21 -0
- package/src/helpers/Url/Url.js +22 -1
- package/src/helpers/Url/Url.test.js +41 -0
- package/src/helpers/Utils/UseDetectClickOutside.stories.jsx +190 -0
- package/src/helpers/Utils/Utils.js +35 -0
- package/src/helpers/Utils/Utils.test.js +13 -0
- package/src/helpers/Utils/usePagination.js +67 -14
- package/src/helpers/Utils/usePagination.test.js +115 -0
- package/src/helpers/index.js +15 -8
- package/src/hooks/client/useClient.js +11 -0
- package/src/hooks/clipboard/useClipboard.js +26 -0
- package/src/hooks/index.js +2 -0
- package/src/icons/grid-block.svg +11 -0
- package/src/middleware/api.js +203 -173
- package/src/middleware/blacklistRoutes.js +25 -22
- package/src/middleware/index.js +2 -2
- package/src/middleware/storeProtectLoadUtils.js +61 -62
- package/src/middleware/storeProtectLoadUtils.test.js +47 -43
- package/src/reducers/actions/actions.js +7 -5
- package/src/reducers/actions/actions.test.js +70 -0
- package/src/reducers/content/content.test.js +4 -4
- package/src/reducers/index.js +4 -0
- package/src/reducers/navigation/navigation.js +5 -5
- package/src/reducers/navigation/navigation.test.js +30 -0
- package/src/reducers/navroot/navroot.js +79 -0
- package/src/reducers/navroot/navroot.test.js +110 -0
- package/src/reducers/relations/relations.js +74 -46
- package/src/reducers/site/site.js +51 -0
- package/src/reducers/site/site.test.js +67 -0
- package/src/reducers/userSession/userSession.js +15 -1
- package/src/registry.js +2 -2
- package/src/routes.js +9 -0
- package/src/server.jsx +9 -0
- package/src/start-server.js +2 -2
- package/src/storybook.jsx +24 -38
- package/test-setup-config.js +11 -1
- package/theme/themes/pastanaga/collections/form.overrides +46 -0
- package/theme/themes/pastanaga/collections/menu.overrides +3 -2
- package/theme/themes/pastanaga/elements/container.overrides +5 -2
- package/theme/themes/pastanaga/elements/input.overrides +11 -1
- package/theme/themes/pastanaga/elements/label.overrides +10 -0
- package/theme/themes/pastanaga/elements/step.overrides +2 -1
- package/theme/themes/pastanaga/extras/blocks.less +25 -15
- package/theme/themes/pastanaga/extras/color-picker-widget.less +1 -1
- package/theme/themes/pastanaga/extras/contents.less +6 -1
- package/theme/themes/pastanaga/extras/draftjs.less +4 -4
- package/theme/themes/pastanaga/extras/grid.less +427 -0
- package/theme/themes/pastanaga/extras/login.less +3 -0
- package/theme/themes/pastanaga/extras/main.less +14 -7
- package/theme/themes/pastanaga/extras/react-dates-overrides.less +4 -2
- package/theme/themes/pastanaga/extras/search.less +7 -1
- package/theme/themes/pastanaga/extras/sidebar.less +5 -4
- package/theme/themes/pastanaga/extras/time-picker-overrides.less +5 -3
- package/theme/themes/pastanaga/extras/toc.less +29 -0
- package/theme/themes/pastanaga/extras/toolbar.less +6 -2
- package/theme/themes/pastanaga/extras/userscontrolpanel.less +17 -9
- package/theme/themes/pastanaga/extras/widgets.less +1 -1
- package/theme/themes/pastanaga/modules/rating.overrides +2 -1
- package/theme/themes/pastanaga-cms-ui/elements/container.overrides +2 -1
- package/theme/themes/pastanaga-cms-ui/extras/cms-ui.elements.container.less +6 -2
- package/theme/themes/pastanaga-cms-ui/extras/cms-ui.site.less +2 -2
- package/tsconfig.json +33 -0
- package/webpack-plugins/webpack-less-plugin.js +19 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/yarn-3.2.3.cjs +0 -783
- package/src/components/manage/Blocks/Teaser/utils.js +0 -44
- package/src/components/manage/Blocks/Teaser/utils.test.jsx +0 -229
- package/src/components/theme/Header/Header.md +0 -27
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { UniversalLink } from '@plone/volto/components';
|
|
9
|
-
import { Container, Table } from 'semantic-ui-react';
|
|
9
|
+
import { Container as SemanticContainer, Table } from 'semantic-ui-react';
|
|
10
10
|
import { FormattedMessage } from 'react-intl';
|
|
11
|
+
import config from '@plone/volto/registry';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Tabular view component class.
|
|
@@ -15,59 +16,64 @@ import { FormattedMessage } from 'react-intl';
|
|
|
15
16
|
* @param {Object} content Content object.
|
|
16
17
|
* @returns {string} Markup of the component.
|
|
17
18
|
*/
|
|
18
|
-
const TabularView = ({ content }) =>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
<Table.
|
|
35
|
-
<
|
|
36
|
-
id="
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
<Table.Row key={item.url}>
|
|
51
|
-
<Table.Cell>
|
|
52
|
-
<UniversalLink
|
|
53
|
-
item={item}
|
|
54
|
-
className="summary url"
|
|
55
|
-
title={item['@type']}
|
|
56
|
-
>
|
|
57
|
-
{item.title}
|
|
58
|
-
</UniversalLink>
|
|
59
|
-
</Table.Cell>
|
|
60
|
-
<Table.Cell>{item.description}</Table.Cell>
|
|
61
|
-
<Table.Cell>{item['@type']}</Table.Cell>
|
|
62
|
-
<Table.Cell>{item.review_state}</Table.Cell>
|
|
19
|
+
const TabularView = ({ content }) => {
|
|
20
|
+
const Container =
|
|
21
|
+
config.getComponent({ name: 'Container' }).component || SemanticContainer;
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<Container className="view-wrapper">
|
|
25
|
+
<article id="content">
|
|
26
|
+
<header>
|
|
27
|
+
<h1 className="documentFirstHeading">{content.title}</h1>
|
|
28
|
+
{content.description && (
|
|
29
|
+
<p className="documentDescription">{content.description}</p>
|
|
30
|
+
)}
|
|
31
|
+
</header>
|
|
32
|
+
<section id="content-core">
|
|
33
|
+
<Table celled padded>
|
|
34
|
+
<Table.Header>
|
|
35
|
+
<Table.Row>
|
|
36
|
+
<Table.HeaderCell>
|
|
37
|
+
<FormattedMessage id="Title" defaultMessage="Title" />
|
|
38
|
+
</Table.HeaderCell>
|
|
39
|
+
<Table.HeaderCell>
|
|
40
|
+
<FormattedMessage
|
|
41
|
+
id="Description"
|
|
42
|
+
defaultMessage="Description"
|
|
43
|
+
/>
|
|
44
|
+
</Table.HeaderCell>
|
|
45
|
+
<Table.HeaderCell>
|
|
46
|
+
<FormattedMessage id="Type" defaultMessage="Type" />
|
|
47
|
+
</Table.HeaderCell>
|
|
48
|
+
<Table.HeaderCell>
|
|
49
|
+
<FormattedMessage id="State" defaultMessage="State" />
|
|
50
|
+
</Table.HeaderCell>
|
|
63
51
|
</Table.Row>
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
52
|
+
</Table.Header>
|
|
53
|
+
<Table.Body>
|
|
54
|
+
{content.items.map((item) => (
|
|
55
|
+
<Table.Row key={item.url}>
|
|
56
|
+
<Table.Cell>
|
|
57
|
+
<UniversalLink
|
|
58
|
+
item={item}
|
|
59
|
+
className="summary url"
|
|
60
|
+
title={item['@type']}
|
|
61
|
+
>
|
|
62
|
+
{item.title}
|
|
63
|
+
</UniversalLink>
|
|
64
|
+
</Table.Cell>
|
|
65
|
+
<Table.Cell>{item.description}</Table.Cell>
|
|
66
|
+
<Table.Cell>{item['@type']}</Table.Cell>
|
|
67
|
+
<Table.Cell>{item.review_state}</Table.Cell>
|
|
68
|
+
</Table.Row>
|
|
69
|
+
))}
|
|
70
|
+
</Table.Body>
|
|
71
|
+
</Table>
|
|
72
|
+
</section>
|
|
73
|
+
</article>
|
|
74
|
+
</Container>
|
|
75
|
+
);
|
|
76
|
+
};
|
|
71
77
|
|
|
72
78
|
/**
|
|
73
79
|
* Property types.
|
|
@@ -123,6 +123,7 @@ class View extends Component {
|
|
|
123
123
|
if (!hasApiExpander('actions', getBaseUrl(this.props.pathname))) {
|
|
124
124
|
this.props.listActions(getBaseUrl(this.props.pathname));
|
|
125
125
|
}
|
|
126
|
+
|
|
126
127
|
this.props.getContent(
|
|
127
128
|
getBaseUrl(this.props.pathname),
|
|
128
129
|
this.props.versionId,
|
|
@@ -142,6 +143,7 @@ class View extends Component {
|
|
|
142
143
|
if (!hasApiExpander('actions', getBaseUrl(nextProps.pathname))) {
|
|
143
144
|
this.props.listActions(getBaseUrl(nextProps.pathname));
|
|
144
145
|
}
|
|
146
|
+
|
|
145
147
|
this.props.getContent(
|
|
146
148
|
getBaseUrl(nextProps.pathname),
|
|
147
149
|
this.props.versionId,
|
|
@@ -17,8 +17,7 @@ Image.args = {
|
|
|
17
17
|
value: {
|
|
18
18
|
download: 'download/filename.png',
|
|
19
19
|
file_name: 'filename.png',
|
|
20
|
-
data:
|
|
21
|
-
'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',
|
|
20
|
+
data: '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',
|
|
22
21
|
size: 100,
|
|
23
22
|
'content-type': 'image/png',
|
|
24
23
|
},
|
package/src/config/Blocks.jsx
CHANGED
|
@@ -42,6 +42,7 @@ import tableSVG from '@plone/volto/icons/table.svg';
|
|
|
42
42
|
import listingBlockSVG from '@plone/volto/icons/content-listing.svg';
|
|
43
43
|
import tocSVG from '@plone/volto/icons/list-bullet.svg';
|
|
44
44
|
import searchSVG from '@plone/volto/icons/zoom.svg';
|
|
45
|
+
import gridSVG from '@plone/volto/icons/grid-block.svg';
|
|
45
46
|
import imagesSVG from '@plone/volto/icons/images.svg';
|
|
46
47
|
|
|
47
48
|
import ImageGalleryListingBlockTemplate from '@plone/volto/components/manage/Blocks/Listing/ImageGallery';
|
|
@@ -50,6 +51,14 @@ import TextSettingsSchema from '@plone/volto/components/manage/Blocks/Text/Schem
|
|
|
50
51
|
import ImageSettingsSchema from '@plone/volto/components/manage/Blocks/Image/LayoutSchema';
|
|
51
52
|
import ToCSettingsSchema from '@plone/volto/components/manage/Blocks/ToC/Schema';
|
|
52
53
|
|
|
54
|
+
import GridBlockView from '@plone/volto/components/manage/Blocks/Grid/View';
|
|
55
|
+
import GridBlockEdit from '@plone/volto/components/manage/Blocks/Grid/Edit';
|
|
56
|
+
import { GridBlockDataAdapter } from '@plone/volto/components/manage/Blocks/Grid/adapter';
|
|
57
|
+
import { GridBlockSchema } from '@plone/volto/components/manage/Blocks/Grid/schema';
|
|
58
|
+
import GridTemplates from '@plone/volto/components/manage/Blocks/Grid/templates';
|
|
59
|
+
import { gridTeaserDisableStylingSchema } from '@plone/volto/components/manage/Blocks/Teaser/schema';
|
|
60
|
+
import { gridImageDisableSizeAndPositionHandlersSchema } from '@plone/volto/components/manage/Blocks/Image/schema';
|
|
61
|
+
|
|
53
62
|
import SearchBlockView from '@plone/volto/components/manage/Blocks/Search/SearchBlockView';
|
|
54
63
|
import SearchBlockEdit from '@plone/volto/components/manage/Blocks/Search/SearchBlockEdit';
|
|
55
64
|
|
|
@@ -66,6 +75,7 @@ import {
|
|
|
66
75
|
DateRangeFacetFilterListEntry,
|
|
67
76
|
} from '@plone/volto/components/manage/Blocks/Search/components';
|
|
68
77
|
import getListingBlockAsyncData from '@plone/volto/components/manage/Blocks/Listing/getAsyncData';
|
|
78
|
+
import { getImageBlockSizes } from '@plone/volto/components/manage/Blocks/Image/utils';
|
|
69
79
|
|
|
70
80
|
// block sidebar schemas (not the Dexterity Layout block settings schemas)
|
|
71
81
|
import HeroImageLeftBlockSchema from '@plone/volto/components/manage/Blocks/HeroImageLeft/schema';
|
|
@@ -249,6 +259,7 @@ const blocksConfig = {
|
|
|
249
259
|
restricted: false,
|
|
250
260
|
mostUsed: true,
|
|
251
261
|
sidebarTab: 1,
|
|
262
|
+
getSizes: getImageBlockSizes,
|
|
252
263
|
},
|
|
253
264
|
leadimage: {
|
|
254
265
|
id: 'leadimage',
|
|
@@ -458,6 +469,27 @@ const blocksConfig = {
|
|
|
458
469
|
},
|
|
459
470
|
},
|
|
460
471
|
},
|
|
472
|
+
// This next block is not named just grid for some reasons:
|
|
473
|
+
// 1.- Naming it grid will collide with the SemanticUI CSS of the Grid component
|
|
474
|
+
// 2.- It would prevent the transition from the old grid
|
|
475
|
+
// (based on @kitconcept/volto-blocks-grid) without having to perform any migration.
|
|
476
|
+
// This way, both can co-exist at the same time.
|
|
477
|
+
gridBlock: {
|
|
478
|
+
id: 'gridBlock',
|
|
479
|
+
title: 'Grid',
|
|
480
|
+
icon: gridSVG,
|
|
481
|
+
group: 'common',
|
|
482
|
+
view: GridBlockView,
|
|
483
|
+
edit: GridBlockEdit,
|
|
484
|
+
blockSchema: GridBlockSchema,
|
|
485
|
+
dataAdapter: GridBlockDataAdapter,
|
|
486
|
+
restricted: false,
|
|
487
|
+
mostUsed: true,
|
|
488
|
+
sidebarTab: 1,
|
|
489
|
+
templates: GridTemplates,
|
|
490
|
+
maxLength: 4,
|
|
491
|
+
allowedBlocks: ['image', 'listing', 'slate', 'teaser'],
|
|
492
|
+
},
|
|
461
493
|
teaser: {
|
|
462
494
|
id: 'teaser',
|
|
463
495
|
title: 'Teaser',
|
|
@@ -481,6 +513,20 @@ const blocksConfig = {
|
|
|
481
513
|
},
|
|
482
514
|
};
|
|
483
515
|
|
|
516
|
+
// This is required in order to initialize the inner blocksConfig
|
|
517
|
+
// for the grid block, since we need to modify how the inner teaser
|
|
518
|
+
// block behave in it (= no schemaEnhancer fields for teasers inside a grid)
|
|
519
|
+
// Afterwards, it can be further customized in add-ons using the same technique.
|
|
520
|
+
blocksConfig.gridBlock.blocksConfig = { ...blocksConfig };
|
|
521
|
+
blocksConfig.gridBlock.blocksConfig.teaser = {
|
|
522
|
+
...blocksConfig.teaser,
|
|
523
|
+
schemaEnhancer: gridTeaserDisableStylingSchema,
|
|
524
|
+
};
|
|
525
|
+
blocksConfig.gridBlock.blocksConfig.image = {
|
|
526
|
+
...blocksConfig.image,
|
|
527
|
+
schemaEnhancer: gridImageDisableSizeAndPositionHandlersSchema,
|
|
528
|
+
};
|
|
529
|
+
|
|
484
530
|
const requiredBlocks = ['title'];
|
|
485
531
|
|
|
486
532
|
const initialBlocks = {};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { App, PreviewImage } from '@plone/volto/components';
|
|
1
|
+
import { App, PreviewImage, Image } from '@plone/volto/components';
|
|
2
2
|
|
|
3
|
+
// Register components.
|
|
3
4
|
export const components = {
|
|
4
5
|
PreviewImage: { component: PreviewImage },
|
|
5
6
|
App: { component: App },
|
|
7
|
+
Image: { component: Image },
|
|
6
8
|
};
|
package/src/config/Loadables.jsx
CHANGED
|
@@ -2,7 +2,7 @@ import loadable from '@loadable/component';
|
|
|
2
2
|
|
|
3
3
|
export const loadables = {
|
|
4
4
|
prettierStandalone: loadable.lib(() => import('prettier/standalone')),
|
|
5
|
-
prettierParserHtml: loadable.lib(() => import('prettier/
|
|
5
|
+
prettierParserHtml: loadable.lib(() => import('prettier/plugins/html')),
|
|
6
6
|
prismCore: loadable.lib(() => import('prismjs/components/prism-core')),
|
|
7
7
|
toastify: loadable.lib(() => import('react-toastify')),
|
|
8
8
|
reactSelect: loadable.lib(() => import('react-select'), { ssr: false }),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export default (props)
|
|
1
|
+
export default function Blocks(props) {
|
|
2
2
|
const { draftJs, immutableLib } = props;
|
|
3
3
|
const { DefaultDraftBlockRenderMap } = draftJs;
|
|
4
4
|
const { Map } = immutableLib;
|
|
@@ -12,9 +12,8 @@ export default (props) => {
|
|
|
12
12
|
},
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
const extendedBlockRenderMap =
|
|
16
|
-
blockRenderMap
|
|
17
|
-
);
|
|
15
|
+
const extendedBlockRenderMap =
|
|
16
|
+
DefaultDraftBlockRenderMap.merge(blockRenderMap);
|
|
18
17
|
|
|
19
18
|
const blockStyleFn = (contentBlock) => {
|
|
20
19
|
const type = contentBlock.getType();
|
|
@@ -27,4 +26,4 @@ export default (props) => {
|
|
|
27
26
|
const listBlockTypes = ['unordered-list-item', 'ordered-list-item'];
|
|
28
27
|
|
|
29
28
|
return { extendedBlockRenderMap, blockStyleFn, listBlockTypes };
|
|
30
|
-
}
|
|
29
|
+
}
|
|
@@ -23,9 +23,8 @@ const breakOutOptions = {
|
|
|
23
23
|
const plugins = (props) => {
|
|
24
24
|
const { draftJsInlineToolbarPlugin, draftJsBlockBreakoutPlugin } = props;
|
|
25
25
|
const { Separator } = draftJsInlineToolbarPlugin;
|
|
26
|
-
const blockBreakoutPlugin =
|
|
27
|
-
breakOutOptions
|
|
28
|
-
);
|
|
26
|
+
const blockBreakoutPlugin =
|
|
27
|
+
draftJsBlockBreakoutPlugin.default(breakOutOptions);
|
|
29
28
|
|
|
30
29
|
const linkPlugin = createLinkPlugin({ libraries: props });
|
|
31
30
|
|
|
@@ -13,7 +13,7 @@ import orderedListSVG from '@plone/volto/icons/list-numbered.svg';
|
|
|
13
13
|
import blockquoteSVG from '@plone/volto/icons/quote.svg';
|
|
14
14
|
import calloutSVG from '@plone/volto/icons/megaphone.svg';
|
|
15
15
|
|
|
16
|
-
export default function (props) {
|
|
16
|
+
export default function Styles(props) {
|
|
17
17
|
const createInlineStyleButton = props.draftJsCreateInlineStyleButton.default;
|
|
18
18
|
const createBlockStyleButton = props.draftJsCreateBlockStyleButton.default;
|
|
19
19
|
|
|
@@ -101,16 +101,18 @@ const splitSoftLinesOfLists = (children) =>
|
|
|
101
101
|
});
|
|
102
102
|
|
|
103
103
|
// Returns how the default lists should be rendered
|
|
104
|
-
const getList =
|
|
105
|
-
ordered
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
104
|
+
const getList =
|
|
105
|
+
(ordered) =>
|
|
106
|
+
(children, { depth, keys }) =>
|
|
107
|
+
ordered ? (
|
|
108
|
+
<ol key={keys[0]} keys={keys} depth={depth}>
|
|
109
|
+
{splitSoftLinesOfLists(children)}
|
|
110
|
+
</ol>
|
|
111
|
+
) : (
|
|
112
|
+
<ul key={keys[0]} keys={keys} depth={depth}>
|
|
113
|
+
{splitSoftLinesOfLists(children)}
|
|
114
|
+
</ul>
|
|
115
|
+
);
|
|
114
116
|
|
|
115
117
|
// Special function to deal with list clones
|
|
116
118
|
/*const getSpecialList = type => (children, { depth, keys }) => (
|
|
@@ -5,9 +5,8 @@ import FromHTMLCustomBlockFn from './FromHTML';
|
|
|
5
5
|
|
|
6
6
|
export const richtextEditorSettings = (props) => {
|
|
7
7
|
const { plugins, inlineToolbarButtons } = Plugins(props);
|
|
8
|
-
const { extendedBlockRenderMap, blockStyleFn, listBlockTypes } =
|
|
9
|
-
props
|
|
10
|
-
);
|
|
8
|
+
const { extendedBlockRenderMap, blockStyleFn, listBlockTypes } =
|
|
9
|
+
Blocks(props);
|
|
11
10
|
|
|
12
11
|
return {
|
|
13
12
|
extendedBlockRenderMap,
|
package/src/config/Views.jsx
CHANGED
|
@@ -16,6 +16,7 @@ import RequestTimeout from '@plone/volto/components/theme/RequestTimeout/Request
|
|
|
16
16
|
import AlbumView from '@plone/volto/components/theme/View/AlbumView';
|
|
17
17
|
import Unauthorized from '@plone/volto/components/theme/Unauthorized/Unauthorized';
|
|
18
18
|
import Forbidden from '@plone/volto/components/theme/Forbidden/Forbidden';
|
|
19
|
+
import ServerError from '@plone/volto/components/theme/Error/ServerError';
|
|
19
20
|
|
|
20
21
|
const EventView = loadable(() =>
|
|
21
22
|
import('@plone/volto/components/theme/View/EventView'),
|
|
@@ -110,10 +111,11 @@ export const contentTypesViews = {
|
|
|
110
111
|
export const defaultView = DefaultView;
|
|
111
112
|
|
|
112
113
|
export const errorViews = {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
404: NotFoundView,
|
|
115
|
+
401: Unauthorized,
|
|
116
|
+
403: Forbidden,
|
|
117
|
+
408: RequestTimeout,
|
|
118
|
+
500: ServerError,
|
|
117
119
|
ECONNREFUSED: ConnectionRefused,
|
|
118
120
|
corsError: CorsError,
|
|
119
121
|
};
|
package/src/config/Widgets.jsx
CHANGED
|
@@ -24,6 +24,7 @@ import InternalUrlWidget from '@plone/volto/components/manage/Widgets/InternalUr
|
|
|
24
24
|
import EmailWidget from '@plone/volto/components/manage/Widgets/EmailWidget';
|
|
25
25
|
import NumberWidget from '@plone/volto/components/manage/Widgets/NumberWidget';
|
|
26
26
|
import ImageSizeWidget from '@plone/volto/components/manage/Widgets/ImageSizeWidget';
|
|
27
|
+
import RegistryImageWidget from '@plone/volto/components/manage/Widgets/RegistryImageWidget';
|
|
27
28
|
|
|
28
29
|
import ReferenceWidget from '@plone/volto/components/manage/Widgets/ReferenceWidget';
|
|
29
30
|
import ObjectBrowserWidget from '@plone/volto/components/manage/Widgets/ObjectBrowserWidget';
|
|
@@ -72,6 +73,7 @@ export const widgetMapping = {
|
|
|
72
73
|
recurrence: RecurrenceWidget,
|
|
73
74
|
remoteUrl: UrlWidget,
|
|
74
75
|
id: IdWidget,
|
|
76
|
+
site_logo: RegistryImageWidget,
|
|
75
77
|
},
|
|
76
78
|
widget: {
|
|
77
79
|
richtext: WysiwygWidget,
|
|
@@ -148,6 +150,7 @@ export const widgetMapping = {
|
|
|
148
150
|
title: TitleViewWidget,
|
|
149
151
|
url: UrlViewWidget,
|
|
150
152
|
internal_url: InternalUrlWidget,
|
|
153
|
+
object: () => '', // TODO: Not implemented yet: Object View widget
|
|
151
154
|
},
|
|
152
155
|
vocabulary: {},
|
|
153
156
|
choices: SelectViewWidget,
|
package/src/config/index.js
CHANGED
|
@@ -37,6 +37,8 @@ import applyAddonConfiguration, { addonsInfo } from 'load-volto-addons';
|
|
|
37
37
|
|
|
38
38
|
import ConfigRegistry from '@plone/volto/registry';
|
|
39
39
|
|
|
40
|
+
import { getSiteAsyncPropExtender } from '@plone/volto/helpers';
|
|
41
|
+
|
|
40
42
|
const host = process.env.HOST || 'localhost';
|
|
41
43
|
const port = process.env.PORT || '3000';
|
|
42
44
|
|
|
@@ -74,13 +76,22 @@ let config = {
|
|
|
74
76
|
port,
|
|
75
77
|
// The URL Volto is going to be served (see sensible defaults above)
|
|
76
78
|
publicURL,
|
|
79
|
+
okRoute: '/ok',
|
|
77
80
|
apiPath,
|
|
78
81
|
apiExpanders: [
|
|
82
|
+
// Added here for documentation purposes, addded at the end because it
|
|
83
|
+
// depends on a value of this object.
|
|
79
84
|
// Add the following expanders for only issuing a single request.
|
|
80
85
|
// https://6.docs.plone.org/volto/configuration/settings-reference.html#term-apiExpanders
|
|
81
86
|
// {
|
|
82
87
|
// match: '',
|
|
83
|
-
// GET_CONTENT: [
|
|
88
|
+
// GET_CONTENT: [
|
|
89
|
+
// 'breadcrumbs',
|
|
90
|
+
// 'navigation',
|
|
91
|
+
// 'actions',
|
|
92
|
+
// 'types',
|
|
93
|
+
// 'navroot',
|
|
94
|
+
// ],
|
|
84
95
|
// },
|
|
85
96
|
],
|
|
86
97
|
// Internal proxy to bypass CORS *while developing*. NOT intended for production use.
|
|
@@ -125,7 +136,7 @@ let config = {
|
|
|
125
136
|
useEmailAsLogin: false,
|
|
126
137
|
persistentReducers: ['blocksClipboard'],
|
|
127
138
|
initialReducersBlacklist: [], // reducers in this list won't be hydrated in windows.__data
|
|
128
|
-
asyncPropsExtenders: [], // per route asyncConnect customizers
|
|
139
|
+
asyncPropsExtenders: [getSiteAsyncPropExtender], // per route asyncConnect customizers
|
|
129
140
|
contentIcons: contentIcons,
|
|
130
141
|
loadables,
|
|
131
142
|
lazyBundles: {
|
|
@@ -150,6 +161,7 @@ let config = {
|
|
|
150
161
|
},
|
|
151
162
|
appExtras: [],
|
|
152
163
|
maxResponseSize: 2000000000, // This is superagent default (200 mb)
|
|
164
|
+
maxFileUploadSize: null,
|
|
153
165
|
serverConfig,
|
|
154
166
|
storeExtenders: [],
|
|
155
167
|
showTags: true,
|
|
@@ -182,6 +194,12 @@ let config = {
|
|
|
182
194
|
styleClassNameExtenders,
|
|
183
195
|
querystringSearchGet: false,
|
|
184
196
|
blockSettingsTabFieldsetsInitialStateOpen: true,
|
|
197
|
+
excludeLinksAndReferencesMenuItem: false,
|
|
198
|
+
containerBlockTypes: ['gridBlock'],
|
|
199
|
+
siteTitleFormat: {
|
|
200
|
+
includeSiteTitle: false,
|
|
201
|
+
titleAndSiteTitleSeparator: '-',
|
|
202
|
+
},
|
|
185
203
|
},
|
|
186
204
|
experimental: {
|
|
187
205
|
addBlockButton: {
|
|
@@ -212,6 +230,22 @@ let config = {
|
|
|
212
230
|
components,
|
|
213
231
|
};
|
|
214
232
|
|
|
233
|
+
// The apiExpanders depends on a config of the object, so it's done here
|
|
234
|
+
config.settings.apiExpanders = [
|
|
235
|
+
...config.settings.apiExpanders,
|
|
236
|
+
{
|
|
237
|
+
match: '',
|
|
238
|
+
GET_CONTENT: ['breadcrumbs', 'actions', 'types', 'navroot'],
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
match: '',
|
|
242
|
+
GET_CONTENT: ['navigation'],
|
|
243
|
+
querystring: (config) => ({
|
|
244
|
+
'expand.navigation.depth': config.settings.navDepth,
|
|
245
|
+
}),
|
|
246
|
+
},
|
|
247
|
+
];
|
|
248
|
+
|
|
215
249
|
ConfigRegistry.settings = config.settings;
|
|
216
250
|
ConfigRegistry.experimental = config.experimental;
|
|
217
251
|
ConfigRegistry.blocks = config.blocks;
|
package/src/config/server.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import imagesMiddleware from '@plone/volto/express-middleware/images';
|
|
2
2
|
import filesMiddleware from '@plone/volto/express-middleware/files';
|
|
3
3
|
import robotstxtMiddleware from '@plone/volto/express-middleware/robotstxt';
|
|
4
|
+
import okMiddleware from '@plone/volto/express-middleware/ok';
|
|
4
5
|
import sitemapMiddleware from '@plone/volto/express-middleware/sitemap';
|
|
5
6
|
import staticsMiddleware from '@plone/volto/express-middleware/static';
|
|
6
7
|
import devProxyMiddleware from '@plone/volto/express-middleware/devproxy';
|
|
@@ -11,6 +12,7 @@ const settings = {
|
|
|
11
12
|
filesMiddleware(),
|
|
12
13
|
imagesMiddleware(),
|
|
13
14
|
robotstxtMiddleware(),
|
|
15
|
+
okMiddleware(),
|
|
14
16
|
sitemapMiddleware(),
|
|
15
17
|
staticsMiddleware(),
|
|
16
18
|
],
|
|
@@ -39,6 +39,7 @@ export const GET_QUERYSTRING_RESULTS = 'GET_QUERYSTRING_RESULTS';
|
|
|
39
39
|
export const CREATE_RELATIONS = 'CREATE_RELATIONS';
|
|
40
40
|
export const DELETE_RELATIONS = 'DELETE_RELATIONS';
|
|
41
41
|
export const LIST_RELATIONS = 'LIST_RELATIONS';
|
|
42
|
+
export const STATS_RELATIONS = 'STATS_RELATIONS';
|
|
42
43
|
export const REBUILD_RELATIONS = 'REBUILD_RELATIONS';
|
|
43
44
|
export const GET_SCHEMA = 'GET_SCHEMA';
|
|
44
45
|
export const POST_SCHEMA = 'POST_SCHEMA';
|
|
@@ -137,3 +138,6 @@ export const REMOVE_ALIASES = 'REMOVE_ALIASES';
|
|
|
137
138
|
export const GET_USERSCHEMA = 'GET_USERSCHEMA';
|
|
138
139
|
export const GET_UPGRADE = 'GET_UPGRADE';
|
|
139
140
|
export const POST_UPGRADE = 'POST_UPGRADE';
|
|
141
|
+
export const RESET_LOGIN_REQUEST = 'RESET_LOGIN_REQUEST';
|
|
142
|
+
export const GET_SITE = 'GET_SITE';
|
|
143
|
+
export const GET_NAVROOT = 'GET_NAVROOT';
|
package/src/constants/Indexes.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @module constants/indexes
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
const Indexes = {
|
|
7
7
|
sortable_title: { label: 'Title', type: 'string', sort_on: 'sortable_title' },
|
|
8
8
|
review_state: { label: 'Review state', type: 'string' },
|
|
9
9
|
ModificationDate: {
|
|
@@ -35,6 +35,8 @@ export default {
|
|
|
35
35
|
Type: { label: 'Type', type: 'string' },
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
+
export default Indexes;
|
|
39
|
+
|
|
38
40
|
export const defaultIndexes = [
|
|
39
41
|
'review_state',
|
|
40
42
|
'ModificationDate',
|
|
@@ -2,19 +2,21 @@ import express from 'express';
|
|
|
2
2
|
import { getAPIResourceWithAuth } from '@plone/volto/helpers';
|
|
3
3
|
|
|
4
4
|
const HEADERS = [
|
|
5
|
-
'
|
|
6
|
-
'
|
|
7
|
-
'
|
|
8
|
-
'
|
|
9
|
-
'
|
|
5
|
+
'accept-ranges',
|
|
6
|
+
'cache-control',
|
|
7
|
+
'content-disposition',
|
|
8
|
+
'content-range',
|
|
9
|
+
'content-type',
|
|
10
|
+
'x-sendfile',
|
|
11
|
+
'x-accel-redirect',
|
|
10
12
|
];
|
|
11
13
|
|
|
12
|
-
function
|
|
14
|
+
function filesMiddlewareFn(req, res, next) {
|
|
13
15
|
getAPIResourceWithAuth(req)
|
|
14
16
|
.then((resource) => {
|
|
15
17
|
// Just forward the headers that we need
|
|
16
18
|
HEADERS.forEach((header) => {
|
|
17
|
-
if (resource.
|
|
19
|
+
if (resource.headers[header]) {
|
|
18
20
|
res.set(header, resource.get(header));
|
|
19
21
|
}
|
|
20
22
|
});
|
|
@@ -24,10 +26,10 @@ function fileMiddleware(req, res, next) {
|
|
|
24
26
|
.catch(next);
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
export default function () {
|
|
29
|
+
export default function filesMiddleware() {
|
|
28
30
|
const middleware = express.Router();
|
|
29
31
|
|
|
30
|
-
middleware.all(['**/@@download/*', '**/@@display-file/*'],
|
|
32
|
+
middleware.all(['**/@@download/*', '**/@@display-file/*'], filesMiddlewareFn);
|
|
31
33
|
middleware.id = 'filesResourcesProcessor';
|
|
32
34
|
return middleware;
|
|
33
35
|
}
|