payload 1.2.0 → 1.2.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.md +123 -16
- package/components/fields/Select.ts +1 -1
- package/dist/admin/components/elements/ReactSelect/index.js +2 -2
- package/dist/admin/components/elements/VersionsCount/index.js +1 -1
- package/dist/admin/components/elements/WhereBuilder/Condition/Text/index.js +5 -1
- package/dist/admin/components/forms/field-types/Select/Input.js +13 -3
- package/dist/admin/components/forms/field-types/Textarea/Input.js +1 -1
- package/dist/admin/components/forms/field-types/Textarea/index.scss +3 -6
- package/dist/admin/components/views/Account/index.js +6 -1
- package/dist/admin/components/views/Login/index.js +1 -1
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +1 -1
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Nested/index.js +15 -9
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +5 -2
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +5 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.js +34 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.scss +10 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Text/index.js +3 -2
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/index.js +3 -2
- package/dist/admin/components/views/Versions/index.js +1 -1
- package/dist/admin/components/views/collections/Edit/Default.js +2 -0
- package/dist/admin/components/views/collections/Edit/SetStepNav.d.ts +7 -0
- package/dist/admin/components/views/collections/Edit/SetStepNav.js +31 -0
- package/dist/admin/components/views/collections/Edit/index.js +2 -36
- package/dist/admin/hooks/usePayloadAPI.js +3 -1
- package/dist/collections/requestHandlers/update.js +3 -3
- package/dist/fields/hooks/beforeChange/promise.js +7 -1
- package/dist/globals/requestHandlers/update.js +3 -3
- package/dist/translations/en.json +2 -0
- package/dist/translations/index.d.ts +5 -0
- package/dist/translations/it.json +18 -15
- package/dist/versions/drafts/saveCollectionDraft.js +4 -3
- package/dist/versions/drafts/saveGlobalDraft.js +4 -3
- package/dist/versions/ensurePublishedCollectionVersion.js +2 -1
- package/dist/versions/ensurePublishedGlobalVersion.js +2 -1
- package/docs/authentication/config.mdx +1 -1
- package/docs/configuration/i18n.mdx +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,36 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## [1.2.1](https://github.com/payloadcms/payload/compare/v1.2.0...v1.2.1) (2022-11-22)
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
### Bug Fixes
|
|
7
7
|
|
|
8
|
+
* adjusts styles to allow error bg to fill textarea ([2e57b76](https://github.com/payloadcms/payload/commit/2e57b76df01acf7ed1ce5fcb824ef5f96d11621d))
|
|
9
|
+
* allows patching global drafts [#1415](https://github.com/payloadcms/payload/issues/1415) ([25822a9](https://github.com/payloadcms/payload/commit/25822a91b1e4f2bf4804f15947d211138d696219))
|
|
10
|
+
* dynamically sets stepnav from default edit view ([40c8778](https://github.com/payloadcms/payload/commit/40c87784b0c6281c599b6d2a46a27b70b0568c30))
|
|
11
|
+
* ensures drafts operations saves as draft [#1415](https://github.com/payloadcms/payload/issues/1415) ([fc16ffe](https://github.com/payloadcms/payload/commit/fc16ffefdb354ea023462d784cdac7ab6fcc26d3))
|
|
12
|
+
* flattens locales before versioning published docs [#1415](https://github.com/payloadcms/payload/issues/1415) ([f700f51](https://github.com/payloadcms/payload/commit/f700f51f2bcdd657d1fab6b6d83ac00a11ed870d))
|
|
13
|
+
* **i18n:** version count ([#1465](https://github.com/payloadcms/payload/issues/1465)) ([075b7e9](https://github.com/payloadcms/payload/commit/075b7e9f02498ea253cf270654dcce0f11ec1f93))
|
|
14
|
+
* Increase textarea click area ([c303913](https://github.com/payloadcms/payload/commit/c303913e61881a3b0d90615dda905b20347d6f1e))
|
|
15
|
+
* invalid query string user account request ([#1478](https://github.com/payloadcms/payload/issues/1478)) ([400cb9b](https://github.com/payloadcms/payload/commit/400cb9b6bcfd09c39cb6aa438daad876d12e8e13))
|
|
16
|
+
* removes incorrectly import/export option type - [#1441](https://github.com/payloadcms/payload/issues/1441) ([ed01a17](https://github.com/payloadcms/payload/commit/ed01a176210a02a32874f4d0d1c5206d9a772e7e))
|
|
17
|
+
* rendering of localized select value ([1d1d249](https://github.com/payloadcms/payload/commit/1d1d2493aa08db4c300c01e72ccb6c11e03f9e09))
|
|
18
|
+
* sanitizes select values on the server, allowing isClearable selects to be cleared without error ([699ca14](https://github.com/payloadcms/payload/commit/699ca14434eeff3025cffd3f6e00efada80e021f))
|
|
19
|
+
* translate version comparison view field labels ([#1470](https://github.com/payloadcms/payload/issues/1470)) ([8123585](https://github.com/payloadcms/payload/commit/8123585592b9a53ef746f17476b36a2661cca025))
|
|
20
|
+
* versionCount was broken & other i18n improvements ([#1450](https://github.com/payloadcms/payload/issues/1450)) ([078c28b](https://github.com/payloadcms/payload/commit/078c28bd5fd08fd17a0b0b360e904f51fe8a2e98))
|
|
21
|
+
* versions tests ([af6a7aa](https://github.com/payloadcms/payload/commit/af6a7aa9e850c0817ea40d755f51255ccf0938c2))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
* add i18n to option labels in version comparison ([#1477](https://github.com/payloadcms/payload/issues/1477)) ([7b6a9ed](https://github.com/payloadcms/payload/commit/7b6a9ede6e3a72e7e64358cb88946b16153d8dc6))
|
|
27
|
+
* exports field types properly ([7c6d6fd](https://github.com/payloadcms/payload/commit/7c6d6fd1caeb25e1a871fa1b9cecc53be8a2a7a1))
|
|
28
|
+
|
|
29
|
+
# [1.2.0](https://github.com/payloadcms/payload/compare/v1.1.26...v1.2.0) (2022-11-18)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### 🐛 Bug Fixes
|
|
33
|
+
|
|
8
34
|
* build errors ([65f0e1c](https://github.com/payloadcms/payload/commit/65f0e1caace193f034139e331883d01d8eb92d2c))
|
|
9
35
|
* components optional chaining ([d5e725c](https://github.com/payloadcms/payload/commit/d5e725c608588e96b974291fa86d5e89dea9060d))
|
|
10
36
|
* corrects exported custom component type ([2878b4b](https://github.com/payloadcms/payload/commit/2878b4b1bec5c0c9997c1ba2a080640d4d3f8e5f))
|
|
@@ -12,7 +38,7 @@
|
|
|
12
38
|
* sets pointer-events to none so the entire label bar is clickable ([e458087](https://github.com/payloadcms/payload/commit/e458087a55cbbad29ca3568ca4c089aaee49693a))
|
|
13
39
|
|
|
14
40
|
|
|
15
|
-
### Features
|
|
41
|
+
### ✨ Features
|
|
16
42
|
|
|
17
43
|
* add i18n to admin panel ([#1326](https://github.com/payloadcms/payload/issues/1326)) ([bab34d8](https://github.com/payloadcms/payload/commit/bab34d82f5fddad32ceafd116ad97e87cab4c862))
|
|
18
44
|
* adds docs example ([2bf0fff](https://github.com/payloadcms/payload/commit/2bf0fffa0dd83f395aa3318b3baba1e22dd58b51))
|
|
@@ -23,21 +49,102 @@
|
|
|
23
49
|
* specifies component names for arrays/collapsibles, simplifies threaded data ([b74ea21](https://github.com/payloadcms/payload/commit/b74ea218ca47ce9db9d20586dbbce73e4ce0f917))
|
|
24
50
|
|
|
25
51
|
|
|
26
|
-
### BREAKING CHANGES
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
52
|
+
### 🚨 BREAKING CHANGES
|
|
53
|
+
|
|
54
|
+
* You ***might*** need to update your config. This change affects `collections`, `globals` and `block fields` with custom labeling.
|
|
55
|
+
* **Collections:** are affected if you have a custom `labels.singular` defined that differs from your collection slug.
|
|
56
|
+
```typescript
|
|
57
|
+
// ExampleCollection.ts
|
|
58
|
+
|
|
59
|
+
// Before
|
|
60
|
+
const ExampleCollection: CollectionConfig = {
|
|
61
|
+
slug: 'case-studies',
|
|
62
|
+
labels: {
|
|
63
|
+
// Before Payload used `labels.singular` to generate types/graphQL schema
|
|
64
|
+
singular: 'Project',
|
|
65
|
+
plural: 'Projects',
|
|
66
|
+
},
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// After
|
|
70
|
+
const ExampleCollection: CollectionConfig = {
|
|
71
|
+
// Now Payload uses `slug` to generate types/graphQL schema
|
|
72
|
+
slug: 'case-studies',
|
|
73
|
+
labels: {
|
|
74
|
+
singular: 'Project',
|
|
75
|
+
plural: 'Projects',
|
|
76
|
+
},
|
|
77
|
+
// To override the usage of slug in graphQL schema generation
|
|
78
|
+
graphQL: {
|
|
79
|
+
singularName: 'Project',
|
|
80
|
+
pluralName: 'Projects',
|
|
81
|
+
},
|
|
82
|
+
// To override the usage of slug in type file generation
|
|
83
|
+
typescript: {
|
|
84
|
+
interface: 'Project',
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
* **Globals:** are affected if you have a `label` defined that differs from your global slug.
|
|
89
|
+
```typescript
|
|
90
|
+
// ExampleGlobal.ts
|
|
91
|
+
|
|
92
|
+
// Before
|
|
93
|
+
const ExampleGlobal: GlobalConfig = {
|
|
94
|
+
slug: 'footer',
|
|
95
|
+
// Before Payload used `label` to generate types/graphQL schema
|
|
96
|
+
label: 'Page Footer',
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// After
|
|
100
|
+
const ExampleGlobal: GlobalConfig = {
|
|
101
|
+
// Now Payload uses `slug` to generate types/graphQL schema
|
|
102
|
+
slug: 'footer',
|
|
103
|
+
label: 'Page Footer',
|
|
104
|
+
// To override the usage of slug in graphQL schema generation
|
|
105
|
+
graphQL: {
|
|
106
|
+
name: 'PageFooter',
|
|
107
|
+
},
|
|
108
|
+
// To override the usage of slug in type file generation
|
|
109
|
+
typescript: {
|
|
110
|
+
interface: 'PageFooter',
|
|
111
|
+
},
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
* **Block Fields:** are affected if you have a `label` defined that differs from your block slug.
|
|
115
|
+
```typescript
|
|
116
|
+
// ExampleBlock.ts
|
|
117
|
+
|
|
118
|
+
// Before
|
|
119
|
+
const ExampleBlock: Block = {
|
|
120
|
+
slug: 'content',
|
|
121
|
+
// Before Payload used `label` to generate graphQL schema
|
|
122
|
+
label: 'Content Block',
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// After
|
|
126
|
+
const ExampleBlock: Block = {
|
|
127
|
+
// Now Payload uses `slug` to generate graphQL schema
|
|
128
|
+
slug: 'content',
|
|
129
|
+
label: 'Content Block',
|
|
130
|
+
// To override the usage of slug in graphQL schema generation
|
|
131
|
+
graphQL: {
|
|
132
|
+
singularName: 'ContentBlock',
|
|
133
|
+
},
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
**Breaking changes recap**:
|
|
137
|
+
- On Collections
|
|
138
|
+
- Use `graphQL.singularName`, `graphQL.pluralName` for GraphQL schema names.
|
|
139
|
+
- Use `typescript.interface` for typescript generation name.
|
|
140
|
+
|
|
141
|
+
- On Globals
|
|
142
|
+
- Use `graphQL.name` for GraphQL Schema name.
|
|
143
|
+
- Use `typescript.interface` for typescript generation name.
|
|
144
|
+
|
|
145
|
+
- On Blocks (within Block fields)
|
|
146
|
+
- Use `graphQL.singularName` for graphQL schema names.
|
|
33
147
|
|
|
34
|
-
On Globals
|
|
35
|
-
Use `graphQL.name` for GraphQL Schema name.
|
|
36
|
-
Use `typescript.interface` for typescript generation name.
|
|
37
|
-
|
|
38
|
-
On Blocks (within Block fields)
|
|
39
|
-
Use `graphQL.singularName` for graphQL schema names.
|
|
40
|
-
|
|
41
148
|
## [1.1.26](https://github.com/payloadcms/payload/compare/v1.1.25...v1.1.26) (2022-11-15)
|
|
42
149
|
|
|
43
150
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// eslint-disable-next-line import/named
|
|
2
|
-
export { Props
|
|
2
|
+
export { Props } from '../../dist/admin/components/forms/field-types/Select/types';
|
|
@@ -24,8 +24,8 @@ const SortableMultiValue = SortableElement((props) => {
|
|
|
24
24
|
const SortableMultiValueLabel = SortableHandle((props) => React.createElement(components.MultiValueLabel, { ...props }));
|
|
25
25
|
const SortableSelect = SortableContainer(Select);
|
|
26
26
|
const ReactSelect = (props) => {
|
|
27
|
-
const {
|
|
28
|
-
const {
|
|
27
|
+
const { t, i18n } = useTranslation();
|
|
28
|
+
const { className, showError = false, options, onChange, value, disabled = false, placeholder = t('general:selectValue'), isSearchable = true, isClearable, isMulti, isSortable, filterOption = undefined, } = props;
|
|
29
29
|
const classes = [
|
|
30
30
|
className,
|
|
31
31
|
'react-select',
|
|
@@ -33,6 +33,6 @@ const VersionsCount = ({ collection, global, id }) => {
|
|
|
33
33
|
const versionCount = ((versions === null || versions === void 0 ? void 0 : versions.totalDocs) || 0) + initialVersionsCount;
|
|
34
34
|
return (React.createElement("div", { className: baseClass },
|
|
35
35
|
versionCount === 0 && t('versionCount_none'),
|
|
36
|
-
versionCount > 0 && (React.createElement(Button, { className: `${baseClass}__button`, buttonStyle: "none", el: "link", to: versionsURL }, t(
|
|
36
|
+
versionCount > 0 && (React.createElement(Button, { className: `${baseClass}__button`, buttonStyle: "none", el: "link", to: versionsURL }, t(versionCount === 1 ? 'versionCount_one' : 'versionCount_many', { count: versionCount })))));
|
|
37
37
|
};
|
|
38
38
|
export default VersionsCount;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { useTranslation } from 'react-i18next';
|
|
2
3
|
import './index.scss';
|
|
3
4
|
const baseClass = 'condition-value-text';
|
|
4
|
-
const Text = ({ onChange, value }) =>
|
|
5
|
+
const Text = ({ onChange, value }) => {
|
|
6
|
+
const { t } = useTranslation('general');
|
|
7
|
+
return (React.createElement("input", { placeholder: t('enterAValue'), className: baseClass, type: "text", onChange: (e) => onChange(e.target.value), value: value || '' }));
|
|
8
|
+
};
|
|
5
9
|
export default Text;
|
|
@@ -18,10 +18,20 @@ const SelectInput = (props) => {
|
|
|
18
18
|
].filter(Boolean).join(' ');
|
|
19
19
|
let valueToRender;
|
|
20
20
|
if (hasMany && Array.isArray(value)) {
|
|
21
|
-
valueToRender = value.map((val) =>
|
|
21
|
+
valueToRender = value.map((val) => {
|
|
22
|
+
const matchingOption = options.find((option) => option.value === val);
|
|
23
|
+
return {
|
|
24
|
+
label: getTranslation(matchingOption.label, i18n),
|
|
25
|
+
value: matchingOption.value,
|
|
26
|
+
};
|
|
27
|
+
});
|
|
22
28
|
}
|
|
23
|
-
else {
|
|
24
|
-
|
|
29
|
+
else if (value) {
|
|
30
|
+
const matchingOption = options.find((option) => option.value === value);
|
|
31
|
+
valueToRender = {
|
|
32
|
+
label: getTranslation(matchingOption.label, i18n),
|
|
33
|
+
value: matchingOption.value,
|
|
34
|
+
};
|
|
25
35
|
}
|
|
26
36
|
return (React.createElement("div", { id: `field-${path.replace(/\./gi, '__')}`, className: classes, style: {
|
|
27
37
|
...style,
|
|
@@ -21,7 +21,7 @@ const TextareaInput = (props) => {
|
|
|
21
21
|
} },
|
|
22
22
|
React.createElement(Error, { showError: showError, message: errorMessage }),
|
|
23
23
|
React.createElement(Label, { htmlFor: `field-${path.replace(/\./gi, '__')}`, label: label, required: required }),
|
|
24
|
-
React.createElement("
|
|
24
|
+
React.createElement("label", { className: "textarea-outer", htmlFor: `field-${path.replace(/\./gi, '__')}` },
|
|
25
25
|
React.createElement("div", { className: "textarea-inner" },
|
|
26
26
|
React.createElement("div", { className: "textarea-clone", "data-value": value || placeholder || '' }),
|
|
27
27
|
React.createElement("textarea", { className: "textarea-element", id: `field-${path.replace(/\./gi, '__')}`, value: value || '', onChange: onChange, disabled: readOnly, placeholder: getTranslation(placeholder, i18n), name: path, rows: rows }))),
|
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
.textarea-outer {
|
|
8
8
|
@include formInput();
|
|
9
|
+
display: flex;
|
|
9
10
|
resize: vertical;
|
|
10
|
-
height: auto;
|
|
11
11
|
min-height: base(3);
|
|
12
|
+
height: 100%;
|
|
12
13
|
|
|
13
14
|
// Scrollbar for giant content
|
|
14
|
-
max-height:
|
|
15
|
+
max-height: calc(100vh - $top-header-offset - calc(#{base(5)}));
|
|
15
16
|
overflow: auto;
|
|
16
17
|
|
|
17
18
|
@include mid-break {
|
|
@@ -31,7 +32,6 @@
|
|
|
31
32
|
position: relative;
|
|
32
33
|
line-height: inherit;
|
|
33
34
|
flex-grow: 1;
|
|
34
|
-
box-sizing: border-box;
|
|
35
35
|
background: none;
|
|
36
36
|
outline: none;
|
|
37
37
|
}
|
|
@@ -49,7 +49,6 @@
|
|
|
49
49
|
line-height: inherit;
|
|
50
50
|
color: inherit;
|
|
51
51
|
background: none;
|
|
52
|
-
box-sizing: border-box;
|
|
53
52
|
overflow: auto;
|
|
54
53
|
resize: none;
|
|
55
54
|
outline: none;
|
|
@@ -65,8 +64,6 @@
|
|
|
65
64
|
vertical-align: top;
|
|
66
65
|
display: inline-block;
|
|
67
66
|
flex-grow: 1;
|
|
68
|
-
white-space: pre;
|
|
69
|
-
box-sizing: border-box;
|
|
70
67
|
overflow: hidden;
|
|
71
68
|
text-overflow: ellipsis;
|
|
72
69
|
white-space: pre-wrap;
|
|
@@ -29,7 +29,12 @@ const AccountView = () => {
|
|
|
29
29
|
const collection = collections.find((coll) => coll.slug === adminUser);
|
|
30
30
|
const { fields } = collection;
|
|
31
31
|
const collectionPermissions = (_a = permissions === null || permissions === void 0 ? void 0 : permissions.collections) === null || _a === void 0 ? void 0 : _a[adminUser];
|
|
32
|
-
const [{ data }] = usePayloadAPI(`${serverURL}${api}/${collection === null || collection === void 0 ? void 0 : collection.slug}/${user === null || user === void 0 ? void 0 : user.id}
|
|
32
|
+
const [{ data }] = usePayloadAPI(`${serverURL}${api}/${collection === null || collection === void 0 ? void 0 : collection.slug}/${user === null || user === void 0 ? void 0 : user.id}`, {
|
|
33
|
+
initialParams: {
|
|
34
|
+
'fallback-locale': 'null',
|
|
35
|
+
depth: 0,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
33
38
|
const hasSavePermission = (_b = collectionPermissions === null || collectionPermissions === void 0 ? void 0 : collectionPermissions.update) === null || _b === void 0 ? void 0 : _b.permission;
|
|
34
39
|
const dataToRender = (locationState === null || locationState === void 0 ? void 0 : locationState.data) || data;
|
|
35
40
|
const apiURL = `${serverURL}${api}/${user.collection}/${data === null || data === void 0 ? void 0 : data.id}`;
|
|
@@ -45,7 +45,7 @@ const Login = () => {
|
|
|
45
45
|
!collection.auth.disableLocalStrategy && (React.createElement(Form, { disableSuccessStatus: true, waitForAutocomplete: true, onSuccess: onSuccess, method: "post", action: `${serverURL}${api}/${userSlug}/login` },
|
|
46
46
|
React.createElement(Email, { label: t('general:email'), name: "email", admin: { autoComplete: 'email' }, required: true }),
|
|
47
47
|
React.createElement(Password, { label: t('general:password'), name: "password", autoComplete: "off", required: true }),
|
|
48
|
-
React.createElement(Link, { to: `${admin}/forgot` }, t('
|
|
48
|
+
React.createElement(Link, { to: `${admin}/forgot` }, t('forgotPasswordQuestion')),
|
|
49
49
|
React.createElement(FormSubmit, null, t('login')))),
|
|
50
50
|
Array.isArray(afterLogin) && afterLogin.map((Component, i) => React.createElement(Component, { key: i }))));
|
|
51
51
|
};
|
|
@@ -16,7 +16,7 @@ const Iterable = ({ version, comparison, permissions, field, locale, locales, fi
|
|
|
16
16
|
return (React.createElement("div", { className: baseClass },
|
|
17
17
|
field.label && (React.createElement(Label, null,
|
|
18
18
|
locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
|
|
19
|
-
field.label)),
|
|
19
|
+
getTranslation(field.label, i18n))),
|
|
20
20
|
maxRows > 0 && (React.createElement(React.Fragment, null, Array.from(Array(maxRows).keys()).map((row, i) => {
|
|
21
21
|
const versionRow = (version === null || version === void 0 ? void 0 : version[i]) || {};
|
|
22
22
|
const comparisonRow = (comparison === null || comparison === void 0 ? void 0 : comparison[i]) || {};
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { useTranslation } from 'react-i18next';
|
|
2
3
|
import RenderFieldsToDiff from '../..';
|
|
3
4
|
import Label from '../../Label';
|
|
5
|
+
import { getTranslation } from '../../../../../../../utilities/getTranslation';
|
|
4
6
|
import './index.scss';
|
|
5
7
|
const baseClass = 'nested-diff';
|
|
6
|
-
const Nested = ({ version, comparison, permissions, field, locale, locales, fieldComponents, disableGutter = false, }) =>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
field.label
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
const Nested = ({ version, comparison, permissions, field, locale, locales, fieldComponents, disableGutter = false, }) => {
|
|
9
|
+
const { i18n } = useTranslation();
|
|
10
|
+
return (React.createElement("div", { className: baseClass },
|
|
11
|
+
field.label && (React.createElement(Label, null,
|
|
12
|
+
locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
|
|
13
|
+
getTranslation(field.label, i18n))),
|
|
14
|
+
React.createElement("div", { className: [
|
|
15
|
+
`${baseClass}__wrap`,
|
|
16
|
+
!disableGutter && `${baseClass}__wrap--gutter`,
|
|
17
|
+
].filter(Boolean)
|
|
18
|
+
.join(' ') },
|
|
19
|
+
React.createElement(RenderFieldsToDiff, { locales: locales, version: version, comparison: comparison, fieldPermissions: permissions, fields: field.fields, fieldComponents: fieldComponents }))));
|
|
20
|
+
};
|
|
15
21
|
export default Nested;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import ReactDiffViewer from 'react-diff-viewer';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
3
4
|
import { useConfig } from '../../../../../utilities/Config';
|
|
4
5
|
import { useLocale } from '../../../../../utilities/Locale';
|
|
5
6
|
import { fieldAffectsData, fieldIsPresentationalOnly } from '../../../../../../../fields/config/types';
|
|
6
7
|
import Label from '../../Label';
|
|
7
8
|
import { diffStyles } from '../styles';
|
|
9
|
+
import { getTranslation } from '../../../../../../../utilities/getTranslation';
|
|
8
10
|
import './index.scss';
|
|
9
11
|
const baseClass = 'relationship-diff';
|
|
10
12
|
const generateLabelFromValue = (collections, field, locale, value) => {
|
|
@@ -43,10 +45,11 @@ const generateLabelFromValue = (collections, field, locale, value) => {
|
|
|
43
45
|
};
|
|
44
46
|
const Relationship = ({ field, version, comparison }) => {
|
|
45
47
|
const { collections } = useConfig();
|
|
48
|
+
const { t, i18n } = useTranslation('general');
|
|
46
49
|
const locale = useLocale();
|
|
47
50
|
let placeholder = '';
|
|
48
51
|
if (version === comparison)
|
|
49
|
-
placeholder = '
|
|
52
|
+
placeholder = `[${t('noValue')}]`;
|
|
50
53
|
let versionToRender = version;
|
|
51
54
|
let comparisonToRender = comparison;
|
|
52
55
|
if (field.hasMany) {
|
|
@@ -62,7 +65,7 @@ const Relationship = ({ field, version, comparison }) => {
|
|
|
62
65
|
return (React.createElement("div", { className: baseClass },
|
|
63
66
|
React.createElement(Label, null,
|
|
64
67
|
locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
|
|
65
|
-
field.label),
|
|
68
|
+
getTranslation(field.label, i18n)),
|
|
66
69
|
React.createElement(ReactDiffViewer, { styles: diffStyles, oldValue: typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder, newValue: typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder, splitView: true, hideLineNumbers: true, showDiffOnly: false })));
|
|
67
70
|
return null;
|
|
68
71
|
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import ReactDiffViewer, { DiffMethod } from 'react-diff-viewer';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import Label from '../../Label';
|
|
5
|
+
import { diffStyles } from '../styles';
|
|
6
|
+
import { getTranslation } from '../../../../../../../utilities/getTranslation';
|
|
7
|
+
import './index.scss';
|
|
8
|
+
const baseClass = 'select-diff';
|
|
9
|
+
const getOptionsToRender = (value, options, hasMany) => {
|
|
10
|
+
if (hasMany && Array.isArray(value)) {
|
|
11
|
+
return value.map((val) => options.find((option) => (typeof option === 'string' ? option : option.value) === val));
|
|
12
|
+
}
|
|
13
|
+
return options.find((option) => (typeof option === 'string' ? option : option.value) === value);
|
|
14
|
+
};
|
|
15
|
+
const getTranslatedOptions = (options, i18n) => {
|
|
16
|
+
if (Array.isArray(options)) {
|
|
17
|
+
return options.map((option) => (typeof option === 'string' ? option : getTranslation(option.label, i18n))).join(', ');
|
|
18
|
+
}
|
|
19
|
+
return typeof options === 'string' ? options : getTranslation(options.label, i18n);
|
|
20
|
+
};
|
|
21
|
+
const Select = ({ field, locale, version, comparison, diffMethod }) => {
|
|
22
|
+
let placeholder = '';
|
|
23
|
+
const { t, i18n } = useTranslation('general');
|
|
24
|
+
if (version === comparison)
|
|
25
|
+
placeholder = `[${t('noValue')}]`;
|
|
26
|
+
const comparisonToRender = typeof comparison !== 'undefined' ? getTranslatedOptions(getOptionsToRender(comparison, field.options, field.hasMany), i18n) : placeholder;
|
|
27
|
+
const versionToRender = typeof version !== 'undefined' ? getTranslatedOptions(getOptionsToRender(version, field.options, field.hasMany), i18n) : placeholder;
|
|
28
|
+
return (React.createElement("div", { className: baseClass },
|
|
29
|
+
React.createElement(Label, null,
|
|
30
|
+
locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
|
|
31
|
+
getTranslation(field.label, i18n)),
|
|
32
|
+
React.createElement(ReactDiffViewer, { styles: diffStyles, compareMethod: DiffMethod[diffMethod], oldValue: comparisonToRender, newValue: typeof versionToRender !== 'undefined' ? versionToRender : placeholder, splitView: true, hideLineNumbers: true, showDiffOnly: false })));
|
|
33
|
+
};
|
|
34
|
+
export default Select;
|
|
@@ -3,11 +3,12 @@ import ReactDiffViewer, { DiffMethod } from 'react-diff-viewer';
|
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import Label from '../../Label';
|
|
5
5
|
import { diffStyles } from '../styles';
|
|
6
|
+
import { getTranslation } from '../../../../../../../utilities/getTranslation';
|
|
6
7
|
import './index.scss';
|
|
7
8
|
const baseClass = 'text-diff';
|
|
8
9
|
const Text = ({ field, locale, version, comparison, isRichText = false, diffMethod }) => {
|
|
9
10
|
let placeholder = '';
|
|
10
|
-
const { t } = useTranslation('general');
|
|
11
|
+
const { t, i18n } = useTranslation('general');
|
|
11
12
|
if (version === comparison)
|
|
12
13
|
placeholder = `[${t('noValue')}]`;
|
|
13
14
|
let versionToRender = version;
|
|
@@ -21,7 +22,7 @@ const Text = ({ field, locale, version, comparison, isRichText = false, diffMeth
|
|
|
21
22
|
return (React.createElement("div", { className: baseClass },
|
|
22
23
|
React.createElement(Label, null,
|
|
23
24
|
locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
|
|
24
|
-
field.label),
|
|
25
|
+
getTranslation(field.label, i18n)),
|
|
25
26
|
React.createElement(ReactDiffViewer, { styles: diffStyles, compareMethod: DiffMethod[diffMethod], oldValue: typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder, newValue: typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder, splitView: true, hideLineNumbers: true, showDiffOnly: false })));
|
|
26
27
|
};
|
|
27
28
|
export default Text;
|
|
@@ -3,6 +3,7 @@ import Nested from './Nested';
|
|
|
3
3
|
import Iterable from './Iterable';
|
|
4
4
|
import Relationship from './Relationship';
|
|
5
5
|
import Tabs from './Tabs';
|
|
6
|
+
import Select from './Select';
|
|
6
7
|
export default {
|
|
7
8
|
text: Text,
|
|
8
9
|
textarea: Text,
|
|
@@ -10,14 +11,14 @@ export default {
|
|
|
10
11
|
email: Text,
|
|
11
12
|
code: Text,
|
|
12
13
|
checkbox: Text,
|
|
13
|
-
radio:
|
|
14
|
+
radio: Select,
|
|
14
15
|
row: Nested,
|
|
15
16
|
collapsible: Nested,
|
|
16
17
|
group: Nested,
|
|
17
18
|
array: Iterable,
|
|
18
19
|
blocks: Iterable,
|
|
19
20
|
date: Text,
|
|
20
|
-
select:
|
|
21
|
+
select: Select,
|
|
21
22
|
richText: Text,
|
|
22
23
|
relationship: Relationship,
|
|
23
24
|
upload: Relationship,
|
|
@@ -148,7 +148,7 @@ const Versions = ({ collection, global }) => {
|
|
|
148
148
|
React.createElement(Eyebrow, null),
|
|
149
149
|
React.createElement(Gutter, { className: `${baseClass}__wrap` },
|
|
150
150
|
React.createElement("header", { className: `${baseClass}__header` },
|
|
151
|
-
React.createElement("div", { className: `${baseClass}__intro` },
|
|
151
|
+
React.createElement("div", { className: `${baseClass}__intro` }, t('showingVersionsFor')),
|
|
152
152
|
useIDLabel && (React.createElement(IDLabel, { id: doc === null || doc === void 0 ? void 0 : doc.id })),
|
|
153
153
|
!useIDLabel && (React.createElement("h1", null, heading))),
|
|
154
154
|
isLoadingVersions && (React.createElement(Loading, null)),
|
|
@@ -27,6 +27,7 @@ import { useDocumentInfo } from '../../../utilities/DocumentInfo';
|
|
|
27
27
|
import { OperationContext } from '../../../utilities/OperationProvider';
|
|
28
28
|
import { Gutter } from '../../../elements/Gutter';
|
|
29
29
|
import { getTranslation } from '../../../../../utilities/getTranslation';
|
|
30
|
+
import { SetStepNav } from './SetStepNav';
|
|
30
31
|
import './index.scss';
|
|
31
32
|
const baseClass = 'collection-edit';
|
|
32
33
|
const DefaultEditView = (props) => {
|
|
@@ -45,6 +46,7 @@ const DefaultEditView = (props) => {
|
|
|
45
46
|
isLoading && (React.createElement(Loading, null)),
|
|
46
47
|
!isLoading && (React.createElement(OperationContext.Provider, { value: operation },
|
|
47
48
|
React.createElement(Form, { className: `${baseClass}__form`, method: id ? 'patch' : 'post', action: action, onSuccess: onSave, disabled: !hasSavePermission, initialState: initialState },
|
|
49
|
+
React.createElement(SetStepNav, { collection: collection, isEditing: isEditing, id: data.id }),
|
|
48
50
|
React.createElement("div", { className: `${baseClass}__main` },
|
|
49
51
|
React.createElement(Meta, { title: `${isEditing ? t('editing') : t('creating')} - ${getTranslation(collection.labels.singular, i18n)}`, description: `${isEditing ? t('editing') : t('creating')} - ${getTranslation(collection.labels.singular, i18n)}`, keywords: `${getTranslation(collection.labels.singular, i18n)}, Payload, CMS` }),
|
|
50
52
|
!disableEyebrow && (React.createElement(Eyebrow, null)),
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useTranslation } from 'react-i18next';
|
|
3
|
+
import { getTranslation } from '../../../../../utilities/getTranslation';
|
|
4
|
+
import useTitle from '../../../../hooks/useTitle';
|
|
5
|
+
import { useStepNav } from '../../../elements/StepNav';
|
|
6
|
+
import { useConfig } from '../../../utilities/Config';
|
|
7
|
+
export const SetStepNav = ({ collection, isEditing, id }) => {
|
|
8
|
+
const { slug, labels: { plural: pluralLabel, }, admin: { useAsTitle, }, } = collection;
|
|
9
|
+
const { setStepNav } = useStepNav();
|
|
10
|
+
const { t, i18n } = useTranslation('general');
|
|
11
|
+
const { routes: { admin } } = useConfig();
|
|
12
|
+
const title = useTitle(useAsTitle);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
const nav = [{
|
|
15
|
+
url: `${admin}/collections/${slug}`,
|
|
16
|
+
label: getTranslation(pluralLabel, i18n),
|
|
17
|
+
}];
|
|
18
|
+
if (isEditing) {
|
|
19
|
+
nav.push({
|
|
20
|
+
label: (useAsTitle && useAsTitle !== 'id') ? title || `[${t('untitled')}]` : id,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
nav.push({
|
|
25
|
+
label: t('createNew'),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
setStepNav(nav);
|
|
29
|
+
}, [setStepNav, isEditing, pluralLabel, id, slug, useAsTitle, admin, t, i18n, title]);
|
|
30
|
+
return null;
|
|
31
|
+
};
|
|
@@ -3,7 +3,6 @@ import { Redirect, useRouteMatch, useHistory, useLocation } from 'react-router-d
|
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { useConfig } from '../../../utilities/Config';
|
|
5
5
|
import { useAuth } from '../../../utilities/Auth';
|
|
6
|
-
import { useStepNav } from '../../../elements/StepNav';
|
|
7
6
|
import usePayloadAPI from '../../../../hooks/usePayloadAPI';
|
|
8
7
|
import RenderCustomComponent from '../../../utilities/RenderCustomComponent';
|
|
9
8
|
import DefaultEdit from './Default';
|
|
@@ -13,11 +12,10 @@ import { useLocale } from '../../../utilities/Locale';
|
|
|
13
12
|
import { useDocumentInfo } from '../../../utilities/DocumentInfo';
|
|
14
13
|
import { usePreferences } from '../../../utilities/Preferences';
|
|
15
14
|
import { EditDepthContext } from '../../../utilities/EditDepth';
|
|
16
|
-
import { getTranslation } from '../../../../../utilities/getTranslation';
|
|
17
15
|
const EditView = (props) => {
|
|
18
16
|
var _a, _b, _c;
|
|
19
17
|
const { collection: incomingCollection, isEditing } = props;
|
|
20
|
-
const { slug,
|
|
18
|
+
const { slug, admin: { components: { views: { Edit: CustomEdit, } = {}, } = {}, } = {}, } = incomingCollection;
|
|
21
19
|
const [fields] = useState(() => formatFields(incomingCollection, isEditing));
|
|
22
20
|
const [collection] = useState(() => ({ ...incomingCollection, fields }));
|
|
23
21
|
const [redirect, setRedirect] = useState();
|
|
@@ -26,12 +24,11 @@ const EditView = (props) => {
|
|
|
26
24
|
const { params: { id } = {} } = useRouteMatch();
|
|
27
25
|
const { state: locationState } = useLocation();
|
|
28
26
|
const history = useHistory();
|
|
29
|
-
const { setStepNav } = useStepNav();
|
|
30
27
|
const [initialState, setInitialState] = useState();
|
|
31
28
|
const { permissions, user } = useAuth();
|
|
32
29
|
const { getVersions, preferencesKey } = useDocumentInfo();
|
|
33
30
|
const { getPreference } = usePreferences();
|
|
34
|
-
const { t
|
|
31
|
+
const { t } = useTranslation('general');
|
|
35
32
|
const onSave = useCallback(async (json) => {
|
|
36
33
|
var _a;
|
|
37
34
|
getVersions();
|
|
@@ -45,37 +42,6 @@ const EditView = (props) => {
|
|
|
45
42
|
}, [admin, collection, isEditing, getVersions, user, id, t, locale]);
|
|
46
43
|
const [{ data, isLoading: isLoadingDocument, isError }] = usePayloadAPI((isEditing ? `${serverURL}${api}/${slug}/${id}` : null), { initialParams: { 'fallback-locale': 'null', depth: 0, draft: 'true' } });
|
|
47
44
|
const dataToRender = (locationState === null || locationState === void 0 ? void 0 : locationState.data) || data;
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
const nav = [{
|
|
50
|
-
url: `${admin}/collections/${slug}`,
|
|
51
|
-
label: getTranslation(pluralLabel, i18n),
|
|
52
|
-
}];
|
|
53
|
-
if (isEditing) {
|
|
54
|
-
let label = '';
|
|
55
|
-
if (dataToRender) {
|
|
56
|
-
if (useAsTitle) {
|
|
57
|
-
if (dataToRender[useAsTitle]) {
|
|
58
|
-
label = dataToRender[useAsTitle];
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
label = `[${t('untitled')}]`;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
label = dataToRender.id;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
nav.push({
|
|
69
|
-
label,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
nav.push({
|
|
74
|
-
label: t('createNew'),
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
setStepNav(nav);
|
|
78
|
-
}, [setStepNav, isEditing, pluralLabel, dataToRender, slug, useAsTitle, admin, t, i18n]);
|
|
79
45
|
useEffect(() => {
|
|
80
46
|
if (isLoadingDocument) {
|
|
81
47
|
return;
|
|
@@ -14,13 +14,15 @@ const usePayloadAPI = (url, options = {}) => {
|
|
|
14
14
|
const search = queryString.stringify({
|
|
15
15
|
locale,
|
|
16
16
|
...(typeof params === 'object' ? params : {}),
|
|
17
|
+
}, {
|
|
18
|
+
addQueryPrefix: true,
|
|
17
19
|
});
|
|
18
20
|
useEffect(() => {
|
|
19
21
|
const fetchData = async () => {
|
|
20
22
|
setIsError(false);
|
|
21
23
|
setIsLoading(true);
|
|
22
24
|
try {
|
|
23
|
-
const response = await requests.get(`${url}
|
|
25
|
+
const response = await requests.get(`${url}${search}`, {
|
|
24
26
|
headers: {
|
|
25
27
|
'Accept-Language': i18n.language,
|
|
26
28
|
},
|
|
@@ -27,9 +27,9 @@ async function updateHandler(req, res, next) {
|
|
|
27
27
|
});
|
|
28
28
|
let message = req.t('general:updatedSuccessfully');
|
|
29
29
|
if (draft)
|
|
30
|
-
message = req.t('
|
|
30
|
+
message = req.t('version:draftSavedSuccessfully');
|
|
31
31
|
if (autosave)
|
|
32
|
-
message = req.t('
|
|
32
|
+
message = req.t('version:autosavedSuccessfully');
|
|
33
33
|
return res.status(http_status_1.default.OK).json({
|
|
34
34
|
...(0, formatSuccess_1.default)(message, 'message'),
|
|
35
35
|
doc,
|
|
@@ -40,4 +40,4 @@ async function updateHandler(req, res, next) {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
exports.default = updateHandler;
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbGxlY3Rpb25zL3JlcXVlc3RIYW5kbGVycy91cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsOERBQXFDO0FBRXJDLDBGQUEwRTtBQUMxRSxrRUFBMEM7QUFPbkMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLEdBQW1CLEVBQUUsR0FBYSxFQUFFLElBQWtCO0lBQzNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvSUFBb0ksQ0FBQyxDQUFDO0lBRTlKLE9BQU8sYUFBYSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUpELDRDQUlDO0FBRWMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFtQixFQUFFLEdBQWEsRUFBRSxJQUFrQjtJQUNoRyxJQUFJO1FBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztRQUUvQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsZ0JBQU0sRUFBQztZQUN2QixHQUFHO1lBQ0gsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1lBQzFCLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1lBQ2QsS0FBSyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUMsS0FBSztZQUNMLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFbkQsSUFBSSxLQUFLO1lBQUUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUM3RCxJQUFJLFFBQVE7WUFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRS9ELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxxQkFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwQyxHQUFHLElBQUEsdUJBQXFCLEVBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztZQUM1QyxHQUFHO1NBQ0osQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BCO0FBQ0gsQ0FBQztBQTNCRCxnQ0EyQkMifQ==
|
|
@@ -114,6 +114,12 @@ const promise = async ({ data, doc, docWithLocales, errors, field, id, mergeLoca
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
switch (field.type) {
|
|
117
|
+
case 'select': {
|
|
118
|
+
if (siblingData[field.name] === null) {
|
|
119
|
+
siblingData[field.name] = undefined;
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
117
123
|
case 'point': {
|
|
118
124
|
// Transform point data for storage
|
|
119
125
|
if (Array.isArray(siblingData[field.name]) && siblingData[field.name][0] !== null && siblingData[field.name][1] !== null) {
|
|
@@ -289,4 +295,4 @@ const promise = async ({ data, doc, docWithLocales, errors, field, id, mergeLoca
|
|
|
289
295
|
}
|
|
290
296
|
};
|
|
291
297
|
exports.promise = promise;
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0NBQXNDO0FBQ3RDLDBEQUE4QjtBQUM5Qiw4Q0FBcUY7QUFHckYsNEVBQXdEO0FBQ3hELHFEQUFrRDtBQUNsRCwyREFBd0Q7QUFtQnhELG9FQUFvRTtBQUNwRSxrQkFBa0I7QUFDbEIsb0RBQW9EO0FBQ3BELGdEQUFnRDtBQUNoRCx3QkFBd0I7QUFDeEIsa0JBQWtCO0FBQ2xCLCtCQUErQjtBQUMvQixzQkFBc0I7QUFFZixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsRUFDNUIsSUFBSSxFQUNKLEdBQUcsRUFDSCxjQUFjLEVBQ2QsTUFBTSxFQUNOLEtBQUssRUFDTCxFQUFFLEVBQ0Ysa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLGNBQWMsR0FDVCxFQUFpQixFQUFFOztJQUN4QixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQUEsS0FBSyxDQUFDLEtBQUssMENBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25HLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBRWxFLElBQUksSUFBQSx3QkFBZ0IsRUFBQyxLQUFLLENBQUMsRUFBRTtRQUMzQixJQUFJLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDbEQsd0VBQXdFO1lBQ3hFLElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFdBQVcsRUFBRTtn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
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0NBQXNDO0FBQ3RDLDBEQUE4QjtBQUM5Qiw4Q0FBcUY7QUFHckYsNEVBQXdEO0FBQ3hELHFEQUFrRDtBQUNsRCwyREFBd0Q7QUFtQnhELG9FQUFvRTtBQUNwRSxrQkFBa0I7QUFDbEIsb0RBQW9EO0FBQ3BELGdEQUFnRDtBQUNoRCx3QkFBd0I7QUFDeEIsa0JBQWtCO0FBQ2xCLCtCQUErQjtBQUMvQixzQkFBc0I7QUFFZixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsRUFDNUIsSUFBSSxFQUNKLEdBQUcsRUFDSCxjQUFjLEVBQ2QsTUFBTSxFQUNOLEtBQUssRUFDTCxFQUFFLEVBQ0Ysa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLGNBQWMsR0FDVCxFQUFpQixFQUFFOztJQUN4QixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQUEsS0FBSyxDQUFDLEtBQUssMENBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25HLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBRWxFLElBQUksSUFBQSx3QkFBZ0IsRUFBQyxLQUFLLENBQUMsRUFBRTtRQUMzQixJQUFJLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDbEQsd0VBQXdFO1lBQ3hFLElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFdBQVcsRUFBRTtnQkFDakQsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLE9BQU8scUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUMxSCxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3pFO3FCQUFNO29CQUNMLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDbEQ7Z0JBRUQsa0NBQWtDO2FBQ25DO2lCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFBRTtnQkFDcEQsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLElBQUEseUJBQW1CLEVBQUM7b0JBQ2xELEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO29CQUNoQyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07b0JBQ2xCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtpQkFDZixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsZ0JBQWdCO1FBQ2hCLElBQUksTUFBQSxLQUFLLENBQUMsS0FBSywwQ0FBRSxZQUFZLEVBQUU7WUFDN0IsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsRUFBRTtnQkFDckUsTUFBTSxTQUFTLENBQUM7Z0JBRWhCLE1BQU0sV0FBVyxHQUFHLE1BQU0sV0FBVyxDQUFDO29CQUNwQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQzlCLFdBQVcsRUFBRSxHQUFHO29CQUNoQixJQUFJO29CQUNKLFdBQVc7b0JBQ1gsU0FBUztvQkFDVCxHQUFHO2lCQUNKLENBQUMsQ0FBQztnQkFFSCxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7b0JBQzdCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDO2lCQUN2QztZQUNILENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN2QjtRQUVELFdBQVc7UUFDWCxJQUFJLENBQUMsc0JBQXNCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUM3QyxJQUFJLGVBQWUsQ0FBQztZQUVwQixJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLGVBQWUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekQ7aUJBQU07Z0JBQ0wsZUFBZSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0M7WUFFRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUU7Z0JBQzdELEdBQUcsS0FBSztnQkFDUixJQUFJLEVBQUUsSUFBQSxtQkFBSyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0QsV0FBVyxFQUFFLElBQUEsbUJBQUssRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xGLEVBQUU7Z0JBQ0YsU0FBUztnQkFDVCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO2dCQUNwQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDVCxDQUFDLENBQUM7WUFFSCxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxFQUFFO2dCQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNWLE9BQU8sRUFBRSxnQkFBZ0I7b0JBQ3pCLEtBQUssRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFO2lCQUM5QixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQseUNBQXlDO1FBQ3pDLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUNuQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUMzQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtvQkFDbkMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7O3dCQUN0RixJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUV6QyxJQUFJLFFBQVEsS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFOzRCQUMzQixVQUFVLEdBQUcsTUFBQSxxQkFBcUIsYUFBckIscUJBQXFCLHVCQUFyQixxQkFBcUIsQ0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLDBDQUFHLFFBQVEsQ0FBQyxDQUFDO3lCQUM5RDt3QkFFRCxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRTs0QkFDckMsT0FBTztnQ0FDTCxHQUFHLE9BQU87Z0NBQ1YsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVOzZCQUN2QixDQUFDO3lCQUNIO3dCQUVELE9BQU8sT0FBTyxDQUFDO29CQUNqQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBRVAsK0NBQStDO29CQUMvQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDdEMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUM7cUJBQ3RDO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtLQUNGO0lBRUQsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ2xCLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDYixJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNwQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQzthQUNyQztZQUVELE1BQU07U0FDUDtRQUVELEtBQUssT0FBTyxDQUFDLENBQUM7WUFDWixtQ0FBbUM7WUFDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDeEgsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRztvQkFDeEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsV0FBVyxFQUFFO3dCQUNYLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDdkM7aUJBQ0YsQ0FBQzthQUNIO1lBRUQsTUFBTTtTQUNQO1FBRUQsS0FBSyxPQUFPLENBQUMsQ0FBQztZQUNaLElBQUksT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7Z0JBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDOUUsSUFBSSxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUTtnQkFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1RSxJQUFJLE9BQU8scUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7Z0JBQUUscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVsRyxNQUFNLElBQUEsK0JBQWMsRUFBQztnQkFDbkIsSUFBSTtnQkFDSixHQUFHO2dCQUNILGNBQWM7Z0JBQ2QsTUFBTTtnQkFDTixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLEVBQUU7Z0JBQ0Ysa0JBQWtCO2dCQUNsQixTQUFTO2dCQUNULElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHO2dCQUM3QixHQUFHO2dCQUNILFdBQVcsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNEI7Z0JBQy9ELFVBQVUsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNEI7Z0JBQzdELHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQTRCO2dCQUNuRixjQUFjLEVBQUUsc0JBQXNCO2FBQ3ZDLENBQUMsQ0FBQztZQUVILE1BQU07U0FDUDtRQUVELEtBQUssT0FBTyxDQUFDLENBQUM7WUFDWixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXJDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFOztvQkFDdEIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFBLCtCQUFjLEVBQUM7d0JBQzNCLElBQUk7d0JBQ0osR0FBRzt3QkFDSCxjQUFjO3dCQUNkLE1BQU07d0JBQ04sTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO3dCQUNwQixFQUFFO3dCQUNGLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUc7d0JBQ2xDLEdBQUc7d0JBQ0gsV0FBVyxFQUFFLEdBQUc7d0JBQ2hCLFVBQVUsRUFBRSxJQUFBLHFDQUFpQixFQUFDLEdBQUcsRUFBRSxNQUFBLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLDBDQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUMvRCxxQkFBcUIsRUFBRSxJQUFBLHFDQUFpQixFQUFDLEdBQUcsRUFBRSxNQUFBLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsMENBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ3JGLGNBQWMsRUFBRSxzQkFBc0I7cUJBQ3ZDLENBQUMsQ0FBQyxDQUFDO2dCQUNOLENBQUMsQ0FBQyxDQUFDO2dCQUVILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM3QjtZQUdELE1BQU07U0FDUDtRQUVELEtBQUssUUFBUSxDQUFDLENBQUM7WUFDYixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXJDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFOztvQkFDdEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUVqRixJQUFJLEtBQUssRUFBRTt3QkFDVCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUEsK0JBQWMsRUFBQzs0QkFDM0IsSUFBSTs0QkFDSixHQUFHOzRCQUNILGNBQWM7NEJBQ2QsTUFBTTs0QkFDTixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07NEJBQ3BCLEVBQUU7NEJBQ0Ysa0JBQWtCOzRCQUNsQixTQUFTOzRCQUNULElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRzs0QkFDbEMsR0FBRzs0QkFDSCxXQUFXLEVBQUUsR0FBRzs0QkFDaEIsVUFBVSxFQUFFLElBQUEscUNBQWlCLEVBQUMsR0FBRyxFQUFFLE1BQUEsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsMENBQUcsQ0FBQyxDQUFDLENBQUM7NEJBQy9ELHFCQUFxQixFQUFFLElBQUEscUNBQWlCLEVBQUMsR0FBRyxFQUFFLE1BQUEscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQywwQ0FBRyxDQUFDLENBQUMsQ0FBQzs0QkFDckYsY0FBYyxFQUFFLHNCQUFzQjt5QkFDdkMsQ0FBQyxDQUFDLENBQUM7cUJBQ0w7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzdCO1lBR0QsTUFBTTtTQUNQO1FBRUQsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sSUFBQSwrQkFBYyxFQUFDO2dCQUNuQixJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsY0FBYztnQkFDZCxNQUFNO2dCQUNOLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsRUFBRTtnQkFDRixrQkFBa0I7Z0JBQ2xCLFNBQVM7Z0JBQ1QsSUFBSTtnQkFDSixHQUFHO2dCQUNILFdBQVc7Z0JBQ1gsVUFBVTtnQkFDVixxQkFBcUI7Z0JBQ3JCLGNBQWMsRUFBRSxzQkFBc0I7YUFDdkMsQ0FBQyxDQUFDO1lBRUgsTUFBTTtTQUNQO1FBRUQsS0FBSyxLQUFLLENBQUMsQ0FBQztZQUNWLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLGNBQWMsR0FBRyxXQUFXLENBQUM7WUFDakMsSUFBSSxhQUFhLEdBQUcsVUFBVSxDQUFDO1lBQy9CLElBQUksd0JBQXdCLEdBQUcscUJBQXFCLENBQUM7WUFFckQsSUFBSSxJQUFBLGtCQUFVLEVBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ2xDLElBQUksT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7b0JBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzlFLElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7b0JBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzVFLElBQUksT0FBTyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUTtvQkFBRSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUVsRyxjQUFjLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQTRCLENBQUM7Z0JBQ3BFLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNEIsQ0FBQztnQkFDbEUsd0JBQXdCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNEIsQ0FBQzthQUN6RjtZQUVELE1BQU0sSUFBQSwrQkFBYyxFQUFDO2dCQUNuQixJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsY0FBYztnQkFDZCxNQUFNO2dCQUNOLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsRUFBRTtnQkFDRixrQkFBa0I7Z0JBQ2xCLFNBQVM7Z0JBQ1QsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsR0FBRztnQkFDSCxXQUFXLEVBQUUsY0FBYztnQkFDM0IsVUFBVSxFQUFFLGFBQWE7Z0JBQ3pCLHFCQUFxQixFQUFFLHdCQUF3QjtnQkFDL0MsY0FBYyxFQUFFLHNCQUFzQjthQUN2QyxDQUFDLENBQUM7WUFFSCxNQUFNO1NBQ1A7UUFFRCxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ1gsTUFBTSxJQUFBLCtCQUFjLEVBQUM7Z0JBQ25CLElBQUk7Z0JBQ0osR0FBRztnQkFDSCxjQUFjO2dCQUNkLE1BQU07Z0JBQ04sTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzFELEVBQUU7Z0JBQ0Ysa0JBQWtCO2dCQUNsQixTQUFTO2dCQUNULElBQUk7Z0JBQ0osR0FBRztnQkFDSCxXQUFXO2dCQUNYLFVBQVU7Z0JBQ1YscUJBQXFCO2dCQUNyQixjQUFjLEVBQUUsc0JBQXNCO2FBQ3ZDLENBQUMsQ0FBQztZQUVILE1BQU07U0FDUDtRQUVELE9BQU8sQ0FBQyxDQUFDO1lBQ1AsTUFBTTtTQUNQO0tBQ0Y7QUFDSCxDQUFDLENBQUM7QUEvVFcsUUFBQSxPQUFPLFdBK1RsQiJ9
|
|
@@ -22,9 +22,9 @@ function updateHandler(globalConfig) {
|
|
|
22
22
|
});
|
|
23
23
|
let message = req.t('general:updatedSuccessfully');
|
|
24
24
|
if (draft)
|
|
25
|
-
message = req.t('
|
|
25
|
+
message = req.t('version:draftSavedSuccessfully');
|
|
26
26
|
if (autosave)
|
|
27
|
-
message = req.t('
|
|
27
|
+
message = req.t('version:autosavedSuccessfully');
|
|
28
28
|
return res.status(http_status_1.default.OK).json({ message, result });
|
|
29
29
|
}
|
|
30
30
|
catch (error) {
|
|
@@ -33,4 +33,4 @@ function updateHandler(globalConfig) {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
exports.default = updateHandler;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dsb2JhbHMvcmVxdWVzdEhhbmRsZXJzL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDhEQUFxQztBQUlyQyxrRUFBMEM7QUFLMUMsU0FBd0IsYUFBYSxDQUFDLFlBQW1DO0lBQ3ZFLE9BQU8sS0FBSyxVQUFVLE9BQU8sQ0FBQyxHQUFtQixFQUFFLEdBQWEsRUFBRSxJQUFrQjtRQUNsRixJQUFJO1lBQ0YsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQztZQUM5QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUM7WUFDekMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDO1lBRS9DLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxnQkFBTSxFQUFDO2dCQUMxQixHQUFHO2dCQUNILFlBQVk7Z0JBQ1osSUFBSTtnQkFDSixLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUM5QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsS0FBSztnQkFDTCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1lBRUgsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBRW5ELElBQUksS0FBSztnQkFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQzdELElBQUksUUFBUTtnQkFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1lBRS9ELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxxQkFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzVEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUEzQkQsZ0NBMkJDIn0=
|
|
@@ -271,6 +271,7 @@
|
|
|
271
271
|
"saveDraft": "Save Draft",
|
|
272
272
|
"selectLocales": "Select locales to display",
|
|
273
273
|
"selectVersionToCompare": "Select a version to compare",
|
|
274
|
+
"showingVersionsFor": "Showing versions for:",
|
|
274
275
|
"showLocales": "Show locales:",
|
|
275
276
|
"status": "Status",
|
|
276
277
|
"type": "Type",
|
|
@@ -280,6 +281,7 @@
|
|
|
280
281
|
"versionCount_many": "{{count}} versions found",
|
|
281
282
|
"versionCount_none": "No versions found",
|
|
282
283
|
"versionCount_one": "{{count}} version found",
|
|
284
|
+
"versionCount_other": "{{count}} versions found",
|
|
283
285
|
"versionCreatedOn": "{{version}} created on:",
|
|
284
286
|
"versionID": "Version ID",
|
|
285
287
|
"versions": "Versions",
|
|
@@ -562,6 +562,7 @@ declare const _default: {
|
|
|
562
562
|
saveDraft: string;
|
|
563
563
|
selectLocales: string;
|
|
564
564
|
selectVersionToCompare: string;
|
|
565
|
+
showingVersionsFor: string;
|
|
565
566
|
showLocales: string;
|
|
566
567
|
status: string;
|
|
567
568
|
type: string;
|
|
@@ -571,6 +572,7 @@ declare const _default: {
|
|
|
571
572
|
versionCount_many: string;
|
|
572
573
|
versionCount_none: string;
|
|
573
574
|
versionCount_one: string;
|
|
575
|
+
versionCount_other: string;
|
|
574
576
|
versionCreatedOn: string;
|
|
575
577
|
versionID: string;
|
|
576
578
|
versions: string;
|
|
@@ -1223,6 +1225,7 @@ declare const _default: {
|
|
|
1223
1225
|
accountAlreadyActivated: string;
|
|
1224
1226
|
autosaving: string;
|
|
1225
1227
|
correctInvalidFields: string;
|
|
1228
|
+
deletingFile: string;
|
|
1226
1229
|
deletingTitle: string;
|
|
1227
1230
|
emailOrPasswordIncorrect: string;
|
|
1228
1231
|
followingFieldsInvalid_many: string;
|
|
@@ -1433,6 +1436,7 @@ declare const _default: {
|
|
|
1433
1436
|
saveDraft: string;
|
|
1434
1437
|
selectLocales: string;
|
|
1435
1438
|
selectVersionToCompare: string;
|
|
1439
|
+
showingVersionsFor: string;
|
|
1436
1440
|
showLocales: string;
|
|
1437
1441
|
status: string;
|
|
1438
1442
|
type: string;
|
|
@@ -1442,6 +1446,7 @@ declare const _default: {
|
|
|
1442
1446
|
versionCount_many: string;
|
|
1443
1447
|
versionCount_none: string;
|
|
1444
1448
|
versionCount_one: string;
|
|
1449
|
+
versionCount_other: string;
|
|
1445
1450
|
versionCreatedOn: string;
|
|
1446
1451
|
versionID: string;
|
|
1447
1452
|
versions: string;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"account": "Account",
|
|
5
5
|
"accountOfCurrentUser": "Account dell'utente corrente",
|
|
6
6
|
"alreadyActivated": "Già Attivato",
|
|
7
|
-
"alreadyLoggedIn": "
|
|
7
|
+
"alreadyLoggedIn": "Sei già loggato",
|
|
8
8
|
"apiKey": "Chiave API",
|
|
9
9
|
"backToLogin": "Torna al login",
|
|
10
10
|
"beginCreateFirstUser": "Per iniziare, crea il tuo primo utente.",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"enableAPIKey": "Abilita la Chiave API",
|
|
19
19
|
"failedToUnlock": "Lo sblocco è fallito",
|
|
20
20
|
"forceUnlock": "Forza Sblocco",
|
|
21
|
-
"forgotPassword": "Password
|
|
21
|
+
"forgotPassword": "Cambia Password",
|
|
22
22
|
"forgotPasswordEmailInstructions": "Inserisci la tua mail qui sotto. Riceverai un messaggio email con le istruzioni su come cambiare la tua password.",
|
|
23
23
|
"forgotPasswordQuestion": "Password dimenticata?",
|
|
24
24
|
"generate": "Genera",
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"accountAlreadyActivated": "Questo account è già stato attivato.",
|
|
61
61
|
"autosaving": "Si è verificato un problema durante il salvataggio automatico di questo documento.",
|
|
62
62
|
"correctInvalidFields": "Per favore correggi i campi non validi.",
|
|
63
|
+
"deletingFile": "Si è verificato un errore durante l'eleminazione del file.",
|
|
63
64
|
"deletingTitle": "Si è verificato un errore durante l'eliminazione di {{title}}. Per favore controlla la tua connessione e riprova.",
|
|
64
65
|
"emailOrPasswordIncorrect": "L'email o la password fornita non è corretta.",
|
|
65
66
|
"followingFieldsInvalid_many": "I seguenti campi non sono validi:",
|
|
@@ -127,7 +128,7 @@
|
|
|
127
128
|
"automatic": "Automatico",
|
|
128
129
|
"backToDashboard": "Torna alla Dashboard",
|
|
129
130
|
"cancel": "Cancella",
|
|
130
|
-
"changesNotSaved": "Le tue modifiche non sono state salvate. Se esci ora,
|
|
131
|
+
"changesNotSaved": "Le tue modifiche non sono state salvate. Se esci ora, verranno perse.",
|
|
131
132
|
"collections": "Collezioni",
|
|
132
133
|
"columnToSort": "Colonna da Ordinare",
|
|
133
134
|
"columns": "Colonne",
|
|
@@ -139,19 +140,19 @@
|
|
|
139
140
|
"create": "Crea",
|
|
140
141
|
"createNew": "Crea Nuovo",
|
|
141
142
|
"createNewLabel": "Crea nuovo {{label}}",
|
|
142
|
-
"created": "Data
|
|
143
|
+
"created": "Data di creazione",
|
|
143
144
|
"createdAt": "Creato il",
|
|
144
|
-
"creating": "
|
|
145
|
+
"creating": "Crea nuovo",
|
|
145
146
|
"dark": "Scuro",
|
|
146
147
|
"dashboard": "Dashboard",
|
|
147
148
|
"delete": "Elimina",
|
|
148
149
|
"deletedSuccessfully": "Eliminato con successo.",
|
|
149
|
-
"deleting": "
|
|
150
|
+
"deleting": "Sto eliminando...",
|
|
150
151
|
"descending": "Decrescente",
|
|
151
152
|
"duplicate": "Duplica",
|
|
152
153
|
"duplicateWithoutSaving": "Duplica senza salvare le modifiche",
|
|
153
154
|
"editLabel": "Modifica {{label}}",
|
|
154
|
-
"editing": "
|
|
155
|
+
"editing": "Modifica",
|
|
155
156
|
"email": "Email",
|
|
156
157
|
"emailAddress": "Indirizzo Email",
|
|
157
158
|
"enterAValue": "Inserisci un valore",
|
|
@@ -160,7 +161,7 @@
|
|
|
160
161
|
"filters": "Filtri",
|
|
161
162
|
"globals": "Globali",
|
|
162
163
|
"language": "Lingua",
|
|
163
|
-
"lastModified": "Ultima
|
|
164
|
+
"lastModified": "Ultima modifica",
|
|
164
165
|
"leaveAnyway": "Esci comunque",
|
|
165
166
|
"leaveWithoutSaving": "Esci senza salvare",
|
|
166
167
|
"light": "Chiaro",
|
|
@@ -171,24 +172,24 @@
|
|
|
171
172
|
"newPassword": "Nuova Password",
|
|
172
173
|
"noFiltersSet": "Nessun filtro impostato",
|
|
173
174
|
"noLabel": "<No {{label}}>",
|
|
174
|
-
"noResults": "Nessun {{label}} trovato.
|
|
175
|
+
"noResults": "Nessun {{label}} trovato. Non esiste ancora nessun {{label}} oppure nessuno corrisponde ai filtri che hai specificato sopra.",
|
|
175
176
|
"noValue": "Nessun valore",
|
|
176
177
|
"none": "Nessuno",
|
|
177
178
|
"notFound": "Non Trovato",
|
|
178
179
|
"nothingFound": "Non è stato trovato nulla",
|
|
179
180
|
"of": "di",
|
|
180
|
-
"or": "
|
|
181
|
+
"or": "Oppure",
|
|
181
182
|
"order": "Ordine",
|
|
182
183
|
"pageNotFound": "Pagina non trovata",
|
|
183
184
|
"password": "Password",
|
|
184
|
-
"payloadSettings": "Impostazioni Payload",
|
|
185
|
+
"payloadSettings": "Impostazioni di Payload",
|
|
185
186
|
"perPage": "Per Pagina: {{limit}}",
|
|
186
187
|
"remove": "Rimuovi",
|
|
187
188
|
"row": "Riga",
|
|
188
189
|
"rows": "Righe",
|
|
189
190
|
"save": "Salva",
|
|
190
191
|
"saving": "Salvo...",
|
|
191
|
-
"searchBy": "
|
|
192
|
+
"searchBy": "Cerca per {{label}}",
|
|
192
193
|
"selectValue": "Seleziona un valore",
|
|
193
194
|
"sorryNotFound": "Siamo spiacenti, non c'è nulla che corrisponda alla tua richiesta.",
|
|
194
195
|
"sort": "Ordina",
|
|
@@ -204,8 +205,8 @@
|
|
|
204
205
|
"untitled": "Senza titolo",
|
|
205
206
|
"updatedAt": "Aggiornato il",
|
|
206
207
|
"updatedSuccessfully": "Aggiornato con successo.",
|
|
207
|
-
"user": "
|
|
208
|
-
"users": "
|
|
208
|
+
"user": "Utente",
|
|
209
|
+
"users": "Utenti",
|
|
209
210
|
"welcome": "Benvenuto"
|
|
210
211
|
},
|
|
211
212
|
"upload": {
|
|
@@ -263,13 +264,14 @@
|
|
|
263
264
|
"publishChanges": "Pubblica modifiche",
|
|
264
265
|
"published": "Pubblicato",
|
|
265
266
|
"restoreThisVersion": "Ripristina questa versione",
|
|
266
|
-
"restoredSuccessfully": "
|
|
267
|
+
"restoredSuccessfully": "Ripristinato con successo.",
|
|
267
268
|
"restoring": "Ripristino...",
|
|
268
269
|
"revertToPublished": "Ritorna alla versione pubblicata",
|
|
269
270
|
"reverting": "Ritorno...",
|
|
270
271
|
"saveDraft": "Salva Bozza",
|
|
271
272
|
"selectLocales": "Seleziona le lingue da visualizzare",
|
|
272
273
|
"selectVersionToCompare": "Seleziona una versione da confrontare",
|
|
274
|
+
"showingVersionsFor": "Mostra le versioni per:",
|
|
273
275
|
"showLocales": "Mostra localizzazioni:",
|
|
274
276
|
"status": "Stato",
|
|
275
277
|
"type": "Tipo",
|
|
@@ -279,6 +281,7 @@
|
|
|
279
281
|
"versionCount_many": "{{count}} versioni trovate",
|
|
280
282
|
"versionCount_none": "Nessuna versione trovata",
|
|
281
283
|
"versionCount_one": "{{count}} versione trovata",
|
|
284
|
+
"versionCount_other": "{{count}} versioni trovate",
|
|
282
285
|
"versionCreatedOn": "{{version}} creata il:",
|
|
283
286
|
"versionID": "ID Versione",
|
|
284
287
|
"versions": "Versioni",
|
|
@@ -4,6 +4,7 @@ exports.saveCollectionDraft = void 0;
|
|
|
4
4
|
const enforceMaxVersions_1 = require("../enforceMaxVersions");
|
|
5
5
|
const saveCollectionDraft = async ({ payload, config, id, data, autosave, }) => {
|
|
6
6
|
const VersionsModel = payload.versions[config.slug];
|
|
7
|
+
const dataAsDraft = { ...data, _status: 'draft' };
|
|
7
8
|
let existingAutosaveVersion;
|
|
8
9
|
if (autosave) {
|
|
9
10
|
existingAutosaveVersion = await VersionsModel.findOne({
|
|
@@ -18,14 +19,14 @@ const saveCollectionDraft = async ({ payload, config, id, data, autosave, }) =>
|
|
|
18
19
|
result = await VersionsModel.findByIdAndUpdate({
|
|
19
20
|
_id: existingAutosaveVersion._id,
|
|
20
21
|
}, {
|
|
21
|
-
version:
|
|
22
|
+
version: dataAsDraft,
|
|
22
23
|
}, { new: true, lean: true });
|
|
23
24
|
// Otherwise, create a new one
|
|
24
25
|
}
|
|
25
26
|
else {
|
|
26
27
|
result = await VersionsModel.create({
|
|
27
28
|
parent: id,
|
|
28
|
-
version:
|
|
29
|
+
version: dataAsDraft,
|
|
29
30
|
autosave: Boolean(autosave),
|
|
30
31
|
});
|
|
31
32
|
}
|
|
@@ -51,4 +52,4 @@ const saveCollectionDraft = async ({ payload, config, id, data, autosave, }) =>
|
|
|
51
52
|
return result;
|
|
52
53
|
};
|
|
53
54
|
exports.saveCollectionDraft = saveCollectionDraft;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZUNvbGxlY3Rpb25EcmFmdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9ucy9kcmFmdHMvc2F2ZUNvbGxlY3Rpb25EcmFmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw4REFBMkQ7QUFZcEQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsRUFDeEMsT0FBTyxFQUNQLE1BQU0sRUFDTixFQUFFLEVBQ0YsSUFBSSxFQUNKLFFBQVEsR0FDSCxFQUFvQyxFQUFFO0lBQzNDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBELE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRWxELElBQUksdUJBQXVCLENBQUM7SUFFNUIsSUFBSSxRQUFRLEVBQUU7UUFDWix1QkFBdUIsR0FBRyxNQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDcEQsTUFBTSxFQUFFLEVBQUU7U0FDWCxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDekM7SUFFRCxJQUFJLE1BQU0sQ0FBQztJQUVYLElBQUk7UUFDRiw2Q0FBNkM7UUFDN0MsWUFBWTtRQUNaLElBQUksUUFBUSxJQUFJLENBQUEsdUJBQXVCLGFBQXZCLHVCQUF1Qix1QkFBdkIsdUJBQXVCLENBQUUsUUFBUSxNQUFLLElBQUksRUFBRTtZQUMxRCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsaUJBQWlCLENBQzVDO2dCQUNFLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHO2FBQ2pDLEVBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLFdBQVc7YUFDckIsRUFDRCxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUMxQixDQUFDO1lBQ0osOEJBQThCO1NBQzdCO2FBQU07WUFDTCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsTUFBTSxDQUFDO2dCQUNsQyxNQUFNLEVBQUUsRUFBRTtnQkFDVixPQUFPLEVBQUUsV0FBVztnQkFDcEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7YUFDNUIsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0csT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDM0I7SUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO1FBQzdCLElBQUEsdUNBQWtCLEVBQUM7WUFDakIsRUFBRTtZQUNGLE9BQU87WUFDUCxLQUFLLEVBQUUsYUFBYTtZQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsVUFBVSxFQUFFLFlBQVk7WUFDeEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUztTQUMvQixDQUFDLENBQUM7S0FDSjtJQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ3hCLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRWYsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBaEVXLFFBQUEsbUJBQW1CLHVCQWdFOUIifQ==
|
|
@@ -4,6 +4,7 @@ exports.saveGlobalDraft = void 0;
|
|
|
4
4
|
const enforceMaxVersions_1 = require("../enforceMaxVersions");
|
|
5
5
|
const saveGlobalDraft = async ({ payload, config, data, autosave, }) => {
|
|
6
6
|
const VersionsModel = payload.versions[config.slug];
|
|
7
|
+
const dataAsDraft = { ...data, _status: 'draft' };
|
|
7
8
|
let existingAutosaveVersion;
|
|
8
9
|
if (autosave) {
|
|
9
10
|
existingAutosaveVersion = await VersionsModel.findOne();
|
|
@@ -16,13 +17,13 @@ const saveGlobalDraft = async ({ payload, config, data, autosave, }) => {
|
|
|
16
17
|
result = await VersionsModel.findByIdAndUpdate({
|
|
17
18
|
_id: existingAutosaveVersion._id,
|
|
18
19
|
}, {
|
|
19
|
-
version:
|
|
20
|
+
version: dataAsDraft,
|
|
20
21
|
}, { new: true, lean: true });
|
|
21
22
|
// Otherwise, create a new one
|
|
22
23
|
}
|
|
23
24
|
else {
|
|
24
25
|
result = await VersionsModel.create({
|
|
25
|
-
version:
|
|
26
|
+
version: dataAsDraft,
|
|
26
27
|
autosave: Boolean(autosave),
|
|
27
28
|
});
|
|
28
29
|
}
|
|
@@ -46,4 +47,4 @@ const saveGlobalDraft = async ({ payload, config, data, autosave, }) => {
|
|
|
46
47
|
return result;
|
|
47
48
|
};
|
|
48
49
|
exports.saveGlobalDraft = saveGlobalDraft;
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZUdsb2JhbERyYWZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZlcnNpb25zL2RyYWZ0cy9zYXZlR2xvYmFsRHJhZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOERBQTJEO0FBVXBELE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxFQUNwQyxPQUFPLEVBQ1AsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLEdBQ0gsRUFBaUIsRUFBRTtJQUN4QixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRCxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUVsRCxJQUFJLHVCQUF1QixDQUFDO0lBRTVCLElBQUksUUFBUSxFQUFFO1FBQ1osdUJBQXVCLEdBQUcsTUFBTSxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDekQ7SUFFRCxJQUFJLE1BQU0sQ0FBQztJQUVYLElBQUk7UUFDRiw2Q0FBNkM7UUFDN0MsWUFBWTtRQUNaLElBQUksUUFBUSxJQUFJLENBQUEsdUJBQXVCLGFBQXZCLHVCQUF1Qix1QkFBdkIsdUJBQXVCLENBQUUsUUFBUSxNQUFLLElBQUksRUFBRTtZQUMxRCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsaUJBQWlCLENBQzVDO2dCQUNFLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHO2FBQ2pDLEVBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLFdBQVc7YUFDckIsRUFDRCxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUMxQixDQUFDO1lBQ0osOEJBQThCO1NBQzdCO2FBQU07WUFDTCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsTUFBTSxDQUFDO2dCQUNsQyxPQUFPLEVBQUUsV0FBVztnQkFDcEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7YUFDNUIsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMERBQTBELE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQy9GLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzNCO0lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN2QixJQUFBLHVDQUFrQixFQUFDO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLGFBQWE7WUFDcEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUN4QixNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUExRFcsUUFBQSxlQUFlLG1CQTBEMUIifQ==
|
|
@@ -31,6 +31,7 @@ const ensurePublishedCollectionVersion = async ({ payload, config, req, id, docW
|
|
|
31
31
|
req,
|
|
32
32
|
overrideAccess: true,
|
|
33
33
|
showHiddenFields: true,
|
|
34
|
+
flattenLocales: false,
|
|
34
35
|
});
|
|
35
36
|
try {
|
|
36
37
|
await VersionModel.create({
|
|
@@ -57,4 +58,4 @@ const ensurePublishedCollectionVersion = async ({ payload, config, req, id, docW
|
|
|
57
58
|
}
|
|
58
59
|
};
|
|
59
60
|
exports.ensurePublishedCollectionVersion = ensurePublishedCollectionVersion;
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlUHVibGlzaGVkQ29sbGVjdGlvblZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyc2lvbnMvZW5zdXJlUHVibGlzaGVkQ29sbGVjdGlvblZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkRBQTBEO0FBRTFELHlEQUFzRDtBQVUvQyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssRUFBRSxFQUNyRCxPQUFPLEVBQ1AsTUFBTSxFQUNOLEdBQUcsRUFDSCxFQUFFLEVBQ0YsY0FBYyxHQUNULEVBQWlCLEVBQUU7SUFDeEIsZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxzREFBc0Q7SUFFdEQsSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxPQUFPLE1BQUssV0FBVyxFQUFFO1FBQzNDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQy9DLE1BQU0sRUFBRTtnQkFDTixHQUFHLEVBQUUsY0FBYyxDQUFDLEVBQUU7YUFDdkI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsR0FBRyxFQUFFLGNBQWMsQ0FBQyxTQUFTO2FBQzlCO1NBQ0YsRUFDRCxFQUFFLEVBQ0Y7WUFDRSxJQUFJLEVBQUUsSUFBSTtZQUNWLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUUsTUFBTTthQUNsQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQSxnQkFBZ0IsYUFBaEIsZ0JBQWdCLHVCQUFoQixnQkFBZ0IsQ0FBRSxNQUFNLE1BQUssQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSxxQkFBUyxFQUFDO2dCQUM5QixLQUFLLEVBQUUsQ0FBQztnQkFDUixHQUFHLEVBQUUsY0FBYztnQkFDbkIsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLEdBQUc7Z0JBQ0gsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLGNBQWMsRUFBRSxLQUFLO2FBQ3RCLENBQUMsQ0FBQztZQUVILElBQUk7Z0JBQ0YsTUFBTSxZQUFZLENBQUMsTUFBTSxDQUFDO29CQUN4QixNQUFNLEVBQUUsRUFBRTtvQkFDVixPQUFPO29CQUNQLFFBQVEsRUFBRSxLQUFLO2lCQUNoQixDQUFDLENBQUM7YUFDSjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFEQUFxRCxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3hHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzNCO1lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDN0IsSUFBQSx1Q0FBa0IsRUFBQztvQkFDakIsRUFBRTtvQkFDRixPQUFPO29CQUNQLEtBQUssRUFBRSxZQUFZO29CQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2pCLFVBQVUsRUFBRSxZQUFZO29CQUN4QixHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2lCQUMvQixDQUFDLENBQUM7YUFDSjtTQUNGO0tBQ0Y7QUFDSCxDQUFDLENBQUM7QUFqRVcsUUFBQSxnQ0FBZ0Msb0NBaUUzQyJ9
|
|
@@ -28,6 +28,7 @@ const ensurePublishedGlobalVersion = async ({ payload, config, req, docWithLocal
|
|
|
28
28
|
req,
|
|
29
29
|
overrideAccess: true,
|
|
30
30
|
showHiddenFields: true,
|
|
31
|
+
flattenLocales: false,
|
|
31
32
|
});
|
|
32
33
|
try {
|
|
33
34
|
await VersionModel.create({
|
|
@@ -52,4 +53,4 @@ const ensurePublishedGlobalVersion = async ({ payload, config, req, docWithLocal
|
|
|
52
53
|
}
|
|
53
54
|
};
|
|
54
55
|
exports.ensurePublishedGlobalVersion = ensurePublishedGlobalVersion;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlUHVibGlzaGVkR2xvYmFsVmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9ucy9lbnN1cmVQdWJsaXNoZWRHbG9iYWxWZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZEQUEwRDtBQUcxRCx5REFBc0Q7QUFTL0MsTUFBTSw0QkFBNEIsR0FBRyxLQUFLLEVBQUUsRUFDakQsT0FBTyxFQUNQLE1BQU0sRUFDTixHQUFHLEVBQ0gsY0FBYyxHQUNULEVBQWlCLEVBQUU7SUFDeEIsZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxzREFBc0Q7SUFFdEQsSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxPQUFPLE1BQUssV0FBVyxFQUFFO1FBQzNDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQy9DLFNBQVMsRUFBRTtnQkFDVCxHQUFHLEVBQUUsY0FBYyxDQUFDLFNBQVM7YUFDOUI7U0FDRixFQUNELEVBQUUsRUFDRjtZQUNFLElBQUksRUFBRSxJQUFJO1lBQ1YsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxNQUFNO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFBLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixDQUFFLE1BQU0sTUFBSyxDQUFDLEVBQUU7WUFDbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLHFCQUFTLEVBQUM7Z0JBQzlCLEtBQUssRUFBRSxDQUFDO2dCQUNSLEdBQUcsRUFBRSxjQUFjO2dCQUNuQixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsR0FBRztnQkFDSCxjQUFjLEVBQUUsSUFBSTtnQkFDcEIsZ0JBQWdCLEVBQUUsSUFBSTtnQkFDdEIsY0FBYyxFQUFFLEtBQUs7YUFDdEIsQ0FBQyxDQUFDO1lBRUgsSUFBSTtnQkFDRixNQUFNLFlBQVksQ0FBQyxNQUFNLENBQUM7b0JBQ3hCLE9BQU87b0JBQ1AsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCLENBQUMsQ0FBQzthQUNKO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNERBQTRELE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMzQjtZQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZCLElBQUEsdUNBQWtCLEVBQUM7b0JBQ2pCLE9BQU8sRUFBRSxJQUFJO29CQUNiLEtBQUssRUFBRSxZQUFZO29CQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2pCLFVBQVUsRUFBRSxRQUFRO29CQUNwQixHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHO2lCQUN6QixDQUFDLENBQUM7YUFDSjtTQUNGO0tBQ0Y7QUFDSCxDQUFDLENBQUM7QUEzRFcsUUFBQSw0QkFBNEIsZ0NBMkR2QyJ9
|
|
@@ -17,7 +17,7 @@ To enable Authentication on a collection, define an `auth` property and set it t
|
|
|
17
17
|
| **`useAPIKey`** | Payload Authentication provides for API keys to be set on each user within an Authentication-enabled Collection. [More](/docs/authentication/config#api-keys) |
|
|
18
18
|
| **`tokenExpiration`** | How long (in seconds) to keep the user logged in. JWTs and HTTP-only cookies will both expire at the same time. |
|
|
19
19
|
| **`maxLoginAttempts`** | Only allow a user to attempt logging in X amount of times. Automatically locks out a user from authenticating if this limit is passed. Set to `0` to disable. |
|
|
20
|
-
| **`lockTime`** | Set the time that a user should be locked out if they fail authentication more times than `maxLoginAttempts` allows for. |
|
|
20
|
+
| **`lockTime`** | Set the time (in milliseconds) that a user should be locked out if they fail authentication more times than `maxLoginAttempts` allows for. |
|
|
21
21
|
| **`depth`** | How many levels deep a `user` document should be populated when creating the JWT and binding the `user` to the express `req`. Defaults to `0` and should only be modified if absolutely necessary, as this will affect performance. |
|
|
22
22
|
| **`cookies`** | Set cookie options, including `secure`, `sameSite`, and `domain`. For advanced users. |
|
|
23
23
|
| **`forgotPassword`** | Customize the way that the `forgotPassword` operation functions. [More](/docs/authentication/config#forgot-password) |
|