@plone/volto 15.0.0-alpha.9 → 15.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.
Files changed (99) hide show
  1. package/.eslintrc +1 -1
  2. package/.storybook/preview.js +2 -2
  3. package/CHANGELOG.md +145 -0
  4. package/README.md +92 -82
  5. package/create-addons-loader.js +1 -1
  6. package/dist/assets.json +1 -1
  7. package/dist/chunks.json +34 -34
  8. package/dist/loadable-stats.json +82 -82
  9. package/dist/public/static/css/{14.e6187688.chunk.css → 14.803b450c.chunk.css} +1 -1
  10. package/dist/public/static/css/{client.22b707ce.chunk.css → client.7ff60f09.chunk.css} +2 -2
  11. package/dist/public/static/js/14.803b450c.chunk.js +3 -0
  12. package/dist/public/static/js/{14.e6187688.chunk.js.LICENSE.txt → 14.803b450c.chunk.js.LICENSE.txt} +0 -0
  13. package/dist/public/static/js/22.5a2b56ff.chunk.js +2 -0
  14. package/dist/public/static/js/23.a53c8d7b.chunk.js +2 -0
  15. package/dist/public/static/js/24.d44c620a.chunk.js +2 -0
  16. package/dist/public/static/js/25.455376b6.chunk.js +2 -0
  17. package/dist/public/static/js/26.a821045d.chunk.js +2 -0
  18. package/dist/public/static/js/27.efbb318a.chunk.js +2 -0
  19. package/dist/public/static/js/28.b4840d60.chunk.js +2 -0
  20. package/dist/public/static/js/29.690d4b54.chunk.js +2 -0
  21. package/dist/public/static/js/30.5f174f94.chunk.js +2 -0
  22. package/dist/public/static/js/31.4a7cf109.chunk.js +2 -0
  23. package/dist/public/static/js/32.2247dcf7.chunk.js +2 -0
  24. package/dist/public/static/js/33.87874f33.chunk.js +2 -0
  25. package/dist/public/static/js/37.96925a5f.chunk.js +3 -0
  26. package/dist/public/static/js/{37.9f2dfaaf.chunk.js.LICENSE.txt → 37.96925a5f.chunk.js.LICENSE.txt} +0 -0
  27. package/dist/public/static/js/client.7ff60f09.chunk.js +2 -0
  28. package/dist/public/static/js/{runtime~client.8af75b1a.js → runtime~client.c5015e27.js} +2 -2
  29. package/dist/server.js +1 -1
  30. package/locales/ca/LC_MESSAGES/volto.po +2 -2
  31. package/locales/ca.json +1 -1
  32. package/locales/de/LC_MESSAGES/volto.po +4 -4
  33. package/locales/de.json +1 -1
  34. package/locales/en/LC_MESSAGES/volto.po +2 -2
  35. package/locales/en.json +1 -1
  36. package/locales/es/LC_MESSAGES/volto.po +74 -74
  37. package/locales/es.json +1 -1
  38. package/locales/eu/LC_MESSAGES/volto.po +166 -166
  39. package/locales/eu.json +1 -1
  40. package/locales/fr/LC_MESSAGES/volto.po +2 -2
  41. package/locales/fr.json +1 -1
  42. package/locales/it/LC_MESSAGES/volto.po +2 -2
  43. package/locales/it.json +1 -1
  44. package/locales/ja/LC_MESSAGES/volto.po +2 -2
  45. package/locales/ja.json +1 -1
  46. package/locales/nl/LC_MESSAGES/volto.po +2 -2
  47. package/locales/nl.json +1 -1
  48. package/locales/pt/LC_MESSAGES/volto.po +2 -2
  49. package/locales/pt.json +1 -1
  50. package/locales/pt_BR/LC_MESSAGES/volto.po +2 -2
  51. package/locales/pt_BR.json +1 -1
  52. package/locales/ro/LC_MESSAGES/volto.po +2 -2
  53. package/locales/ro.json +1 -1
  54. package/locales/volto.pot +3 -3
  55. package/logos/VoltoLogoEra2-dark-mode.png +0 -0
  56. package/logos/VoltoLogoEra2.png +0 -0
  57. package/package.json +9 -3
  58. package/razzle.config.js +4 -0
  59. package/src/actions/lazyLibraries/lazyLibraries.js +8 -4
  60. package/src/components/manage/Add/Add.jsx +1 -1
  61. package/src/components/manage/Blocks/Block/BlocksForm.jsx +2 -2
  62. package/src/components/manage/Blocks/Search/components/Facets.jsx +5 -1
  63. package/src/components/manage/Contents/ContentsIndexHeader.test.jsx +2 -1
  64. package/src/components/manage/Contents/ContentsRenameModal.jsx +1 -1
  65. package/src/components/manage/Controlpanels/VersionOverview.jsx +2 -1
  66. package/src/components/manage/Form/ModalForm.jsx +6 -8
  67. package/src/components/manage/Multilingual/CreateTranslation.jsx +1 -1
  68. package/src/components/manage/Multilingual/TranslationObject.jsx +1 -1
  69. package/src/components/manage/Pluggable/index.js +1 -1
  70. package/src/components/manage/Preferences/PersonalPreferences.jsx +1 -1
  71. package/src/components/manage/Toolbar/Toolbar.jsx +1 -1
  72. package/src/components/manage/Widgets/IdWidget.jsx +14 -4
  73. package/src/components/theme/Component/Component.jsx +4 -4
  74. package/src/components/theme/Component/Component.test.jsx +3 -3
  75. package/src/components/theme/EventDetails/EventDetails.test.jsx +2 -1
  76. package/src/components/theme/MultilingualRedirector/MultilingualRedirector.jsx +1 -1
  77. package/src/config/Widgets.jsx +1 -0
  78. package/src/config/index.js +2 -1
  79. package/src/helpers/Blocks/Blocks.js +5 -1
  80. package/src/reducers/content/content.js +21 -1
  81. package/src/server.jsx +2 -2
  82. package/src/start-client.jsx +2 -2
  83. package/src/store.js +1 -1
  84. package/theme/themes/pastanaga/extras/sidebar.less +1 -0
  85. package/dist/public/static/js/14.e6187688.chunk.js +0 -3
  86. package/dist/public/static/js/22.7339c861.chunk.js +0 -2
  87. package/dist/public/static/js/23.1d15c541.chunk.js +0 -2
  88. package/dist/public/static/js/24.d5133aae.chunk.js +0 -2
  89. package/dist/public/static/js/25.1ef76e2b.chunk.js +0 -2
  90. package/dist/public/static/js/26.5bf7099e.chunk.js +0 -2
  91. package/dist/public/static/js/27.00d25863.chunk.js +0 -2
  92. package/dist/public/static/js/28.72e76a0f.chunk.js +0 -2
  93. package/dist/public/static/js/29.07d38dc7.chunk.js +0 -2
  94. package/dist/public/static/js/30.57f2a8e8.chunk.js +0 -2
  95. package/dist/public/static/js/31.f878d4af.chunk.js +0 -2
  96. package/dist/public/static/js/32.41a64022.chunk.js +0 -2
  97. package/dist/public/static/js/33.d0de7e9f.chunk.js +0 -2
  98. package/dist/public/static/js/37.9f2dfaaf.chunk.js +0 -3
  99. package/dist/public/static/js/client.22b707ce.chunk.js +0 -2
