diff options
author | JoramWilander <jwawilander@gmail.com> | 2017-05-12 08:00:28 -0400 |
---|---|---|
committer | JoramWilander <jwawilander@gmail.com> | 2017-05-12 08:00:28 -0400 |
commit | 9d109b070037951fcd0832b785eba8a3db9a157c (patch) | |
tree | 5d109da2e9e088f16eff0ad1421876a3d3da412e /webapp/components | |
parent | b1c39204a63a87d2cbc57f66cf9db50c938b2ee5 (diff) | |
parent | a21a06afd9907e9911dcb166d902cba9f405c7cb (diff) | |
download | chat-9d109b070037951fcd0832b785eba8a3db9a157c.tar.gz chat-9d109b070037951fcd0832b785eba8a3db9a157c.tar.bz2 chat-9d109b070037951fcd0832b785eba8a3db9a157c.zip |
Merge branch 'release-3.9' into merge-3.9
Diffstat (limited to 'webapp/components')
-rw-r--r-- | webapp/components/audit_table.jsx | 5 | ||||
-rw-r--r-- | webapp/components/header_footer_template.jsx | 26 | ||||
-rw-r--r-- | webapp/components/login/login_controller.jsx | 44 | ||||
-rw-r--r-- | webapp/components/mfa/components/confirm.jsx | 6 | ||||
-rw-r--r-- | webapp/components/notify_counts.jsx | 34 | ||||
-rw-r--r-- | webapp/components/root.jsx | 6 | ||||
-rw-r--r-- | webapp/components/sidebar.jsx | 24 | ||||
-rw-r--r-- | webapp/components/signup/signup_controller.jsx | 57 | ||||
-rw-r--r-- | webapp/components/user_settings/manage_languages.jsx | 10 |
9 files changed, 90 insertions, 122 deletions
diff --git a/webapp/components/audit_table.jsx b/webapp/components/audit_table.jsx index 5d4bc4580..e07d6ca12 100644 --- a/webapp/components/audit_table.jsx +++ b/webapp/components/audit_table.jsx @@ -378,7 +378,10 @@ export function formatAuditInfo(audit, formatMessage) { if (userIdField.indexOf('user_id') >= 0) { userId = userIdField[userIdField.indexOf('user_id') + 1]; - username = UserStore.getProfile(userId).username; + var profile = UserStore.getProfile(userId); + if (profile) { + username = profile.username; + } } } diff --git a/webapp/components/header_footer_template.jsx b/webapp/components/header_footer_template.jsx index c41d7ee41..6fb9c9046 100644 --- a/webapp/components/header_footer_template.jsx +++ b/webapp/components/header_footer_template.jsx @@ -33,20 +33,18 @@ export default class NotLoggedIn extends React.Component { ); } - if (global.window.mm_config.TermsOfServiceLink) { - content.push( - <a - key='terms_link' - id='terms_link' - className='pull-right footer-link' - target='_blank' - rel='noopener noreferrer' - href={global.window.mm_config.TermsOfServiceLink} - > - <FormattedMessage id='web.footer.terms'/> - </a> - ); - } + content.push( + <a + key='terms_link' + id='terms_link' + className='pull-right footer-link' + target='_blank' + rel='noopener noreferrer' + href={global.window.mm_config.TermsOfServiceLink} + > + <FormattedMessage id='web.footer.terms'/> + </a> + ); if (global.window.mm_config.PrivacyPolicyLink) { content.push( diff --git a/webapp/components/login/login_controller.jsx b/webapp/components/login/login_controller.jsx index fa3412f34..4b6757294 100644 --- a/webapp/components/login/login_controller.jsx +++ b/webapp/components/login/login_controller.jsx @@ -210,7 +210,7 @@ export default class LoginController extends React.Component { finishSignin(team) { const query = this.props.location.query; - GlobalActions.loadDefaultLocale(); + GlobalActions.loadCurrentLocale(); if (query.redirect_to) { browserHistory.push(query.redirect_to); } else if (team) { @@ -493,12 +493,14 @@ export default class LoginController extends React.Component { key='gitlab' href={Client.getOAuthRoute() + '/gitlab/login' + this.props.location.search} > - <span className='icon'/> <span> - <FormattedMessage - id='login.gitlab' - defaultMessage='GitLab' - /> + <span className='icon'/> + <span> + <FormattedMessage + id='login.gitlab' + defaultMessage='GitLab' + /> + </span> </span> </a> ); @@ -511,12 +513,14 @@ export default class LoginController extends React.Component { key='google' href={Client.getOAuthRoute() + '/google/login' + this.props.location.search} > - <span className='icon'/> <span> - <FormattedMessage - id='login.google' - defaultMessage='Google Apps' - /> + <span className='icon'/> + <span> + <FormattedMessage + id='login.google' + defaultMessage='Google Apps' + /> + </span> </span> </a> ); @@ -529,12 +533,14 @@ export default class LoginController extends React.Component { key='office365' href={Client.getOAuthRoute() + '/office365/login' + this.props.location.search} > - <span className='icon'/> <span> - <FormattedMessage - id='login.office365' - defaultMessage='Office 365' - /> + <span className='icon'/> + <span> + <FormattedMessage + id='login.office365' + defaultMessage='Office 365' + /> + </span> </span> </a> ); @@ -547,9 +553,11 @@ export default class LoginController extends React.Component { key='saml' href={'/login/sso/saml' + this.props.location.search} > - <span className='icon fa fa-lock fa--margin-top'/> <span> - {global.window.mm_config.SamlLoginButtonText} + <span className='icon fa fa-lock fa--margin-top'/> + <span> + {global.window.mm_config.SamlLoginButtonText} + </span> </span> </a> ); diff --git a/webapp/components/mfa/components/confirm.jsx b/webapp/components/mfa/components/confirm.jsx index a6c2eda4e..6ec99ef47 100644 --- a/webapp/components/mfa/components/confirm.jsx +++ b/webapp/components/mfa/components/confirm.jsx @@ -8,6 +8,8 @@ import React from 'react'; import {FormattedMessage, FormattedHTMLMessage} from 'react-intl'; import {browserHistory} from 'react-router/es6'; +import {loadMe} from 'actions/user_actions.jsx'; + export default class Confirm extends React.Component { constructor(props) { super(props); @@ -25,7 +27,9 @@ export default class Confirm extends React.Component { submit(e) { e.preventDefault(); - browserHistory.push('/'); + loadMe(() => { + browserHistory.push('/'); + }); } onKeyPress(e) { diff --git a/webapp/components/notify_counts.jsx b/webapp/components/notify_counts.jsx index dda352349..f05ecbf12 100644 --- a/webapp/components/notify_counts.jsx +++ b/webapp/components/notify_counts.jsx @@ -2,42 +2,10 @@ // See License.txt for license information. import * as utils from 'utils/utils.jsx'; +import {getCountsStateFromStores} from 'utils/channel_utils.jsx'; import ChannelStore from 'stores/channel_store.jsx'; import TeamStore from 'stores/team_store.jsx'; -function getCountsStateFromStores() { - let mentionCount = 0; - let messageCount = 0; - const teamMembers = TeamStore.getMyTeamMembers(); - const channels = ChannelStore.getAll(); - const members = ChannelStore.getMyMembers(); - - teamMembers.forEach((member) => { - if (member.team_id !== TeamStore.getCurrentId()) { - mentionCount += (member.mention_count || 0); - messageCount += (member.msg_count || 0); - } - }); - - channels.forEach((channel) => { - const channelMember = members[channel.id]; - if (channelMember == null) { - return; - } - - if (channel.type === 'D') { - mentionCount += channel.total_msg_count - channelMember.msg_count; - } else if (channelMember.mention_count > 0) { - mentionCount += channelMember.mention_count; - } - if (channelMember.notify_props.mark_unread !== 'mention' && channel.total_msg_count - channelMember.msg_count > 0) { - messageCount += 1; - } - }); - - return {mentionCount, messageCount}; -} - import React from 'react'; export default class NotifyCounts extends React.Component { diff --git a/webapp/components/root.jsx b/webapp/components/root.jsx index 6907e84e4..701ee6e80 100644 --- a/webapp/components/root.jsx +++ b/webapp/components/root.jsx @@ -20,8 +20,8 @@ export default class Root extends React.Component { constructor(props) { super(props); this.state = { - locale: 'en', - translations: null + locale: LocalizationStore.getLocale(), + translations: LocalizationStore.getTranslations() }; this.localizationChanged = this.localizationChanged.bind(this); @@ -113,7 +113,7 @@ export default class Root extends React.Component { LocalizationStore.addChangeListener(this.localizationChanged); // Get our localizaiton - GlobalActions.loadDefaultLocale(); + GlobalActions.loadCurrentLocale(); } componentWillUnmount() { diff --git a/webapp/components/sidebar.jsx b/webapp/components/sidebar.jsx index aa7b98be0..5784f96ba 100644 --- a/webapp/components/sidebar.jsx +++ b/webapp/components/sidebar.jsx @@ -90,28 +90,8 @@ export default class Sidebar extends React.Component { } getTotalUnreadCount() { - let msgs = 0; - let mentions = 0; - const unreadCounts = this.state.unreadCounts; - const teamMembers = this.state.teamMembers; - - teamMembers.forEach((member) => { - if (member.team_id !== this.state.currentTeam.id) { - msgs += member.msg_count || 0; - mentions += member.mention_count || 0; - } - }); - - Object.keys(unreadCounts).forEach((chId) => { - const channel = ChannelStore.get(chId); - - if (channel && (channel.type === Constants.DM_CHANNEL || channel.type === Constants.GM_CHANNEL || channel.team_id === this.state.currentTeam.id)) { - msgs += unreadCounts[chId].msgs; - mentions += unreadCounts[chId].mentions; - } - }); - - return {msgs, mentions}; + const unreads = ChannelUtils.getCountsStateFromStores(this.state.currentTeam, this.state.teamMembers, this.state.unreadCounts); + return {msgs: unreads.messageCount, mentions: unreads.mentionCount}; } getStateFromStores() { diff --git a/webapp/components/signup/signup_controller.jsx b/webapp/components/signup/signup_controller.jsx index 0c969e5ed..9a6ed0ada 100644 --- a/webapp/components/signup/signup_controller.jsx +++ b/webapp/components/signup/signup_controller.jsx @@ -144,9 +144,8 @@ export default class SignupController extends React.Component { key='email' to={'/signup_email' + window.location.search} > - - <span className='icon fa fa-envelope'/> <span> + <span className='icon fa fa-envelope'/> <FormattedMessage id='signup.email' defaultMessage='Email and Password' @@ -163,12 +162,14 @@ export default class SignupController extends React.Component { key='gitlab' href={Client.getOAuthRoute() + '/gitlab/signup' + window.location.search} > - <span className='icon'/> <span> - <FormattedMessage - id='signup.gitlab' - defaultMessage='GitLab Single-Sign-On' - /> + <span className='icon'/> + <span> + <FormattedMessage + id='signup.gitlab' + defaultMessage='GitLab Single-Sign-On' + /> + </span> </span> </a> ); @@ -181,12 +182,14 @@ export default class SignupController extends React.Component { key='google' href={Client.getOAuthRoute() + '/google/signup' + window.location.search} > - <span className='icon'/> <span> - <FormattedMessage - id='signup.google' - defaultMessage='Google Account' - /> + <span className='icon'/> + <span> + <FormattedMessage + id='signup.google' + defaultMessage='Google Account' + /> + </span> </span> </a> ); @@ -199,12 +202,14 @@ export default class SignupController extends React.Component { key='office365' href={Client.getOAuthRoute() + '/office365/signup' + window.location.search} > - <span className='icon'/> <span> - <FormattedMessage - id='signup.office365' - defaultMessage='Office 365' - /> + <span className='icon'/> + <span> + <FormattedMessage + id='signup.office365' + defaultMessage='Office 365' + /> + </span> </span> </a> ); @@ -217,12 +222,14 @@ export default class SignupController extends React.Component { key='ldap' to={'/signup_ldap' + window.location.search} > - <span className='icon fa fa-folder-open fa--margin-top'/> <span> - <FormattedMessage - id='signup.ldap' - defaultMessage='AD/LDAP Credentials' - /> + <span className='icon fa fa-folder-open fa--margin-top'/> + <span> + <FormattedMessage + id='signup.ldap' + defaultMessage='AD/LDAP Credentials' + /> + </span> </span> </Link> ); @@ -242,9 +249,11 @@ export default class SignupController extends React.Component { key='saml' href={'/login/sso/saml' + window.location.search + query} > - <span className='icon fa fa-lock fa--margin-top'/> <span> - {global.window.mm_config.SamlLoginButtonText} + <span className='icon fa fa-lock fa--margin-top'/> + <span> + {global.window.mm_config.SamlLoginButtonText} + </span> </span> </a> ); diff --git a/webapp/components/user_settings/manage_languages.jsx b/webapp/components/user_settings/manage_languages.jsx index b88485110..09b32e1d7 100644 --- a/webapp/components/user_settings/manage_languages.jsx +++ b/webapp/components/user_settings/manage_languages.jsx @@ -33,12 +33,10 @@ export default class ManageLanguage extends React.Component { changeLanguage(e) { e.preventDefault(); - var user = this.props.user; - var locale = this.state.locale; - - user.locale = locale; - - this.submitUser(user); + this.submitUser({ + ...this.props.user, + locale: this.state.locale + }); } submitUser(user) { updateUser(user, Constants.UserUpdateEvents.LANGUAGE, |