Merge pull request #2148 from mattermost/missing-posts-2.0

RC2 PLT-1774 Fixing the elusive missing post bug
Этот коммит содержится в:
Christopher Speller
2016-02-11 13:45:52 -05:00
родитель 8eca7b1417 3a1ec7dbd7
Коммит 50104a1aa8
2 изменённых файлов: 11 добавлений и 19 удалений

Просмотреть файл

@@ -83,8 +83,6 @@ class PostStoreClass extends EventEmitter {
this.getCommentDraft = this.getCommentDraft.bind(this);
this.clearDraftUploads = this.clearDraftUploads.bind(this);
this.clearCommentDraftUploads = this.clearCommentDraftUploads.bind(this);
this.storeLatestUpdate = this.storeLatestUpdate.bind(this);
this.getLatestUpdate = this.getLatestUpdate.bind(this);
this.getCurrentUsersLatestPost = this.getCurrentUsersLatestPost.bind(this);
this.getCommentCount = this.getCommentCount.bind(this);
@@ -258,7 +256,7 @@ class PostStoreClass extends EventEmitter {
const np = newPosts.posts[pid];
if (np.delete_at === 0) {
combinedPosts.posts[pid] = np;
if (combinedPosts.order.indexOf(pid) === -1) {
if (combinedPosts.order.indexOf(pid) === -1 && newPosts.order.indexOf(pid) !== -1) {
combinedPosts.order.push(pid);
}
}
@@ -507,19 +505,6 @@ class PostStoreClass extends EventEmitter {
}
});
}
storeLatestUpdate(channelId, time) {
if (!this.postsInfo.hasOwnProperty(channelId)) {
this.postsInfo[channelId] = {};
}
this.postsInfo[channelId].latestPost = time;
}
getLatestUpdate(channelId) {
if (this.postsInfo.hasOwnProperty(channelId) && this.postsInfo[channelId].hasOwnProperty('latestPost')) {
return this.postsInfo[channelId].latestPost;
}
return 0;
}
getCommentCount(post) {
const posts = this.getAllPosts(post.channel_id).posts;

Просмотреть файл

@@ -521,18 +521,25 @@ export function getPosts(id) {
return;
}
if (PostStore.getAllPosts(channelId) == null) {
const postList = PostStore.getAllPosts(channelId);
if ($.isEmptyObject(postList) || postList.order.length < Constants.POST_CHUNK_SIZE) {
getPostsPage(channelId, Constants.POST_CHUNK_SIZE);
return;
}
const latestUpdate = PostStore.getLatestUpdate(channelId);
const latestPost = PostStore.getLatestPost(channelId);
let latestPostTime = 0;
if (latestPost != null && latestPost.update_at != null) {
latestPostTime = latestPost.create_at;
}
callTracker['getPosts_' + channelId] = utils.getTimestamp();
client.getPosts(
channelId,
latestUpdate,
latestPostTime,
(data, textStatus, xhr) => {
if (xhr.status === 304 || !data) {
return;