Refactored post handling/updating on both the client and server.

Этот коммит содержится в:
JoramWilander
2015-08-26 12:09:01 -04:00
родитель 8356e25f80
Коммит 041d89b85a
28 изменённых файлов: 1643 добавлений и 902 удалений

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

@@ -344,14 +344,14 @@ module.exports.search = function(terms) {
);
}
module.exports.getPosts = function(force, id, maxPosts) {
module.exports.getPostsPage = function(force, id, maxPosts) {
if (PostStore.getCurrentPosts() == null || force) {
var channelId = id;
if (channelId == null) {
channelId = ChannelStore.getCurrentId();
}
if (isCallInProgress('getPosts_' + channelId)) {
if (isCallInProgress('getPostsPage_' + channelId)) {
return;
}
@@ -371,9 +371,9 @@ module.exports.getPosts = function(force, id, maxPosts) {
}
if (channelId != null) {
callTracker['getPosts_' + channelId] = utils.getTimestamp();
callTracker['getPostsPage_' + channelId] = utils.getTimestamp();
client.getPosts(
client.getPostsPage(
channelId,
0,
numPosts,
@@ -389,15 +389,58 @@ module.exports.getPosts = function(force, id, maxPosts) {
module.exports.getProfiles();
},
function(err) {
dispatchError(err, 'getPosts');
dispatchError(err, 'getPostsPage');
},
function() {
callTracker['getPosts_' + channelId] = 0;
callTracker['getPostsPage_' + channelId] = 0;
}
);
}
}
};
function getPosts(id) {
var channelId = id;
if (channelId == null) {
if (ChannelStore.getCurrentId() == null) {
return;
}
channelId = ChannelStore.getCurrentId();
}
if (isCallInProgress('getPosts_' + channelId)) {
return;
}
var latestUpdate = PostStore.getLatestUpdate(channelId);
callTracker['getPosts_' + channelId] = utils.getTimestamp();
client.getPosts(
channelId,
latestUpdate,
function success(data, textStatus, xhr) {
if (xhr.status === 304 || !data) {
return;
}
AppDispatcher.handleServerAction({
type: ActionTypes.RECIEVED_POSTS,
id: channelId,
post_list: data
});
module.exports.getProfiles();
},
function fail(err) {
dispatchError(err, 'getPosts');
},
function complete() {
callTracker['getPosts_' + channelId] = 0;
}
);
}
module.exports.getPosts = getPosts;
function getMe() {
if (isCallInProgress('getMe')) {

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

@@ -653,7 +653,7 @@ module.exports.executeCommand = function(channelId, command, suggest, success, e
});
};
module.exports.getPosts = function(channelId, offset, limit, success, error, complete) {
module.exports.getPostsPage = function(channelId, offset, limit, success, error, complete) {
$.ajax({
cache: false,
url: '/api/v1/channels/' + channelId + '/posts/' + offset + '/' + limit,
@@ -669,6 +669,21 @@ module.exports.getPosts = function(channelId, offset, limit, success, error, com
});
};
module.exports.getPosts = function(channelId, since, success, error, complete) {
$.ajax({
url: '/api/v1/channels/' + channelId + '/posts/' + since,
dataType: 'json',
type: 'GET',
ifModified: true,
success: success,
error: function onError(xhr, status, err) {
var e = handleError('getPosts', xhr, status, err);
error(e);
},
complete: complete
});
};
module.exports.getPost = function(channelId, postId, success, error) {
$.ajax({
cache: false,

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

@@ -765,7 +765,7 @@ function switchChannel(channel, teammateName) {
AsyncClient.getChannels(true, true, true);
AsyncClient.getChannelExtraInfo(true);
AsyncClient.getPosts(true, channel.id, Constants.POST_CHUNK_SIZE);
AsyncClient.getPosts(channel.id);
$('.inner__wrap').removeClass('move--right');
$('.sidebar--left').removeClass('move--right');