@strapi/content-manager 0.0.0-experimental.2bad311ac375d1115d085a9cee4fdbe11a455caf → 0.0.0-experimental.2e2b694fbeb6a64dd7504ce6bccecf956e9eaf03
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-7-qB29e7.mjs → ComponentConfigurationPage-CIjXcRAB.mjs} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-7-qB29e7.mjs.map → ComponentConfigurationPage-CIjXcRAB.mjs.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-DP7AC0UU.js → ComponentConfigurationPage-gsCd80MU.js} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-DP7AC0UU.js.map → ComponentConfigurationPage-gsCd80MU.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CI4XoymK.mjs → EditConfigurationPage-BglmD_BF.mjs} +4 -4
- package/dist/_chunks/{EditConfigurationPage-CI4XoymK.mjs.map → EditConfigurationPage-BglmD_BF.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-DITVliEI.js → EditConfigurationPage-DHDQKBzw.js} +4 -4
- package/dist/_chunks/{EditConfigurationPage-DITVliEI.js.map → EditConfigurationPage-DHDQKBzw.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-CUS2EAhB.js → EditViewPage-C4iTxUPU.js} +10 -4
- package/dist/_chunks/EditViewPage-C4iTxUPU.js.map +1 -0
- package/dist/_chunks/{EditViewPage-Dzpno8xI.mjs → EditViewPage-CiwVPMaK.mjs} +10 -4
- package/dist/_chunks/EditViewPage-CiwVPMaK.mjs.map +1 -0
- package/dist/_chunks/{Field-B_jG_EV9.mjs → Field-DIjL1b5d.mjs} +42 -10
- package/dist/_chunks/Field-DIjL1b5d.mjs.map +1 -0
- package/dist/_chunks/{Field-CtUU1Fg8.js → Field-DhXEK8y1.js} +42 -10
- package/dist/_chunks/Field-DhXEK8y1.js.map +1 -0
- package/dist/_chunks/{Form-BXHao2mZ.mjs → Form-CmNesrvR.mjs} +3 -3
- package/dist/_chunks/Form-CmNesrvR.mjs.map +1 -0
- package/dist/_chunks/{Form-DTqO0ymI.js → Form-CwmJ4sWe.js} +3 -3
- package/dist/_chunks/Form-CwmJ4sWe.js.map +1 -0
- package/dist/_chunks/{History-C_uSGzO5.js → History-BLCCNgCt.js} +24 -11
- package/dist/_chunks/History-BLCCNgCt.js.map +1 -0
- package/dist/_chunks/{History-2Ah2CQ4T.mjs → History-D-99Wh30.mjs} +25 -12
- package/dist/_chunks/History-D-99Wh30.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-nyuP7OSy.js → ListConfigurationPage-DxWpeZrO.js} +3 -3
- package/dist/_chunks/{ListConfigurationPage-nyuP7OSy.js.map → ListConfigurationPage-DxWpeZrO.js.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-BjSJlaoC.mjs → ListConfigurationPage-JPWZz7Kg.mjs} +3 -3
- package/dist/_chunks/{ListConfigurationPage-BjSJlaoC.mjs.map → ListConfigurationPage-JPWZz7Kg.mjs.map} +1 -1
- package/dist/_chunks/{ListViewPage-DHgHD8Xg.js → ListViewPage-CIQekSFz.js} +15 -4
- package/dist/_chunks/ListViewPage-CIQekSFz.js.map +1 -0
- package/dist/_chunks/{ListViewPage-B75x3nz2.mjs → ListViewPage-DSK3f0ST.mjs} +15 -4
- package/dist/_chunks/{ListViewPage-B75x3nz2.mjs.map → ListViewPage-DSK3f0ST.mjs.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-CDUKdZ7d.js → NoContentTypePage-C5cxKvC2.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-CDUKdZ7d.js.map → NoContentTypePage-C5cxKvC2.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-DUacQSyF.mjs → NoContentTypePage-D99LU1YP.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-DUacQSyF.mjs.map → NoContentTypePage-D99LU1YP.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-SFllMekk.mjs → NoPermissionsPage-DBrBw-0y.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-SFllMekk.mjs.map → NoPermissionsPage-DBrBw-0y.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-zwIZydDI.js → NoPermissionsPage-Oy4tmUrW.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-zwIZydDI.js.map → NoPermissionsPage-Oy4tmUrW.js.map} +1 -1
- package/dist/_chunks/{Relations-D2NRW8fC.mjs → Relations-BBmhcWFV.mjs} +62 -33
- package/dist/_chunks/Relations-BBmhcWFV.mjs.map +1 -0
- package/dist/_chunks/{Relations-NFLaRNPr.js → Relations-eG-9p_qS.js} +61 -32
- package/dist/_chunks/Relations-eG-9p_qS.js.map +1 -0
- package/dist/_chunks/{en-BlhnxQfj.js → en-Bm0D0IWz.js} +7 -7
- package/dist/_chunks/{en-BlhnxQfj.js.map → en-Bm0D0IWz.js.map} +1 -1
- package/dist/_chunks/{en-C8YBvRrK.mjs → en-DKV44jRb.mjs} +7 -7
- package/dist/_chunks/{en-C8YBvRrK.mjs.map → en-DKV44jRb.mjs.map} +1 -1
- package/dist/_chunks/{index-ovJRE1FM.js → index-BIWDoFLK.js} +119 -83
- package/dist/_chunks/index-BIWDoFLK.js.map +1 -0
- package/dist/_chunks/{index-C9HxCo5R.mjs → index-BrUzbQ30.mjs} +119 -84
- package/dist/_chunks/index-BrUzbQ30.mjs.map +1 -0
- package/dist/_chunks/{layout-DaUjDiWQ.mjs → layout-_5-cXs34.mjs} +3 -3
- package/dist/_chunks/{layout-DaUjDiWQ.mjs.map → layout-_5-cXs34.mjs.map} +1 -1
- package/dist/_chunks/{layout-UNWstw_s.js → layout-lMc9i1-Z.js} +3 -3
- package/dist/_chunks/{layout-UNWstw_s.js.map → layout-lMc9i1-Z.js.map} +1 -1
- package/dist/_chunks/{objects-gigeqt7s.js → objects-BcXOv6_9.js} +2 -4
- package/dist/_chunks/{objects-gigeqt7s.js.map → objects-BcXOv6_9.js.map} +1 -1
- package/dist/_chunks/{objects-mKMAmfec.mjs → objects-D6yBsdmx.mjs} +2 -4
- package/dist/_chunks/{objects-mKMAmfec.mjs.map → objects-D6yBsdmx.mjs.map} +1 -1
- package/dist/_chunks/{relations-NN3coOG5.js → relations-BRHithi8.js} +3 -7
- package/dist/_chunks/relations-BRHithi8.js.map +1 -0
- package/dist/_chunks/{relations-D8iFAeRu.mjs → relations-B_VLk-DD.mjs} +3 -7
- package/dist/_chunks/relations-B_VLk-DD.mjs.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/preview/constants.d.ts +1 -0
- package/dist/admin/src/preview/index.d.ts +4 -0
- package/dist/server/index.js +72 -26
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +72 -26
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.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/controllers/utils/metadata.d.ts +15 -1
- package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
- package/dist/server/src/history/services/history.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +4 -4
- package/dist/server/src/preview/constants.d.ts +2 -0
- package/dist/server/src/preview/constants.d.ts.map +1 -0
- package/dist/server/src/preview/index.d.ts +4 -0
- package/dist/server/src/preview/index.d.ts.map +1 -0
- package/dist/server/src/services/document-metadata.d.ts +8 -8
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +4 -4
- package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
- package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/_chunks/EditViewPage-CUS2EAhB.js.map +0 -1
- package/dist/_chunks/EditViewPage-Dzpno8xI.mjs.map +0 -1
- package/dist/_chunks/Field-B_jG_EV9.mjs.map +0 -1
- package/dist/_chunks/Field-CtUU1Fg8.js.map +0 -1
- package/dist/_chunks/Form-BXHao2mZ.mjs.map +0 -1
- package/dist/_chunks/Form-DTqO0ymI.js.map +0 -1
- package/dist/_chunks/History-2Ah2CQ4T.mjs.map +0 -1
- package/dist/_chunks/History-C_uSGzO5.js.map +0 -1
- package/dist/_chunks/ListViewPage-DHgHD8Xg.js.map +0 -1
- package/dist/_chunks/Relations-D2NRW8fC.mjs.map +0 -1
- package/dist/_chunks/Relations-NFLaRNPr.js.map +0 -1
- package/dist/_chunks/index-C9HxCo5R.mjs.map +0 -1
- package/dist/_chunks/index-ovJRE1FM.js.map +0 -1
- package/dist/_chunks/relations-D8iFAeRu.mjs.map +0 -1
- package/dist/_chunks/relations-NN3coOG5.js.map +0 -1
package/dist/server/index.mjs
CHANGED
@@ -367,7 +367,12 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
367
367
|
if (userToPopulate == null) {
|
368
368
|
return null;
|
369
369
|
}
|
370
|
-
return strapi2.query("admin::user").findOne({
|
370
|
+
return strapi2.query("admin::user").findOne({
|
371
|
+
where: {
|
372
|
+
...userToPopulate.id ? { id: userToPopulate.id } : {},
|
373
|
+
...userToPopulate.documentId ? { documentId: userToPopulate.documentId } : {}
|
374
|
+
}
|
375
|
+
});
|
371
376
|
})
|
372
377
|
);
|
373
378
|
return {
|
@@ -664,7 +669,7 @@ const historyVersion = {
|
|
664
669
|
}
|
665
670
|
}
|
666
671
|
};
|
667
|
-
const getFeature = () => {
|
672
|
+
const getFeature$1 = () => {
|
668
673
|
if (strapi.ee.features.isEnabled("cms-content-history")) {
|
669
674
|
return {
|
670
675
|
register({ strapi: strapi2 }) {
|
@@ -687,7 +692,7 @@ const getFeature = () => {
|
|
687
692
|
}
|
688
693
|
};
|
689
694
|
};
|
690
|
-
const history = getFeature();
|
695
|
+
const history = getFeature$1();
|
691
696
|
const register = async ({ strapi: strapi2 }) => {
|
692
697
|
await history.register?.({ strapi: strapi2 });
|
693
698
|
};
|
@@ -695,6 +700,18 @@ const ALLOWED_WEBHOOK_EVENTS = {
|
|
695
700
|
ENTRY_PUBLISH: "entry.publish",
|
696
701
|
ENTRY_UNPUBLISH: "entry.unpublish"
|
697
702
|
};
|
703
|
+
const FEATURE_ID = "preview";
|
704
|
+
const getFeature = () => {
|
705
|
+
if (!strapi.features.future.isEnabled(FEATURE_ID)) {
|
706
|
+
return {};
|
707
|
+
}
|
708
|
+
return {
|
709
|
+
bootstrap() {
|
710
|
+
console.log("Bootstrapping preview server");
|
711
|
+
}
|
712
|
+
};
|
713
|
+
};
|
714
|
+
const preview = getFeature();
|
698
715
|
const bootstrap = async () => {
|
699
716
|
Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
|
700
717
|
strapi.get("webhookStore").addAllowedEvent(key, value);
|
@@ -704,6 +721,7 @@ const bootstrap = async () => {
|
|
704
721
|
await getService$1("content-types").syncConfigurations();
|
705
722
|
await getService$1("permission").registerPermissions();
|
706
723
|
await history.bootstrap?.({ strapi });
|
724
|
+
await preview.bootstrap?.({ strapi });
|
707
725
|
};
|
708
726
|
const destroy = async ({ strapi: strapi2 }) => {
|
709
727
|
await history.destroy?.({ strapi: strapi2 });
|
@@ -1689,7 +1707,7 @@ const updateDocument = async (ctx, opts) => {
|
|
1689
1707
|
throw new errors.ForbiddenError();
|
1690
1708
|
}
|
1691
1709
|
const pickPermittedFields = documentVersion ? permissionChecker2.sanitizeUpdateInput(documentVersion) : permissionChecker2.sanitizeCreateInput;
|
1692
|
-
const setCreator = setCreatorFields({ user, isEdition: true });
|
1710
|
+
const setCreator = documentVersion ? setCreatorFields({ user, isEdition: true }) : setCreatorFields({ user });
|
1693
1711
|
const sanitizeFn = async.pipe(pickPermittedFields, setCreator);
|
1694
1712
|
const sanitizedBody = await sanitizeFn(body);
|
1695
1713
|
return documentManager2.update(documentVersion?.documentId || id, model, {
|
@@ -2333,15 +2351,27 @@ const sanitizeMainField = (model, mainField, userAbility) => {
|
|
2333
2351
|
}
|
2334
2352
|
return mainField;
|
2335
2353
|
};
|
2336
|
-
const addStatusToRelations = async (
|
2337
|
-
if (!contentTypes$1.hasDraftAndPublish(strapi.
|
2354
|
+
const addStatusToRelations = async (targetUid, relations2) => {
|
2355
|
+
if (!contentTypes$1.hasDraftAndPublish(strapi.getModel(targetUid))) {
|
2338
2356
|
return relations2;
|
2339
2357
|
}
|
2340
2358
|
const documentMetadata2 = getService$1("document-metadata");
|
2341
|
-
|
2359
|
+
if (!relations2.length) {
|
2360
|
+
return relations2;
|
2361
|
+
}
|
2362
|
+
const firstRelation = relations2[0];
|
2363
|
+
const filters = {
|
2364
|
+
documentId: { $in: relations2.map((r) => r.documentId) },
|
2365
|
+
// NOTE: find the "opposite" status
|
2366
|
+
publishedAt: firstRelation.publishedAt !== null ? { $null: true } : { $notNull: true }
|
2367
|
+
};
|
2368
|
+
const availableStatus = await strapi.query(targetUid).findMany({
|
2369
|
+
select: ["id", "documentId", "locale", "updatedAt", "createdAt", "publishedAt"],
|
2370
|
+
filters
|
2371
|
+
});
|
2342
2372
|
return relations2.map((relation) => {
|
2343
|
-
const availableStatuses =
|
2344
|
-
(availableDocument) => availableDocument.documentId === relation.documentId
|
2373
|
+
const availableStatuses = availableStatus.filter(
|
2374
|
+
(availableDocument) => availableDocument.documentId === relation.documentId && (relation.locale ? availableDocument.locale === relation.locale : true)
|
2345
2375
|
);
|
2346
2376
|
return {
|
2347
2377
|
...relation,
|
@@ -2362,11 +2392,8 @@ const validateLocale = (sourceUid, targetUid, locale) => {
|
|
2362
2392
|
const isLocalized = strapi.plugin("i18n").service("content-types").isLocalizedContentType;
|
2363
2393
|
const isSourceLocalized = isLocalized(sourceModel);
|
2364
2394
|
const isTargetLocalized = isLocalized(targetModel);
|
2365
|
-
let validatedLocale = locale;
|
2366
|
-
if (!targetModel || !isTargetLocalized)
|
2367
|
-
validatedLocale = void 0;
|
2368
2395
|
return {
|
2369
|
-
locale
|
2396
|
+
locale,
|
2370
2397
|
isSourceLocalized,
|
2371
2398
|
isTargetLocalized
|
2372
2399
|
};
|
@@ -2469,7 +2496,7 @@ const relations = {
|
|
2469
2496
|
attribute,
|
2470
2497
|
fieldsToSelect,
|
2471
2498
|
mainField,
|
2472
|
-
source: { schema: sourceSchema },
|
2499
|
+
source: { schema: sourceSchema, isLocalized: isSourceLocalized },
|
2473
2500
|
target: { schema: targetSchema, isLocalized: isTargetLocalized },
|
2474
2501
|
sourceSchema,
|
2475
2502
|
targetSchema,
|
@@ -2491,7 +2518,8 @@ const relations = {
|
|
2491
2518
|
fieldsToSelect,
|
2492
2519
|
mainField,
|
2493
2520
|
source: {
|
2494
|
-
schema: { uid: sourceUid, modelType: sourceModelType }
|
2521
|
+
schema: { uid: sourceUid, modelType: sourceModelType },
|
2522
|
+
isLocalized: isSourceLocalized
|
2495
2523
|
},
|
2496
2524
|
target: {
|
2497
2525
|
schema: { uid: targetUid },
|
@@ -2533,9 +2561,12 @@ const relations = {
|
|
2533
2561
|
if (!isEmpty(publishedAt)) {
|
2534
2562
|
where[`${alias}.published_at`] = publishedAt;
|
2535
2563
|
}
|
2536
|
-
if (
|
2564
|
+
if (isTargetLocalized && locale) {
|
2537
2565
|
where[`${alias}.locale`] = locale;
|
2538
2566
|
}
|
2567
|
+
if (isSourceLocalized && locale) {
|
2568
|
+
where.locale = locale;
|
2569
|
+
}
|
2539
2570
|
if ((idsToInclude?.length ?? 0) !== 0) {
|
2540
2571
|
where[`${alias}.id`].$notIn = idsToInclude;
|
2541
2572
|
}
|
@@ -2553,7 +2584,8 @@ const relations = {
|
|
2553
2584
|
id: { $notIn: uniq(idsToOmit) }
|
2554
2585
|
});
|
2555
2586
|
}
|
2556
|
-
const
|
2587
|
+
const dbQuery = strapi.get("query-params").transform(targetUid, queryParams);
|
2588
|
+
const res = await strapi.db.query(targetUid).findPage(dbQuery);
|
2557
2589
|
ctx.body = {
|
2558
2590
|
...res,
|
2559
2591
|
results: await addStatusToRelations(targetUid, res.results)
|
@@ -2568,21 +2600,33 @@ const relations = {
|
|
2568
2600
|
attribute,
|
2569
2601
|
targetField,
|
2570
2602
|
fieldsToSelect,
|
2571
|
-
|
2572
|
-
|
2573
|
-
}
|
2574
|
-
target: {
|
2575
|
-
schema: { uid: targetUid }
|
2576
|
-
}
|
2603
|
+
status,
|
2604
|
+
source: { schema: sourceSchema },
|
2605
|
+
target: { schema: targetSchema }
|
2577
2606
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2607
|
+
const { uid: sourceUid } = sourceSchema;
|
2608
|
+
const { uid: targetUid } = targetSchema;
|
2578
2609
|
const permissionQuery = await getService$1("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
|
2579
2610
|
const dbQuery = strapi.db.query(sourceUid);
|
2580
2611
|
const loadRelations = relations$1.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
|
2612
|
+
const filters = {};
|
2613
|
+
if (sourceSchema?.options?.draftAndPublish) {
|
2614
|
+
if (targetSchema?.options?.draftAndPublish) {
|
2615
|
+
if (status === "published") {
|
2616
|
+
filters.publishedAt = { $notNull: true };
|
2617
|
+
} else {
|
2618
|
+
filters.publishedAt = { $null: true };
|
2619
|
+
}
|
2620
|
+
}
|
2621
|
+
} else if (targetSchema?.options?.draftAndPublish) {
|
2622
|
+
filters.publishedAt = { $null: true };
|
2623
|
+
}
|
2581
2624
|
const res = await loadRelations({ id: entryId }, targetField, {
|
2582
|
-
select: ["id", "documentId", "locale", "publishedAt"],
|
2625
|
+
select: ["id", "documentId", "locale", "publishedAt", "updatedAt"],
|
2583
2626
|
ordering: "desc",
|
2584
2627
|
page: ctx.request.query.page,
|
2585
|
-
pageSize: ctx.request.query.pageSize
|
2628
|
+
pageSize: ctx.request.query.pageSize,
|
2629
|
+
filters
|
2586
2630
|
});
|
2587
2631
|
const loadedIds = res.results.map((item) => item.id);
|
2588
2632
|
addFiltersClause(permissionQuery, { id: { $in: loadedIds } });
|
@@ -4046,7 +4090,9 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
|
|
4046
4090
|
*/
|
4047
4091
|
async getAvailableLocales(uid2, version, allVersions, validatableFields = []) {
|
4048
4092
|
const versionsByLocale = groupBy("locale", allVersions);
|
4049
|
-
|
4093
|
+
if (version.locale) {
|
4094
|
+
delete versionsByLocale[version.locale];
|
4095
|
+
}
|
4050
4096
|
const model = strapi2.getModel(uid2);
|
4051
4097
|
const keysToKeep = [...AVAILABLE_LOCALES_FIELDS, ...validatableFields];
|
4052
4098
|
const traversalFunction = async (localeVersion) => traverseEntity(
|