diff --git a/examples/getstarted/api/my-super-content-type/config/routes.json b/examples/getstarted/api/my-super-content-type/config/routes.json new file mode 100644 index 0000000000..e568cf1219 --- /dev/null +++ b/examples/getstarted/api/my-super-content-type/config/routes.json @@ -0,0 +1,52 @@ +{ + "routes": [ + { + "method": "GET", + "path": "/my-super-content-types", + "handler": "my-super-content-type.find", + "config": { + "policies": [] + } + }, + { + "method": "GET", + "path": "/my-super-content-types/count", + "handler": "my-super-content-type.count", + "config": { + "policies": [] + } + }, + { + "method": "GET", + "path": "/my-super-content-types/:id", + "handler": "my-super-content-type.findOne", + "config": { + "policies": [] + } + }, + { + "method": "POST", + "path": "/my-super-content-types", + "handler": "my-super-content-type.create", + "config": { + "policies": [] + } + }, + { + "method": "PUT", + "path": "/my-super-content-types/:id", + "handler": "my-super-content-type.update", + "config": { + "policies": [] + } + }, + { + "method": "DELETE", + "path": "/my-super-content-types/:id", + "handler": "my-super-content-type.delete", + "config": { + "policies": [] + } + } + ] +} diff --git a/examples/getstarted/api/my-super-content-type/controllers/my-super-content-type.js b/examples/getstarted/api/my-super-content-type/controllers/my-super-content-type.js new file mode 100644 index 0000000000..f94f22736f --- /dev/null +++ b/examples/getstarted/api/my-super-content-type/controllers/my-super-content-type.js @@ -0,0 +1,8 @@ +'use strict'; + +/** + * Read the documentation (https://strapi.io/documentation/3.0.0-beta.x/concepts/controllers.html#core-controllers) + * to customize this controller + */ + +module.exports = {}; diff --git a/examples/getstarted/api/my-super-content-type/models/my-super-content-type.js b/examples/getstarted/api/my-super-content-type/models/my-super-content-type.js new file mode 100644 index 0000000000..8de1dd7974 --- /dev/null +++ b/examples/getstarted/api/my-super-content-type/models/my-super-content-type.js @@ -0,0 +1,44 @@ +'use strict'; + +/** + * Lifecycle callbacks for the `my-super-content-type` model. + */ + +module.exports = { + // Before saving a value. + // Fired before an `insert` or `update` query. + // beforeSave: async (model, attrs, options) => {}, + // After saving a value. + // Fired after an `insert` or `update` query. + // afterSave: async (model, response, options) => {}, + // Before fetching a value. + // Fired before a `fetch` operation. + // beforeFetch: async (model, columns, options) => {}, + // After fetching a value. + // Fired after a `fetch` operation. + // afterFetch: async (model, response, options) => {}, + // Before fetching all values. + // Fired before a `fetchAll` operation. + // beforeFetchAll: async (model, columns, options) => {}, + // After fetching all values. + // Fired after a `fetchAll` operation. + // afterFetchAll: async (model, response, options) => {}, + // Before creating a value. + // Fired before an `insert` query. + // beforeCreate: async (model, attrs, options) => {}, + // After creating a value. + // Fired after an `insert` query. + // afterCreate: async (model, attrs, options) => {}, + // Before updating a value. + // Fired before an `update` query. + // beforeUpdate: async (model, attrs, options) => {}, + // After updating a value. + // Fired after an `update` query. + // afterUpdate: async (model, attrs, options) => {}, + // Before destroying a value. + // Fired before a `delete` query. + // beforeDestroy: async (model, attrs, options) => {}, + // After destroying a value. + // Fired after a `delete` query. + // afterDestroy: async (model, attrs, options) => {} +}; diff --git a/examples/getstarted/api/my-super-content-type/models/my-super-content-type.settings.json b/examples/getstarted/api/my-super-content-type/models/my-super-content-type.settings.json new file mode 100644 index 0000000000..aec5567bae --- /dev/null +++ b/examples/getstarted/api/my-super-content-type/models/my-super-content-type.settings.json @@ -0,0 +1,12 @@ +{ + "connection": "default", + "collectionName": "my_super_content_type", + "info": { + "name": "My super content type ⚠️" + }, + "attributes": { + "name": { + "type": "string" + } + } +} diff --git a/examples/getstarted/api/my-super-content-type/services/my-super-content-type.js b/examples/getstarted/api/my-super-content-type/services/my-super-content-type.js new file mode 100644 index 0000000000..d0dcc88381 --- /dev/null +++ b/examples/getstarted/api/my-super-content-type/services/my-super-content-type.js @@ -0,0 +1,8 @@ +'use strict'; + +/** + * Read the documentation (https://strapi.io/documentation/3.0.0-beta.x/concepts/services.html#core-services) + * to customize this service + */ + +module.exports = {}; diff --git a/packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/index.js b/packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/index.js index af54813207..73b08f9a9d 100644 --- a/packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/index.js +++ b/packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/index.js @@ -24,7 +24,6 @@ function LeftMenuLinkContainer({ plugins, ...rest }) { section.links .filter(link => link.isDisplayed !== false) .map(link => { - link.source = link.source || current; link.plugin = !isEmpty(plugins[link.plugin]) ? link.plugin : plugins[current].id; @@ -54,7 +53,6 @@ function LeftMenuLinkContainer({ plugins, ...rest }) { label={link.label} destination={`/plugins/${link.plugin}/${link.destination || link.uid}`} - source={link.source} /> ))} diff --git a/packages/strapi-admin/admin/src/components/Logout/index.js b/packages/strapi-admin/admin/src/components/Logout/index.js index 659e9e81aa..6d1808d1e0 100644 --- a/packages/strapi-admin/admin/src/components/Logout/index.js +++ b/packages/strapi-admin/admin/src/components/Logout/index.js @@ -32,8 +32,7 @@ const Logout = ({ history: { push } }) => { }; const handleGoToAdministrator = () => { push({ - pathname: '/plugins/content-manager/administrator', - search: '?source=admin', + pathname: '/plugins/content-manager/strapi::administrator', }); }; const handleLogout = () => { diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/ListView/index.js b/packages/strapi-plugin-content-manager/admin/src/containers/ListView/index.js index f4953a3b14..93aea537c4 100644 --- a/packages/strapi-plugin-content-manager/admin/src/containers/ListView/index.js +++ b/packages/strapi-plugin-content-manager/admin/src/containers/ListView/index.js @@ -282,6 +282,8 @@ function ListView({ actions: headerAction, }; + console.log(getSearchParams()); + return ( <> slug} getContentTypeBuilderBaseUrl={() => - '/plugins/content-type-builder/models/' + '/plugins/content-type-builder/content-types/' } push={push} {...compo.props} diff --git a/packages/strapi-plugin-content-manager/admin/src/utils/search.js b/packages/strapi-plugin-content-manager/admin/src/utils/search.js index 74e1dd8bb4..ed1439a353 100644 --- a/packages/strapi-plugin-content-manager/admin/src/utils/search.js +++ b/packages/strapi-plugin-content-manager/admin/src/utils/search.js @@ -12,8 +12,8 @@ const generateFiltersFromSearch = search => { !x.includes('_limit') && !x.includes('_page') && !x.includes('_sort') && - !x.includes('source') && - !x.includes('_q=') + !x.includes('_q=') && + x !== '' ) .reduce((acc, curr) => { const [name, value] = curr.split('='); diff --git a/packages/strapi-plugin-content-manager/admin/src/utils/tests/search.test.js b/packages/strapi-plugin-content-manager/admin/src/utils/tests/search.test.js index 21cb465e5d..43896235df 100644 --- a/packages/strapi-plugin-content-manager/admin/src/utils/tests/search.test.js +++ b/packages/strapi-plugin-content-manager/admin/src/utils/tests/search.test.js @@ -7,7 +7,7 @@ describe('Content Manager | utils | search', () => { describe('generateFiltersFromSearch', () => { it('should generate an array of filters', () => { const search = - '?_sort=id:ASC&source=content-manager&bool=true&big_number_ne=1&created_at_lt=2019-08-01T00:00:00Z&date_lte=2019-08-02T00:00:00Z&decimal_number_gt=2&enum_ne=noon&float_number_gte=3'; + '?_sort=id:ASC&bool=true&big_number_ne=1&created_at_lt=2019-08-01T00:00:00Z&date_lte=2019-08-02T00:00:00Z&decimal_number_gt=2&enum_ne=noon&float_number_gte=3'; const expected = [ { name: 'bool', @@ -56,7 +56,6 @@ describe('Content Manager | utils | search', () => { _limit: 10, _sort: 'id:ASC', _page: 2, - source: 'content-manager', filters: [ { name: 'bool', @@ -96,7 +95,7 @@ describe('Content Manager | utils | search', () => { ], }; const expected = - '_limit=10&_sort=id:ASC&_page=2&source=content-manager&bool=true&big_number_ne=1&created_at_lt=2019-08-01T00:00:00Z&date_lte=2019-08-02T00:00:00Z&decimal_number_gt=2&enum_ne=noon&float_number_gte=3'; + '_limit=10&_sort=id:ASC&_page=2&bool=true&big_number_ne=1&created_at_lt=2019-08-01T00:00:00Z&date_lte=2019-08-02T00:00:00Z&decimal_number_gt=2&enum_ne=noon&float_number_gte=3'; expect(generateSearchFromFilters(data)).toEqual(expected); }); }); diff --git a/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewButton.js b/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewButton.js index 1b7b04cce6..ea3ab03e64 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewButton.js +++ b/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewButton.js @@ -8,6 +8,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { useGlobalContext } from 'strapi-helper-plugin'; import { Button } from '@buffetjs/core'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; // Create link from content-type-builder to content-manager function EditViewButton(props) { @@ -19,26 +20,26 @@ function EditViewButton(props) { props.push(url); }; - if (props.currentEnvironment === 'development') { - return ( - - ); + if (props.getModelName() === 'strapi::administrator') { + return null; } - return null; + return ( + + ); } EditViewButton.propTypes = { diff --git a/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewLink.js b/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewLink.js index 199b92b036..f8e17976d0 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewLink.js +++ b/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/EditViewLink.js @@ -13,11 +13,11 @@ function EditViewLink(props) { // Retrieve URL from props const url = `${props.getContentTypeBuilderBaseUrl()}${props.getModelName()}`; - if (props.currentEnvironment === 'development') { - return ; + if (props.getModelName() === 'strapi::administrator') { + return null; } - return null; + return ; } EditViewLink.propTypes = { diff --git a/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js b/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js index a252f3a4d3..3f760b7e2a 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js +++ b/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js @@ -1,7 +1,6 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { LiLink } from 'strapi-helper-plugin'; import EditViewLink from '../EditViewLink'; describe('', () => { @@ -19,13 +18,4 @@ describe('', () => { it('should not crash', () => { shallow(); }); - - it('should return null if the currentEnvironment is different than development', () => { - const wrapper = shallow( - - ); - const liLink = wrapper.find(LiLink); - - expect(liLink).toHaveLength(0); - }); });