@strapi/admin 0.0.0-e6cac9fe30 → 0.0.0-fd8e4c6bfa
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/admin/src/content-manager/components/DynamicTable/index.js +23 -2
- package/admin/src/content-manager/components/Inputs/index.js +28 -1
- package/admin/src/content-manager/components/Inputs/utils/getStep.js +0 -4
- package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +31 -0
- package/admin/src/pages/InstalledPluginsPage/Plugins.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +5 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +14 -4
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js +16 -4
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +10 -2
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +43 -11
- package/admin/src/translations/ca.json +4 -4
- package/admin/src/translations/de.json +4 -4
- package/admin/src/translations/dk.json +4 -4
- package/admin/src/translations/en.json +16 -15
- package/admin/src/translations/es.json +163 -6
- package/admin/src/translations/fr.json +4 -4
- package/admin/src/translations/gu.json +4 -4
- package/admin/src/translations/he.json +3 -3
- package/admin/src/translations/hi.json +4 -4
- package/admin/src/translations/hu.json +4 -4
- package/admin/src/translations/id.json +4 -4
- package/admin/src/translations/it.json +4 -4
- package/admin/src/translations/ja.json +4 -4
- package/admin/src/translations/ko.json +4 -4
- package/admin/src/translations/ml.json +4 -4
- package/admin/src/translations/nl.json +4 -4
- package/admin/src/translations/no.json +3 -3
- package/admin/src/translations/pl.json +4 -4
- package/admin/src/translations/pt-BR.json +177 -24
- package/admin/src/translations/ru.json +4 -4
- package/admin/src/translations/sa.json +4 -4
- package/admin/src/translations/sk.json +4 -4
- package/admin/src/translations/sv.json +665 -11
- package/admin/src/translations/th.json +3 -3
- package/admin/src/translations/zh-Hans.json +12 -15
- package/admin/src/translations/zh.json +4 -4
- package/build/{1669.0551026a.chunk.js → 1669.4ce92b2f.chunk.js} +1 -1
- package/build/{7866.29d1f169.chunk.js → 7866.22e3c9f8.chunk.js} +1 -1
- package/build/8773.4e36117f.chunk.js +325 -0
- package/build/{Admin-authenticatedApp.c2def9f5.chunk.js → Admin-authenticatedApp.d5488e32.chunk.js} +3 -3
- package/build/Admin_InternalErrorPage.12e24216.chunk.js +1 -0
- package/build/Admin_pluginsPage.4d59785a.chunk.js +1 -0
- package/build/Admin_settingsPage.e58753c8.chunk.js +178 -0
- package/build/admin-app.05edc328.chunk.js +112 -0
- package/build/admin-edit-users.5bebf473.chunk.js +10 -0
- package/build/admin-users.1d0aa7a0.chunk.js +11 -0
- package/build/api-tokens-list-page.06938769.chunk.js +15 -0
- package/build/ca-json.d16c1d28.chunk.js +1 -0
- package/build/{content-manager.80737c61.chunk.js → content-manager.62390771.chunk.js} +102 -102
- package/build/content-type-builder-translation-pt-BR-json.d6c7fcc1.chunk.js +1 -0
- package/build/{content-type-builder.2b72793d.chunk.js → content-type-builder.42cecba9.chunk.js} +1 -1
- package/build/de-json.a9b514dc.chunk.js +1 -0
- package/build/dk-json.09e8d145.chunk.js +1 -0
- package/build/en-json.1bf20384.chunk.js +1 -0
- package/build/es-json.bb1fc425.chunk.js +1 -0
- package/build/fr-json.a3cf2e0b.chunk.js +1 -0
- package/build/gu-json.d8311297.chunk.js +1 -0
- package/build/he-json.3b825d80.chunk.js +1 -0
- package/build/hi-json.0edb8d29.chunk.js +1 -0
- package/build/hu-json.7855529a.chunk.js +1 -0
- package/build/i18n-settings-page.bf1304b0.chunk.js +101 -0
- package/build/i18n-translation-fr-json.b401aa34.chunk.js +1 -0
- package/build/id-json.df9618f2.chunk.js +1 -0
- package/build/index.html +1 -1
- package/build/it-json.a21bf078.chunk.js +1 -0
- package/build/ja-json.7b0d9067.chunk.js +1 -0
- package/build/ko-json.983c1f8f.chunk.js +1 -0
- package/build/main.f220d4d1.js +9321 -0
- package/build/ml-json.8dd021c8.chunk.js +1 -0
- package/build/nl-json.29d2eb37.chunk.js +1 -0
- package/build/no-json.40386397.chunk.js +1 -0
- package/build/pl-json.1f04f00c.chunk.js +1 -0
- package/build/pt-BR-json.b4bc8efe.chunk.js +1 -0
- package/build/ru-json.7ab40ccf.chunk.js +1 -0
- package/build/{runtime~main.ead61d92.js → runtime~main.1d3c6b4f.js} +1 -1
- package/build/sa-json.c5a9f4ea.chunk.js +1 -0
- package/build/sk-json.e4c24c4e.chunk.js +1 -0
- package/build/sv-json.c3f471ae.chunk.js +1 -0
- package/build/th-json.a59ffb32.chunk.js +1 -0
- package/build/upload-translation-es-json.0f90db48.chunk.js +1 -0
- package/build/{upload-translation-th-json.64dd70ce.chunk.js → upload-translation-th-json.9e1fda51.chunk.js} +1 -1
- package/build/zh-Hans-json.77a42bc5.chunk.js +1 -0
- package/build/zh-json.451a0271.chunk.js +1 -0
- package/jest.config.front.js +2 -0
- package/package.json +18 -12
- package/server/routes/serve-admin-panel.js +1 -1
- package/build/8773.c190837d.chunk.js +0 -330
- package/build/Admin_InternalErrorPage.25c53284.chunk.js +0 -1
- package/build/Admin_pluginsPage.bf420467.chunk.js +0 -1
- package/build/Admin_settingsPage.4ea2c485.chunk.js +0 -178
- package/build/admin-app.5db7e320.chunk.js +0 -112
- package/build/admin-edit-users.7d9cf406.chunk.js +0 -10
- package/build/admin-users.7f3e8a6a.chunk.js +0 -11
- package/build/api-tokens-list-page.8b24177e.chunk.js +0 -15
- package/build/ca-json.0097e443.chunk.js +0 -1
- package/build/content-type-builder-translation-pt-BR-json.5739a2aa.chunk.js +0 -1
- package/build/de-json.0b92acd2.chunk.js +0 -1
- package/build/dk-json.9f1bc016.chunk.js +0 -1
- package/build/en-json.6d70e9ff.chunk.js +0 -1
- package/build/es-json.2a5a9fc1.chunk.js +0 -1
- package/build/fr-json.84064a0b.chunk.js +0 -1
- package/build/gu-json.dafa6f0d.chunk.js +0 -1
- package/build/he-json.d40da459.chunk.js +0 -1
- package/build/hi-json.b4ae16d1.chunk.js +0 -1
- package/build/hu-json.c81ce352.chunk.js +0 -1
- package/build/i18n-settings-page.126cc165.chunk.js +0 -101
- package/build/i18n-translation-fr-json.0839d68d.chunk.js +0 -1
- package/build/id-json.fad45d17.chunk.js +0 -1
- package/build/it-json.12df4cdf.chunk.js +0 -1
- package/build/ja-json.850237e9.chunk.js +0 -1
- package/build/ko-json.2f3d256e.chunk.js +0 -1
- package/build/main.1fa47426.js +0 -9316
- package/build/ml-json.dc946c7f.chunk.js +0 -1
- package/build/nl-json.465b173f.chunk.js +0 -1
- package/build/no-json.e8749dd4.chunk.js +0 -1
- package/build/pl-json.4d11f53d.chunk.js +0 -1
- package/build/pt-BR-json.6301d49b.chunk.js +0 -1
- package/build/ru-json.28147733.chunk.js +0 -1
- package/build/sa-json.be504091.chunk.js +0 -1
- package/build/sk-json.5b33afc2.chunk.js +0 -1
- package/build/sv-json.cdcac02d.chunk.js +0 -1
- package/build/th-json.3aadaec6.chunk.js +0 -1
- package/build/upload-translation-es-json.6b1813b6.chunk.js +0 -1
- package/build/zh-Hans-json.eac1d90a.chunk.js +0 -1
- package/build/zh-json.96bf6019.chunk.js +0 -1
|
@@ -36,16 +36,34 @@ const DynamicTable = ({
|
|
|
36
36
|
});
|
|
37
37
|
|
|
38
38
|
const formattedHeaders = headers.displayedHeaders.map((header) => {
|
|
39
|
+
const { metadatas } = header;
|
|
40
|
+
|
|
39
41
|
if (header.fieldSchema.type === 'relation') {
|
|
40
42
|
const sortFieldValue = `${header.name}.${header.metadatas.mainField.name}`;
|
|
41
43
|
|
|
42
44
|
return {
|
|
43
45
|
...header,
|
|
46
|
+
metadatas: {
|
|
47
|
+
...metadatas,
|
|
48
|
+
label: formatMessage({
|
|
49
|
+
id: getTrad(`containers.ListPage.table-headers.${header.name}`),
|
|
50
|
+
defaultMessage: header.name,
|
|
51
|
+
}),
|
|
52
|
+
},
|
|
44
53
|
name: sortFieldValue,
|
|
45
54
|
};
|
|
46
55
|
}
|
|
47
56
|
|
|
48
|
-
return
|
|
57
|
+
return {
|
|
58
|
+
...header,
|
|
59
|
+
metadatas: {
|
|
60
|
+
...metadatas,
|
|
61
|
+
label: formatMessage({
|
|
62
|
+
id: getTrad(`containers.ListPage.table-headers.${header.name}`),
|
|
63
|
+
defaultMessage: header.name,
|
|
64
|
+
}),
|
|
65
|
+
},
|
|
66
|
+
};
|
|
49
67
|
});
|
|
50
68
|
|
|
51
69
|
if (!hasDraftAndPublish) {
|
|
@@ -61,7 +79,10 @@ const DynamicTable = ({
|
|
|
61
79
|
type: 'custom',
|
|
62
80
|
},
|
|
63
81
|
metadatas: {
|
|
64
|
-
label: formatMessage({
|
|
82
|
+
label: formatMessage({
|
|
83
|
+
id: getTrad(`containers.ListPage.table-headers.publishedAt`),
|
|
84
|
+
defaultMessage: 'publishedAt',
|
|
85
|
+
}),
|
|
65
86
|
searchable: false,
|
|
66
87
|
sortable: true,
|
|
67
88
|
},
|
|
@@ -164,6 +164,33 @@ function Inputs({
|
|
|
164
164
|
|
|
165
165
|
const { label, description, placeholder, visible } = metadatas;
|
|
166
166
|
|
|
167
|
+
/**
|
|
168
|
+
* It decides whether using the default `step` accoding to its `inputType` or the one
|
|
169
|
+
* obtained from `metadatas`.
|
|
170
|
+
*
|
|
171
|
+
* The `metadatas.step` is returned when the `inputValue` is divisible by it or when the
|
|
172
|
+
* `inputValue` is empty, otherwise the default `step` is returned.
|
|
173
|
+
*/
|
|
174
|
+
const inputStep = useMemo(() => {
|
|
175
|
+
if (!metadatas.step || (inputType !== 'datetime' && inputType !== 'time')) {
|
|
176
|
+
return step;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (!inputValue) {
|
|
180
|
+
return metadatas.step;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
let minutes;
|
|
184
|
+
|
|
185
|
+
if (inputType === 'datetime') {
|
|
186
|
+
minutes = parseInt(inputValue.substr(14, 2), 10);
|
|
187
|
+
} else if (inputType === 'time') {
|
|
188
|
+
minutes = parseInt(inputValue.slice(-2), 10);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return minutes % metadatas.step === 0 ? metadatas.step : step;
|
|
192
|
+
}, [inputType, inputValue, metadatas.step, step]);
|
|
193
|
+
|
|
167
194
|
if (visible === false) {
|
|
168
195
|
return null;
|
|
169
196
|
}
|
|
@@ -242,7 +269,7 @@ function Inputs({
|
|
|
242
269
|
options={options}
|
|
243
270
|
placeholder={placeholder ? { id: placeholder, defaultMessage: placeholder } : null}
|
|
244
271
|
required={fieldSchema.required || false}
|
|
245
|
-
step={
|
|
272
|
+
step={inputStep}
|
|
246
273
|
type={inputType}
|
|
247
274
|
// validations={validations}
|
|
248
275
|
value={inputValue}
|
|
@@ -3,10 +3,6 @@ const getStep = (type) => {
|
|
|
3
3
|
|
|
4
4
|
if (type === 'float' || type === 'decimal') {
|
|
5
5
|
step = 0.01;
|
|
6
|
-
} else if (type === 'time' || type === 'datetime') {
|
|
7
|
-
// Since we cannot set a value that is not in the list of the time picker, we need to set the step to 1
|
|
8
|
-
// TODO: Fix the timepicker in order to be able to set any value regardless of the list
|
|
9
|
-
step = 1;
|
|
10
6
|
} else {
|
|
11
7
|
step = 1;
|
|
12
8
|
}
|
|
@@ -20,6 +20,10 @@ const FIELD_SIZES = [
|
|
|
20
20
|
|
|
21
21
|
const NON_RESIZABLE_FIELD_TYPES = ['dynamiczone', 'component', 'json', 'richtext'];
|
|
22
22
|
|
|
23
|
+
const TIME_FIELD_OPTIONS = [1, 5, 10, 15, 30, 60];
|
|
24
|
+
|
|
25
|
+
const TIME_FIELD_TYPES = ['datetime', 'time'];
|
|
26
|
+
|
|
23
27
|
const ModalForm = ({ onMetaChange, onSizeChange }) => {
|
|
24
28
|
const { formatMessage } = useIntl();
|
|
25
29
|
const { modifiedData, selectedField, attributes, fieldForm } = useLayoutDnd();
|
|
@@ -73,6 +77,10 @@ const ModalForm = ({ onMetaChange, onSizeChange }) => {
|
|
|
73
77
|
return null;
|
|
74
78
|
}
|
|
75
79
|
|
|
80
|
+
if (meta === 'step') {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
|
|
76
84
|
return (
|
|
77
85
|
<GridItem col={6} key={meta}>
|
|
78
86
|
<GenericInput
|
|
@@ -120,10 +128,33 @@ const ModalForm = ({ onMetaChange, onSizeChange }) => {
|
|
|
120
128
|
</GridItem>
|
|
121
129
|
);
|
|
122
130
|
|
|
131
|
+
const hasTimePicker = TIME_FIELD_TYPES.includes(attributes[selectedField].type);
|
|
132
|
+
|
|
133
|
+
const timeStepField = (
|
|
134
|
+
<GridItem col={6} key="step">
|
|
135
|
+
<Select
|
|
136
|
+
value={get(fieldForm, ['metadata', 'step'], 1)}
|
|
137
|
+
name="step"
|
|
138
|
+
onChange={(value) => onMetaChange({ target: { name: 'step', value } })}
|
|
139
|
+
label={formatMessage({
|
|
140
|
+
id: getTrad('containers.SettingPage.editSettings.step.label'),
|
|
141
|
+
defaultMessage: 'Time interval (minutes)',
|
|
142
|
+
})}
|
|
143
|
+
>
|
|
144
|
+
{TIME_FIELD_OPTIONS.map((value) => (
|
|
145
|
+
<Option key={value} value={value}>
|
|
146
|
+
{value}
|
|
147
|
+
</Option>
|
|
148
|
+
))}
|
|
149
|
+
</Select>
|
|
150
|
+
</GridItem>
|
|
151
|
+
);
|
|
152
|
+
|
|
123
153
|
return (
|
|
124
154
|
<>
|
|
125
155
|
{metaFields}
|
|
126
156
|
{canResize && sizeField}
|
|
157
|
+
{hasTimePicker && timeStepField}
|
|
127
158
|
</>
|
|
128
159
|
);
|
|
129
160
|
};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { useIntl } from 'react-intl';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import { useHistory } from 'react-router-dom';
|
|
5
|
+
|
|
2
6
|
import { Typography } from '@strapi/design-system/Typography';
|
|
3
7
|
import { Tbody, Tr, Td } from '@strapi/design-system/Table';
|
|
4
8
|
import { Flex } from '@strapi/design-system/Flex';
|
|
@@ -9,9 +13,7 @@ import {
|
|
|
9
13
|
pxToRem,
|
|
10
14
|
useTracking,
|
|
11
15
|
} from '@strapi/helper-plugin';
|
|
12
|
-
|
|
13
|
-
import PropTypes from 'prop-types';
|
|
14
|
-
import { useHistory } from 'react-router-dom';
|
|
16
|
+
|
|
15
17
|
import DeleteButton from './DeleteButton';
|
|
16
18
|
import UpdateButton from './UpdateButton';
|
|
17
19
|
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from 'react';
|
|
2
2
|
import { useIntl } from 'react-intl';
|
|
3
|
+
import { useQuery, useMutation, useQueryClient } from 'react-query';
|
|
4
|
+
import { useHistory } from 'react-router-dom';
|
|
5
|
+
import qs from 'qs';
|
|
6
|
+
|
|
3
7
|
import {
|
|
4
8
|
SettingsPageTitle,
|
|
5
9
|
useFocusWhenNavigate,
|
|
@@ -16,9 +20,7 @@ import { HeaderLayout, ContentLayout } from '@strapi/design-system/Layout';
|
|
|
16
20
|
import { Main } from '@strapi/design-system/Main';
|
|
17
21
|
import { Button } from '@strapi/design-system/Button';
|
|
18
22
|
import Plus from '@strapi/icons/Plus';
|
|
19
|
-
|
|
20
|
-
import { useHistory } from 'react-router-dom';
|
|
21
|
-
import qs from 'qs';
|
|
23
|
+
|
|
22
24
|
import { axiosInstance } from '../../../../../core/utils';
|
|
23
25
|
import adminPermissions from '../../../../../permissions';
|
|
24
26
|
import tableHeaders from './utils/tableHeaders';
|
|
@@ -47,6 +49,14 @@ const ApiTokenListView = () => {
|
|
|
47
49
|
push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });
|
|
48
50
|
}, [push]);
|
|
49
51
|
|
|
52
|
+
const headers = tableHeaders.map((header) => ({
|
|
53
|
+
...header,
|
|
54
|
+
metadatas: {
|
|
55
|
+
...header.metadatas,
|
|
56
|
+
label: formatMessage(header.metadatas.label),
|
|
57
|
+
},
|
|
58
|
+
}));
|
|
59
|
+
|
|
50
60
|
const {
|
|
51
61
|
data: apiTokens,
|
|
52
62
|
status,
|
|
@@ -134,7 +144,7 @@ const ApiTokenListView = () => {
|
|
|
134
144
|
{!canRead && <NoPermissions />}
|
|
135
145
|
{shouldDisplayDynamicTable && (
|
|
136
146
|
<DynamicTable
|
|
137
|
-
headers={
|
|
147
|
+
headers={headers}
|
|
138
148
|
contentType="api-tokens"
|
|
139
149
|
rows={apiTokens}
|
|
140
150
|
withBulkActions={canDelete || canUpdate}
|
|
@@ -3,7 +3,10 @@ const tableHeaders = [
|
|
|
3
3
|
name: 'name',
|
|
4
4
|
key: 'name',
|
|
5
5
|
metadatas: {
|
|
6
|
-
label:
|
|
6
|
+
label: {
|
|
7
|
+
id: 'Settings.apiTokens.ListView.headers.name',
|
|
8
|
+
defaultMessage: 'Name',
|
|
9
|
+
},
|
|
7
10
|
sortable: true,
|
|
8
11
|
},
|
|
9
12
|
},
|
|
@@ -11,7 +14,10 @@ const tableHeaders = [
|
|
|
11
14
|
name: 'description',
|
|
12
15
|
key: 'description',
|
|
13
16
|
metadatas: {
|
|
14
|
-
label:
|
|
17
|
+
label: {
|
|
18
|
+
id: 'Settings.apiTokens.ListView.headers.description',
|
|
19
|
+
defaultMessage: 'Description',
|
|
20
|
+
},
|
|
15
21
|
sortable: false,
|
|
16
22
|
},
|
|
17
23
|
},
|
|
@@ -19,7 +25,10 @@ const tableHeaders = [
|
|
|
19
25
|
name: 'type',
|
|
20
26
|
key: 'type',
|
|
21
27
|
metadatas: {
|
|
22
|
-
label:
|
|
28
|
+
label: {
|
|
29
|
+
id: 'Settings.apiTokens.ListView.headers.type',
|
|
30
|
+
defaultMessage: 'Token type',
|
|
31
|
+
},
|
|
23
32
|
sortable: false,
|
|
24
33
|
},
|
|
25
34
|
},
|
|
@@ -27,7 +36,10 @@ const tableHeaders = [
|
|
|
27
36
|
name: 'createdAt',
|
|
28
37
|
key: 'createdAt',
|
|
29
38
|
metadatas: {
|
|
30
|
-
label:
|
|
39
|
+
label: {
|
|
40
|
+
id: 'Settings.apiTokens.ListView.headers.createdAt',
|
|
41
|
+
defaultMessage: 'Created at',
|
|
42
|
+
},
|
|
31
43
|
sortable: false,
|
|
32
44
|
},
|
|
33
45
|
},
|
|
@@ -38,6 +38,14 @@ const ListPage = () => {
|
|
|
38
38
|
const { notifyStatus } = useNotifyAT();
|
|
39
39
|
const queryName = ['users', search];
|
|
40
40
|
|
|
41
|
+
const headers = tableHeaders.map((header) => ({
|
|
42
|
+
...header,
|
|
43
|
+
metadatas: {
|
|
44
|
+
...header.metadatas,
|
|
45
|
+
label: formatMessage(header.metadatas.label),
|
|
46
|
+
},
|
|
47
|
+
}));
|
|
48
|
+
|
|
41
49
|
const title = formatMessage({
|
|
42
50
|
id: 'global.users',
|
|
43
51
|
defaultMessage: 'Users',
|
|
@@ -143,14 +151,14 @@ const ListPage = () => {
|
|
|
143
151
|
isLoading={isLoading}
|
|
144
152
|
onConfirmDeleteAll={deleteAllMutation.mutateAsync}
|
|
145
153
|
onConfirmDelete={(id) => deleteAllMutation.mutateAsync([id])}
|
|
146
|
-
headers={
|
|
154
|
+
headers={headers}
|
|
147
155
|
rows={data?.results}
|
|
148
156
|
withBulkActions
|
|
149
157
|
withMainAction={canDelete}
|
|
150
158
|
>
|
|
151
159
|
<TableRows
|
|
152
160
|
canDelete={canDelete}
|
|
153
|
-
headers={
|
|
161
|
+
headers={headers}
|
|
154
162
|
rows={data?.results || []}
|
|
155
163
|
withBulkActions
|
|
156
164
|
withMainAction={canDelete}
|
|
@@ -7,30 +7,50 @@ const tableHeaders = [
|
|
|
7
7
|
{
|
|
8
8
|
name: 'firstname',
|
|
9
9
|
key: 'firstname',
|
|
10
|
-
metadatas: {
|
|
10
|
+
metadatas: {
|
|
11
|
+
label: {
|
|
12
|
+
id: 'Settings.permissions.users.firstname',
|
|
13
|
+
defaultMessage: 'Firstname',
|
|
14
|
+
},
|
|
15
|
+
sortable: true,
|
|
16
|
+
},
|
|
11
17
|
},
|
|
12
18
|
{
|
|
13
19
|
name: 'lastname',
|
|
14
20
|
key: 'lastname',
|
|
15
|
-
metadatas: {
|
|
21
|
+
metadatas: {
|
|
22
|
+
label: {
|
|
23
|
+
id: 'Settings.permissions.users.lastname',
|
|
24
|
+
defaultMessage: 'Lastname',
|
|
25
|
+
},
|
|
26
|
+
sortable: true,
|
|
27
|
+
},
|
|
16
28
|
},
|
|
17
29
|
{
|
|
18
30
|
key: 'email',
|
|
19
31
|
name: 'email',
|
|
20
|
-
metadatas: {
|
|
32
|
+
metadatas: {
|
|
33
|
+
label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },
|
|
34
|
+
sortable: true,
|
|
35
|
+
},
|
|
21
36
|
},
|
|
22
37
|
{
|
|
23
38
|
key: 'roles',
|
|
24
39
|
name: 'roles',
|
|
25
|
-
metadatas: {
|
|
26
|
-
|
|
40
|
+
metadatas: {
|
|
41
|
+
label: {
|
|
42
|
+
id: 'Settings.permissions.users.roles',
|
|
43
|
+
defaultMessage: 'Roles',
|
|
44
|
+
},
|
|
45
|
+
sortable: false,
|
|
46
|
+
},
|
|
27
47
|
cellFormatter({ roles }, { formatMessage }) {
|
|
28
48
|
return (
|
|
29
49
|
<Typography textColor="neutral800">
|
|
30
50
|
{roles
|
|
31
51
|
.map((role) =>
|
|
32
52
|
formatMessage({
|
|
33
|
-
id: `
|
|
53
|
+
id: `Settings.permissions.users.${role.code}`,
|
|
34
54
|
defaultMessage: role.name,
|
|
35
55
|
})
|
|
36
56
|
)
|
|
@@ -38,25 +58,37 @@ const tableHeaders = [
|
|
|
38
58
|
</Typography>
|
|
39
59
|
);
|
|
40
60
|
},
|
|
41
|
-
/* eslint-enable react/prop-types */
|
|
42
61
|
},
|
|
43
62
|
{
|
|
44
63
|
key: 'username',
|
|
45
64
|
name: 'username',
|
|
46
|
-
metadatas: {
|
|
65
|
+
metadatas: {
|
|
66
|
+
label: {
|
|
67
|
+
id: 'Settings.permissions.users.username',
|
|
68
|
+
defaultMessage: 'Username',
|
|
69
|
+
},
|
|
70
|
+
sortable: true,
|
|
71
|
+
},
|
|
47
72
|
},
|
|
48
73
|
{
|
|
49
74
|
key: 'isActive',
|
|
50
75
|
name: 'isActive',
|
|
51
|
-
metadatas: {
|
|
52
|
-
|
|
76
|
+
metadatas: {
|
|
77
|
+
label: {
|
|
78
|
+
id: 'Settings.permissions.users.user-status',
|
|
79
|
+
defaultMessage: 'User status',
|
|
80
|
+
},
|
|
81
|
+
sortable: false,
|
|
82
|
+
},
|
|
53
83
|
cellFormatter({ isActive }, { formatMessage }) {
|
|
54
84
|
return (
|
|
55
85
|
<Flex>
|
|
56
86
|
<Status isActive={isActive} variant={isActive ? 'success' : 'danger'} />
|
|
57
87
|
<Typography textColor="neutral800">
|
|
58
88
|
{formatMessage({
|
|
59
|
-
id: isActive
|
|
89
|
+
id: isActive
|
|
90
|
+
? 'Settings.permissions.users.active'
|
|
91
|
+
: 'Settings.permissions.users.inactive',
|
|
60
92
|
defaultMessage: isActive ? 'Active' : 'Inactive',
|
|
61
93
|
})}
|
|
62
94
|
</Typography>
|
|
@@ -116,9 +116,9 @@
|
|
|
116
116
|
"Settings.permissions.select-all-by-permission": "Seleccioneu tots els permisos de {label}",
|
|
117
117
|
"Settings.permissions.select-by-permission": "Seleccionar permís de {label}",
|
|
118
118
|
"Settings.permissions.users.create": "Crear nou usuari",
|
|
119
|
-
"Settings.permissions.users.
|
|
120
|
-
"Settings.permissions.users.
|
|
121
|
-
"Settings.permissions.users.
|
|
119
|
+
"Settings.permissions.users.email": "Email",
|
|
120
|
+
"Settings.permissions.users.firstname": "Nom",
|
|
121
|
+
"Settings.permissions.users.lastname": "Cognom",
|
|
122
122
|
"Settings.permissions.users.form.sso": "connecta amb SSO",
|
|
123
123
|
"Settings.permissions.users.form.sso.description": "quan està disponible, els usuaris poden accedir via SSO",
|
|
124
124
|
"Settings.permissions.users.listview.header.subtitle": "Tots els usuaris que tenen accés al panell d'administració de Strapi",
|
|
@@ -545,7 +545,7 @@
|
|
|
545
545
|
"content-manager.containers.List.published": "Publicat",
|
|
546
546
|
"content-manager.containers.ListPage.displayedFields": "Camps mostrats",
|
|
547
547
|
"content-manager.containers.ListPage.items": "{number, plural, =0 {elements} one {element} other {elements}}",
|
|
548
|
-
"content-manager.containers.ListPage.table-headers.
|
|
548
|
+
"content-manager.containers.ListPage.table-headers.publishedAt": "Estat",
|
|
549
549
|
"content-manager.containers.ListSettingsView.modal-form.edit-label": "Edita l'etiqueta",
|
|
550
550
|
"content-manager.containers.SettingPage.add.field": "Inserir un altre camp",
|
|
551
551
|
"content-manager.containers.SettingPage.add.relational-field": "Inserir un altre camp relacional",
|
|
@@ -116,9 +116,9 @@
|
|
|
116
116
|
"Settings.permissions.select-all-by-permission": "Wähle alle {label}-Berechtigungen",
|
|
117
117
|
"Settings.permissions.select-by-permission": "Wähle {label}-Berechtigung",
|
|
118
118
|
"Settings.permissions.users.create": "Benutzer einladen",
|
|
119
|
-
"Settings.permissions.users.
|
|
120
|
-
"Settings.permissions.users.
|
|
121
|
-
"Settings.permissions.users.
|
|
119
|
+
"Settings.permissions.users.email": "E-Mail",
|
|
120
|
+
"Settings.permissions.users.firstname": "Vorname",
|
|
121
|
+
"Settings.permissions.users.lastname": "Nachname",
|
|
122
122
|
"Settings.permissions.users.form.sso": "Mit SSO einloggen",
|
|
123
123
|
"Settings.permissions.users.form.sso.description": "Nutzer können sich per SSO einloggen wenn aktiviert (ON)",
|
|
124
124
|
"Settings.permissions.users.listview.header.subtitle": "Alle Nutzer mit Zugriff auf diese Administrationsoberfläche",
|
|
@@ -539,7 +539,7 @@
|
|
|
539
539
|
"content-manager.containers.List.published": "Veröffentlicht",
|
|
540
540
|
"content-manager.containers.ListPage.displayedFields": "Dargestellte Felder",
|
|
541
541
|
"content-manager.containers.ListPage.items": "{number, plural, one {Eintrag} other {Einträge}}",
|
|
542
|
-
"content-manager.containers.ListPage.table-headers.
|
|
542
|
+
"content-manager.containers.ListPage.table-headers.publishedAt": "Status",
|
|
543
543
|
"content-manager.containers.ListSettingsView.modal-form.edit-label": "Beschriftung ändern",
|
|
544
544
|
"content-manager.containers.SettingPage.add.field": "Ein weiteres Feld hinzufügen",
|
|
545
545
|
"content-manager.containers.SettingPage.add.relational-field": "Ein weiteres Beziehungs-Feld hinzufügen",
|
|
@@ -114,9 +114,9 @@
|
|
|
114
114
|
"Settings.permissions.select-all-by-permission": "Vælg alle {label} tilladelser",
|
|
115
115
|
"Settings.permissions.select-by-permission": "Vælg {label} tilladelse",
|
|
116
116
|
"Settings.permissions.users.create": "Opret ny bruger",
|
|
117
|
-
"Settings.permissions.users.
|
|
118
|
-
"Settings.permissions.users.
|
|
119
|
-
"Settings.permissions.users.
|
|
117
|
+
"Settings.permissions.users.email": "E-mail",
|
|
118
|
+
"Settings.permissions.users.firstname": "Fornavn",
|
|
119
|
+
"Settings.permissions.users.lastname": "Efternavn",
|
|
120
120
|
"Settings.permissions.users.form.sso": "Forbind med SSO",
|
|
121
121
|
"Settings.permissions.users.form.sso.description": "Når aktiveret (TIL), kan brugere logge ind med SSO",
|
|
122
122
|
"Settings.permissions.users.listview.header.subtitle": "Alle brugere som har adgnag til Strapi admin panelet",
|
|
@@ -485,7 +485,7 @@
|
|
|
485
485
|
"content-manager.containers.List.published": "Offentliggjort",
|
|
486
486
|
"content-manager.containers.ListPage.displayedFields": "Viste felter",
|
|
487
487
|
"content-manager.containers.ListPage.items": "{number, plural, =0 {elementer} one {element} other {elementer}}",
|
|
488
|
-
"content-manager.containers.ListPage.table-headers.
|
|
488
|
+
"content-manager.containers.ListPage.table-headers.publishedAt": "Tilstand",
|
|
489
489
|
"content-manager.containers.ListSettingsView.modal-form.edit-label": "Redigér label",
|
|
490
490
|
"content-manager.containers.SettingPage.add.field": "Indsæt endnu et felt",
|
|
491
491
|
"content-manager.containers.SettingPage.add.relational-field": "Indsæt endnu et relationsfelt",
|
|
@@ -87,6 +87,10 @@
|
|
|
87
87
|
"Settings.apiTokens.create": "Create new API Token",
|
|
88
88
|
"Settings.apiTokens.description": "List of generated tokens to consume the API",
|
|
89
89
|
"Settings.apiTokens.emptyStateLayout": "You don’t have any content yet...",
|
|
90
|
+
"Settings.apiTokens.ListView.headers.name": "Name",
|
|
91
|
+
"Settings.apiTokens.ListView.headers.description": "Description",
|
|
92
|
+
"Settings.apiTokens.ListView.headers.type": "Token type",
|
|
93
|
+
"Settings.apiTokens.ListView.headers.createdAt": "Created at",
|
|
90
94
|
"Settings.apiTokens.notification.copied": "Token copied to clipboard.",
|
|
91
95
|
"Settings.apiTokens.title": "API Tokens",
|
|
92
96
|
"Settings.apiTokens.types.full-access": "Full access",
|
|
@@ -142,13 +146,21 @@
|
|
|
142
146
|
"Settings.permissions.select-all-by-permission": "Select all {label} permissions",
|
|
143
147
|
"Settings.permissions.select-by-permission": "Select {label} permission",
|
|
144
148
|
"Settings.permissions.users.create": "Invite new user",
|
|
145
|
-
"Settings.permissions.users.
|
|
146
|
-
"Settings.permissions.users.
|
|
147
|
-
"Settings.permissions.users.
|
|
149
|
+
"Settings.permissions.users.email": "Email",
|
|
150
|
+
"Settings.permissions.users.firstname": "Firstname",
|
|
151
|
+
"Settings.permissions.users.lastname": "Lastname",
|
|
152
|
+
"Settings.permissions.users.user-status": "User status",
|
|
153
|
+
"Settings.permissions.users.roles": "Roles",
|
|
154
|
+
"Settings.permissions.users.username": "Username",
|
|
155
|
+
"Settings.permissions.users.active": "Active",
|
|
156
|
+
"Settings.permissions.users.inactive": "Inactive",
|
|
148
157
|
"Settings.permissions.users.form.sso": "Connect with SSO",
|
|
149
158
|
"Settings.permissions.users.form.sso.description": "When enabled (ON), users can login via SSO",
|
|
150
159
|
"Settings.permissions.users.listview.header.subtitle": "All the users who have access to the Strapi admin panel",
|
|
151
160
|
"Settings.permissions.users.tabs.label": "Tabs Permissions",
|
|
161
|
+
"Settings.permissions.users.strapi-super-admin": "Super Admin",
|
|
162
|
+
"Settings.permissions.users.strapi-editor": "Editor",
|
|
163
|
+
"Settings.permissions.users.strapi-author": "Author",
|
|
152
164
|
"Settings.profile.form.notify.data.loaded": "Your profile data has been loaded",
|
|
153
165
|
"Settings.profile.form.section.experience.clear.select": "Clear the interface language selected",
|
|
154
166
|
"Settings.profile.form.section.experience.here": "here",
|
|
@@ -578,7 +590,7 @@
|
|
|
578
590
|
"content-manager.containers.List.published": "Published",
|
|
579
591
|
"content-manager.containers.ListPage.displayedFields": "Displayed Fields",
|
|
580
592
|
"content-manager.containers.ListPage.items": "{number, plural, =0 {items} one {item} other {items}}",
|
|
581
|
-
"content-manager.containers.ListPage.table-headers.
|
|
593
|
+
"content-manager.containers.ListPage.table-headers.publishedAt": "State",
|
|
582
594
|
"content-manager.containers.ListSettingsView.modal-form.edit-label": "Edit {fieldName}",
|
|
583
595
|
"content-manager.containers.SettingPage.add.field": "Insert another field",
|
|
584
596
|
"content-manager.containers.SettingPage.add.relational-field": "Insert another relational field",
|
|
@@ -687,8 +699,6 @@
|
|
|
687
699
|
"form.button.done": "Done",
|
|
688
700
|
"global.search": "Search",
|
|
689
701
|
"global.actions": "Actions",
|
|
690
|
-
"global.active": "Active",
|
|
691
|
-
"global.inactive": "Inactive",
|
|
692
702
|
"global.back": "Back",
|
|
693
703
|
"global.cancel": "Cancel",
|
|
694
704
|
"global.change-password": "Change password",
|
|
@@ -734,15 +744,6 @@
|
|
|
734
744
|
"global.select": "Select",
|
|
735
745
|
"global.select-all-entries": "Select all entries",
|
|
736
746
|
"global.settings": "Settings",
|
|
737
|
-
"global.strapi-super-admin": "Super Admin",
|
|
738
|
-
"global.strapi-editor": "Editor",
|
|
739
|
-
"global.strapi-author": "Author",
|
|
740
|
-
"global.table.header.email": "Email",
|
|
741
|
-
"global.table.header.firstname": "Firstname",
|
|
742
|
-
"global.table.header.isActive": "User status",
|
|
743
|
-
"global.table.header.lastname": "Lastname",
|
|
744
|
-
"global.table.header.roles": "Roles",
|
|
745
|
-
"global.table.header.username": "Username",
|
|
746
747
|
"global.type": "Type",
|
|
747
748
|
"global.users": "Users",
|
|
748
749
|
"notification.contentType.relations.conflict": "Content type has conflicting relations",
|