summaryrefslogtreecommitdiffstats
path: root/web/react/components/password_reset_send_link.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'web/react/components/password_reset_send_link.jsx')
-rw-r--r--web/react/components/password_reset_send_link.jsx186
1 files changed, 94 insertions, 92 deletions
diff --git a/web/react/components/password_reset_send_link.jsx b/web/react/components/password_reset_send_link.jsx
index 8cc8a050d..ce6253e16 100644
--- a/web/react/components/password_reset_send_link.jsx
+++ b/web/react/components/password_reset_send_link.jsx
@@ -4,26 +4,7 @@
import * as Utils from '../utils/utils.jsx';
import * as client from '../utils/client.jsx';
-import {injectIntl, intlShape, defineMessages, FormattedMessage} from 'mm-intl';
-
-const holders = defineMessages({
- error: {
- id: 'password_send.error',
- defaultMessage: 'Please enter a valid email address.'
- },
- link: {
- id: 'password_send.link',
- defaultMessage: '<p>A password reset link has been sent to <b>{email}</b> for your <b>{teamDisplayName}</b> team on {hostname}.</p>'
- },
- checkInbox: {
- id: 'password_send.checkInbox',
- defaultMessage: 'Please check your inbox.'
- },
- email: {
- id: 'password_send.email',
- defaultMessage: 'Email'
- }
-});
+import {FormattedMessage, FormattedHTMLMessage} from 'mm-intl';
class PasswordResetSendLink extends React.Component {
constructor(props) {
@@ -31,48 +12,64 @@ class PasswordResetSendLink extends React.Component {
this.handleSendLink = this.handleSendLink.bind(this);
- this.state = {};
+ this.state = {
+ error: '',
+ updateText: ''
+ };
}
handleSendLink(e) {
e.preventDefault();
- var state = {};
- const {formatMessage} = this.props.intl;
var email = ReactDOM.findDOMNode(this.refs.email).value.trim().toLowerCase();
if (!email || !Utils.isEmail(email)) {
- state.error = formatMessage(holders.error);
- this.setState(state);
+ this.setState({
+ error: (
+ <FormattedMessage
+ id={'password_send.error'}
+ defaultMessage={'Please enter a valid email address.'}
+ />
+ )
+ });
return;
}
- state.error = null;
- this.setState(state);
+ // End of error checking clear error
+ this.setState({
+ error: ''
+ });
var data = {};
data.email = email;
- data.name = this.props.teamName;
-
+ data.name = this.props.params.team;
client.sendPasswordReset(data,
- function passwordResetSent() {
- this.setState({error: null, updateText: formatMessage(holders.link, {email: email, teamDisplayName: this.props.teamDisplayName, hostname: window.location.hostname}), moreUpdateText: formatMessage(holders.checkInbox)});
- $(ReactDOM.findDOMNode(this.refs.reset_form)).hide();
- }.bind(this),
- function passwordResetFailedToSend(err) {
- this.setState({error: err.message, update_text: null, moreUpdateText: null});
- }.bind(this)
- );
+ () => {
+ this.setState({
+ error: null,
+ updateText: (
+ <div className='reset-form alert alert-success'>
+ <FormattedHTMLMessage
+ id='password_send.link'
+ defaultMessage='<p>A password reset link has been sent to <b>{email}</b></p>'
+ email={email}
+ />
+ <FormattedMessage
+ id={'password_send.checkInbox'}
+ defaultMessage={'Please check your inbox.'}
+ />
+ </div>
+ )
+ });
+ $(ReactDOM.findDOMNode(this.refs.reset_form)).hide();
+ },
+ (err) => {
+ this.setState({
+ error: err.message,
+ update_text: null
+ });
+ }
+ );
}
render() {
- var updateText = null;
- if (this.state.updateText) {
- updateText = (
- <div className='reset-form alert alert-success'
- dangerouslySetInnerHTML={{__html: this.state.updateText + this.state.moreUpdateText}}
- >
- </div>
- );
- }
-
var error = null;
if (this.state.error) {
error = <div className='form-group has-error'><label className='control-label'>{this.state.error}</label></div>;
@@ -83,51 +80,60 @@ class PasswordResetSendLink extends React.Component {
formClass += ' has-error';
}
- const {formatMessage} = this.props.intl;
return (
- <div className='col-sm-12'>
- <div className='signup-team__container'>
- <h3>
+ <div>
+ <div className='signup-header'>
+ <a href='/'>
+ <span className='fa fa-chevron-left'/>
<FormattedMessage
- id='password_send.title'
- defaultMessage='Password Reset'
+ id='web.header.back'
/>
- </h3>
- {updateText}
- <form
- onSubmit={this.handleSendLink}
- ref='reset_form'
- >
- <p>
+ </a>
+ </div>
+ <div className='col-sm-12'>
+ <div className='signup-team__container'>
+ <h3>
<FormattedMessage
- id='password_send.description'
- defaultMessage='To reset your password, enter the email address you used to sign up for {teamName}.'
- values={{
- teamName: this.props.teamDisplayName
- }}
+ id='password_send.title'
+ defaultMessage='Password Reset'
/>
- </p>
- <div className={formClass}>
- <input
- type='email'
- className='form-control'
- name='email'
- ref='email'
- placeholder={formatMessage(holders.email)}
- spellCheck='false'
- />
- </div>
- {error}
- <button
- type='submit'
- className='btn btn-primary'
+ </h3>
+ {this.state.updateText}
+ <form
+ onSubmit={this.handleSendLink}
+ ref='reset_form'
>
- <FormattedMessage
- id='password_send.reset'
- defaultMessage='Reset my password'
- />
- </button>
- </form>
+ <p>
+ <FormattedMessage
+ id='password_send.description'
+ defaultMessage='To reset your password, enter the email address you used to sign up'
+ />
+ </p>
+ <div className={formClass}>
+ <input
+ type='email'
+ className='form-control'
+ name='email'
+ ref='email'
+ placeholder={Utils.localizeMessage(
+ 'password_send.email',
+ 'Email'
+ )}
+ spellCheck='false'
+ />
+ </div>
+ {error}
+ <button
+ type='submit'
+ className='btn btn-primary'
+ >
+ <FormattedMessage
+ id='password_send.reset'
+ defaultMessage='Reset my password'
+ />
+ </button>
+ </form>
+ </div>
</div>
</div>
);
@@ -135,13 +141,9 @@ class PasswordResetSendLink extends React.Component {
}
PasswordResetSendLink.defaultProps = {
- teamName: '',
- teamDisplayName: ''
};
PasswordResetSendLink.propTypes = {
- intl: intlShape.isRequired,
- teamName: React.PropTypes.string,
- teamDisplayName: React.PropTypes.string
+ params: React.PropTypes.object.isRequired
};
-export default injectIntl(PasswordResetSendLink); \ No newline at end of file
+export default PasswordResetSendLink;