{`${
@@ -680,7 +680,17 @@ const ReleaseDetailsBody = () => {
|
-
+
+
+
+
|
>
diff --git a/packages/core/content-releases/admin/src/translations/en.json b/packages/core/content-releases/admin/src/translations/en.json
index c34d1174bf..b309e13271 100644
--- a/packages/core/content-releases/admin/src/translations/en.json
+++ b/packages/core/content-releases/admin/src/translations/en.json
@@ -10,6 +10,7 @@
"content-manager-edit-view.add-to-release.redirect-button": "Open the list of releases",
"content-manager-edit-view.list-releases.title": "{isPublish, select, true {Will be published in} other {Will be unpublished in}}",
"content-manager-edit-view.remove-from-release": "Remove from release",
+ "content-releases.content-manager-edit-view.edit-entry": "Edit entry",
"content-manager-edit-view.remove-from-release.notification.success": "Entry removed from release",
"content-manager-edit-view.release-action-menu": "Release action options",
"content-manager.notification.entry-error": "Failed to get entry data",
diff --git a/packages/core/content-releases/admin/tests/store.ts b/packages/core/content-releases/admin/tests/store.ts
index 61aebe2d31..df9e5b932b 100644
--- a/packages/core/content-releases/admin/tests/store.ts
+++ b/packages/core/content-releases/admin/tests/store.ts
@@ -17,6 +17,19 @@ const initialState = {
conditions: [],
},
],
+ collectionTypesRelatedPermissions: {
+ 'api::category.category': {
+ 'plugin::content-manager.explorer.update': [
+ {
+ action: 'plugin::content-manager.explorer.update',
+ subject: 'api::category.category',
+ properties: {
+ locales: ['en'],
+ },
+ },
+ ],
+ },
+ },
},
};
diff --git a/packages/core/content-releases/server/src/services/release.ts b/packages/core/content-releases/server/src/services/release.ts
index 3ca43d303d..0cdfc76e70 100644
--- a/packages/core/content-releases/server/src/services/release.ts
+++ b/packages/core/content-releases/server/src/services/release.ts
@@ -261,12 +261,7 @@ const createReleaseService = ({ strapi }: { strapi: LoadedStrapi }) => ({
const allReleaseContentTypesDictionary = await this.getContentTypesDataForActions(
contentTypeUids
);
- const allLocales: Locale[] = await strapi.plugin('i18n').service('locales').find();
- const allLocalesDictionary = allLocales.reduce((acc, locale) => {
- acc[locale.code] = { name: locale.name, code: locale.code };
-
- return acc;
- }, {});
+ const allLocalesDictionary = await this.getLocalesDataForActions();
const formattedData = actions.map((action: ReleaseAction) => {
const { mainField, displayName } = allReleaseContentTypesDictionary[action.contentType];
@@ -289,6 +284,19 @@ const createReleaseService = ({ strapi }: { strapi: LoadedStrapi }) => ({
return _.groupBy(groupName)(formattedData);
},
+ async getLocalesDataForActions() {
+ if (!strapi.plugin('i18n')) {
+ return {};
+ }
+
+ const allLocales: Locale[] = (await strapi.plugin('i18n').service('locales').find()) || [];
+ return allLocales.reduce((acc, locale) => {
+ acc[locale.code] = { name: locale.name, code: locale.code };
+
+ return acc;
+ }, {});
+ },
+
async getContentTypesDataForActions(contentTypesUids: ReleaseAction['contentType'][]) {
const contentManagerContentTypeService = strapi
.plugin('content-manager')