@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
@@ -0,0 +1 @@
|
|
1
|
+
export declare const FEATURE_ID = "preview";
|
package/dist/server/index.js
CHANGED
@@ -393,7 +393,12 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
393
393
|
if (userToPopulate == null) {
|
394
394
|
return null;
|
395
395
|
}
|
396
|
-
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
|
+
});
|
397
402
|
})
|
398
403
|
);
|
399
404
|
return {
|
@@ -690,7 +695,7 @@ const historyVersion = {
|
|
690
695
|
}
|
691
696
|
}
|
692
697
|
};
|
693
|
-
const getFeature = () => {
|
698
|
+
const getFeature$1 = () => {
|
694
699
|
if (strapi.ee.features.isEnabled("cms-content-history")) {
|
695
700
|
return {
|
696
701
|
register({ strapi: strapi2 }) {
|
@@ -713,7 +718,7 @@ const getFeature = () => {
|
|
713
718
|
}
|
714
719
|
};
|
715
720
|
};
|
716
|
-
const history = getFeature();
|
721
|
+
const history = getFeature$1();
|
717
722
|
const register = async ({ strapi: strapi2 }) => {
|
718
723
|
await history.register?.({ strapi: strapi2 });
|
719
724
|
};
|
@@ -721,6 +726,18 @@ const ALLOWED_WEBHOOK_EVENTS = {
|
|
721
726
|
ENTRY_PUBLISH: "entry.publish",
|
722
727
|
ENTRY_UNPUBLISH: "entry.unpublish"
|
723
728
|
};
|
729
|
+
const FEATURE_ID = "preview";
|
730
|
+
const getFeature = () => {
|
731
|
+
if (!strapi.features.future.isEnabled(FEATURE_ID)) {
|
732
|
+
return {};
|
733
|
+
}
|
734
|
+
return {
|
735
|
+
bootstrap() {
|
736
|
+
console.log("Bootstrapping preview server");
|
737
|
+
}
|
738
|
+
};
|
739
|
+
};
|
740
|
+
const preview = getFeature();
|
724
741
|
const bootstrap = async () => {
|
725
742
|
Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
|
726
743
|
strapi.get("webhookStore").addAllowedEvent(key, value);
|
@@ -730,6 +747,7 @@ const bootstrap = async () => {
|
|
730
747
|
await getService$1("content-types").syncConfigurations();
|
731
748
|
await getService$1("permission").registerPermissions();
|
732
749
|
await history.bootstrap?.({ strapi });
|
750
|
+
await preview.bootstrap?.({ strapi });
|
733
751
|
};
|
734
752
|
const destroy = async ({ strapi: strapi2 }) => {
|
735
753
|
await history.destroy?.({ strapi: strapi2 });
|
@@ -1715,7 +1733,7 @@ const updateDocument = async (ctx, opts) => {
|
|
1715
1733
|
throw new strapiUtils.errors.ForbiddenError();
|
1716
1734
|
}
|
1717
1735
|
const pickPermittedFields = documentVersion ? permissionChecker2.sanitizeUpdateInput(documentVersion) : permissionChecker2.sanitizeCreateInput;
|
1718
|
-
const setCreator = strapiUtils.setCreatorFields({ user, isEdition: true });
|
1736
|
+
const setCreator = documentVersion ? strapiUtils.setCreatorFields({ user, isEdition: true }) : strapiUtils.setCreatorFields({ user });
|
1719
1737
|
const sanitizeFn = strapiUtils.async.pipe(pickPermittedFields, setCreator);
|
1720
1738
|
const sanitizedBody = await sanitizeFn(body);
|
1721
1739
|
return documentManager2.update(documentVersion?.documentId || id, model, {
|
@@ -2359,15 +2377,27 @@ const sanitizeMainField = (model, mainField, userAbility) => {
|
|
2359
2377
|
}
|
2360
2378
|
return mainField;
|
2361
2379
|
};
|
2362
|
-
const addStatusToRelations = async (
|
2363
|
-
if (!strapiUtils.contentTypes.hasDraftAndPublish(strapi.
|
2380
|
+
const addStatusToRelations = async (targetUid, relations2) => {
|
2381
|
+
if (!strapiUtils.contentTypes.hasDraftAndPublish(strapi.getModel(targetUid))) {
|
2364
2382
|
return relations2;
|
2365
2383
|
}
|
2366
2384
|
const documentMetadata2 = getService$1("document-metadata");
|
2367
|
-
|
2385
|
+
if (!relations2.length) {
|
2386
|
+
return relations2;
|
2387
|
+
}
|
2388
|
+
const firstRelation = relations2[0];
|
2389
|
+
const filters = {
|
2390
|
+
documentId: { $in: relations2.map((r) => r.documentId) },
|
2391
|
+
// NOTE: find the "opposite" status
|
2392
|
+
publishedAt: firstRelation.publishedAt !== null ? { $null: true } : { $notNull: true }
|
2393
|
+
};
|
2394
|
+
const availableStatus = await strapi.query(targetUid).findMany({
|
2395
|
+
select: ["id", "documentId", "locale", "updatedAt", "createdAt", "publishedAt"],
|
2396
|
+
filters
|
2397
|
+
});
|
2368
2398
|
return relations2.map((relation) => {
|
2369
|
-
const availableStatuses =
|
2370
|
-
(availableDocument) => availableDocument.documentId === relation.documentId
|
2399
|
+
const availableStatuses = availableStatus.filter(
|
2400
|
+
(availableDocument) => availableDocument.documentId === relation.documentId && (relation.locale ? availableDocument.locale === relation.locale : true)
|
2371
2401
|
);
|
2372
2402
|
return {
|
2373
2403
|
...relation,
|
@@ -2388,11 +2418,8 @@ const validateLocale = (sourceUid, targetUid, locale) => {
|
|
2388
2418
|
const isLocalized = strapi.plugin("i18n").service("content-types").isLocalizedContentType;
|
2389
2419
|
const isSourceLocalized = isLocalized(sourceModel);
|
2390
2420
|
const isTargetLocalized = isLocalized(targetModel);
|
2391
|
-
let validatedLocale = locale;
|
2392
|
-
if (!targetModel || !isTargetLocalized)
|
2393
|
-
validatedLocale = void 0;
|
2394
2421
|
return {
|
2395
|
-
locale
|
2422
|
+
locale,
|
2396
2423
|
isSourceLocalized,
|
2397
2424
|
isTargetLocalized
|
2398
2425
|
};
|
@@ -2495,7 +2522,7 @@ const relations = {
|
|
2495
2522
|
attribute,
|
2496
2523
|
fieldsToSelect,
|
2497
2524
|
mainField,
|
2498
|
-
source: { schema: sourceSchema },
|
2525
|
+
source: { schema: sourceSchema, isLocalized: isSourceLocalized },
|
2499
2526
|
target: { schema: targetSchema, isLocalized: isTargetLocalized },
|
2500
2527
|
sourceSchema,
|
2501
2528
|
targetSchema,
|
@@ -2517,7 +2544,8 @@ const relations = {
|
|
2517
2544
|
fieldsToSelect,
|
2518
2545
|
mainField,
|
2519
2546
|
source: {
|
2520
|
-
schema: { uid: sourceUid, modelType: sourceModelType }
|
2547
|
+
schema: { uid: sourceUid, modelType: sourceModelType },
|
2548
|
+
isLocalized: isSourceLocalized
|
2521
2549
|
},
|
2522
2550
|
target: {
|
2523
2551
|
schema: { uid: targetUid },
|
@@ -2559,9 +2587,12 @@ const relations = {
|
|
2559
2587
|
if (!fp.isEmpty(publishedAt)) {
|
2560
2588
|
where[`${alias}.published_at`] = publishedAt;
|
2561
2589
|
}
|
2562
|
-
if (
|
2590
|
+
if (isTargetLocalized && locale) {
|
2563
2591
|
where[`${alias}.locale`] = locale;
|
2564
2592
|
}
|
2593
|
+
if (isSourceLocalized && locale) {
|
2594
|
+
where.locale = locale;
|
2595
|
+
}
|
2565
2596
|
if ((idsToInclude?.length ?? 0) !== 0) {
|
2566
2597
|
where[`${alias}.id`].$notIn = idsToInclude;
|
2567
2598
|
}
|
@@ -2579,7 +2610,8 @@ const relations = {
|
|
2579
2610
|
id: { $notIn: fp.uniq(idsToOmit) }
|
2580
2611
|
});
|
2581
2612
|
}
|
2582
|
-
const
|
2613
|
+
const dbQuery = strapi.get("query-params").transform(targetUid, queryParams);
|
2614
|
+
const res = await strapi.db.query(targetUid).findPage(dbQuery);
|
2583
2615
|
ctx.body = {
|
2584
2616
|
...res,
|
2585
2617
|
results: await addStatusToRelations(targetUid, res.results)
|
@@ -2594,21 +2626,33 @@ const relations = {
|
|
2594
2626
|
attribute,
|
2595
2627
|
targetField,
|
2596
2628
|
fieldsToSelect,
|
2597
|
-
|
2598
|
-
|
2599
|
-
}
|
2600
|
-
target: {
|
2601
|
-
schema: { uid: targetUid }
|
2602
|
-
}
|
2629
|
+
status,
|
2630
|
+
source: { schema: sourceSchema },
|
2631
|
+
target: { schema: targetSchema }
|
2603
2632
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2633
|
+
const { uid: sourceUid } = sourceSchema;
|
2634
|
+
const { uid: targetUid } = targetSchema;
|
2604
2635
|
const permissionQuery = await getService$1("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
|
2605
2636
|
const dbQuery = strapi.db.query(sourceUid);
|
2606
2637
|
const loadRelations = strapiUtils.relations.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
|
2638
|
+
const filters = {};
|
2639
|
+
if (sourceSchema?.options?.draftAndPublish) {
|
2640
|
+
if (targetSchema?.options?.draftAndPublish) {
|
2641
|
+
if (status === "published") {
|
2642
|
+
filters.publishedAt = { $notNull: true };
|
2643
|
+
} else {
|
2644
|
+
filters.publishedAt = { $null: true };
|
2645
|
+
}
|
2646
|
+
}
|
2647
|
+
} else if (targetSchema?.options?.draftAndPublish) {
|
2648
|
+
filters.publishedAt = { $null: true };
|
2649
|
+
}
|
2607
2650
|
const res = await loadRelations({ id: entryId }, targetField, {
|
2608
|
-
select: ["id", "documentId", "locale", "publishedAt"],
|
2651
|
+
select: ["id", "documentId", "locale", "publishedAt", "updatedAt"],
|
2609
2652
|
ordering: "desc",
|
2610
2653
|
page: ctx.request.query.page,
|
2611
|
-
pageSize: ctx.request.query.pageSize
|
2654
|
+
pageSize: ctx.request.query.pageSize,
|
2655
|
+
filters
|
2612
2656
|
});
|
2613
2657
|
const loadedIds = res.results.map((item) => item.id);
|
2614
2658
|
addFiltersClause(permissionQuery, { id: { $in: loadedIds } });
|
@@ -4072,7 +4116,9 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
|
|
4072
4116
|
*/
|
4073
4117
|
async getAvailableLocales(uid2, version, allVersions, validatableFields = []) {
|
4074
4118
|
const versionsByLocale = fp.groupBy("locale", allVersions);
|
4075
|
-
|
4119
|
+
if (version.locale) {
|
4120
|
+
delete versionsByLocale[version.locale];
|
4121
|
+
}
|
4076
4122
|
const model = strapi2.getModel(uid2);
|
4077
4123
|
const keysToKeep = [...AVAILABLE_LOCALES_FIELDS, ...validatableFields];
|
4078
4124
|
const traversalFunction = async (localeVersion) => strapiUtils.traverseEntity(
|