@plone/volto 16.16.0 → 17.0.0-alpha.1
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/.changelog.draft +23 -1
- package/.storybook/main.js +53 -69
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +51 -3
- package/README.md +21 -19
- package/cypress/support/commands.js +7 -7
- package/cypress/support/guillotina.js +2 -2
- package/cypress/support/reset-fixture.js +2 -2
- package/cypress/support/upgradetests.js +1 -1
- package/cypress.config.js +1 -1
- package/docker-compose.yml +2 -3
- package/locales/pt_BR/LC_MESSAGES/volto.po +1 -1
- package/locales/pt_BR.json +1 -1
- package/locales/volto.pot +1 -1
- package/package.json +22 -20
- package/packages/volto-slate/package.json +1 -1
- package/razzle.config.js +3 -3
- package/src/components/manage/BlockChooser/BlockChooserButton.jsx +63 -29
- package/src/components/manage/BlockChooser/BlockChooserSearch.jsx +0 -1
- package/src/components/manage/Controlpanels/VersionOverview.jsx +6 -10
- package/src/components/manage/Diff/DiffField.jsx +6 -6
- package/src/components/theme/FormattedDate/FormattedDate.jsx +3 -3
- package/src/express-middleware/sitemap.js +1 -1
- package/src/helpers/Blocks/Blocks.test.js +50 -0
- package/src/helpers/Utils/Date.js +4 -2
- package/src/helpers/Utils/Date.test.js +3 -1
- package/src/helpers/index.js +0 -1
- package/theme/themes/pastanaga/extras/blocks.less +0 -9
- package/webpack-plugins/webpack-relative-resolver.js +33 -19
- package/webpack-plugins/webpack-root-resolver.js +25 -14
- package/webpack-plugins/webpack-svg-plugin.js +11 -4
- package/locales/fi/LC_MESSAGES/volto.po +0 -4611
package/.changelog.draft
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
1
|
-
##
|
|
1
|
+
## 17.0.0-alpha.1 (2023-03-09)
|
|
2
2
|
|
|
3
3
|
### Feature
|
|
4
4
|
|
|
5
5
|
- - Add directive to cache stable resources in browser or intermediate server for 365 days by default directly in the SSR Express server, static resource that could change after a new deployment for 1 minute. @mamico [#2216](https://github.com/plone/volto/issues/2216)
|
|
6
|
+
- Use popperjs in BlockChooser, move the markup to the bottom of the body tag. @sneridagh [#4141](https://github.com/plone/volto/issues/4141)
|
|
7
|
+
- Improvements to the dev API proxy:
|
|
8
|
+
- Prefer RAZZLE_INTERNAL_API_PATH over RAZZLE_API_PATH as the target of the proxy.
|
|
9
|
+
The target of the API proxy is now always logged on startup, even in production mode.
|
|
10
|
+
- Support proxying to a backend served over https. For this configuration it
|
|
11
|
+
might be necessary to set RAZZLE_DEV_PROXY_INSECURE=1 if the backend
|
|
12
|
+
certificate can't be verified.
|
|
13
|
+
|
|
14
|
+
[davisagli] [#4434](https://github.com/plone/volto/issues/4434)
|
|
15
|
+
|
|
16
|
+
### Bugfix
|
|
17
|
+
|
|
18
|
+
- fix: newsitem and event views wrapper classNames @nzambello [#4443](https://github.com/plone/volto/issues/4443)
|
|
19
|
+
- Fix weird GHA failure on config option not supported @sneridagh [#4466](https://github.com/plone/volto/issues/4466)
|
|
20
|
+
- Fix history view dropdown for first entry, showing 'Revert to this version option' always @sneridagh [#4471](https://github.com/plone/volto/issues/4471)
|
|
21
|
+
- Fix order of row of long table in edit and view mode @iFlameing [#4473](https://github.com/plone/volto/issues/4473)
|
|
22
|
+
- Improve flaky test in autofocus Cypress tests @sneridagh [#4475](https://github.com/plone/volto/issues/4475)
|
|
23
|
+
|
|
24
|
+
### Documentation
|
|
25
|
+
|
|
26
|
+
- Complete teaser docs, add new section in `Blocks`: `Core Blocks developers notes` @sneridagh [#4461](https://github.com/plone/volto/issues/4461)
|
|
27
|
+
- Change from links to inline literals in `CHANGELOG.md` to fix linkcheckbroken. @stevepiercy [#4470](https://github.com/plone/volto/issues/4470)
|
|
6
28
|
|
package/.storybook/main.js
CHANGED
|
@@ -3,14 +3,10 @@ const fs = require('fs');
|
|
|
3
3
|
const path = require('path');
|
|
4
4
|
const makeLoaderFinder = require('razzle-dev-utils/makeLoaderFinder');
|
|
5
5
|
const fileLoaderFinder = makeLoaderFinder('file-loader');
|
|
6
|
-
|
|
7
6
|
const projectRootPath = path.resolve('.');
|
|
8
|
-
const createAddonsLoader = require('../create-addons-loader');
|
|
9
7
|
const lessPlugin = require('../webpack-plugins/webpack-less-plugin');
|
|
10
|
-
|
|
11
8
|
const createConfig = require('../node_modules/razzle/config/createConfigAsync.js');
|
|
12
9
|
const razzleConfig = require(path.join(projectRootPath, 'razzle.config.js'));
|
|
13
|
-
|
|
14
10
|
const SVGLOADER = {
|
|
15
11
|
test: /icons\/.*\.svg$/,
|
|
16
12
|
use: [
|
|
@@ -21,16 +17,22 @@ const SVGLOADER = {
|
|
|
21
17
|
loader: 'svgo-loader',
|
|
22
18
|
options: {
|
|
23
19
|
plugins: [
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
{
|
|
21
|
+
name: 'preset-default',
|
|
22
|
+
params: {
|
|
23
|
+
overrides: {
|
|
24
|
+
convertPathData: false,
|
|
25
|
+
removeViewBox: false,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
'removeTitle',
|
|
30
|
+
'removeUselessStrokeAndFill',
|
|
28
31
|
],
|
|
29
32
|
},
|
|
30
33
|
},
|
|
31
34
|
],
|
|
32
35
|
};
|
|
33
|
-
|
|
34
36
|
const defaultRazzleOptions = {
|
|
35
37
|
verbose: false,
|
|
36
38
|
debug: {},
|
|
@@ -46,98 +48,80 @@ const defaultRazzleOptions = {
|
|
|
46
48
|
staticCssInDev: false,
|
|
47
49
|
emitOnErrors: false,
|
|
48
50
|
disableWebpackbar: false,
|
|
49
|
-
browserslist: [
|
|
50
|
-
'>1%',
|
|
51
|
-
'last 4 versions',
|
|
52
|
-
'Firefox ESR',
|
|
53
|
-
'not ie 11',
|
|
54
|
-
'not dead',
|
|
55
|
-
],
|
|
51
|
+
browserslist: ['>1%', 'last 4 versions', 'Firefox ESR', 'not ie 11', 'not dead']
|
|
56
52
|
};
|
|
57
|
-
|
|
58
53
|
module.exports = {
|
|
59
54
|
stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
|
|
60
55
|
addons: ['@storybook/addon-links', '@storybook/addon-essentials'],
|
|
61
56
|
staticDirs: ['./static'],
|
|
62
|
-
webpackFinal: async (config, {
|
|
57
|
+
webpackFinal: async (config, {
|
|
58
|
+
configType
|
|
59
|
+
}) => {
|
|
63
60
|
// `configType` has a value of 'DEVELOPMENT' or 'PRODUCTION'
|
|
64
61
|
// You can change the configuration based on that.
|
|
65
62
|
// 'PRODUCTION' is used when building the static version of storybook.
|
|
66
63
|
|
|
67
64
|
// Make whatever fine-grained changes you need
|
|
68
65
|
let baseConfig;
|
|
69
|
-
baseConfig = await createConfig(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
modifyWebpackConfig: razzleConfig.modifyWebpackConfig,
|
|
75
|
-
plugins: razzleConfig.plugins,
|
|
76
|
-
},
|
|
77
|
-
webpack,
|
|
78
|
-
false,
|
|
79
|
-
undefined,
|
|
80
|
-
[],
|
|
81
|
-
defaultRazzleOptions,
|
|
82
|
-
);
|
|
66
|
+
baseConfig = await createConfig('web', 'dev', {
|
|
67
|
+
// clearConsole: false,
|
|
68
|
+
modifyWebpackConfig: razzleConfig.modifyWebpackConfig,
|
|
69
|
+
plugins: razzleConfig.plugins
|
|
70
|
+
}, webpack, false, undefined, [], defaultRazzleOptions);
|
|
83
71
|
const AddonConfigurationRegistry = require('../addon-registry');
|
|
84
|
-
|
|
85
72
|
const registry = new AddonConfigurationRegistry(projectRootPath);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
73
|
+
config = lessPlugin({
|
|
74
|
+
registry
|
|
75
|
+
}).modifyWebpackConfig({
|
|
76
|
+
env: {
|
|
77
|
+
target: 'web',
|
|
78
|
+
dev: 'dev'
|
|
79
|
+
},
|
|
89
80
|
webpackConfig: config,
|
|
90
81
|
webpackObject: webpack,
|
|
91
|
-
options: {}
|
|
82
|
+
options: {}
|
|
92
83
|
});
|
|
93
84
|
|
|
94
|
-
//
|
|
95
|
-
//
|
|
85
|
+
// Put the SVG loader on top and prevent the asset/resource rule
|
|
86
|
+
// from processing the app's SVGs
|
|
96
87
|
config.module.rules.unshift(SVGLOADER);
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
__SERVER__: false,
|
|
105
|
-
}),
|
|
106
|
-
);
|
|
107
|
-
|
|
88
|
+
const fileLoaderRule = config.module.rules.find(rule => rule.test.test('.svg'));
|
|
89
|
+
fileLoaderRule.exclude = /icons\/.*\.svg$/;
|
|
90
|
+
config.plugins.unshift(new webpack.DefinePlugin({
|
|
91
|
+
__DEVELOPMENT__: true,
|
|
92
|
+
__CLIENT__: true,
|
|
93
|
+
__SERVER__: false
|
|
94
|
+
}));
|
|
108
95
|
const resultConfig = {
|
|
109
96
|
...config,
|
|
110
97
|
resolve: {
|
|
111
98
|
...config.resolve,
|
|
112
|
-
alias: {
|
|
113
|
-
|
|
99
|
+
alias: {
|
|
100
|
+
...config.resolve.alias,
|
|
101
|
+
...baseConfig.resolve.alias
|
|
102
|
+
}
|
|
103
|
+
}
|
|
114
104
|
};
|
|
115
105
|
|
|
116
106
|
// Addons have to be loaded with babel
|
|
117
|
-
const addonPaths = registry.addonNames.map((addon)
|
|
118
|
-
|
|
119
|
-
);
|
|
120
|
-
resultConfig.module.rules[1].exclude = (input) =>
|
|
107
|
+
const addonPaths = registry.addonNames.map(addon => fs.realpathSync(registry.packages[addon].modulePath));
|
|
108
|
+
resultConfig.module.rules[1].exclude = input =>
|
|
121
109
|
// exclude every input from node_modules except from @plone/volto
|
|
122
110
|
/node_modules\/(?!(@plone\/volto)\/)/.test(input) &&
|
|
123
111
|
// If input is in an addon, DON'T exclude it
|
|
124
|
-
!addonPaths.some(
|
|
125
|
-
|
|
112
|
+
!addonPaths.some(p => input.includes(p));
|
|
126
113
|
return resultConfig;
|
|
127
114
|
},
|
|
128
|
-
babel: async
|
|
115
|
+
babel: async options => {
|
|
129
116
|
return {
|
|
130
117
|
...options,
|
|
131
|
-
plugins: [
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
'./node_modules/babel-plugin-root-import/build/index.js',
|
|
135
|
-
{
|
|
136
|
-
rootPathSuffix: './src',
|
|
137
|
-
},
|
|
138
|
-
],
|
|
139
|
-
],
|
|
118
|
+
plugins: [...options.plugins, ['./node_modules/babel-plugin-root-import/build/index.js', {
|
|
119
|
+
rootPathSuffix: './src'
|
|
120
|
+
}]]
|
|
140
121
|
// any extra options you want to set
|
|
141
122
|
};
|
|
142
123
|
},
|
|
143
|
-
|
|
124
|
+
core: {
|
|
125
|
+
builder: 'webpack5'
|
|
126
|
+
}
|
|
127
|
+
};
|
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/CHANGELOG.md
CHANGED
|
@@ -8,11 +8,56 @@
|
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## 17.0.0-alpha.1 (2023-03-09)
|
|
12
12
|
|
|
13
13
|
### Feature
|
|
14
14
|
|
|
15
15
|
- - Add directive to cache stable resources in browser or intermediate server for 365 days by default directly in the SSR Express server, static resource that could change after a new deployment for 1 minute. @mamico [#2216](https://github.com/plone/volto/issues/2216)
|
|
16
|
+
- Use popperjs in BlockChooser, move the markup to the bottom of the body tag. @sneridagh [#4141](https://github.com/plone/volto/issues/4141)
|
|
17
|
+
- Improvements to the dev API proxy:
|
|
18
|
+
- Prefer RAZZLE_INTERNAL_API_PATH over RAZZLE_API_PATH as the target of the proxy.
|
|
19
|
+
The target of the API proxy is now always logged on startup, even in production mode.
|
|
20
|
+
- Support proxying to a backend served over https. For this configuration it
|
|
21
|
+
might be necessary to set RAZZLE_DEV_PROXY_INSECURE=1 if the backend
|
|
22
|
+
certificate can't be verified.
|
|
23
|
+
|
|
24
|
+
[davisagli] [#4434](https://github.com/plone/volto/issues/4434)
|
|
25
|
+
|
|
26
|
+
### Bugfix
|
|
27
|
+
|
|
28
|
+
- fix: newsitem and event views wrapper classNames @nzambello [#4443](https://github.com/plone/volto/issues/4443)
|
|
29
|
+
- Fix weird GHA failure on config option not supported @sneridagh [#4466](https://github.com/plone/volto/issues/4466)
|
|
30
|
+
- Fix history view dropdown for first entry, showing 'Revert to this version option' always @sneridagh [#4471](https://github.com/plone/volto/issues/4471)
|
|
31
|
+
- Fix order of row of long table in edit and view mode @iFlameing [#4473](https://github.com/plone/volto/issues/4473)
|
|
32
|
+
- Improve flaky test in autofocus Cypress tests @sneridagh [#4475](https://github.com/plone/volto/issues/4475)
|
|
33
|
+
|
|
34
|
+
### Documentation
|
|
35
|
+
|
|
36
|
+
- Complete teaser docs, add new section in `Blocks`: `Core Blocks developers notes` @sneridagh [#4461](https://github.com/plone/volto/issues/4461)
|
|
37
|
+
- Change from links to inline literals in `CHANGELOG.md` to fix linkcheckbroken. @stevepiercy [#4470](https://github.com/plone/volto/issues/4470)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## 17.0.0-alpha.0 (2023-03-04)
|
|
41
|
+
|
|
42
|
+
### Breaking
|
|
43
|
+
|
|
44
|
+
- Volto 17 drops support for NodeJS 14, and adds support for NodeJS 18.
|
|
45
|
+
Please see the [upgrade guide](https://6.docs.plone.org/volto/upgrade-guide/index.html)
|
|
46
|
+
for more information.
|
|
47
|
+
|
|
48
|
+
Volto 17 now uses Webpack 5. [#4086](https://github.com/plone/volto/issues/4086)
|
|
49
|
+
|
|
50
|
+
### Internal
|
|
51
|
+
|
|
52
|
+
- Add HI-ERN website to "Volto in Production" section in README @steffenri [#4172](https://github.com/plone/volto/issues/4172)
|
|
53
|
+
|
|
54
|
+
### Documentation
|
|
55
|
+
|
|
56
|
+
- Add a new Volto site to the README @erral [#4158](https://github.com/plone/volto/issues/4158), [#4170](https://github.com/plone/volto/issues/4170)
|
|
57
|
+
- Add new websites Lanku and UEU
|
|
58
|
+
[erral] [#4310](https://github.com/plone/volto/issues/4310)
|
|
59
|
+
- Fix English and MyST grammar and syntax from PR #4285 @stevepiercy [#4331](https://github.com/plone/volto/issues/4331)
|
|
60
|
+
- Use a universal static path for both documentation and volto repos. @stevepiercy [#4376](https://github.com/plone/volto/issues/4376)
|
|
16
61
|
|
|
17
62
|
|
|
18
63
|
## 16.15.0 (2023-03-08)
|
|
@@ -81,11 +126,11 @@
|
|
|
81
126
|
- Add the intl string 'Uploading image' to the image block @bipoza [#4180](https://github.com/plone/volto/issues/4180)
|
|
82
127
|
- Fix link integrity overlay is too narrowed @iFlameing [#4399](https://github.com/plone/volto/issues/4399)
|
|
83
128
|
- Fix External link Icon shows up in Grid-text block @iRohitSingh [#4400](https://github.com/plone/volto/issues/4400)
|
|
84
|
-
- Fix broken links: babeljs.io
|
|
129
|
+
- Fix broken links: `babeljs.io/…` @ksuess [#4414](https://github.com/plone/volto/issues/4414)
|
|
85
130
|
|
|
86
131
|
### Documentation
|
|
87
132
|
|
|
88
|
-
- Remove inclusion of CHANGELOG.md for volto repo only. Fixes https://github.com/plone/documentation/issues/1431. @stevepiercy [#4404](https://github.com/plone/volto/issues/4404)
|
|
133
|
+
- Remove inclusion of `CHANGELOG.md` for volto repo only. Fixes https://github.com/plone/documentation/issues/1431. @stevepiercy [#4404](https://github.com/plone/volto/issues/4404)
|
|
89
134
|
|
|
90
135
|
|
|
91
136
|
## 16.11.0 (2023-02-13)
|
|
@@ -455,6 +500,8 @@ See https://6.dev-docs.plone.org/volto/upgrade-guide/index.html for more informa
|
|
|
455
500
|
- Allow passing ariaHidden, id and style to an Icon's SVG @JeffersonBledsoe #3908
|
|
456
501
|
- All Fields now understand the `default` prop as a fallback value in case their data value is missing. As a convenience, the `defaultValue` is also used as a fallback, but this shouldn't proliferate. @tiberiuichim
|
|
457
502
|
- There is an experimental setting to move the button for adding a new block to show below any selected block, instead of only on the left of empty text blocks. Set `config.experimental.addBlockButton.enabled = true` to enable it. @davisagli
|
|
503
|
+
- Allow custom style wrapper classnames via fieldname suffixes. Added `config.settings.styleClassNameConverters` to register new suffix converters @tiberiuichim
|
|
504
|
+
- Support for drilled down current state and updater function from schema in `ObjectListWidget`. This allows to sync the current object selected from the UI and the block settings and viceversa @sneridagh
|
|
458
505
|
|
|
459
506
|
### Bugfix
|
|
460
507
|
|
|
@@ -874,6 +921,7 @@ See https://6.dev-docs.plone.org/volto/upgrade-guide/index.html for more informa
|
|
|
874
921
|
### Bugfix
|
|
875
922
|
|
|
876
923
|
- Prefer views assigned explicitly with `layout` over views based on the `@type` @iRohitSingh
|
|
924
|
+
- Improve collapsing of whitespace when pasting to slate text block @tiberiuichim
|
|
877
925
|
|
|
878
926
|
### Internal
|
|
879
927
|
|
package/README.md
CHANGED
|
@@ -53,20 +53,16 @@ First get all the requirements installed on your system.
|
|
|
53
53
|
|
|
54
54
|
### Prerequisites
|
|
55
55
|
|
|
56
|
-
- [Node.js LTS (
|
|
56
|
+
- [Node.js LTS (18.x)](https://nodejs.org/)
|
|
57
57
|
- [Python](https://python.org/) - See below for specific versions.
|
|
58
58
|
- [Docker](https://www.docker.com/get-started) (if using the Plone docker images)
|
|
59
59
|
|
|
60
|
-
*UPDATE 2022-10-25*: Since 2022-10-25, NodeJS 18 is in LTS state (https://github.com/nodejs/release#release-schedule). However, due to changes in internal SSL libraries, some Volto dependencies have been deprecated and need to be updated in order to continue working in NodeJS 18, mainly Webpack 4 (see: https://github.com/webpack/webpack/issues/14532#issuecomment-947525539 for further information). You can still use it, but NodeJS should be run under a special flag: `NODE_OPTIONS=--openssl-legacy-provider`. See also Volto's PR: https://github.com/plone/volto/pull/3699 for more information.
|
|
61
|
-
|
|
62
60
|
The versions of Python that are supported in Volto depend on the version of Plone that you use.
|
|
63
61
|
|
|
64
62
|
| Plone | Python | Volto |
|
|
65
63
|
|---|---|---|
|
|
66
64
|
| 5.2 | 2.7, 3.6-3.8 | 15.0 |
|
|
67
|
-
| 6.0
|
|
68
|
-
|
|
69
|
-
At the time of this writing, Volto 16 is still in alpha status, and Plone 6 is in beta status.
|
|
65
|
+
| 6.0 | 3.8-3.11 | 16.0 |
|
|
70
66
|
|
|
71
67
|
### Create a Volto project using the generator
|
|
72
68
|
|
|
@@ -90,7 +86,7 @@ cd myvoltoproject
|
|
|
90
86
|
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:
|
|
91
87
|
|
|
92
88
|
```shell
|
|
93
|
-
docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e PROFILES="plone.volto:default-homepage" plone/plone-backend:6.0.
|
|
89
|
+
docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e PROFILES="plone.volto:default-homepage" plone/plone-backend:6.0.1
|
|
94
90
|
```
|
|
95
91
|
|
|
96
92
|
or as an alternative if you have experience with Plone and you have all the
|
|
@@ -105,7 +101,7 @@ make build-backend
|
|
|
105
101
|
|
|
106
102
|
Volto is the default UI for Plone 6, so it will work for all Plone 6 released versions.
|
|
107
103
|
|
|
108
|
-
For the Plone 5 series, the latest released version of Plone 5 (with Python 3) is recommended (at the time of writing 5.2.
|
|
104
|
+
For the Plone 5 series, the latest released version of Plone 5 (with Python 3) is recommended (at the time of writing 5.2.10).
|
|
109
105
|
|
|
110
106
|
#### KGS (known good set of versions) for backend packages
|
|
111
107
|
|
|
@@ -113,14 +109,14 @@ On Plone 6, we recommend using the known good set (KGS) of package versions that
|
|
|
113
109
|
|
|
114
110
|
On Plone 5, Volto is currently tested with the following packages pinned to specific versions, and we recommend using the same versions, which are:
|
|
115
111
|
|
|
116
|
-
- plone.restapi 8.
|
|
117
|
-
- plone.rest 2.0.
|
|
118
|
-
- plone.volto 4.0.
|
|
112
|
+
- plone.restapi 8.32.6
|
|
113
|
+
- plone.rest 2.0.0
|
|
114
|
+
- plone.volto 4.0.3
|
|
119
115
|
|
|
120
116
|
This would be the docker command to spawn a Plone 5 container with the right KGS versions:
|
|
121
117
|
|
|
122
118
|
```shell
|
|
123
|
-
docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e ADDONS="plone.restapi==8.
|
|
119
|
+
docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e ADDONS="plone.restapi==8.32.6 plone.volto==4.0.3 plone.rest==2.0.0" -e PROFILES="plone.volto:default-homepage" plone/plone-backend
|
|
124
120
|
```
|
|
125
121
|
|
|
126
122
|
### Start Volto
|
|
@@ -138,7 +134,7 @@ Go to [http://localhost:3000](http://localhost:3000) in your browser.
|
|
|
138
134
|
Volto is actively developed since 2017 and used in production since 2018 on the following websites:
|
|
139
135
|
|
|
140
136
|
- [VHS Ehrenamtsportal](https://vhs-ehrenamtsportal.de) (Website to help volunteers that help refugees for the [German Adult Education Association](https://www.dvv-vhs.de/en/home/), developed by [kitconcept GmbH](https://kitconcept.com), 2018)
|
|
141
|
-
- [Zeelandia](https://zeelandia.de) (Corporate website for one of the leading backery
|
|
137
|
+
- [Zeelandia](https://zeelandia.de) (Corporate website for one of the leading backery ingredients manufacturers in Germany, developed by [kitconcept GmbH](https://kitconcept.com), 2019)
|
|
142
138
|
- [Excellence at Humboldt-Universität zu Berlin](https://www.alles-beginnt-mit-einer-frage.de) (Website for the excellence initiative of the [Humboldt University Berlin](https://hu-berlin.de), developed by [kitconcept GmbH](https://kitconcept.com), 2019)
|
|
143
139
|
- [Forest Information System for Europe](https://forest.eea.europa.eu) (Thematic website focusing on European forests, developed by [Eau de Web](https://www.eaudeweb.ro), 2019)
|
|
144
140
|
- [Industrial Emissions portal for Europe](https://industry.eea.europa.eu) (Thematic website focusing on European industrial emissions, developed by [Eau de Web](https://www.eaudeweb.ro), 2020)
|
|
@@ -153,7 +149,7 @@ Volto is actively developed since 2017 and used in production since 2018 on the
|
|
|
153
149
|
- [Jobfamilie MEDICE](https://jobfamilie.medice.de/de) (Carrer website for MEDICE Arzneimittel Pütter GmbH & Co. KG), developed by [Werkbank GmbH](https://werkbank.de/), 2020)
|
|
154
150
|
- [Baccanale Imola](https://www.baccanaleimola.it) (Baccanale is a food fair that happens every year in Imola, Italy. Developed by [RedTurtle](https://redturtle.it), 2020)
|
|
155
151
|
- [ResOU](https://resou.osaka-u.ac.jp) (ResOU is introducing official researched releases by the University of Osaka, Japan. Developed by [CMScom](https://www.cmscom.jp), 2020)
|
|
156
|
-
- [Humboldt Labor](https://www.humboldt-labor.de/) (The Humboldt Lab is a website where the Humboldt University Berlin presents its latest
|
|
152
|
+
- [Humboldt Labor](https://www.humboldt-labor.de/) (The Humboldt Lab is a website where the Humboldt University Berlin presents its latest research projects and findings. Developed by [WLDX](https://wldx.de/) and [kitconcept GmbH](https://kitconcept.com), 2020)
|
|
157
153
|
- [Osaka University](https://www.osaka-u.ac.jp/en) (Osaka University is considered one of the most prestigious universities in Japan. Developed by [CMScom](https://www.cmscom.jp), 2021)
|
|
158
154
|
- [Comune di Modena](https://www.comune.modena.it/) (Website of the Municipality of Modena. Developed by [RedTurtle](https://redturtle.it), 2020)
|
|
159
155
|
- [Comune di Camposanto](https://www.comune.camposanto.mo.it/) (Website of the Municipality of Camposanto. Developed by [RedTurtle](https://redturtle.it), 2021)
|
|
@@ -171,11 +167,16 @@ Volto is actively developed since 2017 and used in production since 2018 on the
|
|
|
171
167
|
- [RawMaterial](https://rawmaterial.it/en) (Company's website. Developed by [RawMaterial](https://rawmaterial.it/en), 2021)
|
|
172
168
|
- [WISE-Freshwater](https://water.europa.eu/freshwater) (WISE-Freshwater, the Freshwater Information System for Europe. Developed by [Eau de web](https://eaudeweb.ro) for the European Environmental Agency, 2021)
|
|
173
169
|
- [EEA-IMSv4](https://www.eea.europa.eu/ims) (EEA Indicator Management System v4. Developed by [Eau de web](https://eaudeweb.ro) for the European Environmental Agency, 2021)
|
|
174
|
-
- [Memori](https://memori.ai/en) (Corporate website for Memori, startup
|
|
170
|
+
- [Memori](https://memori.ai/en) (Corporate website for Memori, startup specializing in technologies applied to the experience of memory through the development of Artificial Intelligences. Developed by [RawMaterial](https://rawmaterial.it/en), 2021)
|
|
175
171
|
- [TwinCreator](https://twincreator.com/en) (TwinCreator allows you to design and train multiple AI’s through simple conversation through NLP. Developed by [RawMaterial](https://rawmaterial.it/en), 2021)
|
|
176
172
|
- [MemoryTwin](https://memorytwin.com/en) (Product website, MemoryTwin allows you to create your personal artificial intelligence, able to remember and speak. Developed by [RawMaterial](https://rawmaterial.it/en), 2022)
|
|
177
173
|
- [Forschungszentrum Jülich](https://fz-juelich.de) (Website for Forschungzentrum Jülich, which is one of the largest research institutions in Europe, developed by [kitconcept GmbH](https://kitconcept.com), 2022)
|
|
178
174
|
- [ILPO](https://ilpo.jyu.fi/) (the registration portal of continuous learning at the University of Jyväskylä. Developed by University of Jyväskylä, 2022)
|
|
175
|
+
- [Debabarreneko mankomunitatea](https://debabarrena.eus) (Website of the Commonwealth of Debabarrena, community of municipalities to centralize waste handling services, developed by [CodeSyntax](https://www.codesyntax.com/en), 2022)
|
|
176
|
+
- [Debako Udala / Ayuntamiento de Deba](https://www.deba.eus) (Website of the municipality of Deba, developed by [CodeSyntax](https://www.codesyntax.com/en), 2022)
|
|
177
|
+
- [Helmholtz-Institut Erlangen-Nürnberg für Erneuerbare Energien (HI-ERN)](https://www.hi-ern.de) (Website for HI ERN, a research institution for renewable energies, developed by [kitconcept GmbH](https://kitconcept.com), 2022)
|
|
178
|
+
- [Lanku](https://www.lanku.eus) (Website for Lanku Kultur Zerbitzuak, a company offering cultural services and improvised Basque verse singing sessions across the Basque Country, developed by [CodeSyntax](https://www.codesyntax.com/en), 2023)
|
|
179
|
+
- [UEU](https://www.ueu.eus) (Website for Udako Euskal Unibertsitatea, a non-profit University offering all its service only in Basque: courses, publications, ... developed by [CodeSyntax](https://www.codesyntax.com/en), 2023)
|
|
179
180
|
|
|
180
181
|
Please create a new [issue](https://github.com/plone/volto/issues/new) or [pull request](https://github.com/plone/volto/pulls) to add your Volto-site here!
|
|
181
182
|
|
|
@@ -229,10 +230,11 @@ JavaScript-centered trainings.
|
|
|
229
230
|
|
|
230
231
|
## Node Support
|
|
231
232
|
|
|
233
|
+
- Node 18: Supported since Volto 17
|
|
232
234
|
- Node 16: Supported since Volto 14
|
|
233
|
-
- Node 14:
|
|
234
|
-
- Node 12:
|
|
235
|
-
- Node 10:
|
|
235
|
+
- Node 14: No longer supported. It was supported from Volto 8.8.0 - 16
|
|
236
|
+
- Node 12: No longer supported. It was supported from Volto 4 - 15
|
|
237
|
+
- Node 10: No longer supported. It was supported from Volto 1 - 12
|
|
236
238
|
|
|
237
239
|
## Browser support
|
|
238
240
|
|
|
@@ -267,7 +269,7 @@ yarn
|
|
|
267
269
|
Either using a Docker command:
|
|
268
270
|
|
|
269
271
|
```shell
|
|
270
|
-
docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e PROFILES="plone.volto:default-homepage" plone/plone-backend:6.0.
|
|
272
|
+
docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e PROFILES="plone.volto:default-homepage" plone/plone-backend:6.0.1
|
|
271
273
|
```
|
|
272
274
|
|
|
273
275
|
or using the convenience makefile command:
|
|
@@ -2,7 +2,7 @@ import '@testing-library/cypress/add-commands';
|
|
|
2
2
|
import { getIfExists } from '../helpers';
|
|
3
3
|
import { ploneAuth } from './constants';
|
|
4
4
|
|
|
5
|
-
const HOSTNAME = Cypress.env('BACKEND_HOST') || '
|
|
5
|
+
const HOSTNAME = Cypress.env('BACKEND_HOST') || '127.0.0.1';
|
|
6
6
|
const GUILLOTINA_API_URL = `http://${HOSTNAME}:8081/db/web`;
|
|
7
7
|
const PLONE_SITE_ID = Cypress.env('SITE_ID') || 'plone';
|
|
8
8
|
const PLONE_API_URL =
|
|
@@ -267,7 +267,7 @@ Cypress.Commands.add('getContent', ({ path = '' }) => {
|
|
|
267
267
|
// --- Add DX Content-Type ----------------------------------------------------------
|
|
268
268
|
Cypress.Commands.add('addContentType', (name) => {
|
|
269
269
|
let api_url, auth;
|
|
270
|
-
api_url = Cypress.env('API_PATH') || 'http://
|
|
270
|
+
api_url = Cypress.env('API_PATH') || 'http://127.0.0.1:8080/Plone';
|
|
271
271
|
auth = ploneAuthObj;
|
|
272
272
|
|
|
273
273
|
return cy
|
|
@@ -288,7 +288,7 @@ Cypress.Commands.add('addContentType', (name) => {
|
|
|
288
288
|
// --- Remove DX behavior ----------------------------------------------------------
|
|
289
289
|
Cypress.Commands.add('removeContentType', (name) => {
|
|
290
290
|
let api_url, auth;
|
|
291
|
-
api_url = Cypress.env('API_PATH') || 'http://
|
|
291
|
+
api_url = Cypress.env('API_PATH') || 'http://127.0.0.1:8080/Plone';
|
|
292
292
|
auth = ploneAuthObj;
|
|
293
293
|
|
|
294
294
|
return cy
|
|
@@ -307,7 +307,7 @@ Cypress.Commands.add('removeContentType', (name) => {
|
|
|
307
307
|
// --- Add DX field ----------------------------------------------------------
|
|
308
308
|
Cypress.Commands.add('addSlateJSONField', (type, name) => {
|
|
309
309
|
let api_url, auth;
|
|
310
|
-
api_url = Cypress.env('API_PATH') || 'http://
|
|
310
|
+
api_url = Cypress.env('API_PATH') || 'http://127.0.0.1:8080/Plone';
|
|
311
311
|
auth = ploneAuthObj;
|
|
312
312
|
|
|
313
313
|
return cy
|
|
@@ -332,7 +332,7 @@ Cypress.Commands.add('addSlateJSONField', (type, name) => {
|
|
|
332
332
|
// --- Remove DX field ----------------------------------------------------------
|
|
333
333
|
Cypress.Commands.add('removeSlateJSONField', (type, name) => {
|
|
334
334
|
let api_url, auth;
|
|
335
|
-
api_url = Cypress.env('API_PATH') || 'http://
|
|
335
|
+
api_url = Cypress.env('API_PATH') || 'http://127.0.0.1:8080/Plone';
|
|
336
336
|
auth = ploneAuthObj;
|
|
337
337
|
|
|
338
338
|
return cy
|
|
@@ -360,7 +360,7 @@ Cypress.Commands.add(
|
|
|
360
360
|
password = 'password',
|
|
361
361
|
roles = ['Member', 'Reader', 'Editor'],
|
|
362
362
|
groups = {
|
|
363
|
-
'@id': 'http://
|
|
363
|
+
'@id': 'http://127.0.0.1:3000/@users',
|
|
364
364
|
items: [
|
|
365
365
|
{
|
|
366
366
|
id: 'AuthenticatedUsers',
|
|
@@ -444,7 +444,7 @@ Cypress.Commands.add(
|
|
|
444
444
|
password = ploneAuth[1],
|
|
445
445
|
roles = ['Member', 'Reader'],
|
|
446
446
|
users = {
|
|
447
|
-
'@id': 'http://
|
|
447
|
+
'@id': 'http://127.0.0.1:3000/@groups',
|
|
448
448
|
items: [],
|
|
449
449
|
items_total: 0,
|
|
450
450
|
},
|
|
@@ -3,7 +3,7 @@ export function setupGuillotina() {
|
|
|
3
3
|
Authorization: 'Basic cm9vdDpyb290',
|
|
4
4
|
'Content-Type': 'application/json',
|
|
5
5
|
};
|
|
6
|
-
const api_url = 'http://
|
|
6
|
+
const api_url = 'http://127.0.0.1:8081/db';
|
|
7
7
|
|
|
8
8
|
cy.request({
|
|
9
9
|
method: 'POST',
|
|
@@ -62,7 +62,7 @@ export function tearDownGuillotina({ allowFail = false } = {}) {
|
|
|
62
62
|
Authorization: 'Basic cm9vdDpyb290',
|
|
63
63
|
'Content-Type': 'application/json',
|
|
64
64
|
};
|
|
65
|
-
const api_url = 'http://
|
|
65
|
+
const api_url = 'http://127.0.0.1:8081/db';
|
|
66
66
|
|
|
67
67
|
cy.request({
|
|
68
68
|
method: 'DELETE',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function setup() {
|
|
2
|
-
const api_url = Cypress.env('API_PATH') || 'http://
|
|
2
|
+
const api_url = Cypress.env('API_PATH') || 'http://127.0.0.1:55001/plone';
|
|
3
3
|
cy.request({
|
|
4
4
|
method: 'POST',
|
|
5
5
|
url: `${api_url}/RobotRemote`,
|
|
@@ -10,7 +10,7 @@ function setup() {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
function teardown() {
|
|
13
|
-
const api_url = Cypress.env('API_PATH') || 'http://
|
|
13
|
+
const api_url = Cypress.env('API_PATH') || 'http://127.0.0.1:55001/plone';
|
|
14
14
|
cy.request({
|
|
15
15
|
method: 'POST',
|
|
16
16
|
url: `${api_url}/RobotRemote`,
|
|
@@ -6,7 +6,7 @@ export const getsystemNeedsUpgrade = {
|
|
|
6
6
|
plone_gs_metadata_version_file_system: '6008',
|
|
7
7
|
plone_gs_metadata_version_installed: '6006',
|
|
8
8
|
plone_restapi_version: '8.32.0',
|
|
9
|
-
plone_version: '6.0.
|
|
9
|
+
plone_version: '6.0.0',
|
|
10
10
|
python_version:
|
|
11
11
|
'3.9.14 (main, Sep 13 2022, 03:20:56) \n[GCC 10.2.1 20210110]',
|
|
12
12
|
upgrade: true,
|
package/cypress.config.js
CHANGED
package/docker-compose.yml
CHANGED
|
@@ -2,14 +2,13 @@ version: '3.3'
|
|
|
2
2
|
services:
|
|
3
3
|
|
|
4
4
|
backend:
|
|
5
|
-
image: plone/plone-backend:6.0.
|
|
5
|
+
image: plone/plone-backend:6.0.1
|
|
6
6
|
# Plone 5.2 series can be used too
|
|
7
|
-
# image: plone/plone-backend:5.2.
|
|
7
|
+
# image: plone/plone-backend:5.2.10
|
|
8
8
|
ports:
|
|
9
9
|
- '8080:8080'
|
|
10
10
|
environment:
|
|
11
11
|
- SITE=Plone
|
|
12
|
-
- 'ADDONS=plone.restapi==8.29.0 plone.volto==4.0.0a13 plone.rest==2.0.0a5'
|
|
13
12
|
- 'PROFILES=plone.volto:default-homepage'
|
|
14
13
|
labels:
|
|
15
14
|
- traefik.enable=true
|
|
@@ -3789,7 +3789,7 @@ msgstr "Usuários e Grupos"
|
|
|
3789
3789
|
#: components/manage/Aliases/Aliases
|
|
3790
3790
|
# defaultMessage: Using this form, you can manage alternative urls for an item. This is an easy way to make an item available under two different URLs.
|
|
3791
3791
|
msgid "Using this form, you can manage alternative urls for an item. This is an easy way to make an item available under two different URLs."
|
|
3792
|
-
msgstr ""
|
|
3792
|
+
msgstr "Usando esse formulário, você pode gerenciar URLs alternativas para um item. Essa é uma maneira fácil de disponibilizar um item em duas URLs diferentes."
|
|
3793
3793
|
|
|
3794
3794
|
#: helpers/Extensions/withBlockSchemaEnhancer
|
|
3795
3795
|
# defaultMessage: Variation
|