diff --git a/packages/strapi-admin/admin/src/containers/NotFoundPage/index.js b/packages/strapi-admin/admin/src/containers/NotFoundPage/index.js index 0013c9db28..9c379c3d72 100644 --- a/packages/strapi-admin/admin/src/containers/NotFoundPage/index.js +++ b/packages/strapi-admin/admin/src/containers/NotFoundPage/index.js @@ -30,16 +30,15 @@ export default class NotFound extends React.Component { // eslint-disable-line r + /> ); } diff --git a/packages/strapi-admin/admin/src/translations/en.json b/packages/strapi-admin/admin/src/translations/en.json index 0ab4c348a2..725671d08b 100644 --- a/packages/strapi-admin/admin/src/translations/en.json +++ b/packages/strapi-admin/admin/src/translations/en.json @@ -9,5 +9,6 @@ "app.components.LeftMenuLinkContainer.listPlugins": "List plugins", "app.components.LeftMenuLinkContainer.noPluginsInstalled": "No plugins installed yet", "app.components.LeftMenuLinkContainer.plugins": "Plugins", - "app.components.NotFoundPage.description": "" + "app.components.NotFoundPage.description": "Not Found", + "app.components.NotFoundPage.back": "Back to homepage" } diff --git a/packages/strapi-admin/admin/src/translations/fr.json b/packages/strapi-admin/admin/src/translations/fr.json index b175c73266..c5bf22d06e 100644 --- a/packages/strapi-admin/admin/src/translations/fr.json +++ b/packages/strapi-admin/admin/src/translations/fr.json @@ -9,5 +9,6 @@ "app.components.LeftMenuLinkContainer.listPlugins": "Liste des plugins", "app.components.LeftMenuLinkContainer.noPluginsInstalled": "Aucun plugin installé", "app.components.LeftMenuLinkContainer.plugins": "Plugins", - "app.components.NotFoundPage.description": "Page introuvable" + "app.components.NotFoundPage.description": "Page introuvable", + "app.components.NotFoundPage.back": "Retourner à la page d'accueil" } diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json index 668f89d2f1..831b2f60c7 100644 --- a/packages/strapi-admin/package.json +++ b/packages/strapi-admin/package.json @@ -33,12 +33,12 @@ "eslint": "^4.7.2", "eslint-config-airbnb": "^15.1.0", "eslint-config-airbnb-base": "^11.3.2", - "eslint-config-prettier": "^2.5.0", + "eslint-config-prettier": "^2.6.0", "eslint-import-resolver-webpack": "^0.8.3", "eslint-plugin-babel": "^4.1.2", "eslint-plugin-import": "^2.7.0", "eslint-plugin-jsx-a11y": "^6.0.2", - "eslint-plugin-react": "^7.3.0", + "eslint-plugin-react": "^7.4.0", "eslint-plugin-redux-saga": "^0.4.0", "extract-text-webpack-plugin": "^1.0.1", "html-loader": "^0.4.3", diff --git a/packages/strapi-helper-plugin/lib/src/utils/cleanData.js b/packages/strapi-helper-plugin/lib/src/utils/cleanData.js index 5b3f7468c6..ca4b8099b9 100644 --- a/packages/strapi-helper-plugin/lib/src/utils/cleanData.js +++ b/packages/strapi-helper-plugin/lib/src/utils/cleanData.js @@ -1,19 +1,13 @@ -import { isArray } from 'lodash'; +import { isArray, isObject } from 'lodash'; -function cleanData(value, key, secondKey) { +const cleanData = (value, key, secondKey) => { if (isArray(value)) { - return value.map(obj => { - if (obj[key]) { - return obj[key]; - } - - return obj; - }); - } else if (_.isObject(value)) { + return value.map(obj => obj[key] ? obj[key] : obj); + } else if (isObject(value)) { return value[key] || value[secondKey]; + } else { + return value; } - - return value; } export default cleanData; diff --git a/packages/strapi-helper-plugin/lib/src/utils/request.js b/packages/strapi-helper-plugin/lib/src/utils/request.js index a5ef761ec7..c040c04d1c 100644 --- a/packages/strapi-helper-plugin/lib/src/utils/request.js +++ b/packages/strapi-helper-plugin/lib/src/utils/request.js @@ -8,12 +8,7 @@ import 'whatwg-fetch'; * @return {object} The parsed JSON from the request */ function parseJSON(response) { - if (response.json) { - return response.json(); - } - - return response; -} + return response.json : response.json() : response; /** * Checks if a network request came back fine, and throws an error if not diff --git a/packages/strapi-plugin-content-manager/admin/src/components/SelectMany/index.js b/packages/strapi-plugin-content-manager/admin/src/components/SelectMany/index.js index 10357d4a3d..308b2a4bdd 100644 --- a/packages/strapi-plugin-content-manager/admin/src/components/SelectMany/index.js +++ b/packages/strapi-plugin-content-manager/admin/src/components/SelectMany/index.js @@ -55,6 +55,9 @@ class SelectMany extends React.Component { // eslint-disable-line react/prefer-s }]; return { options }; + }) + .catch(() => { + window.Strapi.notification.error('An error occurred during relationship fetch.'); }); } diff --git a/packages/strapi-plugin-content-manager/admin/src/components/SelectOne/index.js b/packages/strapi-plugin-content-manager/admin/src/components/SelectOne/index.js index 00721ded5f..0290151566 100644 --- a/packages/strapi-plugin-content-manager/admin/src/components/SelectOne/index.js +++ b/packages/strapi-plugin-content-manager/admin/src/components/SelectOne/index.js @@ -55,6 +55,9 @@ class SelectOne extends React.Component { // eslint-disable-line react/prefer-st }]; return {options}; + }) + .catch(() => { + window.Strapi.notification.error('An error occurred during relationship fetch.'); }); } diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/App/sagas.js b/packages/strapi-plugin-content-manager/admin/src/containers/App/sagas.js index b19dd4fa7f..1e08e990a3 100644 --- a/packages/strapi-plugin-content-manager/admin/src/containers/App/sagas.js +++ b/packages/strapi-plugin-content-manager/admin/src/containers/App/sagas.js @@ -9,25 +9,22 @@ import { LOAD_MODELS, LOADED_MODELS } from './constants'; import { makeSelectModels } from './selectors'; export const generateMenu = function () { - try { - return request(`${window.Strapi.apiUrl}/content-manager/models`, { - method: 'GET', + return request(`${window.Strapi.apiUrl}/content-manager/models`, { + method: 'GET', + }) + .then(response => generateSchema(response)) + .then(displayedModels => { + return [{ + name: 'Content Types', + links: _.map(displayedModels, (model, key) => ({ + label: model.labelPlural || model.label || key, + destination: key, + })), + }]; }) - .then(response => generateSchema(response)) - .then(displayedModels => { - return [{ - name: 'Content Types', - links: _.map(displayedModels, (model, key) => ({ - label: model.labelPlural || model.label || key, - destination: key, - })), - }]; - }); - } catch (err) { - window.Strapi.notification.error( - 'An error occurred during models config fetch.' - ); - } + .catch(() => { + window.Strapi.notification.error('error.model.fetch'); + }); } export function* getModels() { @@ -39,9 +36,7 @@ export function* getModels() { yield put(loadedModels(response)); } catch (err) { - window.Strapi.notification.error( - 'An error occurred during models config fetch.' - ); + window.Strapi.notification.error('error.model.fetch'); } } @@ -52,9 +47,7 @@ export function* modelsLoaded() { try { schema = generateSchema(models); } catch (err) { - window.Strapi.notification.error( - 'An error occurred during schema generation.' - ); + window.Strapi.notification.error('error.schema.generation'); throw new Error(err); } diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/Edit/sagas.js b/packages/strapi-plugin-content-manager/admin/src/containers/Edit/sagas.js index b2d06393e7..f001767a17 100644 --- a/packages/strapi-plugin-content-manager/admin/src/containers/Edit/sagas.js +++ b/packages/strapi-plugin-content-manager/admin/src/containers/Edit/sagas.js @@ -32,7 +32,7 @@ export function* getRecord(params) { yield put(recordLoaded(response)); } catch (err) { - window.Strapi.notification.error('An error occurred during record fetch.'); + window.Strapi.notification.error('error.record.fetch'); } } @@ -60,14 +60,10 @@ export function* editRecord() { }); yield put(recordEdited()); - window.Strapi.notification.success( - `Saved` - ); + window.Strapi.notification.success('content-manager.success.record.save'); } catch (err) { yield put(recordEditError()); - window.Strapi.notification.error( - `An error occurred during record ${isCreating ? 'creation' : 'update'}.` - ); + window.Strapi.notification.error(isCreating ? 'content-manager.error.record.create' : 'content-manager.error.record.update'); } } @@ -82,17 +78,13 @@ export function* deleteRecord({ id, modelName }) { }); yield put(recordDeleted(id)); - window.Strapi.notification.success( - 'Deleted' - ); + window.Strapi.notification.success('success.record.delete'); // Redirect to the list page. router.push(`/plugins/content-manager/${modelName}`); } catch (err) { yield put(recordDeleteError()); - window.Strapi.notification.error( - 'An error occurred during record deletion.' - ); + window.Strapi.notification.error('error.record.delete'); } } diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/List/sagas.js b/packages/strapi-plugin-content-manager/admin/src/containers/List/sagas.js index 7347ade1b8..3200c3ab7e 100644 --- a/packages/strapi-plugin-content-manager/admin/src/containers/List/sagas.js +++ b/packages/strapi-plugin-content-manager/admin/src/containers/List/sagas.js @@ -50,7 +50,7 @@ export function* getRecords() { yield put(loadedRecord(response)); } catch (err) { - window.Strapi.notification.error('An error occurred during records fetch.'); + window.Strapi.notification.error('error.records.fetch'); } } @@ -65,9 +65,7 @@ export function* getCount() { yield put(loadedCount(response.count)); } catch (err) { - window.Strapi.notification.error( - 'An error occurred during count records fetch.' - ); + window.Strapi.notification.error('error.records.count'); } } diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/en.json b/packages/strapi-plugin-content-manager/admin/src/translations/en.json index 15233984fd..928be6b748 100644 --- a/packages/strapi-plugin-content-manager/admin/src/translations/en.json +++ b/packages/strapi-plugin-content-manager/admin/src/translations/en.json @@ -12,6 +12,14 @@ "components.LimitSelect.itemsPerPage": "Items per page", "containers.List.errorFetchRecords": "Error", + "error.schema.generation": "An error occurred during schema generation.", + "error.records.count": "An error occurred during count records fetch.", + "error.records.fetch": "An error occurred during records fetch.", + "error.record.fetch": "An error occurred during record fetch.", + "error.record.create": "An error occurred during record creation.", + "error.record.update": "An error occurred during record update.", + "error.record.delete": "An error occurred during record deletion.", + "error.model.fetch": "An error occurred during models config fetch.", "error.validation.required": "This value input is required.", "error.validation.regex": "The value not match the regex.", "error.validation.max": "The value is too high.", @@ -24,6 +32,9 @@ "error.attribute.sameKeyAndName": "Can't be equals", "error.validation.minSupMax": "Can't be superior", + "success.record.delete": "Deleted", + "success.record.save": "Saved", + "pageNotFound": "Page not found", "popUpWarning.button.cancel": "Cancel", diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/fr.json b/packages/strapi-plugin-content-manager/admin/src/translations/fr.json index cf6c3e2131..196fb41f68 100644 --- a/packages/strapi-plugin-content-manager/admin/src/translations/fr.json +++ b/packages/strapi-plugin-content-manager/admin/src/translations/fr.json @@ -13,6 +13,14 @@ "components.LimitSelect.itemsPerPage": "Éléments par page", "containers.List.errorFetchRecords": "Erreur", + "error.schema.generation": "Une erreur est survenue lors de la génération du schéma.", + "error.records.count": "Une erreur est survenue lors de la réception du nombre d'entrées.", + "error.records.fetch": "Une erreur est survenue lors de la réception des entrées.", + "error.record.fetch": "Une erreur est survenue lors de la réception de l'entrée.", + "error.record.create": "Une erreur est survenue lors de la création de l'entrée.", + "error.record.update": "Une erreur est survenue lors de la modification de l'entrée.", + "error.record.delete": "Une erreur est survenue lors de la suppression de l'entrée.", + "error.model.fetch": "Une erreur est survenue lors de la réception des modèles.", "error.validation.required": "Ce champ est obligatoire.", "error.validation.regex": "La valeur ne correspond pas au format attendu.", "error.validation.max": "La valeur est trop grande.", @@ -25,6 +33,9 @@ "error.attribute.sameKeyAndName": "Ne peuvent pas être égaux", "error.validation.minSupMax": "Ne peut pas être plus grand", + "success.record.delete": "Supprimé", + "success.record.save": "Sauvegardé", + "popUpWarning.button.cancel": "Annuler", "popUpWarning.button.confirm": "Confirmer", "popUpWarning.title": "Confirmation requise", diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index 392b74b4f9..c567291cf1 100644 --- a/packages/strapi-plugin-content-manager/package.json +++ b/packages/strapi-plugin-content-manager/package.json @@ -52,12 +52,12 @@ "eslint": "^4.7.2", "eslint-config-airbnb": "^15.1.0", "eslint-config-airbnb-base": "^11.3.2", - "eslint-config-prettier": "^2.5.0", + "eslint-config-prettier": "^2.6.0", "eslint-import-resolver-webpack": "^0.8.3", "eslint-plugin-babel": "^4.1.2", "eslint-plugin-import": "^2.7.0", "eslint-plugin-jsx-a11y": "^6.0.2", - "eslint-plugin-react": "^7.3.0", + "eslint-plugin-react": "^7.4.0", "eslint-plugin-redux-saga": "^0.4.0", "plop": "^1.8.1", "prettier": "^1.7.0", diff --git a/packages/strapi-plugin-settings-manager/package.json b/packages/strapi-plugin-settings-manager/package.json index 94b706d72e..fb29b41a3b 100644 --- a/packages/strapi-plugin-settings-manager/package.json +++ b/packages/strapi-plugin-settings-manager/package.json @@ -38,12 +38,12 @@ "eslint": "^4.7.2", "eslint-config-airbnb": "^15.1.0", "eslint-config-airbnb-base": "^11.3.2", - "eslint-config-prettier": "^2.5.0", + "eslint-config-prettier": "^2.6.0", "eslint-import-resolver-webpack": "^0.8.3", "eslint-plugin-babel": "^4.1.2", "eslint-plugin-import": "^2.7.0", "eslint-plugin-jsx-a11y": "^6.0.2", - "eslint-plugin-react": "^7.3.0", + "eslint-plugin-react": "^7.4.0", "eslint-plugin-redux-saga": "^0.4.0", "plop": "^1.8.1", "prettier": "^1.7.0",