@strapi/admin 4.12.0-beta.1 → 4.12.0-beta.3
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/CollectionTypeFormWrapper/index.js +1 -3
- package/admin/src/content-manager/components/RelationInput/components/Option.js +6 -5
- package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +7 -7
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +23 -21
- package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +21 -23
- package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +24 -22
- package/admin/src/content-manager/pages/ListView/components/Body/index.js +191 -0
- package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/ConfirmBulkActionDialog/index.js +164 -0
- package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/SelectedEntriesModal/index.js +468 -0
- package/admin/src/content-manager/{components/DynamicTable/BulkActionsBar → pages/ListView/components/BulkActionButtons}/index.js +56 -132
- package/admin/src/content-manager/pages/ListView/components/CellContent/RelationMultiple/index.js +63 -69
- package/admin/src/content-manager/pages/ListView/components/CellContent/RepeatableComponent/index.js +28 -21
- package/admin/src/content-manager/pages/ListView/index.js +191 -132
- package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +7 -7
- package/admin/src/translations/ca.json +4 -4
- package/admin/src/translations/de.json +4 -4
- package/admin/src/translations/dk.json +2 -2
- package/admin/src/translations/en.json +23 -4
- package/admin/src/translations/es.json +4 -4
- package/admin/src/translations/eu.json +4 -4
- package/admin/src/translations/fr.json +2 -2
- package/admin/src/translations/gu.json +4 -4
- package/admin/src/translations/hi.json +4 -4
- package/admin/src/translations/hu.json +4 -4
- package/admin/src/translations/ja.json +2 -2
- package/admin/src/translations/ko.json +2 -2
- package/admin/src/translations/ml.json +4 -4
- package/admin/src/translations/nl.json +4 -4
- package/admin/src/translations/pl.json +4 -4
- package/admin/src/translations/pt-BR.json +4 -4
- 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 +4 -4
- package/admin/src/translations/tr.json +4 -4
- package/admin/src/translations/zh-Hans.json +4 -4
- package/admin/src/translations/zh.json +4 -4
- package/build/{2801.18ac397d.chunk.js → 2801.18f38baf.chunk.js} +1 -1
- package/build/{3483.e182b190.chunk.js → 3483.ddd2d6df.chunk.js} +1 -1
- package/build/{970.89601f27.chunk.js → 3739.63e352f1.chunk.js} +52 -20
- package/build/6158.c974fd83.chunk.js +1 -0
- package/build/6691.f880a0b6.chunk.js +105 -0
- package/build/8298.fd253c9f.chunk.js +117 -0
- package/build/{9932.b5a3bb3a.chunk.js → 9806.91360bb6.chunk.js} +47 -47
- package/build/{Admin-authenticatedApp.2ffa318a.chunk.js → Admin-authenticatedApp.36b3826c.chunk.js} +2 -2
- package/build/Admin_settingsPage.8c600d1a.chunk.js +111 -0
- package/build/{admin-app.088bcd33.chunk.js → admin-app.1c3f7fd6.chunk.js} +9 -9
- package/build/{ca-json.1fed5d8b.chunk.js → ca-json.a53c10b6.chunk.js} +1 -1
- package/build/content-manager.b8d593d4.chunk.js +1103 -0
- package/build/{content-type-builder-translation-ar-json.56d8fcf4.chunk.js → content-type-builder-translation-ar-json.3e808e2f.chunk.js} +1 -1
- package/build/{content-type-builder-translation-cs-json.a5b299ca.chunk.js → content-type-builder-translation-cs-json.1ef9e106.chunk.js} +1 -1
- package/build/{content-type-builder-translation-de-json.393a76c0.chunk.js → content-type-builder-translation-de-json.63fcff7b.chunk.js} +1 -1
- package/build/{content-type-builder-translation-dk-json.fbd39bb7.chunk.js → content-type-builder-translation-dk-json.fd626b67.chunk.js} +1 -1
- package/build/{content-type-builder-translation-en-json.38e20391.chunk.js → content-type-builder-translation-en-json.ed29ff4d.chunk.js} +1 -1
- package/build/{content-type-builder-translation-es-json.9288474b.chunk.js → content-type-builder-translation-es-json.a4a361a9.chunk.js} +1 -1
- package/build/{content-type-builder-translation-fr-json.d35e269c.chunk.js → content-type-builder-translation-fr-json.499c3a46.chunk.js} +1 -1
- package/build/{content-type-builder-translation-id-json.f0513929.chunk.js → content-type-builder-translation-id-json.65255f93.chunk.js} +1 -1
- package/build/{content-type-builder-translation-it-json.aaf16753.chunk.js → content-type-builder-translation-it-json.e268ab74.chunk.js} +1 -1
- package/build/{content-type-builder-translation-ko-json.8fe21a7f.chunk.js → content-type-builder-translation-ko-json.04cb309d.chunk.js} +1 -1
- package/build/{content-type-builder-translation-ms-json.3b5d2d3e.chunk.js → content-type-builder-translation-ms-json.f6b743b9.chunk.js} +1 -1
- package/build/{content-type-builder-translation-nl-json.225ef5d3.chunk.js → content-type-builder-translation-nl-json.997fe8cc.chunk.js} +1 -1
- package/build/{content-type-builder-translation-pl-json.92f36be2.chunk.js → content-type-builder-translation-pl-json.634f638b.chunk.js} +1 -1
- package/build/{content-type-builder-translation-pt-BR-json.3bd10f89.chunk.js → content-type-builder-translation-pt-BR-json.6a95dc71.chunk.js} +1 -1
- package/build/{content-type-builder-translation-ru-json.9bfe47ce.chunk.js → content-type-builder-translation-ru-json.3af65503.chunk.js} +1 -1
- package/build/{content-type-builder-translation-sk-json.d03cc18a.chunk.js → content-type-builder-translation-sk-json.c6078082.chunk.js} +1 -1
- package/build/{content-type-builder-translation-sv-json.d23dcd32.chunk.js → content-type-builder-translation-sv-json.a6df2462.chunk.js} +1 -1
- package/build/{content-type-builder-translation-th-json.7ad256e2.chunk.js → content-type-builder-translation-th-json.122277cc.chunk.js} +1 -1
- package/build/{content-type-builder-translation-tr-json.926f6191.chunk.js → content-type-builder-translation-tr-json.41f44f77.chunk.js} +1 -1
- package/build/{content-type-builder-translation-uk-json.7bf19546.chunk.js → content-type-builder-translation-uk-json.e1315acd.chunk.js} +1 -1
- package/build/{content-type-builder-translation-zh-Hans-json.415577fb.chunk.js → content-type-builder-translation-zh-Hans-json.6ff57db6.chunk.js} +1 -1
- package/build/{content-type-builder-translation-zh-json.958d90e1.chunk.js → content-type-builder-translation-zh-json.3532b962.chunk.js} +1 -1
- package/build/{content-type-builder.3963fb2d.chunk.js → content-type-builder.40534de5.chunk.js} +21 -17
- package/build/{de-json.fcac7381.chunk.js → de-json.b3be02c7.chunk.js} +1 -1
- package/build/{dk-json.e34cad0d.chunk.js → dk-json.842aa391.chunk.js} +1 -1
- package/build/{en-json.fb9f6ddd.chunk.js → en-json.4c733bd1.chunk.js} +1 -1
- package/build/{es-json.42096084.chunk.js → es-json.f57b5335.chunk.js} +1 -1
- package/build/{eu-json.fb17c8f9.chunk.js → eu-json.633025f0.chunk.js} +1 -1
- package/build/{fr-json.69789980.chunk.js → fr-json.aa8839d2.chunk.js} +1 -1
- package/build/{gu-json.4d667d0c.chunk.js → gu-json.5bd62812.chunk.js} +1 -1
- package/build/{hi-json.323be97d.chunk.js → hi-json.9104eb78.chunk.js} +1 -1
- package/build/{hu-json.fe71e6c8.chunk.js → hu-json.9f4aae42.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/{ja-json.81b6d1e3.chunk.js → ja-json.91286391.chunk.js} +1 -1
- package/build/{ko-json.4539f4ba.chunk.js → ko-json.fcf3ec4b.chunk.js} +1 -1
- package/build/main.a12c4c0f.js +2856 -0
- package/build/{ml-json.8988e374.chunk.js → ml-json.557aa14c.chunk.js} +1 -1
- package/build/{nl-json.98345913.chunk.js → nl-json.b2b16eea.chunk.js} +1 -1
- package/build/{pl-json.59a5dab3.chunk.js → pl-json.f094a417.chunk.js} +1 -1
- package/build/{pt-BR-json.9410688b.chunk.js → pt-BR-json.dec7fb01.chunk.js} +1 -1
- package/build/review-workflows-settings-create-view.dfd87e1f.chunk.js +1 -0
- package/build/review-workflows-settings-edit-view.53c00afe.chunk.js +1 -0
- package/build/{review-workflows-settings-list-view.240cacdf.chunk.js → review-workflows-settings-list-view.a34be805.chunk.js} +5 -5
- package/build/{ru-json.678cd48b.chunk.js → ru-json.8193d8c4.chunk.js} +1 -1
- package/build/{runtime~main.44bf2a37.js → runtime~main.d197f488.js} +2 -2
- package/build/{sa-json.6359a11c.chunk.js → sa-json.a56836f1.chunk.js} +1 -1
- package/build/{sk-json.2374f129.chunk.js → sk-json.bf2f057a.chunk.js} +1 -1
- package/build/{sv-json.ae6e71ea.chunk.js → sv-json.fd0e86c6.chunk.js} +1 -1
- package/build/{tr-json.bac5dbd3.chunk.js → tr-json.56c32cf6.chunk.js} +1 -1
- package/build/upload.cbfeefa5.chunk.js +58 -0
- package/build/{zh-Hans-json.fada6f40.chunk.js → zh-Hans-json.36d81cdc.chunk.js} +1 -1
- package/build/{zh-json.3529f1e5.chunk.js → zh-json.1cc86ff0.chunk.js} +1 -1
- package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/constants.js +2 -2
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/ProtectedPage/ProtectedPage.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +34 -6
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +42 -11
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/{getWorkflowValidationSchema.js → validateWorkflow.js} +33 -2
- package/ee/admin/pages/SettingsPage/pages/Users/ListPage/index.js +1 -1
- package/ee/server/constants/workflows.js +1 -0
- package/ee/server/services/review-workflows/validation.js +6 -0
- package/ee/server/validation/review-workflows.js +6 -2
- package/package.json +9 -9
- package/admin/src/content-manager/pages/ListView/components/TableRows/index.js +0 -300
- package/build/190.66d89241.chunk.js +0 -117
- package/build/6158.f9d82db9.chunk.js +0 -1
- package/build/6691.e6d5ac38.chunk.js +0 -105
- package/build/Admin_settingsPage.3ad19487.chunk.js +0 -79
- package/build/content-manager.9b569036.chunk.js +0 -1094
- package/build/main.98c989b0.js +0 -2908
- package/build/review-workflows-settings-create-view.60bc516c.chunk.js +0 -1
- package/build/review-workflows-settings-edit-view.898ea409.chunk.js +0 -1
- package/build/upload.8d01c525.chunk.js +0 -26
- /package/admin/src/content-manager/components/{DynamicTable → ListViewTable}/CellContent/PublicationState/PublicationState.js +0 -0
- /package/admin/src/content-manager/components/{DynamicTable → ListViewTable}/CellContent/PublicationState/index.js +0 -0
|
@@ -10,6 +10,11 @@ import {
|
|
|
10
10
|
HeaderLayout,
|
|
11
11
|
useNotifyAT,
|
|
12
12
|
Flex,
|
|
13
|
+
Td,
|
|
14
|
+
Tr,
|
|
15
|
+
Typography,
|
|
16
|
+
Status,
|
|
17
|
+
lightTheme,
|
|
13
18
|
} from '@strapi/design-system';
|
|
14
19
|
import {
|
|
15
20
|
NoPermissions,
|
|
@@ -23,14 +28,13 @@ import {
|
|
|
23
28
|
useTracking,
|
|
24
29
|
Link,
|
|
25
30
|
useAPIErrorHandler,
|
|
26
|
-
getYupInnerErrors,
|
|
27
31
|
useStrapiApp,
|
|
28
|
-
|
|
32
|
+
Table,
|
|
29
33
|
PaginationURLQuery,
|
|
30
34
|
PageSizeURLQuery,
|
|
31
35
|
} from '@strapi/helper-plugin';
|
|
32
36
|
import { ArrowLeft, Cog, Plus } from '@strapi/icons';
|
|
33
|
-
import axios from 'axios';
|
|
37
|
+
import axios, { AxiosError } from 'axios';
|
|
34
38
|
import isEqual from 'lodash/isEqual';
|
|
35
39
|
import PropTypes from 'prop-types';
|
|
36
40
|
import { stringify } from 'qs';
|
|
@@ -46,14 +50,13 @@ import { useEnterprise } from '../../../hooks/useEnterprise';
|
|
|
46
50
|
import { selectAdminPermissions } from '../../../pages/App/selectors';
|
|
47
51
|
import { InjectionZone } from '../../../shared/components';
|
|
48
52
|
import AttributeFilter from '../../components/AttributeFilter';
|
|
49
|
-
import
|
|
50
|
-
import { createYupSchema, getRequestUrl, getTrad } from '../../utils';
|
|
53
|
+
import { getRequestUrl, getTrad } from '../../utils';
|
|
51
54
|
|
|
52
55
|
import { getData, getDataSucceeded, onChangeListHeaders, onResetListHeaders } from './actions';
|
|
53
|
-
import {
|
|
54
|
-
import
|
|
56
|
+
import { Body } from './components/Body';
|
|
57
|
+
import BulkActionButtons from './components/BulkActionButtons';
|
|
58
|
+
import CellContent from './components/CellContent';
|
|
55
59
|
import { FieldPicker } from './components/FieldPicker';
|
|
56
|
-
import { TableRows } from './components/TableRows';
|
|
57
60
|
import makeSelectListView, { selectDisplayedHeaders } from './selectors';
|
|
58
61
|
import { buildValidGetParams } from './utils';
|
|
59
62
|
|
|
@@ -66,6 +69,7 @@ const ConfigureLayoutBox = styled(Box)`
|
|
|
66
69
|
`;
|
|
67
70
|
|
|
68
71
|
const REVIEW_WORKFLOW_COLUMNS_CE = null;
|
|
72
|
+
const REVIEW_WORKFLOW_COLUMNS_CELL_CE = () => null;
|
|
69
73
|
|
|
70
74
|
function ListView({
|
|
71
75
|
canCreate,
|
|
@@ -88,7 +92,7 @@ function ListView({
|
|
|
88
92
|
metadatas,
|
|
89
93
|
settings: { bulkable: isBulkable, filterable: isFilterable, searchable: isSearchable },
|
|
90
94
|
} = contentType;
|
|
91
|
-
|
|
95
|
+
const [isConfirmDeleteRowOpen, setIsConfirmDeleteRowOpen] = React.useState(false);
|
|
92
96
|
const toggleNotification = useNotification();
|
|
93
97
|
const { trackUsage } = useTracking();
|
|
94
98
|
const { refetchPermissions } = useRBACProvider();
|
|
@@ -124,29 +128,18 @@ function ListView({
|
|
|
124
128
|
enabled: !!options?.reviewWorkflows,
|
|
125
129
|
}
|
|
126
130
|
);
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
post(`/content-manager/collection-types/${contentType.uid}/actions/bulkPublish`, data),
|
|
131
|
+
const ReviewWorkflowsStage = useEnterprise(
|
|
132
|
+
REVIEW_WORKFLOW_COLUMNS_CELL_CE,
|
|
133
|
+
async () =>
|
|
134
|
+
(await import('../../../../../ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn'))
|
|
135
|
+
.ReviewWorkflowsStageEE,
|
|
133
136
|
{
|
|
134
|
-
|
|
135
|
-
toggleNotification({
|
|
136
|
-
type: 'success',
|
|
137
|
-
message: { id: 'content-manager.success.record.publish', defaultMessage: 'Published' },
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
fetchData(`/content-manager/collection-types/${slug}`, { params });
|
|
141
|
-
},
|
|
142
|
-
onError(error) {
|
|
143
|
-
toggleNotification({
|
|
144
|
-
type: 'warning',
|
|
145
|
-
message: formatAPIError(error),
|
|
146
|
-
});
|
|
147
|
-
},
|
|
137
|
+
enabled: hasReviewWorkflows,
|
|
148
138
|
}
|
|
149
139
|
);
|
|
140
|
+
|
|
141
|
+
const { post, del } = fetchClient;
|
|
142
|
+
|
|
150
143
|
const bulkUnpublishMutation = useMutation(
|
|
151
144
|
(data) =>
|
|
152
145
|
post(`/content-manager/collection-types/${contentType.uid}/actions/bulkUnpublish`, data),
|
|
@@ -271,66 +264,6 @@ function ListView({
|
|
|
271
264
|
[slug, toggleNotification, formatAPIError, del, fetchData, params]
|
|
272
265
|
);
|
|
273
266
|
|
|
274
|
-
/**
|
|
275
|
-
* @param {number[]} selectedEntries - Array of ids to publish
|
|
276
|
-
* @returns {{validIds: number[], errors: Object.<number, string>}} - Returns an object with the valid ids and the errors
|
|
277
|
-
*/
|
|
278
|
-
const validateEntriesToPublish = async (selectedEntries) => {
|
|
279
|
-
const validations = { validIds: [], errors: {} };
|
|
280
|
-
// Create the validation schema based on the contentType
|
|
281
|
-
const schema = createYupSchema(
|
|
282
|
-
contentType,
|
|
283
|
-
{ components: layout.components },
|
|
284
|
-
{ isDraft: false }
|
|
285
|
-
);
|
|
286
|
-
// Get the selected entries
|
|
287
|
-
const entries = data.filter((entry) => {
|
|
288
|
-
return selectedEntries.includes(entry.id);
|
|
289
|
-
});
|
|
290
|
-
// Validate each entry and map the unresolved promises
|
|
291
|
-
const validationPromises = entries.map((entry) =>
|
|
292
|
-
schema.validate(entry, { abortEarly: false })
|
|
293
|
-
);
|
|
294
|
-
// Resolve all the promises in one go
|
|
295
|
-
const resolvedPromises = await Promise.allSettled(validationPromises);
|
|
296
|
-
// Set the validations
|
|
297
|
-
resolvedPromises.forEach((promise) => {
|
|
298
|
-
if (promise.status === 'rejected') {
|
|
299
|
-
const entityId = promise.reason.value.id;
|
|
300
|
-
validations.errors[entityId] = getYupInnerErrors(promise.reason);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
if (promise.status === 'fulfilled') {
|
|
304
|
-
validations.validIds.push(promise.value.id);
|
|
305
|
-
}
|
|
306
|
-
});
|
|
307
|
-
|
|
308
|
-
return validations;
|
|
309
|
-
};
|
|
310
|
-
|
|
311
|
-
const handleConfirmPublishAllData = async (selectedEntries) => {
|
|
312
|
-
const validations = await validateEntriesToPublish(selectedEntries);
|
|
313
|
-
|
|
314
|
-
if (Object.values(validations.errors).length) {
|
|
315
|
-
toggleNotification({
|
|
316
|
-
type: 'warning',
|
|
317
|
-
title: {
|
|
318
|
-
id: 'content-manager.listView.validation.errors.title',
|
|
319
|
-
defaultMessage: 'Action required',
|
|
320
|
-
},
|
|
321
|
-
message: {
|
|
322
|
-
id: 'content-manager.listView.validation.errors.message',
|
|
323
|
-
defaultMessage:
|
|
324
|
-
'Please make sure all fields are valid before publishing (required field, min/max character limit, etc.)',
|
|
325
|
-
},
|
|
326
|
-
});
|
|
327
|
-
|
|
328
|
-
throw new Error('Validation error');
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
return bulkPublishMutation.mutateAsync({ ids: selectedEntries });
|
|
332
|
-
};
|
|
333
|
-
|
|
334
267
|
const handleConfirmUnpublishAllData = (selectedEntries) => {
|
|
335
268
|
return bulkUnpublishMutation.mutateAsync({ ids: selectedEntries });
|
|
336
269
|
};
|
|
@@ -475,6 +408,57 @@ function ListView({
|
|
|
475
408
|
</Button>
|
|
476
409
|
) : null;
|
|
477
410
|
|
|
411
|
+
/**
|
|
412
|
+
*
|
|
413
|
+
* @param {string} id
|
|
414
|
+
* @returns void
|
|
415
|
+
*/
|
|
416
|
+
const handleRowClick = (id) => () => {
|
|
417
|
+
trackUsage('willEditEntryFromList');
|
|
418
|
+
push({
|
|
419
|
+
pathname: `${pathname}/${id}`,
|
|
420
|
+
state: { from: pathname },
|
|
421
|
+
search: pluginsQueryParams,
|
|
422
|
+
});
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
const handleCloneClick = (id) => async () => {
|
|
426
|
+
try {
|
|
427
|
+
const { data } = await post(
|
|
428
|
+
`/content-manager/collection-types/${contentType.uid}/auto-clone/${id}?${pluginsQueryParams}`
|
|
429
|
+
);
|
|
430
|
+
|
|
431
|
+
if ('id' in data) {
|
|
432
|
+
push({
|
|
433
|
+
pathname: `${pathname}/${data.id}`,
|
|
434
|
+
state: { from: pathname },
|
|
435
|
+
search: pluginsQueryParams,
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
} catch (err) {
|
|
439
|
+
if (err instanceof AxiosError) {
|
|
440
|
+
push({
|
|
441
|
+
pathname: `${pathname}/create/clone/${id}`,
|
|
442
|
+
state: { from: pathname, error: formatAPIError(err) },
|
|
443
|
+
search: pluginsQueryParams,
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
// Add 1 column for the checkbox and 1 for the actions
|
|
450
|
+
const colCount = tableHeaders.length + 2;
|
|
451
|
+
|
|
452
|
+
// We have this function to refetch data when selected entries modal is closed
|
|
453
|
+
const refetchData = () => {
|
|
454
|
+
fetchData(`/content-manager/collection-types/${slug}`, { params });
|
|
455
|
+
};
|
|
456
|
+
|
|
457
|
+
// Block rendering until the review stage component is fully loaded in EE
|
|
458
|
+
if (!ReviewWorkflowsStage) {
|
|
459
|
+
return null;
|
|
460
|
+
}
|
|
461
|
+
|
|
478
462
|
return (
|
|
479
463
|
<Main aria-busy={isLoading}>
|
|
480
464
|
<HeaderLayout
|
|
@@ -544,54 +528,129 @@ function ListView({
|
|
|
544
528
|
<ContentLayout>
|
|
545
529
|
{canRead ? (
|
|
546
530
|
<Flex gap={4} direction="column" alignItems="stretch">
|
|
547
|
-
<
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
canPublish={canPublish}
|
|
551
|
-
contentTypeName={headerLayoutTitle}
|
|
552
|
-
onConfirmDelete={handleConfirmDeleteData}
|
|
553
|
-
onConfirmDeleteAll={handleConfirmDeleteAllData}
|
|
554
|
-
onConfirmPublishAll={handleConfirmPublishAllData}
|
|
555
|
-
onConfirmUnpublishAll={handleConfirmUnpublishAllData}
|
|
556
|
-
isBulkable={isBulkable}
|
|
557
|
-
isLoading={isLoading}
|
|
558
|
-
// FIXME: remove the layout props drilling
|
|
559
|
-
layout={layout}
|
|
560
|
-
rows={data}
|
|
561
|
-
components={{ ConfirmDialogDelete, ConfirmDialogDeleteAll }}
|
|
562
|
-
contentType={headerLayoutTitle}
|
|
563
|
-
action={getCreateAction({ variant: 'secondary' })}
|
|
564
|
-
headers={tableHeaders}
|
|
565
|
-
onOpenDeleteAllModalTrackedEvent="willBulkDeleteEntries"
|
|
566
|
-
withBulkActions
|
|
567
|
-
withMainAction={canDelete && isBulkable}
|
|
568
|
-
renderBulkActionsBar={({ selectedEntries, clearSelectedEntries }) => (
|
|
569
|
-
<BulkActionsBar
|
|
531
|
+
<Table.Root rows={data} isLoading={isLoading} colCount={colCount}>
|
|
532
|
+
<Table.ActionBar>
|
|
533
|
+
<BulkActionButtons
|
|
570
534
|
showPublish={canPublish && hasDraftAndPublish}
|
|
571
535
|
showDelete={canDelete}
|
|
572
536
|
onConfirmDeleteAll={handleConfirmDeleteAllData}
|
|
573
|
-
onConfirmPublishAll={handleConfirmPublishAllData}
|
|
574
537
|
onConfirmUnpublishAll={handleConfirmUnpublishAllData}
|
|
575
|
-
|
|
576
|
-
clearSelectedEntries={clearSelectedEntries}
|
|
538
|
+
refetchData={refetchData}
|
|
577
539
|
/>
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
540
|
+
</Table.ActionBar>
|
|
541
|
+
<Table.Content>
|
|
542
|
+
<Table.Head>
|
|
543
|
+
{/* Bulk action select all checkbox */}
|
|
544
|
+
<Table.HeaderCheckboxCell />
|
|
545
|
+
{/* Dynamic headers based on fields */}
|
|
546
|
+
{tableHeaders.map(({ fieldSchema, key, name, metadatas }) => (
|
|
547
|
+
<Table.HeaderCell
|
|
548
|
+
key={key}
|
|
549
|
+
name={name}
|
|
550
|
+
fieldSchemaType={fieldSchema.type}
|
|
551
|
+
relationFieldName={metadatas.mainField?.name}
|
|
552
|
+
isSortable={metadatas.sortable}
|
|
553
|
+
label={metadatas.label}
|
|
554
|
+
/>
|
|
555
|
+
))}
|
|
556
|
+
{/* Visually hidden header for actions */}
|
|
557
|
+
<Table.HeaderHiddenActionsCell />
|
|
558
|
+
</Table.Head>
|
|
559
|
+
{/* Loading content */}
|
|
560
|
+
<Table.LoadingBody />
|
|
561
|
+
{/* Empty content */}
|
|
562
|
+
<Table.EmptyBody
|
|
563
|
+
contentType={headerLayoutTitle}
|
|
564
|
+
aciton={getCreateAction({ variant: 'secondary' })}
|
|
565
|
+
/>
|
|
566
|
+
{/* Content */}
|
|
567
|
+
<Body.Root
|
|
568
|
+
onConfirmDelete={handleConfirmDeleteData}
|
|
569
|
+
isConfirmDeleteRowOpen={isConfirmDeleteRowOpen}
|
|
570
|
+
setIsConfirmDeleteRowOpen={setIsConfirmDeleteRowOpen}
|
|
571
|
+
>
|
|
572
|
+
{data.map((rowData, index) => {
|
|
573
|
+
return (
|
|
574
|
+
<Tr cursor="pointer" key={data.id} onClick={handleRowClick(rowData.id)}>
|
|
575
|
+
{/* Bulk action row checkbox */}
|
|
576
|
+
<Body.CheckboxDataCell rowId={rowData.id} index={index} />
|
|
577
|
+
{/* Field data */}
|
|
578
|
+
{tableHeaders.map(({ key, name, ...rest }) => {
|
|
579
|
+
if (hasDraftAndPublish && name === 'publishedAt') {
|
|
580
|
+
return (
|
|
581
|
+
<Td key={key}>
|
|
582
|
+
<Status
|
|
583
|
+
width="min-content"
|
|
584
|
+
showBullet={false}
|
|
585
|
+
variant={rowData.publishedAt ? 'success' : 'secondary'}
|
|
586
|
+
size="S"
|
|
587
|
+
>
|
|
588
|
+
<Typography
|
|
589
|
+
fontWeight="bold"
|
|
590
|
+
textColor={`${
|
|
591
|
+
rowData.publishedAt ? 'success' : 'secondary'
|
|
592
|
+
}700`}
|
|
593
|
+
>
|
|
594
|
+
{formatMessage({
|
|
595
|
+
id: getTrad(
|
|
596
|
+
`containers.List.${
|
|
597
|
+
rowData.publishedAt ? 'published' : 'draft'
|
|
598
|
+
}`
|
|
599
|
+
),
|
|
600
|
+
defaultMessage: rowData.publishedAt ? 'Published' : 'Draft',
|
|
601
|
+
})}
|
|
602
|
+
</Typography>
|
|
603
|
+
</Status>
|
|
604
|
+
</Td>
|
|
605
|
+
);
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
if (hasReviewWorkflows && name === 'strapi_stage') {
|
|
609
|
+
return (
|
|
610
|
+
<Td key={key}>
|
|
611
|
+
{rowData.strapi_stage ? (
|
|
612
|
+
<ReviewWorkflowsStage
|
|
613
|
+
color={
|
|
614
|
+
rowData.strapi_stage.color ?? lightTheme.colors.primary600
|
|
615
|
+
}
|
|
616
|
+
name={rowData.strapi_stage.name}
|
|
617
|
+
/>
|
|
618
|
+
) : (
|
|
619
|
+
<Typography textColor="neutral800">-</Typography>
|
|
620
|
+
)}
|
|
621
|
+
</Td>
|
|
622
|
+
);
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
return (
|
|
626
|
+
<Td key={key}>
|
|
627
|
+
<CellContent
|
|
628
|
+
content={rowData[name.split('.')[0]]}
|
|
629
|
+
name={name}
|
|
630
|
+
contentType={layout.contentType}
|
|
631
|
+
{...rest}
|
|
632
|
+
rowId={rowData.id}
|
|
633
|
+
/>
|
|
634
|
+
</Td>
|
|
635
|
+
);
|
|
636
|
+
})}
|
|
637
|
+
{/* Actions: edit, duplicate, delete */}
|
|
638
|
+
{(canDelete || canPublish) && isBulkable && (
|
|
639
|
+
<Body.EntityActionsDataCell
|
|
640
|
+
rowId={rowData.id}
|
|
641
|
+
index={index}
|
|
642
|
+
setIsConfirmDeleteRowOpen={setIsConfirmDeleteRowOpen}
|
|
643
|
+
canCreate={canCreate}
|
|
644
|
+
canDelete={canDelete}
|
|
645
|
+
handleCloneClick={handleCloneClick}
|
|
646
|
+
/>
|
|
647
|
+
)}
|
|
648
|
+
</Tr>
|
|
649
|
+
);
|
|
650
|
+
})}
|
|
651
|
+
</Body.Root>
|
|
652
|
+
</Table.Content>
|
|
653
|
+
</Table.Root>
|
|
595
654
|
<Flex alignItems="flex-end" justifyContent="space-between">
|
|
596
655
|
<PageSizeURLQuery trackedEvent="willChangeNumberOfEntriesPerPage" />
|
|
597
656
|
<PaginationURLQuery pagination={{ pageCount: pagination?.pageCount || 1 }} />
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { SingleSelect, SingleSelectOption } from '@strapi/design-system';
|
|
10
10
|
import { useIntl } from 'react-intl';
|
|
11
11
|
|
|
12
12
|
import useLocalesProvider from '../../../components/LocalesProvider/useLocalesProvider';
|
|
@@ -16,13 +16,13 @@ const LocaleToggle = () => {
|
|
|
16
16
|
const { locale } = useIntl();
|
|
17
17
|
|
|
18
18
|
return (
|
|
19
|
-
<
|
|
20
|
-
{Object.
|
|
21
|
-
<
|
|
22
|
-
{
|
|
23
|
-
</
|
|
19
|
+
<SingleSelect value={locale} onChange={(language) => changeLocale(language)}>
|
|
20
|
+
{Object.entries(localeNames).map(([language, name]) => (
|
|
21
|
+
<SingleSelectOption key={language} value={language}>
|
|
22
|
+
{name}
|
|
23
|
+
</SingleSelectOption>
|
|
24
24
|
))}
|
|
25
|
-
</
|
|
25
|
+
</SingleSelect>
|
|
26
26
|
);
|
|
27
27
|
};
|
|
28
28
|
|
|
@@ -447,9 +447,9 @@
|
|
|
447
447
|
"components.popUpWarning.message": "Segur que vol esborrar això?",
|
|
448
448
|
"components.popUpWarning.title": "Si us plau, confirmeu",
|
|
449
449
|
"content-manager.App.schemas.data-loaded": "Els esquemes s'han carregat correctament.",
|
|
450
|
-
"content-manager.
|
|
451
|
-
"content-manager.
|
|
452
|
-
"content-manager.
|
|
450
|
+
"content-manager.ListViewTable.relation-loaded": "Les relacions s'han carregat",
|
|
451
|
+
"content-manager.ListViewTable.relation-loading": "Les relacions es carreguen",
|
|
452
|
+
"content-manager.ListViewTable.relation-more": "Aquesta relació conté més entitats de les que es mostren",
|
|
453
453
|
"content-manager.EditRelations.title": "Dades relacionades",
|
|
454
454
|
"content-manager.HeaderLayout.button.label-add-entry": "Crear nova entrada",
|
|
455
455
|
"content-manager.api.id": "ID d'API",
|
|
@@ -461,7 +461,7 @@
|
|
|
461
461
|
"content-manager.components.DraggableCard.delete.field": "Esborrar {item}",
|
|
462
462
|
"content-manager.components.DraggableCard.edit.field": "Edita {item}",
|
|
463
463
|
"content-manager.components.DraggableCard.move.field": "Moure {item}",
|
|
464
|
-
"content-manager.components.
|
|
464
|
+
"content-manager.components.ListViewTable.row-line": "número d'element {number}",
|
|
465
465
|
"content-manager.components.DynamicZone.ComponentPicker-label": "Trieu un component",
|
|
466
466
|
"content-manager.components.DynamicZone.add-component": "Afegiu un component a {componentName}",
|
|
467
467
|
"content-manager.components.DynamicZone.delete-label": "Eliminar {name}",
|
|
@@ -442,9 +442,9 @@
|
|
|
442
442
|
"components.popUpWarning.message": "Wirklich löschen?",
|
|
443
443
|
"components.popUpWarning.title": "Bitte bestätigen",
|
|
444
444
|
"content-manager.App.schemas.data-loaded": "Die Schemata wurden geladen",
|
|
445
|
-
"content-manager.
|
|
446
|
-
"content-manager.
|
|
447
|
-
"content-manager.
|
|
445
|
+
"content-manager.ListViewTable.relation-loaded": "Beziehungen wurden geladen",
|
|
446
|
+
"content-manager.ListViewTable.relation-loading": "Beziehungen laden",
|
|
447
|
+
"content-manager.ListViewTable.relation-more": "Diese Beziehung enthält mehr Einträge als angezeigt",
|
|
448
448
|
"content-manager.EditRelations.title": "Beziehungs-Daten",
|
|
449
449
|
"content-manager.HeaderLayout.button.label-add-entry": "Neuer Eintrag",
|
|
450
450
|
"content-manager.api.id": "API ID",
|
|
@@ -455,7 +455,7 @@
|
|
|
455
455
|
"content-manager.components.DraggableCard.delete.field": "Lösche {item}",
|
|
456
456
|
"content-manager.components.DraggableCard.edit.field": "Bearbeite {item}",
|
|
457
457
|
"content-manager.components.DraggableCard.move.field": "Verschiebe {item}",
|
|
458
|
-
"content-manager.components.
|
|
458
|
+
"content-manager.components.ListViewTable.row-line": "Eintrag Zeile {number}",
|
|
459
459
|
"content-manager.components.DynamicZone.ComponentPicker-label": "Wähle eine Komponente",
|
|
460
460
|
"content-manager.components.DynamicZone.add-component": "Füge {componentName} eine Komponente hinzu",
|
|
461
461
|
"content-manager.components.DynamicZone.delete-label": "Lösche {name}",
|
|
@@ -390,7 +390,7 @@
|
|
|
390
390
|
"components.popUpWarning.message": "Er du sikker på at du vil slette?",
|
|
391
391
|
"components.popUpWarning.title": "Bekræft venligst",
|
|
392
392
|
"content-manager.App.schemas.data-loaded": "Skemaerne er blevet hentet succesfuldt",
|
|
393
|
-
"content-manager.
|
|
393
|
+
"content-manager.ListViewTable.relation-loaded": "Relationerne er blevet hentet",
|
|
394
394
|
"content-manager.EditRelations.title": "Relationel data",
|
|
395
395
|
"content-manager.HeaderLayout.button.label-add-entry": "Opret nyt element",
|
|
396
396
|
"content-manager.api.id": "API ID",
|
|
@@ -401,7 +401,7 @@
|
|
|
401
401
|
"content-manager.components.DraggableCard.delete.field": "Slet {item}",
|
|
402
402
|
"content-manager.components.DraggableCard.edit.field": "Redigér {item}",
|
|
403
403
|
"content-manager.components.DraggableCard.move.field": "Flyt {item}",
|
|
404
|
-
"content-manager.components.
|
|
404
|
+
"content-manager.components.ListViewTable.row-line": "element linje {number}",
|
|
405
405
|
"content-manager.components.DynamicZone.ComponentPicker-label": "Vælg et komponent",
|
|
406
406
|
"content-manager.components.DynamicZone.add-component": "Tilføj et komponent til {componentName}",
|
|
407
407
|
"content-manager.components.DynamicZone.delete-label": "Slet {name}",
|
|
@@ -540,10 +540,13 @@
|
|
|
540
540
|
"app.utils.notify.data-loaded": "The {target} has loaded",
|
|
541
541
|
"app.utils.placeholder.defaultMessage": " ",
|
|
542
542
|
"app.utils.publish": "Publish",
|
|
543
|
+
"app.utils.refresh": "Refresh",
|
|
543
544
|
"app.utils.select-all": "Select all",
|
|
544
545
|
"app.utils.select-field": "Select field",
|
|
545
546
|
"app.utils.select-filter": "Select filter",
|
|
546
547
|
"app.utils.unpublish": "Unpublish",
|
|
548
|
+
"app.utils.published": "Published",
|
|
549
|
+
"app.utils.ready-to-publish": "Ready to publish",
|
|
547
550
|
"clearLabel": "Clear",
|
|
548
551
|
"coming.soon": "This content is currently under construction and will be back in a few weeks!",
|
|
549
552
|
"component.Input.error.validation.integer": "The value must be an integer",
|
|
@@ -582,6 +585,17 @@
|
|
|
582
585
|
"components.Input.error.validation.regex": "The value does not match the regex.",
|
|
583
586
|
"components.Input.error.validation.required": "This value is required.",
|
|
584
587
|
"components.Input.error.validation.unique": "This value is already used.",
|
|
588
|
+
"components.Input.error.validation.email.withField": "{field} is an invalid email",
|
|
589
|
+
"components.Input.error.validation.json.withField": "{field} doesn't match the JSON format",
|
|
590
|
+
"components.Input.error.validation.lowercase.withField": "{field} must be a lowercase string",
|
|
591
|
+
"components.Input.error.validation.max.withField": "{field} is too high.",
|
|
592
|
+
"components.Input.error.validation.maxLength.withField": "{field} is too long.",
|
|
593
|
+
"components.Input.error.validation.min.withField": "{field} is too low.",
|
|
594
|
+
"components.Input.error.validation.minLength.withField": "{field} is too short.",
|
|
595
|
+
"components.Input.error.validation.minSupMax.withField": "{field} can't be superior",
|
|
596
|
+
"components.Input.error.validation.regex.withField": "{field} does not match the regex.",
|
|
597
|
+
"components.Input.error.validation.required.withField": "{field} is required.",
|
|
598
|
+
"components.Input.error.validation.unique.withField": "{field} is already used.",
|
|
585
599
|
"components.InputSelect.option.placeholder": "Choose here",
|
|
586
600
|
"components.ListRow.empty": "There is no data to be shown.",
|
|
587
601
|
"components.NotAllowedInput.text": "No permissions to see this field",
|
|
@@ -617,9 +631,9 @@
|
|
|
617
631
|
"components.popUpWarning.message": "Are you sure you want to delete this?",
|
|
618
632
|
"components.popUpWarning.title": "Please confirm",
|
|
619
633
|
"content-manager.App.schemas.data-loaded": "The schemas have been successfully loaded",
|
|
620
|
-
"content-manager.
|
|
621
|
-
"content-manager.
|
|
622
|
-
"content-manager.
|
|
634
|
+
"content-manager.ListViewTable.relation-loaded": "Relations have been loaded",
|
|
635
|
+
"content-manager.ListViewTable.relation-loading": "Relations are loading",
|
|
636
|
+
"content-manager.ListViewTable.relation-more": "This relation contains more entities than displayed",
|
|
623
637
|
"content-manager.EditRelations.title": "Relational data",
|
|
624
638
|
"content-manager.HeaderLayout.button.label-add-entry": "Create new entry",
|
|
625
639
|
"content-manager.api.id": "API ID",
|
|
@@ -631,7 +645,7 @@
|
|
|
631
645
|
"content-manager.components.DraggableCard.delete.field": "Delete {item}",
|
|
632
646
|
"content-manager.components.DraggableCard.edit.field": "Edit {item}",
|
|
633
647
|
"content-manager.components.DraggableCard.move.field": "Move {item}",
|
|
634
|
-
"content-manager.components.
|
|
648
|
+
"content-manager.components.ListViewTable.row-line": "item line {number}",
|
|
635
649
|
"content-manager.components.DynamicZone.ComponentPicker-label": "Pick one component",
|
|
636
650
|
"content-manager.components.DynamicZone.add-component": "Add a component to {componentName}",
|
|
637
651
|
"content-manager.components.DynamicZone.delete-label": "Delete {name}",
|
|
@@ -711,6 +725,9 @@
|
|
|
711
725
|
"content-manager.containers.ListPage.displayedFields": "Displayed Fields",
|
|
712
726
|
"content-manager.containers.ListPage.items": "{number, plural, =0 {items} one {item} other {items}}",
|
|
713
727
|
"content-manager.containers.ListPage.table-headers.publishedAt": "State",
|
|
728
|
+
"content-manager.containers.ListPage.selectedEntriesModal.title": "Publish entries",
|
|
729
|
+
"content-manager.containers.ListPage.selectedEntriesModal.selectedCount": "<b>{readyToPublishCount}</b> {readyToPublishCount, plural, =0 {entries} one {entry} other {entries}} ready to publish. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action.",
|
|
730
|
+
"content-manager.containers.ListPage.selectedEntriesModal.publishedCount": "<b>{publishedCount}</b> {publishedCount, plural, =0 {entries} one {entry} other {entries}} published. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action.",
|
|
714
731
|
"content-manager.containers.ListSettingsView.modal-form.edit-label": "Edit {fieldName}",
|
|
715
732
|
"content-manager.containers.SettingPage.add.field": "Insert another field",
|
|
716
733
|
"content-manager.containers.SettingPage.add.relational-field": "Insert another related field",
|
|
@@ -817,6 +834,7 @@
|
|
|
817
834
|
"content-manager.popUpWarning.warning.updateAllSettings": "This will modify all your settings",
|
|
818
835
|
"content-manager.popUpwarning.warning.has-draft-relations.button-confirm": "Yes, publish",
|
|
819
836
|
"content-manager.popUpwarning.warning.has-draft-relations.message": "<b>{count, plural, one { relation is } other { relations are } }</b> not published yet and might lead to unexpected behavior.",
|
|
837
|
+
"content-manager.popUpwarning.warning.bulk-has-draft-relations.message": "<b>{count} {count, plural, one { relation } other { relations } } out of {entities} { entities, plural, one { entry } other { entries } } {count, plural, one { is } other { are } }</b> not published yet and might lead to unexpected behavior. ",
|
|
820
838
|
"content-manager.popover.display-relations.label": "Display relations",
|
|
821
839
|
"content-manager.relation.add": "Add relation",
|
|
822
840
|
"content-manager.relation.disconnect": "Remove",
|
|
@@ -829,6 +847,7 @@
|
|
|
829
847
|
"content-manager.select.currently.selected": "{count} currently selected",
|
|
830
848
|
"content-manager.success.record.delete": "Deleted",
|
|
831
849
|
"content-manager.success.record.publish": "Published",
|
|
850
|
+
"content-manager.success.record.publishing": "Publishing...",
|
|
832
851
|
"content-manager.success.record.save": "Saved",
|
|
833
852
|
"content-manager.success.record.unpublish": "Unpublished",
|
|
834
853
|
"content-manager.utils.data-loaded": "The {number, plural, =1 {entry has} other {entries have}} successfully been loaded",
|
|
@@ -395,7 +395,7 @@
|
|
|
395
395
|
"components.popUpWarning.message": "¿Estás seguro de que quieres borrar esto?",
|
|
396
396
|
"components.popUpWarning.title": "Por favor, confirme",
|
|
397
397
|
"content-manager.App.schemas.data-loaded": "Los esquemas se han cargado correctamente.",
|
|
398
|
-
"content-manager.
|
|
398
|
+
"content-manager.ListViewTable.relation-loaded": "Las relaciones se han cargado",
|
|
399
399
|
"content-manager.EditRelations.title": "Datos relacionados",
|
|
400
400
|
"content-manager.HeaderLayout.button.label-add-entry": "Crear nueva entrada",
|
|
401
401
|
"content-manager.api.id": "ID de API",
|
|
@@ -406,7 +406,7 @@
|
|
|
406
406
|
"content-manager.components.DraggableCard.delete.field": "Borrar {item}",
|
|
407
407
|
"content-manager.components.DraggableCard.edit.field": "Editar {item}",
|
|
408
408
|
"content-manager.components.DraggableCard.move.field": "Mover {item}",
|
|
409
|
-
"content-manager.components.
|
|
409
|
+
"content-manager.components.ListViewTable.row-line": "número de elemento {number}",
|
|
410
410
|
"content-manager.components.DynamicZone.ComponentPicker-label": "Elija un componente",
|
|
411
411
|
"content-manager.components.DynamicZone.add-component": "Agregue un componente a {componentName}",
|
|
412
412
|
"content-manager.components.DynamicZone.delete-label": "Eliminar {name}",
|
|
@@ -687,8 +687,8 @@
|
|
|
687
687
|
"app.components.LeftMenu.navbrand.workplace": "Lugar de trabajo",
|
|
688
688
|
"app.page.not.found": "¡Vaya! Parece que no podemos encontrar la página que estás buscando...",
|
|
689
689
|
"components.Input.error.validation.lowercase": "El valor debe ser una cadena en minúsculas",
|
|
690
|
-
"content-manager.
|
|
691
|
-
"content-manager.
|
|
690
|
+
"content-manager.ListViewTable.relation-loading": "Las relaciones se están cargando",
|
|
691
|
+
"content-manager.ListViewTable.relation-more": "Esta relación contiene más entidades de las que se muestran",
|
|
692
692
|
"content-manager.apiError.Este atributo debe ser único": "{field} debe ser único",
|
|
693
693
|
"form.button.continue": "Continue",
|
|
694
694
|
"global.search": "Buscar",
|
|
@@ -526,9 +526,9 @@
|
|
|
526
526
|
"components.popUpWarning.message": "Ziur zaude hau ezabatu nahi duzula?",
|
|
527
527
|
"components.popUpWarning.title": "Mesedez, berretsi",
|
|
528
528
|
"content-manager.App.schemas.data-loaded": "Eskemak behar bezala kargatu dira",
|
|
529
|
-
"content-manager.
|
|
530
|
-
"content-manager.
|
|
531
|
-
"content-manager.
|
|
529
|
+
"content-manager.ListViewTable.relation-loaded": "Erlazioak kargatu dira",
|
|
530
|
+
"content-manager.ListViewTable.relation-loading": "Erlazioak kargatzen ari dira",
|
|
531
|
+
"content-manager.ListViewTable.relation-more": "Erlazio honek bistaratzen diren baino entitate gehiago ditu",
|
|
532
532
|
"content-manager.EditRelations.title": "Datu erlazionalak",
|
|
533
533
|
"content-manager.HeaderLayout.button.label-add-entry": "Sortu sarrera berria",
|
|
534
534
|
"content-manager.api.id": "API IDa",
|
|
@@ -539,7 +539,7 @@
|
|
|
539
539
|
"content-manager.components.DraggableCard.delete.field": "Ezabatu {item}",
|
|
540
540
|
"content-manager.components.DraggableCard.edit.field": "Editatu {item}",
|
|
541
541
|
"content-manager.components.DraggableCard.move.field": "Mugitu {item}",
|
|
542
|
-
"content-manager.components.
|
|
542
|
+
"content-manager.components.ListViewTable.row-line": "elementu-lerroa {number}",
|
|
543
543
|
"content-manager.components.DynamicZone.ComponentPicker-label": "Aukeratu osagai bat",
|
|
544
544
|
"content-manager.components.DynamicZone.add-component": "Gehitu osagai bat {componentName}-ra",
|
|
545
545
|
"content-manager.components.DynamicZone.delete-label": "Ezabatu {name}",
|
|
@@ -466,7 +466,7 @@
|
|
|
466
466
|
"components.popUpWarning.message": "Etes-vous sure de vouloir le supprimer ?",
|
|
467
467
|
"components.popUpWarning.title": "Merci de confirmer",
|
|
468
468
|
"content-manager.App.schemas.data-loaded": "Les schéma ont été chargés avec succès",
|
|
469
|
-
"content-manager.
|
|
469
|
+
"content-manager.ListViewTable.relation-loaded": "Les relations on été chargées",
|
|
470
470
|
"content-manager.EditRelations.title": "Données associées",
|
|
471
471
|
"content-manager.HeaderLayout.button.label-add-entry": "Créer une nouvelle entrée",
|
|
472
472
|
"content-manager.api.id": "API ID",
|
|
@@ -477,7 +477,7 @@
|
|
|
477
477
|
"content-manager.components.DraggableCard.delete.field": "Supprimer {item}",
|
|
478
478
|
"content-manager.components.DraggableCard.edit.field": "Modifier {item}",
|
|
479
479
|
"content-manager.components.DraggableCard.move.field": "Déplacer {item}",
|
|
480
|
-
"content-manager.components.
|
|
480
|
+
"content-manager.components.ListViewTable.row-line": "ligne {number}",
|
|
481
481
|
"content-manager.components.DynamicZone.ComponentPicker-label": "Choisir un composant",
|
|
482
482
|
"content-manager.components.DynamicZone.add-component": "Ajouter un composant à {componentName}",
|
|
483
483
|
"content-manager.components.DynamicZone.delete-label": "Supprimer {name}",
|