@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.
Files changed (125) hide show
  1. package/admin/src/content-manager/components/DynamicTable/index.js +23 -2
  2. package/admin/src/content-manager/components/Inputs/index.js +28 -1
  3. package/admin/src/content-manager/components/Inputs/utils/getStep.js +0 -4
  4. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +31 -0
  5. package/admin/src/pages/InstalledPluginsPage/Plugins.js +1 -1
  6. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +5 -3
  7. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +14 -4
  8. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js +16 -4
  9. package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +10 -2
  10. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +43 -11
  11. package/admin/src/translations/ca.json +4 -4
  12. package/admin/src/translations/de.json +4 -4
  13. package/admin/src/translations/dk.json +4 -4
  14. package/admin/src/translations/en.json +16 -15
  15. package/admin/src/translations/es.json +163 -6
  16. package/admin/src/translations/fr.json +4 -4
  17. package/admin/src/translations/gu.json +4 -4
  18. package/admin/src/translations/he.json +3 -3
  19. package/admin/src/translations/hi.json +4 -4
  20. package/admin/src/translations/hu.json +4 -4
  21. package/admin/src/translations/id.json +4 -4
  22. package/admin/src/translations/it.json +4 -4
  23. package/admin/src/translations/ja.json +4 -4
  24. package/admin/src/translations/ko.json +4 -4
  25. package/admin/src/translations/ml.json +4 -4
  26. package/admin/src/translations/nl.json +4 -4
  27. package/admin/src/translations/no.json +3 -3
  28. package/admin/src/translations/pl.json +4 -4
  29. package/admin/src/translations/pt-BR.json +177 -24
  30. package/admin/src/translations/ru.json +4 -4
  31. package/admin/src/translations/sa.json +4 -4
  32. package/admin/src/translations/sk.json +4 -4
  33. package/admin/src/translations/sv.json +665 -11
  34. package/admin/src/translations/th.json +3 -3
  35. package/admin/src/translations/zh-Hans.json +12 -15
  36. package/admin/src/translations/zh.json +4 -4
  37. package/build/{1669.0551026a.chunk.js → 1669.4ce92b2f.chunk.js} +1 -1
  38. package/build/{7866.29d1f169.chunk.js → 7866.22e3c9f8.chunk.js} +1 -1
  39. package/build/8773.4e36117f.chunk.js +325 -0
  40. package/build/{Admin-authenticatedApp.c2def9f5.chunk.js → Admin-authenticatedApp.d5488e32.chunk.js} +3 -3
  41. package/build/Admin_InternalErrorPage.12e24216.chunk.js +1 -0
  42. package/build/Admin_pluginsPage.4d59785a.chunk.js +1 -0
  43. package/build/Admin_settingsPage.e58753c8.chunk.js +178 -0
  44. package/build/admin-app.05edc328.chunk.js +112 -0
  45. package/build/admin-edit-users.5bebf473.chunk.js +10 -0
  46. package/build/admin-users.1d0aa7a0.chunk.js +11 -0
  47. package/build/api-tokens-list-page.06938769.chunk.js +15 -0
  48. package/build/ca-json.d16c1d28.chunk.js +1 -0
  49. package/build/{content-manager.80737c61.chunk.js → content-manager.62390771.chunk.js} +102 -102
  50. package/build/content-type-builder-translation-pt-BR-json.d6c7fcc1.chunk.js +1 -0
  51. package/build/{content-type-builder.2b72793d.chunk.js → content-type-builder.42cecba9.chunk.js} +1 -1
  52. package/build/de-json.a9b514dc.chunk.js +1 -0
  53. package/build/dk-json.09e8d145.chunk.js +1 -0
  54. package/build/en-json.1bf20384.chunk.js +1 -0
  55. package/build/es-json.bb1fc425.chunk.js +1 -0
  56. package/build/fr-json.a3cf2e0b.chunk.js +1 -0
  57. package/build/gu-json.d8311297.chunk.js +1 -0
  58. package/build/he-json.3b825d80.chunk.js +1 -0
  59. package/build/hi-json.0edb8d29.chunk.js +1 -0
  60. package/build/hu-json.7855529a.chunk.js +1 -0
  61. package/build/i18n-settings-page.bf1304b0.chunk.js +101 -0
  62. package/build/i18n-translation-fr-json.b401aa34.chunk.js +1 -0
  63. package/build/id-json.df9618f2.chunk.js +1 -0
  64. package/build/index.html +1 -1
  65. package/build/it-json.a21bf078.chunk.js +1 -0
  66. package/build/ja-json.7b0d9067.chunk.js +1 -0
  67. package/build/ko-json.983c1f8f.chunk.js +1 -0
  68. package/build/main.f220d4d1.js +9321 -0
  69. package/build/ml-json.8dd021c8.chunk.js +1 -0
  70. package/build/nl-json.29d2eb37.chunk.js +1 -0
  71. package/build/no-json.40386397.chunk.js +1 -0
  72. package/build/pl-json.1f04f00c.chunk.js +1 -0
  73. package/build/pt-BR-json.b4bc8efe.chunk.js +1 -0
  74. package/build/ru-json.7ab40ccf.chunk.js +1 -0
  75. package/build/{runtime~main.ead61d92.js → runtime~main.1d3c6b4f.js} +1 -1
  76. package/build/sa-json.c5a9f4ea.chunk.js +1 -0
  77. package/build/sk-json.e4c24c4e.chunk.js +1 -0
  78. package/build/sv-json.c3f471ae.chunk.js +1 -0
  79. package/build/th-json.a59ffb32.chunk.js +1 -0
  80. package/build/upload-translation-es-json.0f90db48.chunk.js +1 -0
  81. package/build/{upload-translation-th-json.64dd70ce.chunk.js → upload-translation-th-json.9e1fda51.chunk.js} +1 -1
  82. package/build/zh-Hans-json.77a42bc5.chunk.js +1 -0
  83. package/build/zh-json.451a0271.chunk.js +1 -0
  84. package/jest.config.front.js +2 -0
  85. package/package.json +18 -12
  86. package/server/routes/serve-admin-panel.js +1 -1
  87. package/build/8773.c190837d.chunk.js +0 -330
  88. package/build/Admin_InternalErrorPage.25c53284.chunk.js +0 -1
  89. package/build/Admin_pluginsPage.bf420467.chunk.js +0 -1
  90. package/build/Admin_settingsPage.4ea2c485.chunk.js +0 -178
  91. package/build/admin-app.5db7e320.chunk.js +0 -112
  92. package/build/admin-edit-users.7d9cf406.chunk.js +0 -10
  93. package/build/admin-users.7f3e8a6a.chunk.js +0 -11
  94. package/build/api-tokens-list-page.8b24177e.chunk.js +0 -15
  95. package/build/ca-json.0097e443.chunk.js +0 -1
  96. package/build/content-type-builder-translation-pt-BR-json.5739a2aa.chunk.js +0 -1
  97. package/build/de-json.0b92acd2.chunk.js +0 -1
  98. package/build/dk-json.9f1bc016.chunk.js +0 -1
  99. package/build/en-json.6d70e9ff.chunk.js +0 -1
  100. package/build/es-json.2a5a9fc1.chunk.js +0 -1
  101. package/build/fr-json.84064a0b.chunk.js +0 -1
  102. package/build/gu-json.dafa6f0d.chunk.js +0 -1
  103. package/build/he-json.d40da459.chunk.js +0 -1
  104. package/build/hi-json.b4ae16d1.chunk.js +0 -1
  105. package/build/hu-json.c81ce352.chunk.js +0 -1
  106. package/build/i18n-settings-page.126cc165.chunk.js +0 -101
  107. package/build/i18n-translation-fr-json.0839d68d.chunk.js +0 -1
  108. package/build/id-json.fad45d17.chunk.js +0 -1
  109. package/build/it-json.12df4cdf.chunk.js +0 -1
  110. package/build/ja-json.850237e9.chunk.js +0 -1
  111. package/build/ko-json.2f3d256e.chunk.js +0 -1
  112. package/build/main.1fa47426.js +0 -9316
  113. package/build/ml-json.dc946c7f.chunk.js +0 -1
  114. package/build/nl-json.465b173f.chunk.js +0 -1
  115. package/build/no-json.e8749dd4.chunk.js +0 -1
  116. package/build/pl-json.4d11f53d.chunk.js +0 -1
  117. package/build/pt-BR-json.6301d49b.chunk.js +0 -1
  118. package/build/ru-json.28147733.chunk.js +0 -1
  119. package/build/sa-json.be504091.chunk.js +0 -1
  120. package/build/sk-json.5b33afc2.chunk.js +0 -1
  121. package/build/sv-json.cdcac02d.chunk.js +0 -1
  122. package/build/th-json.3aadaec6.chunk.js +0 -1
  123. package/build/upload-translation-es-json.6b1813b6.chunk.js +0 -1
  124. package/build/zh-Hans-json.eac1d90a.chunk.js +0 -1
  125. 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 header;
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({ id: getTrad('containers.ListPage.table-headers.published_at') }),
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={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
  };
