summaryrefslogtreecommitdiffstats
path: root/webapp/components
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-05-12 09:12:55 -0400
committerGitHub <noreply@github.com>2017-05-12 09:12:55 -0400
commit1397798f1763b0848957a8672c8d40b6243764d5 (patch)
tree5d109da2e9e088f16eff0ad1421876a3d3da412e /webapp/components
parentb1c39204a63a87d2cbc57f66cf9db50c938b2ee5 (diff)
parent9d109b070037951fcd0832b785eba8a3db9a157c (diff)
downloadchat-1397798f1763b0848957a8672c8d40b6243764d5.tar.gz
chat-1397798f1763b0848957a8672c8d40b6243764d5.tar.bz2
chat-1397798f1763b0848957a8672c8d40b6243764d5.zip
Merge pull request #6401 from mattermost/merge-3.9
Merge release-3.9 branch into master
Diffstat (limited to 'webapp/components')
-rw-r--r--webapp/components/audit_table.jsx5
-rw-r--r--webapp/components/header_footer_template.jsx26
-rw-r--r--webapp/components/login/login_controller.jsx44
-rw-r--r--webapp/components/mfa/components/confirm.jsx6
-rw-r--r--webapp/components/notify_counts.jsx34
-rw-r--r--webapp/components/root.jsx6
-rw-r--r--webapp/components/sidebar.jsx24
-rw-r--r--webapp/components/signup/signup_controller.jsx57
-rw-r--r--webapp/components/user_settings/manage_languages.jsx10
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,