@plone/volto 16.13.0 → 17.0.0-alpha.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/.changelog.draft +12 -11
- package/.storybook/main.js +53 -69
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +33 -0
- 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/ca/LC_MESSAGES/volto.po +30 -0
- package/locales/ca.json +1 -1
- package/locales/de/LC_MESSAGES/volto.po +30 -0
- package/locales/de.json +1 -1
- package/locales/en/LC_MESSAGES/volto.po +30 -0
- package/locales/en.json +1 -1
- package/locales/es/LC_MESSAGES/volto.po +30 -0
- package/locales/es.json +1 -1
- package/locales/eu/LC_MESSAGES/volto.po +30 -0
- package/locales/eu.json +1 -1
- package/locales/fi.json +1 -1
- package/locales/fr/LC_MESSAGES/volto.po +30 -0
- package/locales/fr.json +1 -1
- package/locales/it/LC_MESSAGES/volto.po +30 -0
- package/locales/it.json +1 -1
- package/locales/ja/LC_MESSAGES/volto.po +30 -0
- package/locales/ja.json +1 -1
- package/locales/nl/LC_MESSAGES/volto.po +30 -0
- package/locales/nl.json +1 -1
- package/locales/pt/LC_MESSAGES/volto.po +30 -0
- package/locales/pt.json +1 -1
- package/locales/pt_BR/LC_MESSAGES/volto.po +31 -1
- package/locales/pt_BR.json +1 -1
- package/locales/ro/LC_MESSAGES/volto.po +30 -0
- package/locales/ro.json +1 -1
- package/locales/volto.pot +31 -1
- package/locales/zh_CN/LC_MESSAGES/volto.po +30 -0
- package/locales/zh_CN.json +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/Blocks/Teaser/Body.jsx +30 -0
- package/src/components/manage/Blocks/Teaser/Data.jsx +71 -0
- package/src/components/manage/Blocks/Teaser/DefaultBody.jsx +89 -0
- package/src/components/manage/Blocks/Teaser/Edit.jsx +25 -0
- package/src/components/manage/Blocks/Teaser/View.jsx +9 -0
- package/src/components/manage/Blocks/Teaser/adapter.js +23 -0
- package/src/components/manage/Blocks/Teaser/schema.js +103 -0
- package/src/components/manage/Blocks/Teaser/utils.js +44 -0
- package/src/components/manage/Blocks/Teaser/utils.test.jsx +229 -0
- 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/config/Blocks.jsx +28 -0
- 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 +2 -0
- package/theme/themes/pastanaga/extras/teaser.less +166 -0
- 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 -4581
package/.changelog.draft
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
##
|
|
1
|
+
## 17.0.0-alpha.0 (2023-03-04)
|
|
2
2
|
|
|
3
|
-
###
|
|
3
|
+
### Breaking
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
|
|
5
|
+
- Volto 17 drops support for NodeJS 14, and adds support for NodeJS 18.
|
|
6
|
+
Please see the [upgrade guide](https://6.docs.plone.org/volto/upgrade-guide/index.html)
|
|
7
|
+
for more information.
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
- On SSR-generated error pages, don't change the user's language to the default site language @tiberiuichim [#4425](https://github.com/plone/volto/issues/4425)
|
|
9
|
+
Volto 17 now uses Webpack 5. [#4086](https://github.com/plone/volto/issues/4086)
|
|
11
10
|
|
|
12
11
|
### Internal
|
|
13
12
|
|
|
14
|
-
-
|
|
15
|
-
- Use latest plone/server breed images @sneridagh [#4454](https://github.com/plone/volto/issues/4454)
|
|
13
|
+
- Add HI-ERN website to "Volto in Production" section in README @steffenri [#4172](https://github.com/plone/volto/issues/4172)
|
|
16
14
|
|
|
17
15
|
### Documentation
|
|
18
16
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
17
|
+
- 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)
|
|
18
|
+
- Add new websites Lanku and UEU
|
|
19
|
+
[erral] [#4310](https://github.com/plone/volto/issues/4310)
|
|
20
|
+
- Fix English and MyST grammar and syntax from PR #4285 @stevepiercy [#4331](https://github.com/plone/volto/issues/4331)
|
|
21
|
+
- Use a universal static path for both documentation and volto repos. @stevepiercy [#4376](https://github.com/plone/volto/issues/4376)
|
|
21
22
|
|
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,6 +8,36 @@
|
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
+
## 17.0.0-alpha.0 (2023-03-04)
|
|
12
|
+
|
|
13
|
+
### Breaking
|
|
14
|
+
|
|
15
|
+
- Volto 17 drops support for NodeJS 14, and adds support for NodeJS 18.
|
|
16
|
+
Please see the [upgrade guide](https://6.docs.plone.org/volto/upgrade-guide/index.html)
|
|
17
|
+
for more information.
|
|
18
|
+
|
|
19
|
+
Volto 17 now uses Webpack 5. [#4086](https://github.com/plone/volto/issues/4086)
|
|
20
|
+
|
|
21
|
+
### Internal
|
|
22
|
+
|
|
23
|
+
- Add HI-ERN website to "Volto in Production" section in README @steffenri [#4172](https://github.com/plone/volto/issues/4172)
|
|
24
|
+
|
|
25
|
+
### Documentation
|
|
26
|
+
|
|
27
|
+
- 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)
|
|
28
|
+
- Add new websites Lanku and UEU
|
|
29
|
+
[erral] [#4310](https://github.com/plone/volto/issues/4310)
|
|
30
|
+
- Fix English and MyST grammar and syntax from PR #4285 @stevepiercy [#4331](https://github.com/plone/volto/issues/4331)
|
|
31
|
+
- Use a universal static path for both documentation and volto repos. @stevepiercy [#4376](https://github.com/plone/volto/issues/4376)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## 16.14.0 (2023-03-03)
|
|
35
|
+
|
|
36
|
+
### Feature
|
|
37
|
+
|
|
38
|
+
- Add `Teaser` block @sneridagh [#3706](https://github.com/plone/volto/issues/3706)
|
|
39
|
+
|
|
40
|
+
|
|
11
41
|
## 16.13.0 (2023-03-02)
|
|
12
42
|
|
|
13
43
|
### Feature
|
|
@@ -416,6 +446,8 @@ See https://6.dev-docs.plone.org/volto/upgrade-guide/index.html for more informa
|
|
|
416
446
|
- Allow passing ariaHidden, id and style to an Icon's SVG @JeffersonBledsoe #3908
|
|
417
447
|
- 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
|
|
418
448
|
- 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
|
|
449
|
+
- Allow custom style wrapper classnames via fieldname suffixes. Added `config.settings.styleClassNameConverters` to register new suffix converters @tiberiuichim
|
|
450
|
+
- 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
|
|
419
451
|
|
|
420
452
|
### Bugfix
|
|
421
453
|
|
|
@@ -835,6 +867,7 @@ See https://6.dev-docs.plone.org/volto/upgrade-guide/index.html for more informa
|
|
|
835
867
|
### Bugfix
|
|
836
868
|
|
|
837
869
|
- Prefer views assigned explicitly with `layout` over views based on the `@type` @iRohitSingh
|
|
870
|
+
- Improve collapsing of whitespace when pasting to slate text block @tiberiuichim
|
|
838
871
|
|
|
839
872
|
### Internal
|
|
840
873
|
|
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
|
|
@@ -296,6 +296,7 @@ msgstr ""
|
|
|
296
296
|
#: components/manage/Blocks/Image/schema
|
|
297
297
|
#: components/manage/Blocks/LeadImage/LeadImageSidebar
|
|
298
298
|
#: components/manage/Blocks/Maps/schema
|
|
299
|
+
#: components/manage/Blocks/Teaser/schema
|
|
299
300
|
#: components/manage/Blocks/Video/schema
|
|
300
301
|
# defaultMessage: Alignment
|
|
301
302
|
msgid "Alignment"
|
|
@@ -978,6 +979,7 @@ msgid "Descending"
|
|
|
978
979
|
msgstr "Descendent"
|
|
979
980
|
|
|
980
981
|
#: components/manage/Blocks/HeroImageLeft/Edit
|
|
982
|
+
#: components/manage/Blocks/Teaser/schema
|
|
981
983
|
#: components/manage/Controlpanels/ContentTypes
|
|
982
984
|
#: components/manage/Widgets/SchemaWidget
|
|
983
985
|
#: components/manage/Widgets/SelectWidget
|
|
@@ -1628,6 +1630,11 @@ msgstr "imatge"
|
|
|
1628
1630
|
msgid "Image gallery"
|
|
1629
1631
|
msgstr "Galeria d'imatges"
|
|
1630
1632
|
|
|
1633
|
+
#: components/manage/Blocks/Teaser/schema
|
|
1634
|
+
# defaultMessage: Image override
|
|
1635
|
+
msgid "Image override"
|
|
1636
|
+
msgstr ""
|
|
1637
|
+
|
|
1631
1638
|
#: components/manage/Blocks/Image/schema
|
|
1632
1639
|
# defaultMessage: Image size
|
|
1633
1640
|
msgid "Image size"
|
|
@@ -2302,6 +2309,7 @@ msgstr ""
|
|
|
2302
2309
|
|
|
2303
2310
|
#: components/manage/Blocks/Image/schema
|
|
2304
2311
|
#: components/manage/Blocks/LeadImage/LeadImageSidebar
|
|
2312
|
+
#: components/manage/Blocks/Teaser/schema
|
|
2305
2313
|
# defaultMessage: Open in a new tab
|
|
2306
2314
|
msgid "Open in a new tab"
|
|
2307
2315
|
msgstr "Obre en una pestanya nova"
|
|
@@ -2396,6 +2404,11 @@ msgstr "Eines personals"
|
|
|
2396
2404
|
msgid "Persons responsible for creating the content of this item. Please enter a list of user names, one per line. The principal creator should come first."
|
|
2397
2405
|
msgstr "Responsables de la creació del contingut d'aquest article. Introduïu una llista de noms d'usuari, un per línia. El creador principal hauria de ser primer."
|
|
2398
2406
|
|
|
2407
|
+
#: components/manage/Blocks/Teaser/DefaultBody
|
|
2408
|
+
# defaultMessage: Please choose an existing content as source for this element
|
|
2409
|
+
msgid "Please choose an existing content as source for this element"
|
|
2410
|
+
msgstr ""
|
|
2411
|
+
|
|
2399
2412
|
#: components/manage/Controlpanels/Controlpanels
|
|
2400
2413
|
# defaultMessage: Please continue with the upgrade.
|
|
2401
2414
|
msgid "Please continue with the upgrade."
|
|
@@ -2666,6 +2679,11 @@ msgstr "Falta l'entrada necessària."
|
|
|
2666
2679
|
msgid "Reset term title"
|
|
2667
2680
|
msgstr "Restableix el títol"
|
|
2668
2681
|
|
|
2682
|
+
#: components/manage/Blocks/Teaser/Data
|
|
2683
|
+
# defaultMessage: Reset the block
|
|
2684
|
+
msgid "Reset the block"
|
|
2685
|
+
msgstr ""
|
|
2686
|
+
|
|
2669
2687
|
#: components/manage/Widgets/QuerystringWidget
|
|
2670
2688
|
# defaultMessage: Results limit
|
|
2671
2689
|
msgid "Results limit"
|
|
@@ -3236,6 +3254,7 @@ msgstr "Etiquetes per afegir"
|
|
|
3236
3254
|
msgid "Tags to remove"
|
|
3237
3255
|
msgstr "Etiquetes per eliminar"
|
|
3238
3256
|
|
|
3257
|
+
#: components/manage/Blocks/Teaser/schema
|
|
3239
3258
|
#: components/manage/Controlpanels/Aliases
|
|
3240
3259
|
# defaultMessage: Target
|
|
3241
3260
|
msgid "Target"
|
|
@@ -3261,6 +3280,11 @@ msgstr "Nombre objectiu d'objectes a la memòria per memòria cau"
|
|
|
3261
3280
|
msgid "Target url path must start with a slash."
|
|
3262
3281
|
msgstr ""
|
|
3263
3282
|
|
|
3283
|
+
#: components/manage/Blocks/Teaser/schema
|
|
3284
|
+
# defaultMessage: Teaser
|
|
3285
|
+
msgid "Teaser"
|
|
3286
|
+
msgstr ""
|
|
3287
|
+
|
|
3264
3288
|
#: components/manage/Widgets/SchemaWidget
|
|
3265
3289
|
# defaultMessage: Text
|
|
3266
3290
|
msgid "Text"
|
|
@@ -3423,6 +3447,7 @@ msgid "Time"
|
|
|
3423
3447
|
msgstr "Hora"
|
|
3424
3448
|
|
|
3425
3449
|
#: components/manage/Blocks/HeroImageLeft/Edit
|
|
3450
|
+
#: components/manage/Blocks/Teaser/schema
|
|
3426
3451
|
#: components/manage/Contents/Contents
|
|
3427
3452
|
#: components/manage/Contents/ContentsRenameModal
|
|
3428
3453
|
#: components/manage/Controlpanels/ContentTypes
|
|
@@ -4122,6 +4147,11 @@ msgstr "quan"
|
|
|
4122
4147
|
msgid "event_where"
|
|
4123
4148
|
msgstr "On?"
|
|
4124
4149
|
|
|
4150
|
+
#: components/manage/Blocks/Teaser/schema
|
|
4151
|
+
# defaultMessage: Head title
|
|
4152
|
+
msgid "head_title"
|
|
4153
|
+
msgstr ""
|
|
4154
|
+
|
|
4125
4155
|
#: components/theme/PasswordReset/RequestPasswordReset
|
|
4126
4156
|
# defaultMessage: Password reset confirmation sent
|
|
4127
4157
|
msgid "heading_sent_password"
|