@@ -55,7 +55,7 @@ const Plugins = () => {
55
55
  })}
56
56
  />
57
57
  <ContentLayout>
58
- <Table colCount={2} rowCount={data?.plugins.length || 0 + 1}>
58
+ <Table colCount={2} rowCount={data?.plugins?.length ?? 0 + 1}>
59
59
  <Thead>
60
60
  <Tr>
61
61
  <Th>
@@ -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
- import { useIntl } from 'react-intl';
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
- import { useQuery, useMutation, useQueryClient } from 'react-query';
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={tableHeaders}
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: 'Name',
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: 'Description',
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: 'Token type',
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: 'Created at',
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={tableHeaders}
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={tableHeaders}
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: { label: 'Firstname', sortable: true },
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: { label: 'Lastname', sortable: true },
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: { label: 'Email', sortable: true },
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: { label: 'Roles', sortable: false },
26
- /* eslint-disable react/prop-types */
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: `global.${role.code}`,
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: { label: 'Username', sortable: true },
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: { label: 'User status', sortable: false },
52
- // eslint-disable-next-line react/prop-types
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 ? 'global.active' : 'global.inactive',
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.form.email": "Email",
120
- "Settings.permissions.users.form.firstname": "Nom",
121
- "Settings.permissions.users.form.lastname": "Cognom",
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.published_at": "Estat",
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.form.email": "E-Mail",
120
- "Settings.permissions.users.form.firstname": "Vorname",
121
- "Settings.permissions.users.form.lastname": "Nachname",
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.published_at": "Status",
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.form.email": "E-mail",
118
- "Settings.permissions.users.form.firstname": "Fornavn",
119
- "Settings.permissions.users.form.lastname": "Efternavn",
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.published_at": "Tilstand",
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.form.email": "Email",
146
- "Settings.permissions.users.form.firstname": "First name",
147
- "Settings.permissions.users.form.lastname": "Last name",
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.published_at": "State",
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",