Merge branch 'release-2.0'
Этот коммит содержится в:
26
CHANGELOG.md
26
CHANGELOG.md
@@ -150,21 +150,31 @@ The following is for informational purposes only, no action needed. Mattermost a
|
|||||||
#### Known Issues
|
#### Known Issues
|
||||||
|
|
||||||
- Navigating to a page with new messages containing inline images added via markdown causes the channel to scroll up and down while loading the inline images.
|
- Navigating to a page with new messages containing inline images added via markdown causes the channel to scroll up and down while loading the inline images.
|
||||||
- Microsoft Edge does not yet support drag and drop for file attachments.
|
- Microsoft Edge does not yet support drag and drop for file attachments.
|
||||||
|
- No error message on IE11 when uploading more than 5 files or a file over 50 MB.
|
||||||
|
- File name tooltip stays open after clicking to download.
|
||||||
- Scroll bar does not appear in the center channel.
|
- Scroll bar does not appear in the center channel.
|
||||||
- Unable to paste images into the text box on Firefox, Safari, and IE11.
|
- Unable to paste images into the text box on Firefox, Safari, and IE11.
|
||||||
- Importing from Slack fails to load messages in certain cases and breaks @mentions.
|
- Importing from Slack fails to load channels in certain cases.
|
||||||
- System Console > TEAMS > Statistics > Newly Created Users shows all users as created "just now".
|
- System Console > Teams > Statistics > Newly Created Users shows all users as created "just now".
|
||||||
- Favicon does not turn red when @mentions and direct messages are received in an inactive browser tab.
|
- Username and email display on single line in System Console user management tab.
|
||||||
- Searching for a phrase in quotations returns more than just the phrase on installations with a Postgres database.
|
- Searching for a phrase in quotations returns more than just the phrase on installations with a Postgres database.
|
||||||
- Archived channels are not removed from the "More" menu for the person that archived the channel until after refresh.
|
- Archived channels are not removed from the "More" menu for the person that archived the channel until after refresh.
|
||||||
|
- First load of an empty channel does not display the introduction message.
|
||||||
- Search results don't highlight searches for @username, non-latin characters, or terms inside Markdown code blocks.
|
- Search results don't highlight searches for @username, non-latin characters, or terms inside Markdown code blocks.
|
||||||
- Searching for a username or hashtag containing a dot returns a search where the dot is replaced with the "or" operator.
|
- Searching for a username or hashtag containing a dot returns a search where the dot is replaced with the "or" operator.
|
||||||
|
- Search term highlighting doesn't update on IE11 when search terms change but return the same posts.
|
||||||
- Hashtags less than three characters long are not searchable.
|
- Hashtags less than three characters long are not searchable.
|
||||||
- Users remains in the channel counter after being deactivated.
|
- Hashtags containing a dash incorrectly highlight in the search results.
|
||||||
- Messages with symbols (<,>,-,+,=,%,^,#,*,|) directly before or after a hashtag are not searchable.
|
- Users remain in the channel counter after being deactivated.
|
||||||
- Permalinks for the second message or later consecutively sent in a group by the same author displaces the copy link popover or causes an error
|
- Permalinks for the second message or later consecutively sent in a group by the same author displaces the copy link popover or causes an error.
|
||||||
- Emoji smileys ending with a letter at the end of a message do not auto-complete as expected
|
- Emoji smileys ending with a letter at the end of a message do not auto-complete as expected.
|
||||||
|
- Logout slash command does not force a logout.
|
||||||
|
- Incorrect formatting when a new line is added directly after a list.
|
||||||
|
- Timestamps are displayed in 12-hour format when set to 24-hour format.
|
||||||
|
- GIF links inside code blocks auto-post the GIFs.
|
||||||
|
- Syntax highlighting code block is missing the label for Latex documents.
|
||||||
|
- Deleted messages don't delete in the RHS until a page refresh.
|
||||||
|
|
||||||
#### Contributors
|
#### Contributors
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,18 @@ func gitLabUserFromJson(data io.Reader) *GitLabUser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (glu *GitLabUser) IsValid() bool {
|
||||||
|
if glu.Id == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(glu.Email) == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
func (glu *GitLabUser) getAuthData() string {
|
func (glu *GitLabUser) getAuthData() string {
|
||||||
return strconv.FormatInt(glu.Id, 10)
|
return strconv.FormatInt(glu.Id, 10)
|
||||||
}
|
}
|
||||||
@@ -76,9 +88,20 @@ func (m *GitLabProvider) GetIdentifier() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *GitLabProvider) GetUserFromJson(data io.Reader) *model.User {
|
func (m *GitLabProvider) GetUserFromJson(data io.Reader) *model.User {
|
||||||
return userFromGitLabUser(gitLabUserFromJson(data))
|
glu := gitLabUserFromJson(data)
|
||||||
|
if glu.IsValid() {
|
||||||
|
return userFromGitLabUser(glu)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &model.User{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *GitLabProvider) GetAuthDataFromJson(data io.Reader) string {
|
func (m *GitLabProvider) GetAuthDataFromJson(data io.Reader) string {
|
||||||
return gitLabUserFromJson(data).getAuthData()
|
glu := gitLabUserFromJson(data)
|
||||||
|
|
||||||
|
if glu.IsValid() {
|
||||||
|
return glu.getAuthData()
|
||||||
|
}
|
||||||
|
|
||||||
|
return ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,6 +95,8 @@ class ChannelLoader extends React.Component {
|
|||||||
|
|
||||||
$(window).on('focus', function windowFocus() {
|
$(window).on('focus', function windowFocus() {
|
||||||
AsyncClient.updateLastViewedAt();
|
AsyncClient.updateLastViewedAt();
|
||||||
|
ChannelStore.resetCounts(ChannelStore.getCurrentId());
|
||||||
|
ChannelStore.emitChange();
|
||||||
window.isActive = true;
|
window.isActive = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -185,4 +187,4 @@ ChannelLoader.propTypes = {
|
|||||||
intl: intlShape.isRequired
|
intl: intlShape.isRequired
|
||||||
};
|
};
|
||||||
|
|
||||||
export default injectIntl(ChannelLoader);
|
export default injectIntl(ChannelLoader);
|
||||||
|
|||||||
@@ -308,7 +308,7 @@ ChannelStore.dispatchToken = AppDispatcher.register((payload) => {
|
|||||||
ChannelStore.storeChannels(action.channels);
|
ChannelStore.storeChannels(action.channels);
|
||||||
ChannelStore.storeChannelMembers(action.members);
|
ChannelStore.storeChannelMembers(action.members);
|
||||||
currentId = ChannelStore.getCurrentId();
|
currentId = ChannelStore.getCurrentId();
|
||||||
if (currentId && !document.hidden) {
|
if (currentId && window.isActive) {
|
||||||
ChannelStore.resetCounts(currentId);
|
ChannelStore.resetCounts(currentId);
|
||||||
}
|
}
|
||||||
ChannelStore.setUnreadCounts();
|
ChannelStore.setUnreadCounts();
|
||||||
@@ -321,7 +321,7 @@ ChannelStore.dispatchToken = AppDispatcher.register((payload) => {
|
|||||||
ChannelStore.pStoreChannelMember(action.member);
|
ChannelStore.pStoreChannelMember(action.member);
|
||||||
}
|
}
|
||||||
currentId = ChannelStore.getCurrentId();
|
currentId = ChannelStore.getCurrentId();
|
||||||
if (currentId && !document.hidden) {
|
if (currentId && window.isActive) {
|
||||||
ChannelStore.resetCounts(currentId);
|
ChannelStore.resetCounts(currentId);
|
||||||
}
|
}
|
||||||
ChannelStore.setUnreadCount(action.channel.id);
|
ChannelStore.setUnreadCount(action.channel.id);
|
||||||
|
|||||||
@@ -202,10 +202,10 @@ function handleNewPostEvent(msg, translations) {
|
|||||||
|
|
||||||
// Update channel state
|
// Update channel state
|
||||||
if (ChannelStore.getCurrentId() === msg.channel_id) {
|
if (ChannelStore.getCurrentId() === msg.channel_id) {
|
||||||
if (document.hidden) {
|
if (window.isActive) {
|
||||||
AsyncClient.getChannel(msg.channel_id);
|
|
||||||
} else {
|
|
||||||
AsyncClient.updateLastViewedAt();
|
AsyncClient.updateLastViewedAt();
|
||||||
|
} else {
|
||||||
|
AsyncClient.getChannel(msg.channel_id);
|
||||||
}
|
}
|
||||||
} else if (UserStore.getCurrentId() !== msg.user_id || post.type !== Constants.POST_TYPE_JOIN_LEAVE) {
|
} else if (UserStore.getCurrentId() !== msg.user_id || post.type !== Constants.POST_TYPE_JOIN_LEAVE) {
|
||||||
AsyncClient.getChannel(msg.channel_id);
|
AsyncClient.getChannel(msg.channel_id);
|
||||||
|
|||||||
@@ -549,7 +549,7 @@ export function getPosts(id) {
|
|||||||
type: ActionTypes.RECEIVED_POSTS,
|
type: ActionTypes.RECEIVED_POSTS,
|
||||||
id: channelId,
|
id: channelId,
|
||||||
before: true,
|
before: true,
|
||||||
numRequested: Constants.POST_CHUNK_SIZE,
|
numRequested: 0,
|
||||||
post_list: data
|
post_list: data
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user