diff --git a/packages/core/content-type-builder/admin/src/InjectedComponents/ContentManager/EditSettingViewButton.js b/packages/core/content-manager/admin/src/containers/EditSettingsView/LinkToCTB/index.js
similarity index 79%
rename from packages/core/content-type-builder/admin/src/InjectedComponents/ContentManager/EditSettingViewButton.js
rename to packages/core/content-manager/admin/src/containers/EditSettingsView/LinkToCTB/index.js
index 37b011dc5e..cd84280f01 100644
--- a/packages/core/content-type-builder/admin/src/InjectedComponents/ContentManager/EditSettingViewButton.js
+++ b/packages/core/content-manager/admin/src/containers/EditSettingsView/LinkToCTB/index.js
@@ -11,11 +11,12 @@ import { useHistory } from 'react-router-dom';
import get from 'lodash/get';
import { Button } from '@buffetjs/core';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
-import getTrad from '../../utils/getTrad';
-import pluginPermissions from '../../permissions';
+import getTrad from '../../../utils/getTrad';
+
+const permissions = [{ action: 'plugins::content-type-builder.read', subject: null }];
// Create link from content-type-builder to content-manager
-function EditViewButton({ modifiedData, slug, type }) {
+const LinkToCTB = ({ modifiedData, slug, type }) => {
const { emitEvent, formatMessage } = useGlobalContext();
const { push } = useHistory();
@@ -36,13 +37,13 @@ function EditViewButton({ modifiedData, slug, type }) {
}
return (
-
+
}
label={formatMessage({
- id: getTrad(`injected-components.content-manager.edit-settings-view.link.${type}`),
+ id: getTrad(`edit-settings-view.link-to-ctb.${type}`),
})}
style={{
paddingLeft: 15,
@@ -53,12 +54,12 @@ function EditViewButton({ modifiedData, slug, type }) {
/>
);
-}
+};
-EditViewButton.propTypes = {
+LinkToCTB.propTypes = {
modifiedData: PropTypes.object.isRequired,
slug: PropTypes.string.isRequired,
type: PropTypes.string.isRequired,
};
-export default EditViewButton;
+export default LinkToCTB;
diff --git a/packages/core/content-manager/admin/src/containers/EditSettingsView/index.js b/packages/core/content-manager/admin/src/containers/EditSettingsView/index.js
index 7c204a4eff..5bff9beb6e 100644
--- a/packages/core/content-manager/admin/src/containers/EditSettingsView/index.js
+++ b/packages/core/content-manager/admin/src/containers/EditSettingsView/index.js
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import { useHistory } from 'react-router-dom';
import { useSelector, shallowEqual } from 'react-redux';
import { cloneDeep, flatMap, get, set, pick } from 'lodash';
-import { InjectionZone, request, useGlobalContext } from '@strapi/helper-plugin';
+import { request, useGlobalContext } from '@strapi/helper-plugin';
import { Inputs as Input } from '@buffetjs/custom';
import { FormattedMessage } from 'react-intl';
import pluginId from '../../pluginId';
@@ -20,6 +20,7 @@ import init from './init';
import reducer, { initialState } from './reducer';
import { createPossibleMainFieldsForModelsAndComponents, getInputProps } from './utils';
import { unformatLayout } from './utils/layout';
+import LinkToCTB from './LinkToCTB';
const EditSettingsView = ({ components, mainLayout, isContentTypeView, slug, updateLayout }) => {
const { push } = useHistory();
@@ -310,8 +311,7 @@ const EditSettingsView = ({ components, mainLayout, isContentTypeView, slug, upd
marginTop: -6,
}}
>
- {
+ const { emitEvent } = useGlobalContext();
const {
createActionAllowedFields,
readActionAllowedFields,
@@ -232,6 +237,21 @@ const EditView = ({
}}
/>
+ {slug !== 'strapi::administrator' && (
+
+ {
+ emitEvent('willEditEditLayout');
+ }}
+ icon="fa-cog"
+ url={`/plugins/content-type-builder/content-types/${slug}`}
+ />
+
+ )}
+ {/* TODO add DOCUMENTATION */}
{allowedActions.canDelete && (
diff --git a/packages/core/content-manager/admin/src/index.js b/packages/core/content-manager/admin/src/index.js
index e058b5888f..988c3fbab9 100644
--- a/packages/core/content-manager/admin/src/index.js
+++ b/packages/core/content-manager/admin/src/index.js
@@ -26,7 +26,6 @@ export default {
icon,
id: pluginId,
injectionZones: {
- editSettingsView: { links: [] },
editView: { informations: [], 'right-links': [] },
listView: { actions: [], deleteModalAdditionalInfos: [] },
},
diff --git a/packages/core/content-manager/admin/src/translations/en.json b/packages/core/content-manager/admin/src/translations/en.json
index ce37a76de6..7e01ccd3b6 100644
--- a/packages/core/content-manager/admin/src/translations/en.json
+++ b/packages/core/content-manager/admin/src/translations/en.json
@@ -173,5 +173,7 @@
"success.record.delete": "Deleted",
"success.record.publish": "Published",
"success.record.save": "Saved",
- "success.record.unpublish": "Unpublished"
+ "success.record.unpublish": "Unpublished",
+ "edit-settings-view.link-to-ctb.components": "Edit the component",
+ "edit-settings-view.link-to-ctb.content-types": "Edit the content type"
}
diff --git a/packages/core/content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewLink.js b/packages/core/content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewLink.js
deleted file mode 100644
index 1b26d2e42d..0000000000
--- a/packages/core/content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewLink.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- *
- * EditViewLink
- *
- */
-
-import React from 'react';
-import PropTypes from 'prop-types';
-import { LiLink, useGlobalContext, CheckPermissions } from '@strapi/helper-plugin';
-import pluginPermissions from '../../permissions';
-
-// Create link from content-type-builder to content-manager
-function EditViewLink(props) {
- const { emitEvent } = useGlobalContext();
- // Retrieve URL from props
- const url = `/plugins/content-type-builder/content-types/${props.slug}`;
-
- if (props.slug === 'strapi::administrator') {
- return null;
- }
-
- return (
-
- {
- emitEvent('willEditEditLayout');
- }}
- />
-
- );
-}
-
-EditViewLink.propTypes = {
- slug: PropTypes.string.isRequired,
-};
-
-export default EditViewLink;
diff --git a/packages/core/content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js b/packages/core/content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js
deleted file mode 100644
index 3f760b7e2a..0000000000
--- a/packages/core/content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import React from 'react';
-import { shallow } from 'enzyme';
-
-import EditViewLink from '../EditViewLink';
-
-describe('', () => {
- let props;
-
- beforeEach(() => {
- props = {
- currentEnvironment: 'development',
- getContentTypeBuilderBaseUrl: jest.fn(() => '/plugins/'),
- getModelName: jest.fn(() => 'test'),
- getSource: jest.fn(),
- };
- });
-
- it('should not crash', () => {
- shallow();
- });
-});
diff --git a/packages/core/content-type-builder/admin/src/index.js b/packages/core/content-type-builder/admin/src/index.js
index 36cb9f4da2..5d402fc253 100644
--- a/packages/core/content-type-builder/admin/src/index.js
+++ b/packages/core/content-type-builder/admin/src/index.js
@@ -8,8 +8,6 @@
import pluginPkg from '../../package.json';
import pluginLogo from './assets/images/logo.svg';
import App from './containers/App';
-import Link from './InjectedComponents/ContentManager/EditViewLink';
-import Button from './InjectedComponents/ContentManager/EditSettingViewButton';
import trads from './translations';
import pluginPermissions from './permissions';
import pluginId from './pluginId';
@@ -56,17 +54,5 @@ export default {
},
});
},
- boot(app) {
- const cmPlugin = app.getPlugin('content-manager');
-
- cmPlugin.injectComponent('editView', 'right-links', {
- name: 'content-type-builder.link',
- Component: Link,
- });
-
- cmPlugin.injectComponent('editSettingsView', 'links', {
- name: 'content-type-builder.left-link',
- Component: Button,
- });
- },
+ boot() {},
};
diff --git a/packages/core/content-type-builder/admin/src/translations/en.json b/packages/core/content-type-builder/admin/src/translations/en.json
index 9911bd1279..bd1fb6bbe5 100644
--- a/packages/core/content-type-builder/admin/src/translations/en.json
+++ b/packages/core/content-type-builder/admin/src/translations/en.json
@@ -126,8 +126,6 @@
"form.button.single-type.description": "Best for single instance like about us, homepage, etc.",
"form.contentType.divider.draft-publish": "DRAFT/PUBLISH",
"from": "from",
- "injected-components.content-manager.edit-settings-view.link.components": "Edit the component",
- "injected-components.content-manager.edit-settings-view.link.content-types": "Edit the content type",
"menu.section.components.name.plural": "Components",
"menu.section.components.name.singular": "Component",
"menu.section.models.name.plural": "Collection Types",