@strapi/content-manager 5.0.0-rc.9 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{ComponentConfigurationPage-BwnO0su2.mjs → ComponentConfigurationPage-DfFSZQxe.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-BwnO0su2.mjs.map → ComponentConfigurationPage-DfFSZQxe.mjs.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-BOKmq7mz.js → ComponentConfigurationPage-FqfsxQ1j.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-BOKmq7mz.js.map → ComponentConfigurationPage-FqfsxQ1j.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-N3OaN53v.js → EditConfigurationPage-Cn0e8t3I.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-N3OaN53v.js.map → EditConfigurationPage-Cn0e8t3I.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-DJDSIf3D.mjs → EditConfigurationPage-DdPNAbl3.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-DJDSIf3D.mjs.map → EditConfigurationPage-DdPNAbl3.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-IZbGSeL3.mjs → EditViewPage-B82x_x1b.mjs} +15 -5
- package/dist/_chunks/EditViewPage-B82x_x1b.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-l9qOdDUI.js → EditViewPage-DlxEHhUt.js} +15 -5
- package/dist/_chunks/EditViewPage-DlxEHhUt.js.map +1 -0
- package/dist/_chunks/{Field-CWjyW47-.js → Field-COL25JiC.js} +100 -87
- package/dist/_chunks/Field-COL25JiC.js.map +1 -0
- package/dist/_chunks/{Field-D3mNj-iY.mjs → Field-DufHXW17.mjs} +97 -84
- package/dist/_chunks/Field-DufHXW17.mjs.map +1 -0
- package/dist/_chunks/{Form-DFXXFrJV.js → Form-BssUwrTO.js} +16 -8
- package/dist/_chunks/Form-BssUwrTO.js.map +1 -0
- package/dist/_chunks/{Form-Ddy3XYS-.mjs → Form-u_kAOhwB.mjs} +16 -8
- package/dist/_chunks/Form-u_kAOhwB.mjs.map +1 -0
- package/dist/_chunks/{History-pesEeFFT.js → History-C9t9UqpO.js} +23 -10
- package/dist/_chunks/History-C9t9UqpO.js.map +1 -0
- package/dist/_chunks/{History-BEFrLZfz.mjs → History-DRwA3oMM.mjs} +24 -11
- package/dist/_chunks/History-DRwA3oMM.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-BIoi-Sog.js → ListConfigurationPage-BXYPohh-.js} +2 -2
- package/dist/_chunks/{ListConfigurationPage-BIoi-Sog.js.map → ListConfigurationPage-BXYPohh-.js.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-CB_lBFVX.mjs → ListConfigurationPage-BxfQJzPk.mjs} +2 -2
- package/dist/_chunks/{ListConfigurationPage-CB_lBFVX.mjs.map → ListConfigurationPage-BxfQJzPk.mjs.map} +1 -1
- package/dist/_chunks/{ListViewPage-DBbH7Esr.mjs → ListViewPage-CELx2ysp.mjs} +40 -36
- package/dist/_chunks/ListViewPage-CELx2ysp.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-C6FK36UI.js → ListViewPage-D2VD8Szg.js} +43 -39
- package/dist/_chunks/ListViewPage-D2VD8Szg.js.map +1 -0
- package/dist/_chunks/{NoContentTypePage-Dod8M_xM.js → NoContentTypePage-BV9IjJSM.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-Dod8M_xM.js.map → NoContentTypePage-BV9IjJSM.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-BU9Omzp4.mjs → NoContentTypePage-DtJ9jcfk.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-BU9Omzp4.mjs.map → NoContentTypePage-DtJ9jcfk.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-B88W05rh.mjs → NoPermissionsPage-DWleVYK7.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-B88W05rh.mjs.map → NoPermissionsPage-DWleVYK7.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CMLH3uMk.js → NoPermissionsPage-Dp8NpF9I.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CMLH3uMk.js.map → NoPermissionsPage-Dp8NpF9I.js.map} +1 -1
- package/dist/_chunks/{Relations-BBJRxopY.mjs → Relations-BTcf5xaw.mjs} +32 -23
- package/dist/_chunks/Relations-BTcf5xaw.mjs.map +1 -0
- package/dist/_chunks/{Relations-OXbsEvNt.js → Relations-DR7EUgyC.js} +32 -23
- package/dist/_chunks/Relations-DR7EUgyC.js.map +1 -0
- package/dist/_chunks/{en-uOUIxfcQ.js → en-Bm0D0IWz.js} +13 -12
- package/dist/_chunks/{en-uOUIxfcQ.js.map → en-Bm0D0IWz.js.map} +1 -1
- package/dist/_chunks/{en-BrCTWlZv.mjs → en-DKV44jRb.mjs} +13 -12
- package/dist/_chunks/{en-BrCTWlZv.mjs.map → en-DKV44jRb.mjs.map} +1 -1
- package/dist/_chunks/{index-Bj8wwbdx.js → index-BdMf2lfT.js} +1879 -1765
- package/dist/_chunks/index-BdMf2lfT.js.map +1 -0
- package/dist/_chunks/{index-BgiNQ7Q9.mjs → index-wnqzm4Q8.mjs} +1899 -1785
- package/dist/_chunks/index-wnqzm4Q8.mjs.map +1 -0
- package/dist/_chunks/{layout-LOFMsdWo.mjs → layout-2CfjL0T9.mjs} +5 -4
- package/dist/_chunks/{layout-LOFMsdWo.mjs.map → layout-2CfjL0T9.mjs.map} +1 -1
- package/dist/_chunks/{layout-DBvOIgWG.js → layout-B2MyZU-_.js} +5 -4
- package/dist/_chunks/{layout-DBvOIgWG.js.map → layout-B2MyZU-_.js.map} +1 -1
- package/dist/_chunks/{relations-BLilXMyN.js → relations-BH7JJGGe.js} +2 -2
- package/dist/_chunks/{relations-BLilXMyN.js.map → relations-BH7JJGGe.js.map} +1 -1
- package/dist/_chunks/{relations-BTQKCDqX.mjs → relations-C0w0GcXi.mjs} +2 -2
- package/dist/_chunks/{relations-BTQKCDqX.mjs.map → relations-C0w0GcXi.mjs.map} +1 -1
- package/dist/_chunks/{usePrev-B9w_-eYc.js → useDebounce-CtcjDB3L.js} +14 -1
- package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -0
- package/dist/_chunks/useDebounce-DmuSJIF3.mjs +29 -0
- package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -0
- package/dist/admin/index.js +2 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +5 -4
- package/dist/admin/src/exports.d.ts +1 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useDocument.d.ts +32 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +0 -32
- package/dist/admin/src/pages/EditView/components/Header.d.ts +11 -11
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +19 -17
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/server/index.js +48 -21
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +48 -21
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/history/services/history.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts +1 -0
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +3 -1
- package/dist/shared/contracts/collection-types.d.ts.map +1 -1
- package/package.json +12 -12
- package/dist/_chunks/EditViewPage-IZbGSeL3.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-l9qOdDUI.js.map +0 -1
- package/dist/_chunks/Field-CWjyW47-.js.map +0 -1
- package/dist/_chunks/Field-D3mNj-iY.mjs.map +0 -1
- package/dist/_chunks/Form-DFXXFrJV.js.map +0 -1
- package/dist/_chunks/Form-Ddy3XYS-.mjs.map +0 -1
- package/dist/_chunks/History-BEFrLZfz.mjs.map +0 -1
- package/dist/_chunks/History-pesEeFFT.js.map +0 -1
- package/dist/_chunks/ListViewPage-C6FK36UI.js.map +0 -1
- package/dist/_chunks/ListViewPage-DBbH7Esr.mjs.map +0 -1
- package/dist/_chunks/Relations-BBJRxopY.mjs.map +0 -1
- package/dist/_chunks/Relations-OXbsEvNt.js.map +0 -1
- package/dist/_chunks/index-BgiNQ7Q9.mjs.map +0 -1
- package/dist/_chunks/index-Bj8wwbdx.js.map +0 -1
- package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
- package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
- package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
- package/strapi-server.js +0 -3
package/dist/server/index.js
CHANGED
@@ -199,7 +199,9 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
199
199
|
return strapi2.db.query("plugin::upload.file").findOne({ where: { id: versionRelationData.id } });
|
200
200
|
};
|
201
201
|
const localesService = strapi2.plugin("i18n")?.service("locales");
|
202
|
+
const i18nContentTypeService = strapi2.plugin("i18n")?.service("content-types");
|
202
203
|
const getDefaultLocale = async () => localesService ? localesService.getDefaultLocale() : null;
|
204
|
+
const isLocalizedContentType = (model) => i18nContentTypeService ? i18nContentTypeService.isLocalizedContentType(model) : false;
|
203
205
|
const getLocaleDictionary = async () => {
|
204
206
|
if (!localesService)
|
205
207
|
return {};
|
@@ -317,6 +319,7 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
317
319
|
getRelationRestoreValue,
|
318
320
|
getMediaRestoreValue,
|
319
321
|
getDefaultLocale,
|
322
|
+
isLocalizedContentType,
|
320
323
|
getLocaleDictionary,
|
321
324
|
getRetentionDays,
|
322
325
|
getVersionStatus,
|
@@ -339,7 +342,13 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
339
342
|
});
|
340
343
|
},
|
341
344
|
async findVersionsPage(params) {
|
342
|
-
const
|
345
|
+
const model = strapi2.getModel(params.query.contentType);
|
346
|
+
const isLocalizedContentType = serviceUtils.isLocalizedContentType(model);
|
347
|
+
const defaultLocale = await serviceUtils.getDefaultLocale();
|
348
|
+
let locale = null;
|
349
|
+
if (isLocalizedContentType) {
|
350
|
+
locale = params.query.locale || defaultLocale;
|
351
|
+
}
|
343
352
|
const [{ results, pagination }, localeDictionary] = await Promise.all([
|
344
353
|
query.findPage({
|
345
354
|
...params.query,
|
@@ -384,7 +393,12 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
384
393
|
if (userToPopulate == null) {
|
385
394
|
return null;
|
386
395
|
}
|
387
|
-
return strapi2.query("admin::user").findOne({
|
396
|
+
return strapi2.query("admin::user").findOne({
|
397
|
+
where: {
|
398
|
+
...userToPopulate.id ? { id: userToPopulate.id } : {},
|
399
|
+
...userToPopulate.documentId ? { documentId: userToPopulate.documentId } : {}
|
400
|
+
}
|
401
|
+
});
|
388
402
|
})
|
389
403
|
);
|
390
404
|
return {
|
@@ -555,11 +569,13 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
555
569
|
}
|
556
570
|
const uid2 = context.contentType.uid;
|
557
571
|
const schemas = getSchemas(uid2);
|
572
|
+
const model = strapi2.getModel(uid2);
|
573
|
+
const isLocalizedContentType = serviceUtils.isLocalizedContentType(model);
|
558
574
|
const localeEntries = await strapi2.db.query(uid2).findMany({
|
559
575
|
where: {
|
560
576
|
documentId,
|
561
|
-
locale: { $in: locales },
|
562
|
-
publishedAt: null
|
577
|
+
...isLocalizedContentType ? { locale: { $in: locales } } : {},
|
578
|
+
...strapiUtils.contentTypes.hasDraftAndPublish(strapi2.contentTypes[uid2]) ? { publishedAt: null } : {}
|
563
579
|
},
|
564
580
|
populate: serviceUtils.getDeepPopulate(
|
565
581
|
uid2,
|
@@ -1704,7 +1720,7 @@ const updateDocument = async (ctx, opts) => {
|
|
1704
1720
|
throw new strapiUtils.errors.ForbiddenError();
|
1705
1721
|
}
|
1706
1722
|
const pickPermittedFields = documentVersion ? permissionChecker2.sanitizeUpdateInput(documentVersion) : permissionChecker2.sanitizeCreateInput;
|
1707
|
-
const setCreator = strapiUtils.setCreatorFields({ user, isEdition: true });
|
1723
|
+
const setCreator = documentVersion ? strapiUtils.setCreatorFields({ user, isEdition: true }) : strapiUtils.setCreatorFields({ user });
|
1708
1724
|
const sanitizeFn = strapiUtils.async.pipe(pickPermittedFields, setCreator);
|
1709
1725
|
const sanitizedBody = await sanitizeFn(body);
|
1710
1726
|
return documentManager2.update(documentVersion?.documentId || id, model, {
|
@@ -1776,7 +1792,7 @@ const collectionTypes = {
|
|
1776
1792
|
permissionChecker2,
|
1777
1793
|
model,
|
1778
1794
|
// @ts-expect-error TODO: fix
|
1779
|
-
{ id, locale, publishedAt: null },
|
1795
|
+
{ documentId: id, locale, publishedAt: null },
|
1780
1796
|
{ availableLocales: true, availableStatus: false }
|
1781
1797
|
);
|
1782
1798
|
ctx.body = { data: {}, meta };
|
@@ -1913,11 +1929,17 @@ const collectionTypes = {
|
|
1913
1929
|
}
|
1914
1930
|
const isUpdate = !isCreate;
|
1915
1931
|
if (isUpdate) {
|
1916
|
-
|
1917
|
-
if (!
|
1932
|
+
const documentExists = documentManager2.exists(model, id);
|
1933
|
+
if (!documentExists) {
|
1918
1934
|
throw new strapiUtils.errors.NotFoundError("Document not found");
|
1919
1935
|
}
|
1920
|
-
|
1936
|
+
document = await documentManager2.findOne(id, model, { populate, locale });
|
1937
|
+
if (!document) {
|
1938
|
+
if (permissionChecker2.cannot.create({ locale }) || permissionChecker2.cannot.publish({ locale })) {
|
1939
|
+
throw new strapiUtils.errors.ForbiddenError();
|
1940
|
+
}
|
1941
|
+
document = await updateDocument(ctx);
|
1942
|
+
} else if (permissionChecker2.can.update(document)) {
|
1921
1943
|
await updateDocument(ctx);
|
1922
1944
|
}
|
1923
1945
|
}
|
@@ -1979,7 +2001,9 @@ const collectionTypes = {
|
|
1979
2001
|
if (permissionChecker2.cannot.unpublish()) {
|
1980
2002
|
return ctx.forbidden();
|
1981
2003
|
}
|
1982
|
-
const { locale } = await getDocumentLocaleAndStatus(body, model
|
2004
|
+
const { locale } = await getDocumentLocaleAndStatus(body, model, {
|
2005
|
+
allowMultipleLocales: true
|
2006
|
+
});
|
1983
2007
|
const entityPromises = documentIds.map(
|
1984
2008
|
(documentId) => documentManager2.findLocales(documentId, model, { locale, isPublished: true })
|
1985
2009
|
);
|
@@ -2369,11 +2393,8 @@ const validateLocale = (sourceUid, targetUid, locale) => {
|
|
2369
2393
|
const isLocalized = strapi.plugin("i18n").service("content-types").isLocalizedContentType;
|
2370
2394
|
const isSourceLocalized = isLocalized(sourceModel);
|
2371
2395
|
const isTargetLocalized = isLocalized(targetModel);
|
2372
|
-
let validatedLocale = locale;
|
2373
|
-
if (!targetModel || !isTargetLocalized)
|
2374
|
-
validatedLocale = void 0;
|
2375
2396
|
return {
|
2376
|
-
locale
|
2397
|
+
locale,
|
2377
2398
|
isSourceLocalized,
|
2378
2399
|
isTargetLocalized
|
2379
2400
|
};
|
@@ -2476,7 +2497,7 @@ const relations = {
|
|
2476
2497
|
attribute,
|
2477
2498
|
fieldsToSelect,
|
2478
2499
|
mainField,
|
2479
|
-
source: { schema: sourceSchema },
|
2500
|
+
source: { schema: sourceSchema, isLocalized: isSourceLocalized },
|
2480
2501
|
target: { schema: targetSchema, isLocalized: isTargetLocalized },
|
2481
2502
|
sourceSchema,
|
2482
2503
|
targetSchema,
|
@@ -2498,7 +2519,8 @@ const relations = {
|
|
2498
2519
|
fieldsToSelect,
|
2499
2520
|
mainField,
|
2500
2521
|
source: {
|
2501
|
-
schema: { uid: sourceUid, modelType: sourceModelType }
|
2522
|
+
schema: { uid: sourceUid, modelType: sourceModelType },
|
2523
|
+
isLocalized: isSourceLocalized
|
2502
2524
|
},
|
2503
2525
|
target: {
|
2504
2526
|
schema: { uid: targetUid },
|
@@ -2536,12 +2558,16 @@ const relations = {
|
|
2536
2558
|
} else {
|
2537
2559
|
where.id = id;
|
2538
2560
|
}
|
2539
|
-
|
2540
|
-
|
2561
|
+
const publishedAt = getPublishedAtClause(status, targetUid);
|
2562
|
+
if (!fp.isEmpty(publishedAt)) {
|
2563
|
+
where[`${alias}.published_at`] = publishedAt;
|
2541
2564
|
}
|
2542
|
-
if (
|
2565
|
+
if (isTargetLocalized && locale) {
|
2543
2566
|
where[`${alias}.locale`] = locale;
|
2544
2567
|
}
|
2568
|
+
if (isSourceLocalized && locale) {
|
2569
|
+
where.locale = locale;
|
2570
|
+
}
|
2545
2571
|
if ((idsToInclude?.length ?? 0) !== 0) {
|
2546
2572
|
where[`${alias}.id`].$notIn = idsToInclude;
|
2547
2573
|
}
|
@@ -2559,7 +2585,8 @@ const relations = {
|
|
2559
2585
|
id: { $notIn: fp.uniq(idsToOmit) }
|
2560
2586
|
});
|
2561
2587
|
}
|
2562
|
-
const
|
2588
|
+
const dbQuery = strapi.get("query-params").transform(targetUid, queryParams);
|
2589
|
+
const res = await strapi.db.query(targetUid).findPage(dbQuery);
|
2563
2590
|
ctx.body = {
|
2564
2591
|
...res,
|
2565
2592
|
results: await addStatusToRelations(targetUid, res.results)
|
@@ -2681,7 +2708,7 @@ const singleTypes = {
|
|
2681
2708
|
permissionChecker2,
|
2682
2709
|
model,
|
2683
2710
|
// @ts-expect-error - fix types
|
2684
|
-
{
|
2711
|
+
{ documentId: document.documentId, locale, publishedAt: null },
|
2685
2712
|
{ availableLocales: true, availableStatus: false }
|
2686
2713
|
);
|
2687
2714
|
ctx.body = { data: {}, meta };
|