package/.eslintrc CHANGED
@@ -32,7 +32,7 @@
32
32
  "settings": {
33
33
  "import/resolver": {
34
34
  "alias": {
35
- "map": [["@plone/volto", "./src"]],
35
+ "map": [["@plone/volto", "./src"], ["@package", "./src"], ["@root", "./src"]],
36
36
  "extensions": [".js", ".jsx", ".json"]
37
37
  },
38
38
  "babel-plugin-root-import": {
@@ -2,9 +2,9 @@ import '@plone/volto/config'; // This is the bootstrap for the global config - c
2
2
  import React from 'react';
3
3
  import { StaticRouter } from 'react-router-dom';
4
4
  import { IntlProvider } from 'react-intl';
5
- import enMessages from '~/../locales/en.json';
5
+ import enMessages from '@root/../locales/en.json';
6
6
 
7
- import '~/theme';
7
+ import '@root/theme';
8
8
 
9
9
  export const parameters = {
10
10
  actions: { argTypesRegex: '^on[A-Z].*' },
package/CHANGELOG.md CHANGED
@@ -1,5 +1,150 @@
1
1
  # Change Log
2
2
 
3
+ ## 15.0.0 (2022-03-14)
4
+
5
+ ### Breaking
6
+
7
+ - Upgrade `react-cookie` to the latest version. @sneridagh @robgietema
8
+ See https://6.dev-docs.plone.org/volto/upgrade-guide/index.html for more information.
9
+ - Language Switcher no longer takes care of the change of the language on the Redux Store. This responsibility has been unified in the API Redux middleware @sneridagh
10
+ - Markup change in `LinkView` component.
11
+ - Rename `core-sandbox` to `coresandbox` for sake of consistency @sneridagh
12
+ - Extend the original intent and rename `RAZZLE_TESTING_ADDONS` to `ADDONS`. @sneridagh
13
+ See https://6.dev-docs.plone.org/volto/upgrade-guide/index.html for more information.
14
+ - Lazyload Draft.js library. See the upgrade guide on how that impacts you, in case you have extended the rich text editor configuration @tiberiuichim @kreafox
15
+ See https://6.dev-docs.plone.org/volto/upgrade-guide/index.html for more information.
16
+ - Deprecating `lang` cookie in favor of Plone official one `I18N_LANGUAGE` @sneridagh
17
+
18
+ ### Feature
19
+
20
+ - Add `cookiesExpire` value to config to control the cookie expiration @giuliaghisini
21
+ - DatetimeWidget 'noPastDates' option: Take widgetOptions?.pattern_options?.noPastDates of backend schema into account. @ksuess
22
+ - Add a new type of filter facet for the Search block. Heavily refactor some searchblock internals. @tiberiuichim
23
+ - Add date range facet to the search block @robgietema
24
+ - Introduce the new `BUILD_DIR` runtime environment variable to direct the build to run in a specific location, different than `build` folder. @sneridagh
25
+ - Handle redirect permanent calls from the backend in the frontend (e.g. when changing the short name) @robgietema
26
+ - Added id widget to manage short name @robgietema
27
+ - Refactor language synchronizer. Remove it from the React tree, integrate it into the Api Redux middleware @sneridagh
28
+ - Add blocks rendering in Event and NewsItem views (rel plone.volto#32) @nzambello @ksuess
29
+ - Add internal volto ids to invalid ids @robgietema
30
+ - Complete Basque translation @erral
31
+ - Complete Spanish translation @erral
32
+ - Sort the choices in Facets in the search block @iFlameing
33
+
34
+ ### Bugfix
35
+
36
+ - Fix the `null` error in SelectAutoComplete Widget @iFlameing
37
+ - Prevent the `MultilingualRedirector` to force content load when switching the language @reebalazs
38
+ - Fix the upload image in contents view @iFlameing
39
+ - add "view" id to contact-form container for main content skiplink @ThomasKindermann
40
+ - Fix loading indicator positioning on Login form submit @sneridagh
41
+ - Fix redirect bug with URLs containing querystrings @robgietema
42
+ - Fixed id widget translations @robgietema
43
+ - Contents Rename Modal, use `id` Widget type @sneridagh
44
+ - Fix overflow of very long file name in `FileWidget` @sneridagh
45
+ - Fix overflowing issue in the toolbar @kreafox
46
+ - Overwrite current block on insert new block. @robgietema
47
+ - Fix hot reload on updates related to the config object because of `VersionOverview` component @sneridagh
48
+ - Fix error when lock data is gone after an invariant error. @robgietema
49
+
50
+ ### Internal
51
+
52
+ - Change prop `name` -> `componentName` in component `Component` @sneridagh
53
+ - Add new RawMaterial Volto websites in production @nzambello
54
+ - House cleanup, remove some unused files in the root @sneridagh
55
+ - Move Webpack related files to `webpack-plugins` folder @sneridagh
56
+ - Remove unused Dockerfiles @sneridagh
57
+ - Update Docker compose to latest images and best practices @sneridagh
58
+ - Improve flaky test in coresandbox search Cypress tests @sneridagh
59
+ - Better implementation of the add-on load coming from the environment variable `ADDONS` @sneridagh
60
+ - Turn `lazyLibraries` action into a thunk. Added a conditional if the library is loaded or in process to be loaded, do not try to load it again. This fixes the lag on load `draftjs` when having a lot of draftjs blocks. @sneridagh
61
+ - Use `@root` alias instead of `~` in several module references. Most of the Volto project code no longer needs the root alias, so it makes sense to phase it out at some point @tiberiuichim
62
+ - Alias `lodash` to `lodash-es`, as this will include only one copy of lodash in the bundle @tiberiuichim
63
+ - Better Readme, updated to 2022 @sneridagh
64
+ - Update to latest versions for Python packages @sneridagh
65
+ - Add `id` as widget type as well @sneridagh
66
+
67
+ ### Documentation
68
+
69
+ - Upgrade Guide i18n: Make clear what's project, what add-on. @ksuess
70
+ - (Experimental) Prepare documentation for MyST and importing into `plone/documentation@6-dev`. @stevepiercy
71
+ - Fix broken links and redirects in documentation to be compatible with MyST. @stevepiercy
72
+ - Update add-on internationalization. @ksuess
73
+ - Add MyST and Sphinx basic configuration for rapid build and comparison against MkDocs builds. @stevepiercy
74
+ - Fix many MyST and Sphinx warnings. @stevepiercy
75
+ - Remove MkDocs configuration. See https://github.com/plone/volto/issues/3042 @stevepiercy
76
+ - Add Plone docs to Intersphinx and fix broken link. @stevepiercy
77
+ - Get version from `package.json` @sneridagh
78
+ - Remove legacy folder in docs @sneridagh
79
+ - Backport docs of RAZZLE_TESTING_ADDONS environment variables. See https://github.com/plone/volto/pull/3067/files#diff-00609ed769cd40cf3bc3d6fcc4431b714cb37c73cedaaea18fe9fc4c1c589597 @stevepiercy
80
+ - Add missing developer-guidelines/typescript to toctree @stevepiercy
81
+ - Add Netlify for preview of Sphinx builds for pull requests against `master` and `plone6-docs`. @stevepiercy
82
+ - Clean up toctree errors by removing obsolete files, adding `:orphan:` field list, and reorganizing some files. @sneridagh and @stevepiercy
83
+ - Switch to using netlify.toml to configure Netlify Python environment. @stevepiercy
84
+ - Convert admonition syntax from Markdown to MyST. @sneridagh
85
+ - Make links build both in Volto and Plone documentation. See https://github.com/plone/volto/pull/3094 @stevepiercy
86
+ - Fix broken links. @stevepiercy
87
+ - Update Sphinx configuration to check anchors in links and exclude problematic URLs. @sneridagh and @stevepiercy
88
+ - Fix StoryBook links @sneridagh
89
+ - Clean up `linkcheck_ignore` values. @stevepiercy
90
+
91
+ ## 15.0.0-alpha.14 (2022-03-10)
92
+
93
+ ### Bugfix
94
+
95
+ - Contents Rename Modal, use `id` Widget type @sneridagh
96
+
97
+ ### Internal
98
+
99
+ - Better Readme, updated to 2022 @sneridagh
100
+ - Update to latest versions for Python packages @sneridagh
101
+ - Add `id` as widget type as well @sneridagh
102
+
103
+ ### Documentation
104
+
105
+ - Fix broken links. @stevepiercy
106
+
107
+ ## 15.0.0-alpha.13 (2022-03-09)
108
+
109
+ ### Feature
110
+
111
+ - Sort the choices in Facets in the search block @iFlameing
112
+
113
+ ### Bugfix
114
+
115
+ - Fix overflow of very long file name in `FileWidget` @sneridagh
116
+ - Fix overflowing issue in the toolbar @kreafox
117
+
118
+ ## 15.0.0-alpha.12 (2022-03-07)
119
+
120
+ ### Feature
121
+
122
+ - Add internal volto ids to invalid ids @robgietema
123
+ - Complete basque translation @erral
124
+ - Complete spanish translation @erral
125
+
126
+ ### Internal
127
+
128
+ - Change prop `name` -> `componentName` in component `Component` @sneridagh
129
+
130
+ ## 15.0.0-alpha.11 (2022-03-02)
131
+
132
+ ### Bugfix
133
+
134
+ - Fix redirect bug with URLs containing querystrings @robgietema
135
+ - Fixed id widget translations @robgietema
136
+
137
+ ### Internal
138
+
139
+ - Use `@root` alias instead of `~` in several module references. Most of the Volto project code no longer needs the root alias, so it makes sense to phase it out at some point @tiberiuichim
140
+ - Alias `lodash` to `lodash-es`, as this will include only one copy of lodash in the bundle @tiberiuichim
141
+
142
+ ## 15.0.0-alpha.10 (2022-02-28)
143
+
144
+ ### Bugfix
145
+
146
+ - Turn `lazyLibraries` action into a thunk. Added a conditional if the library is loaded or in process to be loaded, do not try to load it again. This fixes the lag on load `draftjs` when having a lot of draftjs blocks. @sneridagh
147
+
3
148
  ## 15.0.0-alpha.9 (2022-02-28)
4
149
 
5
150
  ### Breaking
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Volto
2
2
 
3
- <img align="right" width="300" alt="Volto png" src="./logos/volto-colorful.png" />
3
+ <img align="right" width="300" alt="Volto logo png" src="./logos/VoltoLogoEra2.png#gh-light-mode-only" />
4
+ <img align="right" width="300" alt="Volto logo png" src="./logos/VoltoLogoEra2-dark-mode.png#gh-dark-mode-only" />
4
5
 
5
6
  [![NPM](https://img.shields.io/npm/v/@plone/volto.svg)](https://www.npmjs.com/package/@plone/volto)
6
7
  [![Build Status Core](https://github.com/plone/volto/actions/workflows/core.yml/badge.svg)](https://github.com/plone/volto/actions)
@@ -8,11 +9,9 @@
8
9
 
9
10
  ## Introduction
10
11
 
11
- [Volto](https://github.com/plone/volto) is a React-based frontend for content
12
- management systems, currently supporting three backend implementations: Plone,
13
- Guillotina and a NodeJS reference implementation.
12
+ [Volto](https://github.com/plone/volto) is a ReactJS-based frontend for the [Plone](https://plone.org) Content Management System. It will become the default UI for the upcoming Plone 6 release.
14
13
 
15
- [Plone](https://plone.org) is a CMS built on Python with over 20 years of history and experience.
14
+ [Plone](https://plone.org) is a CMS built on Python with more than 20 years of history and experience.
16
15
 
17
16
  Plone has very interesting features that appeal to developers and users alike,
18
17
  such as customizable content types, hierarchical URL object traversing and a
@@ -20,17 +19,16 @@ sophisticated content workflow powered by a granular permissions model. This
20
19
  allows you to build anything from simple websites to enterprise-grade
21
20
  intranets.
22
21
 
23
- Volto exposes all these features and communicates with Plone via its
24
- mature [REST API](https://github.com/plone/plone.restapi). Volto has the
25
- ability of being highly themable and customizable.
22
+ Volto exposes all these features and communicates with Plone via its [REST API](https://github.com/plone/plone.restapi).
23
+ Volto has the ability of being easily extensible, themeable, and customizable.
26
24
 
27
- Volto also supports other APIs like [Guillotina](https://guillotina.io/), a
28
- Python resource management system, inspired by Plone and using the same basic
29
- concepts like traversal, content types and permissions model.
25
+ It features the Pastanaga editor, a modern block-based content layout editor. It is extensible and customizable, so you can adapt the default blocks provided to match your requirements, or build new ones to cover them.
30
26
 
31
- Last but not least, it also supports a [Volto Nodejs-based backend reference](https://github.com/plone/volto-reference-backend) API implementation that
32
- demos how other systems could also use Volto to display and create content
33
- through it.
27
+ Volto is extensible using add-ons.
28
+ You can build your own or choose from the community released ones:
29
+
30
+ - [Volto Add-ons in NPM](https://www.npmjs.com/search?q=keywords%3Avolto-addon%2Cvolto)
31
+ - [Volto Awesome](https://github.com/collective/awesome-volto)
34
32
 
35
33
  ## Demo
36
34
 
@@ -56,7 +54,7 @@ First get all the requirements installed on your system.
56
54
 
57
55
  - [Node.js LTS (16.x)](https://nodejs.org/)
58
56
  - [Python 3.8.x](https://python.org/) or
59
- - [Docker](https://www.docker.com/get-started) (if using the Plone/Guillotina docker images)
57
+ - [Docker](https://www.docker.com/get-started) (if using the Plone docker images)
60
58
 
61
59
  ### Create a Volto project using the generator
62
60
 
@@ -74,8 +72,6 @@ follow the prompts questions, provide `myvoltoproject` as project name then, whe
74
72
 
75
73
  ### Bootstrap the Plone API backend
76
74
 
77
- We recommend Plone as backend of choice for Volto.
78
-
79
75
  You can bootstrap a ready Docker Plone container with all the dependencies and ready for Volto use. We recommend to use the Plone docker builds based in `pip` [plone/plone-backend](https://github.com/plone/plone-backend) image:
80
76
 
81
77
  ```shell
@@ -98,13 +94,13 @@ For the Plone 5 series latest released version (with Python 3) and above is reco
98
94
 
99
95
  The following KGS (or above) are also recommended, for any Plone version used.
100
96
 
101
- #### KGS (known good versions) for backend packages
97
+ #### KGS (known good set of versions) for backend packages
102
98
 
103
99
  Volto always works best with latest versions of the "Frontend stack" or at least the recommended ones (in parenthesis) which are:
104
100
 
105
- - plone.restapi (8.18.0)
106
- - plone.rest (2.0.0a1)
107
- - plone.volto (3.1.0a7)
101
+ - plone.restapi (8.21.2)
102
+ - plone.rest (2.0.0a3)
103
+ - plone.volto (4.0.0a3)
108
104
 
109
105
  and the following core packages since some features require up to date versions:
110
106
 
@@ -167,7 +163,7 @@ Please create a new [issue](https://github.com/plone/volto/issues/new) or [pull
167
163
 
168
164
  ## Documentation
169
165
 
170
- You can find the documentation in [https://docs.voltocms.com](https://docs.voltocms.com)
166
+ You can find the latest (in-progress) documentation in [https://6.dev-docs.plone.org/](https://6.dev-docs.plone.org/volto/index.html)
171
167
 
172
168
  ## Training
173
169
 
@@ -222,14 +218,14 @@ JavaScript-centered trainings.
222
218
 
223
219
  ## Browser support
224
220
 
225
- Volto works well with any modern (and updated) browser, including their mobile
221
+ Volto works well with any modern (evergreen) browser, including their mobile
226
222
  flavors: Chrome, Firefox, Safari, Edge.
227
223
 
228
- We do not guarantee that browsers who were deprecated by their vendors (e.g. Internet Explorer 11) will be supported by Volto in the future.
224
+ We do not guarantee that deprecated browsers (e.g., Internet Explorer 11) are supported by Volto. Although proven possible, it's too great an effort to maintain. It is left to the integrator to provide support for it.
229
225
 
230
226
  ## Upgrades
231
227
 
232
- You can find the upgrade guide here: https://docs.voltocms.com/upgrade-guide/
228
+ You can find the upgrade guide here: https://6.dev-docs.plone.org/volto/upgrade-guide/index.html
233
229
 
234
230
  ## Volto Development
235
231
 
@@ -248,14 +244,12 @@ git clone https://github.com/plone/volto.git
248
244
  yarn
249
245
  ```
250
246
 
251
- ### Install a backend
252
-
253
- #### Plone (recommended)
247
+ ### Install Plone backend
254
248
 
255
- Either using a Docker image
249
+ Either using a Docker command:
256
250
 
257
251
  ```shell
258
- docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e ADDONS="plone.volto" -e ZCML="plone.volto.cors" -e PROFILES="plone.volto:default-homepage" plone
252
+ docker run -it --rm --name=backend -p 8080:8080 -e SITE=Plone -e ADDONS="plone.restapi==8.21.2 plone.app.iterate==4.0.2 plone.rest==2.0.0a3 plone.app.vocabularies==4.3.0 plone.volto==4.0.0a3" -e PROFILES="plone.volto:default-homepage" plone/plone-backend
259
253
  ```
260
254
 
261
255
  or using the convenience makefile command:
@@ -272,36 +266,24 @@ Installation Documentation](https://docs.plone.org/manage/installing/installatio
272
266
  make build-backend
273
267
  ```
274
268
 
275
- #### Guillotina (experimental)
269
+ ### Run frontend
276
270
 
277
- It still doesn't support the full API/features that Plone provides.
271
+ Either using a Docker command:
278
272
 
279
273
  ```shell
280
- docker-compose -f g-api/docker-compose.yml up -d
274
+ docker run -it --rm --name=volto --link backend -p 3000:3000 -e RAZZLE_INTERNAL_API_PATH=http://backend:8080/Plone -e RAZZLE_DEV_PROXY_API_PATH=http://backend:8080/Plone plone/plone-frontend:latest
281
275
  ```
282
276
 
283
277
  or using the convenience makefile command:
284
278
 
285
279
  ```shell
286
- make start-backend-docker-guillotina
287
- ```
288
-
289
- ### Run frontend
290
-
291
- Either using Docker
292
-
293
- ```shell
294
- docker run -it --rm --name=volto --link plone -p 3000:3000 plone/volto
295
-
296
- # or with Volto add-ons enabled:
297
-
298
- docker run -it --rm --name=volto --link plone -e ADDONS="volto-testaddon volto-slate:asDefault" -p 3000:3000 plone/volto
280
+ make start-frontend-docker
299
281
  ```
300
282
 
301
- or using the convenience yarn command:
283
+ or from the local repository code:
302
284
 
303
285
  ```shell
304
- yarn start
286
+ yarn && yarn start
305
287
  ```
306
288
 
307
289
  ### Browsing
@@ -339,59 +321,55 @@ a dry-release command for testing the output is also available:
339
321
  yarn dry-release
340
322
  ```
341
323
 
342
- ### Acceptance testing
343
-
344
- Volto uses [Cypress](https://www.cypress.io/) for browser-based acceptance testing.
345
-
346
- Run acceptance tests (with the Plone backend):
324
+ and alpha release can also be cut using:
347
325
 
348
326
  ```shell
349
- yarn ci:cypress:run
327
+ yarn release-alpha
350
328
  ```
351
329
 
352
- Run acceptance tests (with the Guillotina backend):
330
+ ### Acceptance testing
353
331
 
354
- ```shell
355
- yarn ci:cypress:run:guillotina
356
- ```
332
+ Volto uses [Cypress](https://www.cypress.io/) for browser-based acceptance testing.
357
333
 
358
- #### Writing new acceptance tests
334
+ There are a number of fixtures available covering all the configuration use cases. These fixtures have both a specific backend and frontend configuration setup and a related set of tests. The CI infrastructure runs them all automatically on every push to a branch or PR.
359
335
 
360
- When writing new acceptance tests you usually want to minimize the time it takes to run the tests.
336
+ The tests can be run in headless mode (same as the CI does), or within the Cypress user interface. The latter is the one that you run under development.
361
337
 
362
- To do so, start three individual terminal sessions for running the Plone backend, the Volto frontend and the acceptance tests.
338
+ ### How to run acceptance tests locally (during development)
363
339
 
364
- Start the Plone backend:
340
+ When writing new acceptance tests, you usually want to minimize the time it takes to run the tests, while also being able to debug or inspect what's going on.
365
341
 
366
- ```shell
367
- make start-test-backend
368
- ```
342
+ To do so, start three individual terminal sessions for running the Plone backend, the Volto frontend, and the acceptance tests.
369
343
 
370
- Start the Volto frontend:
344
+ 1. Run the backend fixture
345
+ ```shell
346
+ make test-acceptance-server
347
+ ```
348
+ 2. Run the frontend fixture
349
+ ```shell
350
+ yarn cypress:start-frontend
351
+ ```
352
+ 3. Run the Cypress tests for that fixture
353
+ ```shell
354
+ yarn cypress:open
355
+ ```
371
356
 
372
- ```shell
373
- make start-test-frontend
374
- ```
357
+ Available fixtures:
375
358
 
376
- Open Cypress and start acceptance tests:
359
+ - Core (core or not special naming in the test commands)
360
+ - Multilingual (multilingual)
361
+ - Working Copy (workingCopy)
362
+ - Core Sandbox (coresandbox)
377
363
 
378
- ```shell
379
- make start-test
380
- ```
364
+ There are convenience commands for each of these fixtures. See `package.json` or `.github` CI setup for more information.
381
365
 
382
- Go to the `cypress/integration` folder to see existing tests.
366
+ #### Writing new acceptance tests
367
+
368
+ Go to the `cypress/tests` folder to see existing tests. There is a directory per fixture.
383
369
  This directory is hot reloaded with your changes as you write the tests. For more information on how to write Cypress tests:
384
370
 
385
371
  https://docs.cypress.io
386
372
 
387
- #### Running the acceptance tests with Guillotina backend
388
-
389
- If you want to use Guillotina as backend to run the tests you should run:
390
-
391
- ```shell
392
- yarn ci:start-api-plone-guillotina
393
- ```
394
-
395
373
  ## Translations
396
374
 
397
375
  If you would like contribute to translate Volto into several languages, please, read the [Internationalization (i18n) guide](https://docs.voltocms.com/customizing/i18n/).
@@ -402,6 +380,38 @@ If you would like contribute to translate Volto into several languages, please,
402
380
  <img src="https://contrib.rocks/image?repo=plone/volto" />
403
381
  </a>
404
382
 
383
+ ## Alternative backends
384
+
385
+ Volto also supports other APIs like [Guillotina](https://guillotina.io/), a
386
+ Python resource management system, inspired by Plone and using the same basic
387
+ concepts like traversal, content types, and permissions model.
388
+
389
+ Last but not least, it also supports a [Volto Node.js-based backend reference](https://github.com/plone/volto-reference-backend) API implementation that
390
+ demos how other systems could also use Volto to display and create content
391
+ through it.
392
+
393
+ ### Run a Guillotina backend
394
+
395
+ *Disclaimer:* Guillotina doesn't support the full API/features that Plone provides. Contributors are welcome.
396
+
397
+ ```shell
398
+ docker-compose -f g-api/docker-compose.yml up -d
399
+ ```
400
+
401
+ or using the convenience makefile command:
402
+
403
+ ```shell
404
+ make start-backend-docker-guillotina
405
+ ```
406
+
407
+ ### Running the acceptance tests with Guillotina backend
408
+
409
+ If you want to use Guillotina as a backend to run the tests you should run:
410
+
411
+ ```shell
412
+ yarn ci:start-api-plone-guillotina
413
+ ```
414
+
405
415
  ## License
406
416
 
407
417
  MIT License. Copyrights hold the [Plone Foundation](https://plone.org/foundation).
@@ -27,7 +27,7 @@ This file is autogenerated. Don't change it directly.
27
27
  Instead, change the "addons" setting in your package.json file.
28
28
  */
29
29
 
30
- const projectConfigLoader = require('@package/config');
30
+ const projectConfigLoader = require('@root/config');
31
31
  `;
32
32
  let configsToLoad = [],
33
33
  counter = 0;
package/dist/assets.json CHANGED
@@ -1 +1 @@
1
- {"react-select":{"js":"/static/js/react-select.43f17559.chunk.js"},"moment":{"js":"/static/js/moment.dfd83abb.chunk.js"},"client":{"css":"/static/css/client.22b707ce.chunk.css","js":"/static/js/client.22b707ce.chunk.js"},"draft-js-lib-isSoftNewlineEvent":{"js":"/static/js/draft-js-lib-isSoftNewlineEvent.ad4b1307.chunk.js"},"plone-volto-components-manage-Widgets-DatetimeWidget":{"css":"/static/css/plone-volto-components-manage-Widgets-DatetimeWidget.77a7ad0d.chunk.css","js":"/static/js/plone-volto-components-manage-Widgets-DatetimeWidget.77a7ad0d.chunk.js"},"plone-volto-components-theme-View-EventView":{"js":"/static/js/plone-volto-components-theme-View-EventView.c500936a.chunk.js"},"react-dates":{"js":"/static/js/react-dates.d94a34ee.chunk.js"},"react-simple-code-editor":{"js":"/static/js/react-simple-code-editor.484ec69f.chunk.js"},"runtime~client":{"js":"/static/js/runtime~client.8af75b1a.js"},"":{"json":"/../chunks.json","png":["/android-chrome-192x192.png","/android-chrome-512x512.png","/apple-touch-icon.png","/favicon-16x16.png","/favicon-32x32.png","/static/media/flags.9c74e172.png"],"ico":"/favicon.ico","svg":["/icon.svg","/static/media/Logo.16e25cdf.svg","/static/media/block-image.8a4a14d5.svg","/static/media/block-maps.731e84f6.svg","/static/media/block-video.832fa3ff.svg","/static/media/default-image.9451b251.svg","/static/media/icons.022583c4.svg"],"spa":"/index.html.spa","txt":["/robots.txt","/static/js/1.fece2b93.chunk.js.LICENSE.txt","/static/js/14.e6187688.chunk.js.LICENSE.txt","/static/js/15.c1eb25b4.chunk.js.LICENSE.txt","/static/js/19.61ef8815.chunk.js.LICENSE.txt","/static/js/34.aec37d56.chunk.js.LICENSE.txt","/static/js/35.73887e02.chunk.js.LICENSE.txt","/static/js/36.19d2e05a.chunk.js.LICENSE.txt","/static/js/37.9f2dfaaf.chunk.js.LICENSE.txt"],"webmanifest":"/site.webmanifest","css":["/static/css/14.e6187688.chunk.css","/static/css/3.a3490306.chunk.css"],"js":["/static/js/0.3e794c57.chunk.js","/static/js/1.fece2b93.chunk.js","/static/js/14.e6187688.chunk.js","/static/js/15.c1eb25b4.chunk.js","/static/js/16.70e24cba.chunk.js","/static/js/17.f03d2a82.chunk.js","/static/js/18.0f0b1dfa.chunk.js","/static/js/19.61ef8815.chunk.js","/static/js/20.6b37f925.chunk.js","/static/js/21.8704b265.chunk.js","/static/js/22.7339c861.chunk.js","/static/js/23.1d15c541.chunk.js","/static/js/24.d5133aae.chunk.js","/static/js/25.1ef76e2b.chunk.js","/static/js/26.5bf7099e.chunk.js","/static/js/27.00d25863.chunk.js","/static/js/28.72e76a0f.chunk.js","/static/js/29.07d38dc7.chunk.js","/static/js/3.a3490306.chunk.js","/static/js/30.57f2a8e8.chunk.js","/static/js/31.f878d4af.chunk.js","/static/js/32.41a64022.chunk.js","/static/js/33.d0de7e9f.chunk.js","/static/js/34.aec37d56.chunk.js","/static/js/35.73887e02.chunk.js","/static/js/36.19d2e05a.chunk.js","/static/js/37.9f2dfaaf.chunk.js","/static/js/38.701a2e85.chunk.js","/static/js/39.4cbf0549.chunk.js","/static/js/4.bdc4a5c5.chunk.js","/static/js/6.69ba4792.chunk.js"],"ttf":"/static/media/icons.06400145.ttf","eot":"/static/media/icons.dbc1ef8b.eot","woff":"/static/media/icons.df45b7de.woff"}}
1
+ {"react-select":{"js":"/static/js/react-select.43f17559.chunk.js"},"moment":{"js":"/static/js/moment.dfd83abb.chunk.js"},"client":{"css":"/static/css/client.7ff60f09.chunk.css","js":"/static/js/client.7ff60f09.chunk.js"},"draft-js-lib-isSoftNewlineEvent":{"js":"/static/js/draft-js-lib-isSoftNewlineEvent.ad4b1307.chunk.js"},"plone-volto-components-manage-Widgets-DatetimeWidget":{"css":"/static/css/plone-volto-components-manage-Widgets-DatetimeWidget.77a7ad0d.chunk.css","js":"/static/js/plone-volto-components-manage-Widgets-DatetimeWidget.77a7ad0d.chunk.js"},"plone-volto-components-theme-View-EventView":{"js":"/static/js/plone-volto-components-theme-View-EventView.c500936a.chunk.js"},"react-dates":{"js":"/static/js/react-dates.d94a34ee.chunk.js"},"react-simple-code-editor":{"js":"/static/js/react-simple-code-editor.484ec69f.chunk.js"},"runtime~client":{"js":"/static/js/runtime~client.c5015e27.js"},"":{"json":"/../chunks.json","png":["/android-chrome-192x192.png","/android-chrome-512x512.png","/apple-touch-icon.png","/favicon-16x16.png","/favicon-32x32.png","/static/media/flags.9c74e172.png"],"ico":"/favicon.ico","svg":["/icon.svg","/static/media/Logo.16e25cdf.svg","/static/media/block-image.8a4a14d5.svg","/static/media/block-maps.731e84f6.svg","/static/media/block-video.832fa3ff.svg","/static/media/default-image.9451b251.svg","/static/media/icons.022583c4.svg"],"spa":"/index.html.spa","txt":["/robots.txt","/static/js/1.fece2b93.chunk.js.LICENSE.txt","/static/js/14.803b450c.chunk.js.LICENSE.txt","/static/js/15.c1eb25b4.chunk.js.LICENSE.txt","/static/js/19.61ef8815.chunk.js.LICENSE.txt","/static/js/34.aec37d56.chunk.js.LICENSE.txt","/static/js/35.73887e02.chunk.js.LICENSE.txt","/static/js/36.19d2e05a.chunk.js.LICENSE.txt","/static/js/37.96925a5f.chunk.js.LICENSE.txt"],"webmanifest":"/site.webmanifest","css":["/static/css/14.803b450c.chunk.css","/static/css/3.a3490306.chunk.css"],"js":["/static/js/0.3e794c57.chunk.js","/static/js/1.fece2b93.chunk.js","/static/js/14.803b450c.chunk.js","/static/js/15.c1eb25b4.chunk.js","/static/js/16.70e24cba.chunk.js","/static/js/17.f03d2a82.chunk.js","/static/js/18.0f0b1dfa.chunk.js","/static/js/19.61ef8815.chunk.js","/static/js/20.6b37f925.chunk.js","/static/js/21.8704b265.chunk.js","/static/js/22.5a2b56ff.chunk.js","/static/js/23.a53c8d7b.chunk.js","/static/js/24.d44c620a.chunk.js","/static/js/25.455376b6.chunk.js","/static/js/26.a821045d.chunk.js","/static/js/27.efbb318a.chunk.js","/static/js/28.b4840d60.chunk.js","/static/js/29.690d4b54.chunk.js","/static/js/3.a3490306.chunk.js","/static/js/30.5f174f94.chunk.js","/static/js/31.4a7cf109.chunk.js","/static/js/32.2247dcf7.chunk.js","/static/js/33.87874f33.chunk.js","/static/js/34.aec37d56.chunk.js","/static/js/35.73887e02.chunk.js","/static/js/36.19d2e05a.chunk.js","/static/js/37.96925a5f.chunk.js","/static/js/38.701a2e85.chunk.js","/static/js/39.4cbf0549.chunk.js","/static/js/4.bdc4a5c5.chunk.js","/static/js/6.69ba4792.chunk.js"],"ttf":"/static/media/icons.06400145.ttf","eot":"/static/media/icons.dbc1ef8b.eot","woff":"/static/media/icons.df45b7de.woff"}}