diff --git a/packages/strapi-plugin-users-permissions/admin/src/components/ListRow/index.js b/packages/strapi-plugin-users-permissions/admin/src/components/ListRow/index.js
index b1bd98f011..3c66b6dd25 100644
--- a/packages/strapi-plugin-users-permissions/admin/src/components/ListRow/index.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/components/ListRow/index.js
@@ -141,7 +141,7 @@ class ListRow extends React.Component { // eslint-disable-line react/prefer-stat
}
case 'providers':
case 'email-templates':
- return router.push(`${router.location.pathname}#edit::${this.props.settingType}::${this.props.item.id}`);
+ return this.context.setDataToEdit(this.props.item.name);
default:
return;
}
@@ -168,6 +168,10 @@ class ListRow extends React.Component { // eslint-disable-line react/prefer-stat
}
}
+ListRow.contextTypes = {
+ setDataToEdit: PropTypes.func.isRequired,
+};
+
ListRow.defaultProps = {
item: {
name: 'Owner',
diff --git a/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js b/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js
index 09503ac0ae..dc0c60c3f3 100644
--- a/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js
@@ -8,16 +8,16 @@ import React from 'react';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
-import { get } from 'lodash';
-import { router } from 'app';
+import { get, isObject, includes, map, take, takeRight } from 'lodash';
+
+// Translations
+import en from 'translations/en.json';
import Input from 'components/Input';
import styles from './styles.scss';
class PopUpForm extends React.Component { // eslint-disable-line react/prefer-stateless-function
- toggleModal = () => router.push(router.location.pathname);
-
renderButton = () => {
if (this.props.showLoader) {
return (
@@ -37,6 +37,8 @@ class PopUpForm extends React.Component { // eslint-disable-line react/prefer-st
}
renderForm = () => {
+ const { dataToEdit, values } = this.props;
+
if (this.props.settingType === 'providers') {
return (
@@ -64,71 +66,74 @@ class PopUpForm extends React.Component { // eslint-disable-line react/prefer-st
);
}
+ const form = Object.keys(values.options || {}).reduce((acc, current) => {
+ if (isObject(get(values, ['options', current]))) {
+ return Object.keys(get(values, ['options', current], {}))
+ .reduce((acc, curr) => {
+ acc.push(`options.${current}.${curr}`);
+
+ return acc;
+ }, []).concat(acc);
+ } else {
+ acc.push(`options.${current}`);
+ }
+
+ return acc;
+ }, []);
+
return (
);
}
render() {
+ const { actionType, dataToEdit, display, settingType } = this.props.values;
+
+ let header =
{dataToEdit};
+
+ if (actionType) {
+ header = ;
+ }
+
+ if (display && en[display]) {
+ header =
;
+ }
+
return (
-
-
+
+
- {this.props.actionType ? (
-
- ) :
}
+ {header}
-
@@ -155,11 +170,17 @@ export class HomePage extends React.Component {
}
}
+HomePage.childContextTypes = {
+ setDataToEdit: PropTypes.func,
+ unsetDataToEdit: PropTypes.func,
+};
+
HomePage.defaultProps = {};
HomePage.propTypes = {
cancelChanges: PropTypes.func.isRequired,
data: PropTypes.array.isRequired,
+ dataToEdit: PropTypes.string.isRequired,
deleteData: PropTypes.func.isRequired,
fetchData: PropTypes.func.isRequired,
history: PropTypes.object.isRequired,
@@ -168,7 +189,9 @@ HomePage.propTypes = {
match: PropTypes.object.isRequired,
modifiedData: PropTypes.object.isRequired,
onChange: PropTypes.func.isRequired,
+ setDataToEdit: PropTypes.func.isRequired,
submit: PropTypes.func.isRequired,
+ unsetDataToEdit: PropTypes.func.isRequired,
};
@@ -179,7 +202,9 @@ function mapDispatchToProps(dispatch) {
deleteData,
fetchData,
onChange,
+ setDataToEdit,
submit,
+ unsetDataToEdit,
},
dispatch,
);
diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/reducer.js b/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/reducer.js
index f65b5227e0..aadb48d052 100755
--- a/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/reducer.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/reducer.js
@@ -12,13 +12,16 @@ import {
DELETE_DATA_SUCCEEDED,
FETCH_DATA_SUCCEEDED,
ON_CHANGE,
+ SET_DATA_TO_EDIT,
SET_FORM,
SUBMIT_SUCCEEDED,
+ UNSET_DATA_TO_EDIT,
} from './constants';
const initialState = fromJS({
data: List([]),
dataToDelete: Map({}),
+ dataToEdit: '',
deleteEndPoint: '',
initialData: Map({}),
modifiedData: Map({}),
@@ -27,8 +30,7 @@ const initialState = fromJS({
function homePageReducer(state = initialState, action) {
switch (action.type) {
case CANCEL_CHANGES:
- return state
- .update('modifiedData', () => state.get('initialData'));
+ return state.update('modifiedData', () => state.get('initialData'));
case DELETE_DATA:
return state
.set('dataToDelete', Map(action.dataToDelete))
@@ -39,17 +41,25 @@ function homePageReducer(state = initialState, action) {
.set('deleteEndPoint', '')
.set('dataToDelete', Map({}));
case FETCH_DATA_SUCCEEDED:
- return state.set('data', List(action.data));
+ return state
+ .set('data', List(action.data))
+ .set('initialData', action.modifiedData)
+ .set('modifiedData', action.modifiedData);
case ON_CHANGE:
return state
.updateIn(action.keys, () => action.value);
+ case SET_DATA_TO_EDIT:
+ return state.update('dataToEdit', () => action.dataToEdit);
case SET_FORM:
return state
.set('initialData', action.form)
.set('modifiedData', action.form);
case SUBMIT_SUCCEEDED:
+ return state.update('initialData', () => state.get('modifiedData'));
+ case UNSET_DATA_TO_EDIT:
return state
- .update('initialData', () => state.get('modifiedData'));
+ .update('dataToEdit', () => '')
+ .update('modifiedData', () => state.get('initialData'));
default:
return state;
}
diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/en.json b/packages/strapi-plugin-users-permissions/admin/src/translations/en.json
index 175b9b8dd8..37df64d861 100755
--- a/packages/strapi-plugin-users-permissions/admin/src/translations/en.json
+++ b/packages/strapi-plugin-users-permissions/admin/src/translations/en.json
@@ -138,13 +138,18 @@
"PopUpForm.inputSelect.providers.label": "Choose the provider",
"PopUpForm.inputToggle.providers.label": "Enable",
"PopUpForm.inputToggle.providers.description": "If disabled, the users won't be able to use this provider.",
- "PopUpForm.inputText.shipperName.label": "Shipper name",
- "PopUpForm.inputEmail.shipperEmail.label": "Shipper email",
- "PopUpForm.inputEmail.responseEmail.label": "Response email",
- "PopUpForm.inputText.emailObject.label": "Object",
- "PopUpForm.inputText.emailObject.placeholder": "Please confirm your email address for %APP_NAME%",
- "PopUpForm.inputTextArea.message.label": "Message",
- "PopUpForm.inputTextArea.message.placeholder": "Please click on this link to validate your account
",
- "PopUpForm.inputEmail.placeholder": "johndoe@gmail.com",
- "PopUpForm.inputText.shipperName.placeholder": "John Doe"
+ "PopUpForm.Email.options.from.name.label": "Shipper name",
+ "PopUpForm.Email.options.from.email.label": "Shipper email",
+ "PopUpForm.Email.options.response_email.label": "Response email",
+ "PopUpForm.Email.options.object.label": "Object",
+ "PopUpForm.Email.options.message.label": "Message",
+ "PopUpForm.Email.validation_email.options.object.placeholder": "Please confirm your email address for %APP_NAME%",
+ "PopUpForm.Email.reset_password.options.object.placeholder": "Please confirm your email address for %APP_NAME%",
+ "PopUpForm.Email.success_register.options.object.placeholder": "Please confirm your email address for %APP_NAME%",
+ "PopUpForm.Email.validation_email.options.message.placeholder": "Please click on this link to validate your account
",
+ "PopUpForm.Email.reset_password.options.message.placeholder": "Please click on this link to validate your account
",
+ "PopUpForm.Email.success_register.options.message.placeholder": "Please click on this link to validate your account
",
+ "PopUpForm.Email.options.from.email.placeholder": "johndoe@gmail.com",
+ "PopUpForm.Email.options.response_email.placeholder": "johndoe@gmail.com",
+ "PopUpForm.Email.options.from.name.placeholder": "John Doe"
}
diff --git a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js
index c2604476ca..98999dcdea 100644
--- a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js
+++ b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js
@@ -82,10 +82,10 @@ module.exports = cb => {
icon: 'envelope',
options: {
from: {
- email: '',
- name: ''
+ name: 'Administration Panel',
+ email: 'no-reply@strapi.io'
},
- respond: '',
+ response_email: '',
object: '',
message: ''
}
@@ -95,10 +95,10 @@ module.exports = cb => {
icon: 'refresh',
options: {
from: {
- email: '',
- name: ''
+ name: 'Administration Panel',
+ email: 'no-reply@strapi.io'
},
- respond: '',
+ response_email: '',
object: 'Reset password 🔑 ',
message: `We heard that you lost your password. Sorry about that!
@@ -114,10 +114,10 @@ module.exports = cb => {
icon: 'check',
options: {
from: {
- email: '',
- name: ''
+ name: 'Administration Panel',
+ email: 'no-reply@strapi.io'
},
- respond: '',
+ response_email: '',
object: '',
message: ''
}
diff --git a/packages/strapi-plugin-users-permissions/controllers/Auth.js b/packages/strapi-plugin-users-permissions/controllers/Auth.js
index c8833922fa..a553462aac 100644
--- a/packages/strapi-plugin-users-permissions/controllers/Auth.js
+++ b/packages/strapi-plugin-users-permissions/controllers/Auth.js
@@ -144,7 +144,7 @@ module.exports = {
await strapi.plugins['email'].services.email.send({
to: user.email,
from: (settings.from.email || settings.from.email) ? `"${settings.from.name}" <${settings.from.email}>` : undefined,
- replyTo: settings.respond,
+ replyTo: settings.response_email,
subject: object,
text: message,
html: message