From 91c83e6ab4ddc37da7b005e3f1383f945126f391 Mon Sep 17 00:00:00 2001 From: JoramWilander Date: Wed, 30 Mar 2016 10:39:13 -0400 Subject: Update email/password settings text depending on sign-in method --- .../user_settings/user_settings_general.jsx | 417 ++++++++++++--------- .../user_settings/user_settings_security.jsx | 251 ++++++++----- 2 files changed, 394 insertions(+), 274 deletions(-) (limited to 'webapp/components') diff --git a/webapp/components/user_settings/user_settings_general.jsx b/webapp/components/user_settings/user_settings_general.jsx index 87cce9dc0..eddbc1efe 100644 --- a/webapp/components/user_settings/user_settings_general.jsx +++ b/webapp/components/user_settings/user_settings_general.jsx @@ -14,7 +14,7 @@ import Constants from 'utils/constants.jsx'; import * as AsyncClient from 'utils/async_client.jsx'; import * as Utils from 'utils/utils.jsx'; -import {intlShape, injectIntl, defineMessages, FormattedMessage, FormattedDate} from 'react-intl'; +import {intlShape, injectIntl, defineMessages, FormattedMessage, FormattedHTMLMessage, FormattedDate} from 'react-intl'; const holders = defineMessages({ usernameReserved: { @@ -37,18 +37,6 @@ const holders = defineMessages({ id: 'user.settings.general.checkEmail', defaultMessage: 'Check your email at {email} to verify the address.' }, - newAddress: { - id: 'user.settings.general.newAddress', - defaultMessage: 'New Address: {email}
Check your email to verify the above address.' - }, - checkEmailNoAddress: { - id: 'user.settings.general.checkEmailNoAddress', - defaultMessage: 'Check your email to verify your new address' - }, - loginGitlab: { - id: 'user.settings.general.loginGitlab', - defaultMessage: 'Log in done through GitLab' - }, validImage: { id: 'user.settings.general.validImage', defaultMessage: 'Only JPG or PNG images may be used for profile pictures' @@ -73,10 +61,6 @@ const holders = defineMessages({ id: 'user.settings.general.username', defaultMessage: 'Username' }, - email: { - id: 'user.settings.general.email', - defaultMessage: 'Email' - }, profilePicture: { id: 'user.settings.general.profilePicture', defaultMessage: 'Profile Picture' @@ -299,9 +283,224 @@ class UserSettingsGeneralTab extends React.Component { return {username: user.username, firstName: user.first_name, lastName: user.last_name, nickname: user.nickname, email: user.email, confirmEmail: '', picture: null, loadingPicture: false, emailChangeInProgress: false}; } + createEmailSection() { + let emailSection; + + if (this.props.activeSection === 'email') { + const emailEnabled = global.window.mm_config.SendEmailNotifications === 'true'; + const emailVerificationEnabled = global.window.mm_config.RequireEmailVerification === 'true'; + const inputs = []; + + let helpText = ( + + ); + + if (!emailEnabled) { + helpText = ( +
+ +
+ ); + } else if (!emailVerificationEnabled) { + helpText = ( + + ); + } else if (this.state.emailChangeInProgress) { + const newEmail = UserStore.getCurrentUser().email; + if (newEmail) { + helpText = ( + + ); + } + } + + let submit = null; + + if (this.props.user.auth_service === '') { + inputs.push( +
+
+ +
+ +
+
+
+ ); + + inputs.push( +
+
+ +
+ +
+
+ {helpText} +
+ ); + + submit = this.submitEmail; + } else if (this.props.user.auth_service === Constants.GITLAB_SERVICE) { + inputs.push( +
+
+ +
+ {helpText} +
+ ); + } else if (this.props.user.auth_service === Constants.LDAP_SERVICE) { + inputs.push( +
+
+ +
+ {helpText} +
+ ); + } + + emailSection = ( + + } + inputs={inputs} + submit={submit} + server_error={this.state.serverError} + client_error={this.state.emailError} + updateSection={(e) => { + this.updateSection(''); + e.preventDefault(); + }} + /> + ); + } else { + let describe = ''; + if (this.props.user.auth_service === '') { + if (this.state.emailChangeInProgress) { + const newEmail = UserStore.getCurrentUser().email; + if (newEmail) { + describe = ( + + ); + } else { + describe = ( + + ); + } + } else { + describe = UserStore.getCurrentUser().email; + } + } else if (this.props.user.auth_service === Constants.GITLAB_SERVICE) { + describe = ( + + ); + } else if (this.props.user.auth_service === Constants.LDAP_SERVICE) { + describe = ( + + ); + } + + emailSection = ( + + } + describe={describe} + updateSection={() => { + this.updateSection('email'); + }} + /> + ); + } + + return emailSection; + } render() { const user = this.props.user; - const {formatMessage, formatHTMLMessage} = this.props.intl; + const {formatMessage} = this.props.intl; let clientError = null; if (this.state.clientError) { @@ -311,10 +510,6 @@ class UserSettingsGeneralTab extends React.Component { if (this.state.serverError) { serverError = this.state.serverError; } - let emailError = null; - if (this.state.emailError) { - emailError = this.state.emailError; - } let nameSection; const inputs = []; @@ -409,20 +604,27 @@ class UserSettingsGeneralTab extends React.Component { /> ); } else { - let fullName = ''; + let describe = ''; if (user.first_name && user.last_name) { - fullName = user.first_name + ' ' + user.last_name; + describe = user.first_name + ' ' + user.last_name; } else if (user.first_name) { - fullName = user.first_name; + describe = user.first_name; } else if (user.last_name) { - fullName = user.last_name; + describe = user.last_name; + } else { + describe = ( + + ); } nameSection = ( { this.updateSection('name'); }} @@ -483,10 +685,22 @@ class UserSettingsGeneralTab extends React.Component { /> ); } else { + let describe = ''; + if (user.nickname) { + describe = user.nickname; + } else { + describe = ( + + ); + } + nicknameSection = ( { this.updateSection('nickname'); }} @@ -559,152 +773,7 @@ class UserSettingsGeneralTab extends React.Component { ); } - let emailSection; - if (this.props.activeSection === 'email') { - const emailEnabled = global.window.mm_config.SendEmailNotifications === 'true'; - const emailVerificationEnabled = global.window.mm_config.RequireEmailVerification === 'true'; - let helpText = ( - - ); - - if (!emailEnabled) { - helpText = ( -
- -
- ); - } else if (!emailVerificationEnabled) { - helpText = ( - - ); - } else if (this.state.emailChangeInProgress) { - const newEmail = UserStore.getCurrentUser().email; - if (newEmail) { - helpText = ( - - ); - } - } - - let submit = null; - - if (this.props.user.auth_service === '') { - inputs.push( -
-
- -
- -
-
-
- ); - - inputs.push( -
-
- -
- -
-
- {helpText} -
- ); - - submit = this.submitEmail; - } else if (this.props.user.auth_service === Constants.GITLAB_SERVICE) { - inputs.push( -
-
- -
- {helpText} -
- ); - } - - emailSection = ( - { - this.updateSection(''); - e.preventDefault(); - }} - /> - ); - } else { - let describe = ''; - if (this.props.user.auth_service === '') { - if (this.state.emailChangeInProgress) { - const newEmail = UserStore.getCurrentUser().email; - if (newEmail) { - describe = formatHTMLMessage(holders.newAddress, {email: newEmail}); - } else { - describe = formatMessage(holders.checkEmailNoAddress); - } - } else { - describe = UserStore.getCurrentUser().email; - } - } else if (this.props.user.auth_service === Constants.GITLAB_SERVICE) { - describe = formatMessage(holders.loginGitlab); - } - - emailSection = ( - { - this.updateSection('email'); - }} - /> - ); - } + const emailSection = this.createEmailSection(); let pictureSection; if (this.props.activeSection === 'picture') { diff --git a/webapp/components/user_settings/user_settings_security.jsx b/webapp/components/user_settings/user_settings_security.jsx index b34fa8582..f24beb6b3 100644 --- a/webapp/components/user_settings/user_settings_security.jsx +++ b/webapp/components/user_settings/user_settings_security.jsx @@ -30,14 +30,6 @@ const holders = defineMessages({ id: 'user.settings.security.passwordMatchError', defaultMessage: 'The new passwords you entered do not match' }, - password: { - id: 'user.settings.security.password', - defaultMessage: 'Password' - }, - lastUpdated: { - id: 'user.settings.security.lastUpdated', - defaultMessage: 'Last updated {date} at {time}' - }, method: { id: 'user.settings.security.method', defaultMessage: 'Sign-in Method' @@ -131,74 +123,106 @@ class SecurityTab extends React.Component { } createPasswordSection() { let updateSectionStatus; - const {formatMessage} = this.props.intl; - if (this.props.activeSection === 'password' && this.props.user.auth_service === '') { + if (this.props.activeSection === 'password') { const inputs = []; + let submit; - inputs.push( -
- -
- + if (this.props.user.auth_service === '') { + submit = this.submitPassword; + + inputs.push( +
+ +
+ +
-
- ); - inputs.push( -
- -
- + ); + inputs.push( +
+ +
+ +
-
- ); - inputs.push( -
- -
- + ); + inputs.push( +
+ +
+ +
-
- ); + ); + } else if (this.props.user.auth_service === Constants.GITLAB_SERVICE) { + inputs.push( +
+
+ +
+
+ ); + } else if (this.props.user.auth_service === Constants.LDAP_SERVICE) { + inputs.push( +
+
+ +
+
+ ); + } updateSectionStatus = function resetSection(e) { this.props.updateSection(''); @@ -209,9 +233,14 @@ class SecurityTab extends React.Component { return ( + } inputs={inputs} - submit={this.submitPassword} + submit={submit} server_error={this.state.serverError} client_error={this.state.passwordError} updateSection={updateSectionStatus} @@ -219,34 +248,51 @@ class SecurityTab extends React.Component { ); } - var describe; - var d = new Date(this.props.user.last_password_update); + let describe; - const hours12 = !Utils.isMilitaryTime(); - describe = ( - - ), - time: ( - - ) - }} - /> - ); + if (this.props.user.auth_service === '') { + const d = new Date(this.props.user.last_password_update); + const hours12 = !Utils.isMilitaryTime(); + + describe = ( + + ), + time: ( + + ) + }} + /> + ); + } else if (this.props.user.auth_service === Constants.GITLAB_SERVICE) { + describe = ( + + ); + } else if (this.props.user.auth_service === Constants.LDAP_SERVICE) { + describe = ( + + ); + } updateSectionStatus = function updateSection() { this.props.updateSection('password'); @@ -254,7 +300,12 @@ class SecurityTab extends React.Component { return ( + } describe={describe} updateSection={updateSectionStatus} /> -- cgit v1.2.3-1-g7c22