@plone/volto 18.0.0-alpha.10 → 18.0.0-alpha.11
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.md +31 -0
- package/cypress/support/commands.js +51 -3
- package/package.json +6 -6
- package/razzle.config.js +14 -0
- package/src/actions/form/form.js +19 -0
- package/src/actions/form/form.test.js +14 -0
- package/src/actions/index.js +1 -0
- package/src/components/manage/Add/Add.jsx +1 -0
- package/src/components/manage/Blocks/Listing/getAsyncData.js +23 -8
- package/src/components/manage/Edit/Edit.jsx +1 -0
- package/src/components/manage/Form/Form.jsx +97 -50
- package/src/components/manage/Multilingual/TranslationObject.jsx +0 -1
- package/src/components/theme/App/App.jsx +1 -0
- package/src/components/theme/AppExtras/AppExtras.jsx +2 -0
- package/src/components/theme/AppExtras/AppExtras.test.jsx +20 -0
- package/src/constants/ActionTypes.js +1 -0
- package/src/reducers/form/form.js +15 -3
- package/src/reducers/form/form.test.js +13 -1
- package/theme/themes/default/elements/step.overrides +2 -2
- package/theme/themes/pastanaga/elements/step.overrides +1 -1
- package/types/actions/form/form.d.ts +7 -0
- package/types/actions/form/form.test.d.ts +1 -0
- package/types/actions/index.d.ts +1 -0
- package/types/components/manage/Blocks/Listing/getAsyncData.d.ts +1 -7
- package/types/constants/ActionTypes.d.ts +1 -0
- package/types/reducers/form/form.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,37 @@ myst:
|
|
|
17
17
|
|
|
18
18
|
<!-- towncrier release notes start -->
|
|
19
19
|
|
|
20
|
+
## 18.0.0-alpha.11 (2024-02-18)
|
|
21
|
+
|
|
22
|
+
### Breaking
|
|
23
|
+
|
|
24
|
+
- Remove the isDisabled from all fields in the left side form of the babel view, make them read only instead @sneridagh [#5762](https://github.com/plone/volto/issues/5762)
|
|
25
|
+
|
|
26
|
+
### Feature
|
|
27
|
+
|
|
28
|
+
- Added the `ignore` property to allow exceptions to rules that are applied to all routes. @dobri1408 [#5621](https://github.com/plone/volto/issues/5621)
|
|
29
|
+
- Add global form state. @robgietema [#5721](https://github.com/plone/volto/issues/5721)
|
|
30
|
+
|
|
31
|
+
### Bugfix
|
|
32
|
+
|
|
33
|
+
- Fixed listing SSR rendering by sending `subrequestId` instead of `id` only within `getAsyncData`, similar to calling `getQueryStringResults` directly. @ichim-david [#5688](https://github.com/plone/volto/issues/5688)
|
|
34
|
+
- Enhanced Makefile paths to address whitespace compatibility issues. @Vivek-04022001 [#5715](https://github.com/plone/volto/issues/5715)
|
|
35
|
+
- Fix console logging in acceptance server Makefile commands. @davisagli [#5748](https://github.com/plone/volto/issues/5748)
|
|
36
|
+
- Add extra wait calls to listing block tests to avoid sporadic failures. @ichim-david [#5753](https://github.com/plone/volto/issues/5753)
|
|
37
|
+
- Add @plone/components as external library.
|
|
38
|
+
Make the Terser plugin accept ESNext features.
|
|
39
|
+
Fix inline `svg` elements in LESS files. @sneridagh [#5766](https://github.com/plone/volto/issues/5766)
|
|
40
|
+
|
|
41
|
+
### Documentation
|
|
42
|
+
|
|
43
|
+
- Overhaul environment variables documentation. @stevepiercy [#4581](https://github.com/plone/volto/issues/4581)
|
|
44
|
+
- Reorganize `README.md`, merging content into authoritative locations. Add `awesome_bot` to check links in all READMEs. @stevepiercy [#5437](https://github.com/plone/volto/issues/5437)
|
|
45
|
+
- Replace outdated diff with a link to current file. @stevepiercy [#5703](https://github.com/plone/volto/issues/5703)
|
|
46
|
+
- Document when the 'links and references' view was added. @davisagli [#5756](https://github.com/plone/volto/issues/5756)
|
|
47
|
+
- Update links to Redux and React developer extensions for Chrome. @stevepiercy [#5757](https://github.com/plone/volto/issues/5757)
|
|
48
|
+
- Chromewebstore recently changed its URL and has "too many redirects", so it needs to be excluded from linkcheck. @stevepiercy [#5761](https://github.com/plone/volto/issues/5761)
|
|
49
|
+
- Add Git as a pre-requisite. @stevepiercy [#5769](https://github.com/plone/volto/issues/5769)
|
|
50
|
+
|
|
20
51
|
## 18.0.0-alpha.10 (2024-02-02)
|
|
21
52
|
|
|
22
53
|
### Feature
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
1
2
|
import { getIfExists } from '../helpers';
|
|
2
3
|
import { ploneAuth } from './constants';
|
|
3
4
|
|
|
@@ -39,6 +40,30 @@ Cypress.Commands.add('isInViewport', (element) => {
|
|
|
39
40
|
});
|
|
40
41
|
});
|
|
41
42
|
|
|
43
|
+
// --- isInHTML ----------------------------------------------------------
|
|
44
|
+
Cypress.Commands.add('isInHTML', ({ parent = 'body', content }) => {
|
|
45
|
+
cy.url().then((currentUrl) => {
|
|
46
|
+
// sometimes the cy command is called when the url is still at content/edit
|
|
47
|
+
// we want to query the html markup of the content, not the edit form
|
|
48
|
+
const url =
|
|
49
|
+
currentUrl.indexOf('/edit') !== -1
|
|
50
|
+
? currentUrl.split('/edit')[0]
|
|
51
|
+
: currentUrl;
|
|
52
|
+
cy.request({
|
|
53
|
+
method: 'GET',
|
|
54
|
+
url: url,
|
|
55
|
+
}).then((response) => {
|
|
56
|
+
const html = Cypress.$(response.body);
|
|
57
|
+
if (content.startsWith('.') || content.startsWith('#')) {
|
|
58
|
+
return expect(html.find(parent)).to.have.descendants(content);
|
|
59
|
+
} else {
|
|
60
|
+
// check if parent contains the content text string in its HTML output
|
|
61
|
+
return expect(html.find(parent)).to.contain(content);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
42
67
|
// --- AUTOLOGIN -------------------------------------------------------------
|
|
43
68
|
Cypress.Commands.add('autologin', (usr, pass) => {
|
|
44
69
|
let api_url, user, password;
|
|
@@ -695,7 +720,7 @@ Cypress.Commands.add('clearSlate', (selector) => {
|
|
|
695
720
|
return cy
|
|
696
721
|
.get(selector)
|
|
697
722
|
.focus()
|
|
698
|
-
.click()
|
|
723
|
+
.click({ force: true }) // fix sporadic failure this element is currently animating
|
|
699
724
|
.wait(1000)
|
|
700
725
|
.type('{selectAll}')
|
|
701
726
|
.wait(1000)
|
|
@@ -819,7 +844,6 @@ function getTextNode(el, match) {
|
|
|
819
844
|
return walk.nextNode();
|
|
820
845
|
}
|
|
821
846
|
|
|
822
|
-
const nodes = [];
|
|
823
847
|
let node;
|
|
824
848
|
while ((node = walk.nextNode())) {
|
|
825
849
|
if (node.wholeText.includes(match)) {
|
|
@@ -848,7 +872,7 @@ function createHtmlPasteEvent(htmlContent) {
|
|
|
848
872
|
|
|
849
873
|
Cypress.Commands.add('addNewBlock', (blockName, createNewSlate = false) => {
|
|
850
874
|
let block;
|
|
851
|
-
block = cy.getSlate(createNewSlate).type(`/${blockName}{enter}`);
|
|
875
|
+
block = cy.getSlate(createNewSlate).click().type(`/${blockName}{enter}`);
|
|
852
876
|
return block;
|
|
853
877
|
});
|
|
854
878
|
|
|
@@ -902,9 +926,33 @@ Cypress.Commands.add('configureListingWith', (contentType) => {
|
|
|
902
926
|
'.querystring-widget .fields:first-of-type > .field .react-select__menu .react-select__option',
|
|
903
927
|
)
|
|
904
928
|
.contains(contentType)
|
|
929
|
+
|
|
905
930
|
.click();
|
|
906
931
|
});
|
|
907
932
|
|
|
933
|
+
Cypress.Commands.add(
|
|
934
|
+
'addLocationQuerystring',
|
|
935
|
+
(option = 'Relative path', value) => {
|
|
936
|
+
cy.get('.block-editor-listing').click();
|
|
937
|
+
cy.get('.querystring-widget .fields').contains('Add criteria').click();
|
|
938
|
+
cy.get('.querystring-widget .react-select__menu .react-select__option')
|
|
939
|
+
.contains('Location')
|
|
940
|
+
.click();
|
|
941
|
+
|
|
942
|
+
cy.get('.querystring-widget .fields').contains('Absolute path').click();
|
|
943
|
+
cy.get(
|
|
944
|
+
'.querystring-widget .fields .react-select__menu .react-select__option',
|
|
945
|
+
)
|
|
946
|
+
.contains(option)
|
|
947
|
+
.click();
|
|
948
|
+
if (value) {
|
|
949
|
+
cy.get('.querystring-widget .fields .input')
|
|
950
|
+
.click()
|
|
951
|
+
.type(`${value}{enter}`);
|
|
952
|
+
}
|
|
953
|
+
},
|
|
954
|
+
);
|
|
955
|
+
|
|
908
956
|
Cypress.Commands.add('queryCounter', (path, steps, number = 1) => {
|
|
909
957
|
cy.intercept(path, cy.spy().as('counterName'));
|
|
910
958
|
steps.forEach((element) => {
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"version": "18.0.0-alpha.
|
|
12
|
+
"version": "18.0.0-alpha.11",
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
15
|
"url": "git@github.com:plone/volto.git"
|
|
@@ -312,9 +312,9 @@
|
|
|
312
312
|
"webpack-node-externals": "3.0.0",
|
|
313
313
|
"xmlrpc": "1.3.2",
|
|
314
314
|
"yarnhook": "0.5.1",
|
|
315
|
-
"@plone/registry": "1.
|
|
316
|
-
"@plone/
|
|
317
|
-
"@plone/
|
|
315
|
+
"@plone/registry": "1.3.0",
|
|
316
|
+
"@plone/volto-slate": "18.0.0-alpha.6",
|
|
317
|
+
"@plone/scripts": "3.3.2"
|
|
318
318
|
},
|
|
319
319
|
"devDependencies": {
|
|
320
320
|
"@jest/globals": "^29.7.0",
|
|
@@ -362,8 +362,8 @@
|
|
|
362
362
|
"use-trace-update": "1.3.2",
|
|
363
363
|
"wait-on": "6.0.0",
|
|
364
364
|
"why": "0.6.2",
|
|
365
|
-
"@plone/
|
|
366
|
-
"@plone/
|
|
365
|
+
"@plone/types": "1.0.0-alpha.3",
|
|
366
|
+
"@plone/volto-coresandbox": "1.0.0"
|
|
367
367
|
},
|
|
368
368
|
"volta": {
|
|
369
369
|
"node": "20.9.0"
|
package/razzle.config.js
CHANGED
|
@@ -166,6 +166,19 @@ const defaultModify = ({
|
|
|
166
166
|
}),
|
|
167
167
|
);
|
|
168
168
|
|
|
169
|
+
// Make the TerserPlugin accept ESNext features, since we are in 2024
|
|
170
|
+
// If this is not true, libraries already compiled for using only ESNext features
|
|
171
|
+
// won't work (eg. using a chaining operator)
|
|
172
|
+
config.optimization = Object.assign({}, config.optimization, {
|
|
173
|
+
minimizer: [
|
|
174
|
+
new TerserPlugin({
|
|
175
|
+
terserOptions: {
|
|
176
|
+
parse: { ecma: 'ESNext' },
|
|
177
|
+
},
|
|
178
|
+
}),
|
|
179
|
+
],
|
|
180
|
+
});
|
|
181
|
+
|
|
169
182
|
// Razzle sets some of its basic env vars in the default config injecting them (for
|
|
170
183
|
// the client use, mainly) in a `DefinePlugin` instance. However, this also ends in
|
|
171
184
|
// the server build, removing the ability of the server node process to read from
|
|
@@ -328,6 +341,7 @@ const defaultModify = ({
|
|
|
328
341
|
// Add support for addons to include externals (ie. node_modules npm published packages)
|
|
329
342
|
...addonsAsExternals,
|
|
330
343
|
/^@plone\/volto/,
|
|
344
|
+
/^@plone\/components/,
|
|
331
345
|
].filter(Boolean),
|
|
332
346
|
}),
|
|
333
347
|
]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form actions.
|
|
3
|
+
* @module actions/form/form
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { SET_FORM_DATA } from '@plone/volto/constants/ActionTypes';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Set form data function.
|
|
10
|
+
* @function setFormData
|
|
11
|
+
* @param {Object} data New form data.
|
|
12
|
+
* @returns {Object} Set sidebar action.
|
|
13
|
+
*/
|
|
14
|
+
export function setFormData(data) {
|
|
15
|
+
return {
|
|
16
|
+
type: SET_FORM_DATA,
|
|
17
|
+
data,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { setFormData } from './form';
|
|
2
|
+
import { SET_FORM_DATA } from '@plone/volto/constants/ActionTypes';
|
|
3
|
+
|
|
4
|
+
describe('Form action', () => {
|
|
5
|
+
describe('setFormData', () => {
|
|
6
|
+
it('should create an action to set the form data', () => {
|
|
7
|
+
const data = { foo: 'bar' };
|
|
8
|
+
const action = setFormData(data);
|
|
9
|
+
|
|
10
|
+
expect(action.type).toEqual(SET_FORM_DATA);
|
|
11
|
+
expect(action.data).toEqual(data);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
});
|
package/src/actions/index.js
CHANGED
|
@@ -151,6 +151,7 @@ export {
|
|
|
151
151
|
export { getQuerystring } from '@plone/volto/actions/querystring/querystring';
|
|
152
152
|
export { getQueryStringResults } from '@plone/volto/actions/querystringsearch/querystringsearch';
|
|
153
153
|
export { setSidebarTab } from '@plone/volto/actions/sidebar/sidebar';
|
|
154
|
+
export { setFormData } from '@plone/volto/actions/form/form';
|
|
154
155
|
export {
|
|
155
156
|
deleteLinkTranslation,
|
|
156
157
|
getTranslationLocator,
|
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import { getQueryStringResults } from '@plone/volto/actions';
|
|
2
2
|
import { resolveBlockExtensions } from '@plone/volto/helpers';
|
|
3
|
+
import qs from 'query-string';
|
|
4
|
+
import { slugify } from '@plone/volto/helpers/Utils/Utils';
|
|
5
|
+
|
|
6
|
+
const getCurrentPage = (location, id) => {
|
|
7
|
+
const pageQueryParam = qs.parse(location.search);
|
|
8
|
+
switch (Object.keys(pageQueryParam).length) {
|
|
9
|
+
case 0:
|
|
10
|
+
return 1;
|
|
11
|
+
case 1:
|
|
12
|
+
// when there is only one query param, it could be the simple page number or the sluggified block id
|
|
13
|
+
return pageQueryParam['page'] || pageQueryParam[slugify(`page-${id}`)];
|
|
14
|
+
default:
|
|
15
|
+
return pageQueryParam[slugify(`page-${id}`)];
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export default function getListingBlockAsyncData(props) {
|
|
20
|
+
const { data, path, location, id, dispatch, blocksConfig, content } = props;
|
|
3
21
|
|
|
4
|
-
export default function getListingBlockAsyncData({
|
|
5
|
-
dispatch,
|
|
6
|
-
id,
|
|
7
|
-
data,
|
|
8
|
-
path,
|
|
9
|
-
blocksConfig,
|
|
10
|
-
}) {
|
|
11
22
|
const { resolvedExtensions } = resolveBlockExtensions(data, blocksConfig);
|
|
12
23
|
|
|
24
|
+
const subrequestID = content?.UID ? `${content?.UID}-${id}` : id;
|
|
25
|
+
const currentPage = getCurrentPage(location, id);
|
|
26
|
+
|
|
13
27
|
return [
|
|
14
28
|
dispatch(
|
|
15
29
|
getQueryStringResults(
|
|
@@ -20,7 +34,8 @@ export default function getListingBlockAsyncData({
|
|
|
20
34
|
? { fullobjects: 1 }
|
|
21
35
|
: { metadata_fields: '_all' }),
|
|
22
36
|
},
|
|
23
|
-
|
|
37
|
+
subrequestID,
|
|
38
|
+
currentPage,
|
|
24
39
|
),
|
|
25
40
|
),
|
|
26
41
|
];
|
|
@@ -16,6 +16,7 @@ import clearSVG from '@plone/volto/icons/clear.svg';
|
|
|
16
16
|
import {
|
|
17
17
|
findIndex,
|
|
18
18
|
isEmpty,
|
|
19
|
+
isEqual,
|
|
19
20
|
keys,
|
|
20
21
|
map,
|
|
21
22
|
mapValues,
|
|
@@ -40,7 +41,7 @@ import {
|
|
|
40
41
|
import { v4 as uuid } from 'uuid';
|
|
41
42
|
import { toast } from 'react-toastify';
|
|
42
43
|
import { BlocksToolbar, UndoToolbar } from '@plone/volto/components';
|
|
43
|
-
import { setSidebarTab } from '@plone/volto/actions';
|
|
44
|
+
import { setSidebarTab, setFormData } from '@plone/volto/actions';
|
|
44
45
|
import { compose } from 'redux';
|
|
45
46
|
import config from '@plone/volto/registry';
|
|
46
47
|
|
|
@@ -69,6 +70,7 @@ class Form extends Component {
|
|
|
69
70
|
required: PropTypes.arrayOf(PropTypes.string),
|
|
70
71
|
}),
|
|
71
72
|
formData: PropTypes.objectOf(PropTypes.any),
|
|
73
|
+
globalData: PropTypes.objectOf(PropTypes.any),
|
|
72
74
|
pathname: PropTypes.string,
|
|
73
75
|
onSubmit: PropTypes.func,
|
|
74
76
|
onCancel: PropTypes.func,
|
|
@@ -93,6 +95,7 @@ class Form extends Component {
|
|
|
93
95
|
requestError: PropTypes.string,
|
|
94
96
|
allowedBlocks: PropTypes.arrayOf(PropTypes.string),
|
|
95
97
|
showRestricted: PropTypes.bool,
|
|
98
|
+
global: PropTypes.bool,
|
|
96
99
|
};
|
|
97
100
|
|
|
98
101
|
/**
|
|
@@ -123,6 +126,7 @@ class Form extends Component {
|
|
|
123
126
|
editable: true,
|
|
124
127
|
requestError: null,
|
|
125
128
|
allowedBlocks: null,
|
|
129
|
+
global: false,
|
|
126
130
|
};
|
|
127
131
|
|
|
128
132
|
/**
|
|
@@ -201,6 +205,12 @@ class Form extends Component {
|
|
|
201
205
|
}
|
|
202
206
|
}
|
|
203
207
|
|
|
208
|
+
// Sync state to global state
|
|
209
|
+
if (this.props.global) {
|
|
210
|
+
this.props.setFormData(formData);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Set initial state
|
|
204
214
|
this.state = {
|
|
205
215
|
formData,
|
|
206
216
|
initialFormData,
|
|
@@ -246,14 +256,18 @@ class Form extends Component {
|
|
|
246
256
|
}
|
|
247
257
|
|
|
248
258
|
if (this.props.onChangeFormData) {
|
|
249
|
-
if (
|
|
250
|
-
// TODO: use fast-deep-equal
|
|
251
|
-
JSON.stringify(prevState?.formData) !==
|
|
252
|
-
JSON.stringify(this.state.formData)
|
|
253
|
-
) {
|
|
259
|
+
if (!isEqual(prevState?.formData, this.state.formData)) {
|
|
254
260
|
this.props.onChangeFormData(this.state.formData);
|
|
255
261
|
}
|
|
256
262
|
}
|
|
263
|
+
if (
|
|
264
|
+
this.props.global &&
|
|
265
|
+
!isEqual(this.props.globalData, this.state.formData)
|
|
266
|
+
) {
|
|
267
|
+
this.setState({
|
|
268
|
+
formData: this.props.globalData,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
257
271
|
}
|
|
258
272
|
|
|
259
273
|
/**
|
|
@@ -327,15 +341,18 @@ class Form extends Component {
|
|
|
327
341
|
onChangeField(id, value) {
|
|
328
342
|
this.setState((prevState) => {
|
|
329
343
|
const { errors, formData } = prevState;
|
|
344
|
+
const newFormData = {
|
|
345
|
+
...formData,
|
|
346
|
+
// We need to catch also when the value equals false this fixes #888
|
|
347
|
+
[id]: value || (value !== undefined && isBoolean(value)) ? value : null,
|
|
348
|
+
};
|
|
330
349
|
delete errors[id];
|
|
350
|
+
if (this.props.global) {
|
|
351
|
+
this.props.setFormData(newFormData);
|
|
352
|
+
}
|
|
331
353
|
return {
|
|
332
354
|
errors,
|
|
333
|
-
formData:
|
|
334
|
-
...formData,
|
|
335
|
-
// We need to catch also when the value equals false this fixes #888
|
|
336
|
-
[id]:
|
|
337
|
-
value || (value !== undefined && isBoolean(value)) ? value : null,
|
|
338
|
-
},
|
|
355
|
+
formData: newFormData,
|
|
339
356
|
// Changing the form data re-renders the select widget which causes the
|
|
340
357
|
// focus to get lost. To circumvent this, we set the focus back to
|
|
341
358
|
// the input.
|
|
@@ -357,14 +374,13 @@ class Form extends Component {
|
|
|
357
374
|
onSelectBlock(id, isMultipleSelection, event) {
|
|
358
375
|
let multiSelected = [];
|
|
359
376
|
let selected = id;
|
|
377
|
+
const formData = this.state.formData;
|
|
360
378
|
|
|
361
379
|
if (isMultipleSelection) {
|
|
362
380
|
selected = null;
|
|
363
|
-
const blocksLayoutFieldname = getBlocksLayoutFieldname(
|
|
364
|
-
this.state.formData,
|
|
365
|
-
);
|
|
381
|
+
const blocksLayoutFieldname = getBlocksLayoutFieldname(formData);
|
|
366
382
|
|
|
367
|
-
const blocks_layout =
|
|
383
|
+
const blocks_layout = formData[blocksLayoutFieldname].items;
|
|
368
384
|
|
|
369
385
|
if (event.shiftKey) {
|
|
370
386
|
const anchor =
|
|
@@ -424,6 +440,9 @@ class Form extends Component {
|
|
|
424
440
|
this.setState({
|
|
425
441
|
formData: this.props.formData,
|
|
426
442
|
});
|
|
443
|
+
if (this.props.global) {
|
|
444
|
+
this.props.setFormData(this.props.formData);
|
|
445
|
+
}
|
|
427
446
|
}
|
|
428
447
|
this.props.onCancel(event);
|
|
429
448
|
}
|
|
@@ -435,6 +454,8 @@ class Form extends Component {
|
|
|
435
454
|
* @returns {undefined}
|
|
436
455
|
*/
|
|
437
456
|
onSubmit(event) {
|
|
457
|
+
const formData = this.state.formData;
|
|
458
|
+
|
|
438
459
|
if (event) {
|
|
439
460
|
event.preventDefault();
|
|
440
461
|
}
|
|
@@ -442,7 +463,7 @@ class Form extends Component {
|
|
|
442
463
|
const errors = this.props.schema
|
|
443
464
|
? FormValidation.validateFieldsPerFieldset({
|
|
444
465
|
schema: this.props.schema,
|
|
445
|
-
formData
|
|
466
|
+
formData,
|
|
446
467
|
formatMessage: this.props.intl.formatMessage,
|
|
447
468
|
})
|
|
448
469
|
: {};
|
|
@@ -477,12 +498,15 @@ class Form extends Component {
|
|
|
477
498
|
if (this.props.isEditForm) {
|
|
478
499
|
this.props.onSubmit(this.getOnlyFormModifiedValues());
|
|
479
500
|
} else {
|
|
480
|
-
this.props.onSubmit(
|
|
501
|
+
this.props.onSubmit(formData);
|
|
481
502
|
}
|
|
482
503
|
if (this.props.resetAfterSubmit) {
|
|
483
504
|
this.setState({
|
|
484
505
|
formData: this.props.formData,
|
|
485
506
|
});
|
|
507
|
+
if (this.props.global) {
|
|
508
|
+
this.props.setFormData(this.props.formData);
|
|
509
|
+
}
|
|
486
510
|
}
|
|
487
511
|
}
|
|
488
512
|
}
|
|
@@ -497,15 +521,15 @@ class Form extends Component {
|
|
|
497
521
|
* @returns {undefined}
|
|
498
522
|
*/
|
|
499
523
|
getOnlyFormModifiedValues = () => {
|
|
524
|
+
const formData = this.state.formData;
|
|
525
|
+
|
|
500
526
|
const fieldsModified = Object.keys(
|
|
501
|
-
difference(
|
|
527
|
+
difference(formData, this.state.initialFormData),
|
|
502
528
|
);
|
|
503
529
|
return {
|
|
504
|
-
...pickBy(
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
...(this.state.formData['@static_behaviors'] && {
|
|
508
|
-
'@static_behaviors': this.state.formData['@static_behaviors'],
|
|
530
|
+
...pickBy(formData, (value, key) => fieldsModified.includes(key)),
|
|
531
|
+
...(formData['@static_behaviors'] && {
|
|
532
|
+
'@static_behaviors': formData['@static_behaviors'],
|
|
509
533
|
}),
|
|
510
534
|
};
|
|
511
535
|
};
|
|
@@ -551,7 +575,7 @@ class Form extends Component {
|
|
|
551
575
|
navRoot,
|
|
552
576
|
type,
|
|
553
577
|
} = this.props;
|
|
554
|
-
const
|
|
578
|
+
const formData = this.state.formData;
|
|
555
579
|
const schema = this.removeBlocksLayoutFields(originalSchema);
|
|
556
580
|
const Container =
|
|
557
581
|
config.getComponent({ name: 'Container' }).component || SemanticContainer;
|
|
@@ -562,17 +586,21 @@ class Form extends Component {
|
|
|
562
586
|
this.state.isClient && (
|
|
563
587
|
<Container>
|
|
564
588
|
<BlocksToolbar
|
|
565
|
-
formData={
|
|
589
|
+
formData={formData}
|
|
566
590
|
selectedBlock={this.state.selected}
|
|
567
591
|
selectedBlocks={this.state.multiSelected}
|
|
568
|
-
onChangeBlocks={(newBlockData) =>
|
|
592
|
+
onChangeBlocks={(newBlockData) => {
|
|
593
|
+
const newFormData = {
|
|
594
|
+
...formData,
|
|
595
|
+
...newBlockData,
|
|
596
|
+
};
|
|
569
597
|
this.setState({
|
|
570
|
-
formData:
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
}
|
|
575
|
-
}
|
|
598
|
+
formData: newFormData,
|
|
599
|
+
});
|
|
600
|
+
if (this.props.global) {
|
|
601
|
+
this.props.setFormData(newFormData);
|
|
602
|
+
}
|
|
603
|
+
}}
|
|
576
604
|
onSetSelectedBlocks={(blockIds) =>
|
|
577
605
|
this.setState({ multiSelected: blockIds })
|
|
578
606
|
}
|
|
@@ -580,22 +608,31 @@ class Form extends Component {
|
|
|
580
608
|
/>
|
|
581
609
|
<UndoToolbar
|
|
582
610
|
state={{
|
|
583
|
-
formData
|
|
611
|
+
formData,
|
|
584
612
|
selected: this.state.selected,
|
|
585
613
|
multiSelected: this.state.multiSelected,
|
|
586
614
|
}}
|
|
587
615
|
enableHotKeys
|
|
588
|
-
onUndoRedo={({ state }) =>
|
|
616
|
+
onUndoRedo={({ state }) => {
|
|
617
|
+
if (this.props.global) {
|
|
618
|
+
this.props.setFormData(state.formData);
|
|
619
|
+
}
|
|
620
|
+
return this.setState(state);
|
|
621
|
+
}}
|
|
589
622
|
/>
|
|
590
623
|
<BlocksForm
|
|
591
|
-
onChangeFormData={(
|
|
624
|
+
onChangeFormData={(newData) => {
|
|
625
|
+
const newFormData = {
|
|
626
|
+
...formData,
|
|
627
|
+
...newData,
|
|
628
|
+
};
|
|
592
629
|
this.setState({
|
|
593
|
-
formData:
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
}
|
|
598
|
-
}
|
|
630
|
+
formData: newFormData,
|
|
631
|
+
});
|
|
632
|
+
if (this.props.global) {
|
|
633
|
+
this.props.setFormData(newFormData);
|
|
634
|
+
}
|
|
635
|
+
}}
|
|
599
636
|
onChangeField={this.onChangeField}
|
|
600
637
|
onSelectBlock={this.onSelectBlock}
|
|
601
638
|
properties={formData}
|
|
@@ -635,9 +672,9 @@ class Form extends Component {
|
|
|
635
672
|
{...schema.properties[field]}
|
|
636
673
|
id={field}
|
|
637
674
|
fieldSet={item.title.toLowerCase()}
|
|
638
|
-
formData={
|
|
675
|
+
formData={formData}
|
|
639
676
|
focus={this.state.inFocus[field]}
|
|
640
|
-
value={
|
|
677
|
+
value={formData?.[field]}
|
|
641
678
|
required={schema.required.indexOf(field) !== -1}
|
|
642
679
|
onChange={this.onChangeField}
|
|
643
680
|
onBlur={this.onBlurField}
|
|
@@ -698,14 +735,17 @@ class Form extends Component {
|
|
|
698
735
|
...map(item.fields, (field, index) => (
|
|
699
736
|
<Field
|
|
700
737
|
{...schema.properties[field]}
|
|
701
|
-
isDisabled={!this.props.editable}
|
|
702
738
|
id={field}
|
|
703
|
-
formData={
|
|
739
|
+
formData={formData}
|
|
704
740
|
fieldSet={item.title.toLowerCase()}
|
|
705
741
|
focus={this.state.inFocus[field]}
|
|
706
|
-
value={
|
|
742
|
+
value={formData?.[field]}
|
|
707
743
|
required={schema.required.indexOf(field) !== -1}
|
|
708
|
-
onChange={
|
|
744
|
+
onChange={
|
|
745
|
+
this.props.editable
|
|
746
|
+
? this.onChangeField
|
|
747
|
+
: () => {}
|
|
748
|
+
}
|
|
709
749
|
onBlur={this.onBlurField}
|
|
710
750
|
onClick={this.onClickInput}
|
|
711
751
|
key={field}
|
|
@@ -751,7 +791,7 @@ class Form extends Component {
|
|
|
751
791
|
<Field
|
|
752
792
|
{...schema.properties[field]}
|
|
753
793
|
id={field}
|
|
754
|
-
value={
|
|
794
|
+
value={formData?.[field]}
|
|
755
795
|
required={schema.required.indexOf(field) !== -1}
|
|
756
796
|
onChange={this.onChangeField}
|
|
757
797
|
onBlur={this.onBlurField}
|
|
@@ -812,5 +852,12 @@ class Form extends Component {
|
|
|
812
852
|
const FormIntl = injectIntl(Form, { forwardRef: true });
|
|
813
853
|
|
|
814
854
|
export default compose(
|
|
815
|
-
connect(
|
|
855
|
+
connect(
|
|
856
|
+
(state, props) => ({
|
|
857
|
+
globalData: state.form?.global,
|
|
858
|
+
}),
|
|
859
|
+
{ setSidebarTab, setFormData },
|
|
860
|
+
null,
|
|
861
|
+
{ forwardRef: true },
|
|
862
|
+
),
|
|
816
863
|
)(FormIntl);
|
|
@@ -8,6 +8,8 @@ const AppExtras = (props) => {
|
|
|
8
8
|
const { pathname } = props;
|
|
9
9
|
const active = appExtras
|
|
10
10
|
.map((reg) => {
|
|
11
|
+
const ignored = matchPath(pathname, reg.ignore);
|
|
12
|
+
if (ignored) return null;
|
|
11
13
|
const match = matchPath(pathname, reg.match);
|
|
12
14
|
return match ? { reg, match } : null;
|
|
13
15
|
})
|
|
@@ -46,6 +46,13 @@ beforeAll(() => {
|
|
|
46
46
|
<div className="something">{JSON.stringify(props.match)}</div>
|
|
47
47
|
)),
|
|
48
48
|
},
|
|
49
|
+
{
|
|
50
|
+
match: '/frontpage',
|
|
51
|
+
ignore: '/frontpage/images',
|
|
52
|
+
component: jest.fn((props) => (
|
|
53
|
+
<div className="frontpage-content">{JSON.stringify(props.match)}</div>
|
|
54
|
+
)),
|
|
55
|
+
},
|
|
49
56
|
];
|
|
50
57
|
});
|
|
51
58
|
|
|
@@ -85,4 +92,17 @@ describe('AppExtras', () => {
|
|
|
85
92
|
const json = component.toJSON();
|
|
86
93
|
expect(json).toMatchSnapshot();
|
|
87
94
|
});
|
|
95
|
+
it('ignore property works', () => {
|
|
96
|
+
const componentView = renderer.create(
|
|
97
|
+
<AppExtras pathname="/frontpage"></AppExtras>,
|
|
98
|
+
);
|
|
99
|
+
const componentEdit = renderer.create(
|
|
100
|
+
<AppExtras pathname="/frontpage/images"></AppExtras>,
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
const jsonView = componentView.toJSON();
|
|
104
|
+
expect(jsonView).toMatchSnapshot();
|
|
105
|
+
const jsonEdit = componentEdit.toJSON();
|
|
106
|
+
expect(jsonEdit).toMatchSnapshot();
|
|
107
|
+
});
|
|
88
108
|
});
|
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
* @module reducers/form/form
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
import { SET_FORM_DATA } from '@plone/volto/constants/ActionTypes';
|
|
8
|
+
|
|
9
|
+
const initialState = {
|
|
10
|
+
global: {},
|
|
11
|
+
};
|
|
8
12
|
|
|
9
13
|
/**
|
|
10
14
|
* Form reducer.
|
|
@@ -12,6 +16,14 @@ const initialState = {};
|
|
|
12
16
|
* @param {Object} state Current state.
|
|
13
17
|
* @returns {Object} New state.
|
|
14
18
|
*/
|
|
15
|
-
export default function form(state = initialState) {
|
|
16
|
-
|
|
19
|
+
export default function form(state = initialState, action = {}) {
|
|
20
|
+
switch (action.type) {
|
|
21
|
+
case SET_FORM_DATA:
|
|
22
|
+
return {
|
|
23
|
+
...state,
|
|
24
|
+
global: action.data,
|
|
25
|
+
};
|
|
26
|
+
default:
|
|
27
|
+
return state;
|
|
28
|
+
}
|
|
17
29
|
}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import form from './form';
|
|
2
|
+
import { SET_FORM_DATA } from '@plone/volto/constants/ActionTypes';
|
|
2
3
|
|
|
3
4
|
describe('Form reducer', () => {
|
|
4
5
|
it('should return the initial state', () => {
|
|
5
|
-
expect(form()).toEqual({});
|
|
6
|
+
expect(form()).toEqual({ global: {} });
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
it('should handle SET_FORM_DATA', () => {
|
|
10
|
+
expect(
|
|
11
|
+
form(undefined, {
|
|
12
|
+
type: SET_FORM_DATA,
|
|
13
|
+
data: { foo: 'bar' },
|
|
14
|
+
}),
|
|
15
|
+
).toEqual({
|
|
16
|
+
global: { foo: 'bar' },
|
|
17
|
+
});
|
|
6
18
|
});
|
|
7
19
|
});
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
@font-face {
|
|
6
6
|
font-family: 'Step';
|
|
7
7
|
src:
|
|
8
|
-
url(data:application/x-font-ttf;charset=utf-8
|
|
8
|
+
url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'),
|
|
9
9
|
url(data:application/font-woff;charset=utf-8;base64,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) format('woff')
|
|
10
10
|
;
|
|
11
11
|
}
|
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
.ui.ordered.steps .step.completed:before {
|
|
14
14
|
font-family: 'Step';
|
|
15
15
|
content: '\e800'; /* '' */
|
|
16
|
-
}
|
|
16
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
@font-face {
|
|
6
6
|
font-family: 'Step';
|
|
7
7
|
src:
|
|
8
|
-
url(data:application/x-font-ttf;charset=utf-8
|
|
8
|
+
url(data:application/x-font-ttf;charset=utf-8;base64,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)
|
|
9
9
|
format('truetype'),
|
|
10
10
|
url(data:application/font-woff;charset=utf-8;base64,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)
|
|
11
11
|
format('woff');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/types/actions/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export { getTypes } from "@plone/volto/actions/types/types";
|
|
|
11
11
|
export { getQuerystring } from "@plone/volto/actions/querystring/querystring";
|
|
12
12
|
export { getQueryStringResults } from "@plone/volto/actions/querystringsearch/querystringsearch";
|
|
13
13
|
export { setSidebarTab } from "@plone/volto/actions/sidebar/sidebar";
|
|
14
|
+
export { setFormData } from "@plone/volto/actions/form/form";
|
|
14
15
|
export { loadLazyLibrary } from "@plone/volto/actions/lazyLibraries/lazyLibraries";
|
|
15
16
|
export { getContextNavigation } from "@plone/volto/actions/contextNavigation/contextNavigation";
|
|
16
17
|
export { authenticatedRole } from "@plone/volto/actions/authRole/authRole";
|