diff --git a/docs/3.x.x/en/concepts/concepts.md b/docs/3.x.x/en/concepts/concepts.md index 966482fdf4..abc38254ad 100644 --- a/docs/3.x.x/en/concepts/concepts.md +++ b/docs/3.x.x/en/concepts/concepts.md @@ -92,7 +92,7 @@ The controllers are defined in each `./api/**/controllers/` folders. Every JavaS ## Filters -Filters are a handy way to request data according to generic parameters. It makes filtering, sorting and paginating easy and reusable (eg. `GET /user?_limit=30&name=John`). +Filters are a handy way to request data according to generic parameters. It makes filtering, sorting and paginating easy and reusable (eg. `GET /users?_limit=30&name=John`). > Please refer to the [filters' guide](../guides/filters.md) for more informations. diff --git a/docs/3.x.x/en/getting-started/quick-start.md b/docs/3.x.x/en/getting-started/quick-start.md index 1a26062328..3a1340c9bc 100644 --- a/docs/3.x.x/en/getting-started/quick-start.md +++ b/docs/3.x.x/en/getting-started/quick-start.md @@ -137,16 +137,16 @@ In order to do so, you'll need to allow access to other users (identified as 'Gu ### List entries (GET) -To retrieve the list of products, use the `GET /your-content-type` route. +To retrieve the list of products, use the `GET /products` route. -Generated APIs provide a handy way to filter and order queries. In that way, ordering products by price is as easy as `GET http://localhost:1337/product?_sort=price:asc`. For more informations, read the [filters documentation](../guides/filters.md) +Generated APIs provide a handy way to filter and order queries. In that way, ordering products by price is as easy as `GET http://localhost:1337/products?_sort=price:asc`. For more informations, read the [filters documentation](../guides/filters.md) Here is an example using jQuery. ```js $.ajax({ type: 'GET', - url: 'http://localhost:1337/product?_sort=price:asc', // Order by price. + url: 'http://localhost:1337/products?_sort=price:asc', // Order by price. done: function(products) { console.log('Well done, here is the list of products: ', products); }, @@ -163,7 +163,7 @@ If you want to get a specific entry, add the `id` of the wanted product at the e ```js $.ajax({ type: 'GET', - url: 'http://localhost:1337/product/123', // Where `123` is the `id` of the product. + url: 'http://localhost:1337/products/123', // Where `123` is the `id` of the product. done: function(product) { console.log('Well done, here is the product having the `id` 123: ', product); }, @@ -182,7 +182,7 @@ jQuery example: ```js $.ajax({ type: 'POST', - url: 'http://localhost:1337/product', + url: 'http://localhost:1337/products', data: { name: 'Cheese cake', description: 'Chocolate cheese cake with ice cream', @@ -206,7 +206,7 @@ jQuery example: ```js $.ajax({ type: 'PUT', - url: 'http://localhost:1337/product/123', // Where `123` is the `id` of the product. + url: 'http://localhost:1337/products/123', // Where `123` is the `id` of the product. data: { description: 'This is the new description' }, @@ -228,7 +228,7 @@ jQuery example: ```js $.ajax({ type: 'DELETE', - url: 'http://localhost:1337/product/123', // Where `123` is the `id` of the product. + url: 'http://localhost:1337/products/123', // Where `123` is the `id` of the product. done: function(product) { console.log('Congrats, your product has been successfully deleted: ', product); }, diff --git a/docs/3.x.x/en/guides/authentication.md b/docs/3.x.x/en/guides/authentication.md index 1e74f59b0f..496bcb3b07 100644 --- a/docs/3.x.x/en/guides/authentication.md +++ b/docs/3.x.x/en/guides/authentication.md @@ -97,7 +97,7 @@ By default, each API request is identified as `guest` role (see permissions of ` ```js $.ajax({ type: 'GET', - url: 'http://localhost:1337/article', + url: 'http://localhost:1337/articles', headers: { Authorization: `Bearer ${token}` }, diff --git a/docs/3.x.x/en/guides/filters.md b/docs/3.x.x/en/guides/filters.md index 351a6f5a5b..e1f2119855 100644 --- a/docs/3.x.x/en/guides/filters.md +++ b/docs/3.x.x/en/guides/filters.md @@ -29,11 +29,11 @@ Easily filter results according to fields values. Find users having `John` as first name. -`GET /user?firstName=John` +`GET /users?firstName=John` Find products having a price equal or greater than `3`. -`GET /product?price_gte=3` +`GET /products?price_gte=3` ### Sort @@ -43,8 +43,8 @@ Sort according to a specific field. Sort users by email. - - ASC: `GET /user?_sort=email:asc` - - DESC: `GET /user?_sort=email:desc` + - ASC: `GET /users?_sort=email:asc` + - DESC: `GET /users?_sort=email:desc` ### Limit @@ -54,7 +54,7 @@ Limit the size of the returned results. Limit the result length to 30. -`GET /user?_limit=30` +`GET /users?_limit=30` ### Start @@ -64,7 +64,7 @@ Skip a specific number of entries (especially useful for pagination). Get the second page of results. -`GET /user?_start=10&_limit=10` +`GET /users?_start=10&_limit=10` ## Programmatic usage diff --git a/docs/3.x.x/en/guides/policies.md b/docs/3.x.x/en/guides/policies.md index e0553f1659..caf25ddfac 100644 --- a/docs/3.x.x/en/guides/policies.md +++ b/docs/3.x.x/en/guides/policies.md @@ -40,7 +40,7 @@ The global policies can be associated to any routes in your project. "routes": [ { "method": "GET", - "path": "/car", + "path": "/cars", "handler": "Car.find", "config": { "policies": [ @@ -66,7 +66,7 @@ Plugins can add and expose policies into your app. For example, the plugin `Auth "routes": [ { "method": "GET", - "path": "/car", + "path": "/cars", "handler": "Car.find", "config": { "policies": [ @@ -102,7 +102,7 @@ module.exports = async (ctx, next) => { "routes": [ { "method": "GET", - "path": "/car", + "path": "/cars", "handler": "Car.find", "config": { "policies": [ diff --git a/docs/3.x.x/en/guides/routing.md b/docs/3.x.x/en/guides/routing.md index 8f97c04489..5fc6228233 100644 --- a/docs/3.x.x/en/guides/routing.md +++ b/docs/3.x.x/en/guides/routing.md @@ -12,17 +12,17 @@ You have to edit the `routes.json` file in one of your APIs folders (`./api/**/c "routes": [ { "method": "GET", - "path": "/product", + "path": "/products", "handler": "Product.find", }, { "method": ["POST", "PUT"], - "path": "/product/:id", + "path": "/products/:id", "handler": "Product.createOrUpdate", }, { "method": "POST", - "path": "/product/:id/buy", + "path": "/products/:id/buy", "handler": "Product.buy", "config": { "policies": ["isAuthenticated", "hasCreditCard"] @@ -33,7 +33,7 @@ You have to edit the `routes.json` file in one of your APIs folders (`./api/**/c ``` - `method` (string): Method or array of methods to hit the route (ex: `GET`, `POST`, `PUT`, `HEAD`, `DELETE`, `PATCH`) -- `path` (string): URL starting with `/` (ex: `/product`) +- `path` (string): URL starting with `/` (ex: `/products`) - `handler` (string): Action to executed when the route is hit following this syntax `.` - `config` - `policies` (array): Array of policies names or path ([see more](../guides/policies.md)) @@ -48,12 +48,12 @@ The router used by Strapi allows you to create dynamic routes where you can use "routes": [ { "method": "GET", - "path": "/product/:category/:id", + "path": "/products/:category/:id", "handler": "Product.findOneByCategory", }, { "method": "GET", - "path": "/product/:region(\\d{2}|\\d{3})/:id", // Only match when the first parameter contains 2 or 3 digits. + "path": "/products/:region(\\d{2}|\\d{3})/:id", // Only match when the first parameter contains 2 or 3 digits. "handler": "Product.findOneByRegion", } ] diff --git a/packages/strapi-generate-api/json/routes.json.js b/packages/strapi-generate-api/json/routes.json.js index 96c1489f71..7f65faf4af 100755 --- a/packages/strapi-generate-api/json/routes.json.js +++ b/packages/strapi-generate-api/json/routes.json.js @@ -21,42 +21,42 @@ module.exports = scope => { const routes = { routes: [{ method: 'GET', - path: '/' + scope.humanizeId, + path: '/' + scope.idPluralized, handler: scope.globalID + '.find', config: { policies: [] } }, { method: 'GET', - path: '/' + scope.humanizeId + '/count', + path: '/' + scope.idPluralized + '/count', handler: scope.globalID + '.count', config: { policies: [] } }, { method: 'GET', - path: '/' + scope.humanizeId + '/:' + tokenID, + path: '/' + scope.idPluralized + '/:' + tokenID, handler: scope.globalID + '.findOne', config: { policies: [] } }, { method: 'POST', - path: '/' + scope.humanizeId, + path: '/' + scope.idPluralized, handler: scope.globalID + '.create', config: { policies: [] } }, { method: 'PUT', - path: '/' + scope.humanizeId + '/:' + tokenID, + path: '/' + scope.idPluralized + '/:' + tokenID, handler: scope.globalID + '.update', config: { policies: [] } }, { method: 'DELETE', - path: '/' + scope.humanizeId + '/:' + tokenID, + path: '/' + scope.idPluralized + '/:' + tokenID, handler: scope.globalID + '.destroy', config: { policies: [] @@ -67,21 +67,21 @@ module.exports = scope => { if (scope.args.tpl && scope.args.tpl !== 'mongoose') { routes.routes.push({ method: 'POST', - path: '/' + scope.humanizeId + '/:' + tokenID + '/relationships/:relation', + path: '/' + scope.idPluralized + '/:' + tokenID + '/relationships/:relation', handler: scope.globalID + '.createRelation', config: { policies: [] } }, { method: 'PUT', - path: '/' + scope.humanizeId + '/:' + tokenID + '/relationships/:relation', + path: '/' + scope.idPluralized + '/:' + tokenID + '/relationships/:relation', handler: scope.globalID + '.updateRelation', config: { policies: [] } }, { method: 'DELETE', - path: '/' + scope.humanizeId + '/:' + tokenID + '/relationships/:relation', + path: '/' + scope.idPluralized + '/:' + tokenID + '/relationships/:relation', handler: scope.globalID + '.destroyRelation', config: { policies: [] diff --git a/packages/strapi-generate-new/files/config/environments/development/server.json b/packages/strapi-generate-new/files/config/environments/development/server.json index 46db2086bb..81302a2134 100755 --- a/packages/strapi-generate-new/files/config/environments/development/server.json +++ b/packages/strapi-generate-new/files/config/environments/development/server.json @@ -9,5 +9,8 @@ }, "cron": { "enabled": false + }, + "admin": { + "autoOpen": true } } diff --git a/packages/strapi-generate-new/files/config/environments/production/server.json b/packages/strapi-generate-new/files/config/environments/production/server.json index bc0294e31f..4e5d9d1b5e 100755 --- a/packages/strapi-generate-new/files/config/environments/production/server.json +++ b/packages/strapi-generate-new/files/config/environments/production/server.json @@ -9,5 +9,8 @@ }, "cron": { "enabled": false + }, + "admin": { + "autoOpen": false } } diff --git a/packages/strapi-generate-new/files/config/environments/staging/server.json b/packages/strapi-generate-new/files/config/environments/staging/server.json index bc0294e31f..4e5d9d1b5e 100755 --- a/packages/strapi-generate-new/files/config/environments/staging/server.json +++ b/packages/strapi-generate-new/files/config/environments/staging/server.json @@ -9,5 +9,8 @@ }, "cron": { "enabled": false + }, + "admin": { + "autoOpen": false } } diff --git a/packages/strapi-plugin-email/controllers/Email.js b/packages/strapi-plugin-email/controllers/Email.js index 95cb9073be..baf3e588fb 100644 --- a/packages/strapi-plugin-email/controllers/Email.js +++ b/packages/strapi-plugin-email/controllers/Email.js @@ -28,9 +28,9 @@ module.exports = { return; } - let options = ctx.request.body; + let options = ctx.request.body; - await strapi.plugins.email.services.send(options, config); + await strapi.plugins.email.services.email.send(options, config); // Send 200 `ok` ctx.send({}); @@ -48,7 +48,7 @@ module.exports = { }, getSettings: async (ctx) => { - let config = await strapi.plugins.email.services.email.getProviderConfig(ctx.params.environment); + let config = await strapi.plugins.email.services.email.getProviderConfig(ctx.params.environment); ctx.send({ providers: strapi.plugins.email.config.providers, diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/List/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/List/styles.scss index 5307203cc9..a2796a0c04 100755 --- a/packages/strapi-plugin-settings-manager/admin/src/components/List/styles.scss +++ b/packages/strapi-plugin-settings-manager/admin/src/components/List/styles.scss @@ -113,14 +113,16 @@ button { margin-left: 1rem; } -.flexed { +.flexed, +.label { display: flex; } .label { + align-items: center; + line-height: 1; width: 15rem; height: 5.2rem; - line-height: 5.2rem; margin-left: 5rem; color: #333740; font-weight: 600; diff --git a/packages/strapi-plugin-users-permissions/config/routes.json b/packages/strapi-plugin-users-permissions/config/routes.json index b9881d1e9d..0cb559e3c5 100644 --- a/packages/strapi-plugin-users-permissions/config/routes.json +++ b/packages/strapi-plugin-users-permissions/config/routes.json @@ -211,10 +211,9 @@ "prefix": "" } }, - { "method": "GET", - "path": "/user", + "path": "/users", "handler": "User.find", "config": { "policies": [], @@ -223,7 +222,7 @@ }, { "method": "GET", - "path": "/user/me", + "path": "/users/me", "handler": "User.me", "config": { "policies": [], @@ -232,7 +231,7 @@ }, { "method": "GET", - "path": "/user/:_id", + "path": "/users/:_id", "handler": "User.findOne", "config": { "policies": [], @@ -241,7 +240,7 @@ }, { "method": "POST", - "path": "/user", + "path": "/users", "handler": "User.create", "config": { "policies": [], @@ -250,7 +249,7 @@ }, { "method": "PUT", - "path": "/user/:_id", + "path": "/users/:_id", "handler": "User.update", "config": { "policies": [], @@ -259,7 +258,7 @@ }, { "method": "DELETE", - "path": "/user/:_id", + "path": "/users/:_id", "handler": "User.destroy", "config": { "policies": [],