lots of err first fixeS

v1.18.x
Baris Soner Usakli 11 years ago
parent ced37044ca
commit ae76bb3928

@ -102,7 +102,10 @@ define(function() {
socket.emit('topics.loadMoreRecentTopics', { socket.emit('topics.loadMoreRecentTopics', {
after: $('#topics-container').children('li').length, after: $('#topics-container').children('li').length,
term: active term: active
}, function(data) { }, function(err, data) {
if(err) {
return app.alertError(err.message);
}
if (data.topics && data.topics.length) { if (data.topics && data.topics.length) {
Recent.onTopicsLoaded(data.topics); Recent.onTopicsLoaded(data.topics);
} }

@ -138,18 +138,10 @@ define(['composer'], function(composer) {
socket.emit('topics.move', { socket.emit('topics.move', {
tid: tid, tid: tid,
cid: targetCid cid: targetCid
}, function(data) { }, function(err) {
moveThreadModal.modal('hide'); moveThreadModal.modal('hide');
if (data.status === 'ok') { if(err) {
app.alert({ return app.alert({
'alert_id': 'thread_move',
type: 'success',
title: 'Topic Successfully Moved',
message: 'This topic has been successfully moved to ' + targetCatLabel,
timeout: 5000
});
} else {
app.alert({
'alert_id': 'thread_move', 'alert_id': 'thread_move',
type: 'danger', type: 'danger',
title: 'Unable to Move Topic', title: 'Unable to Move Topic',
@ -157,6 +149,14 @@ define(['composer'], function(composer) {
timeout: 5000 timeout: 5000
}); });
} }
app.alert({
'alert_id': 'thread_move',
type: 'success',
title: 'Topic Successfully Moved',
message: 'This topic has been successfully moved to ' + targetCatLabel,
timeout: 5000
});
}); });
} }
}); });
@ -288,15 +288,15 @@ define(['composer'], function(composer) {
} }
}; };
socket.emit('topics.followCheck', tid, function(state) { socket.emit('topics.followCheck', tid, function(err, state) {
set_follow_state(state, true); set_follow_state(state, true);
}); });
if (followEl[0]) { if (followEl[0]) {
followEl[0].addEventListener('click', function() { followEl[0].addEventListener('click', function() {
socket.emit('topics.follow', tid, function(data) { socket.emit('topics.follow', tid, function(err, state) {
if (data.status && data.status === 'ok') set_follow_state(data.follow); if(err) {
else { return app.alert({
app.alert({
type: 'danger', type: 'danger',
alert_id: 'topic_follow', alert_id: 'topic_follow',
title: 'Please Log In', title: 'Please Log In',
@ -304,6 +304,8 @@ define(['composer'], function(composer) {
timeout: 5000 timeout: 5000
}); });
} }
set_follow_state(state);
}); });
}, false); }, false);
} }
@ -1104,9 +1106,13 @@ define(['composer'], function(composer) {
socket.emit('topics.loadMore', { socket.emit('topics.loadMore', {
tid: tid, tid: tid,
after: parseInt($('#post-container .post-row.infiniteloaded').last().attr('data-index'), 10) + 1 after: parseInt($('#post-container .post-row.infiniteloaded').last().attr('data-index'), 10) + 1
}, function (data) { }, function (err, data) {
if(err) {
return app.alertError(err.message);
}
infiniteLoaderActive = false; infiniteLoaderActive = false;
if (data.posts.length) { if (data && data.posts && data.posts.length) {
indicatorEl.attr('done', '0'); indicatorEl.attr('done', '0');
createNewPosts(data, true); createNewPosts(data, true);
} else { } else {

@ -93,7 +93,11 @@ define(function() {
loadingMoreTopics = true; loadingMoreTopics = true;
socket.emit('topics.loadMoreUnreadTopics', { socket.emit('topics.loadMoreUnreadTopics', {
after: parseInt($('#topics-container').attr('data-next-start'), 10) after: parseInt($('#topics-container').attr('data-next-start'), 10)
}, function(data) { }, function(err, data) {
if(err) {
return app.alertError(err.message);
}
if (data.topics && data.topics.length) { if (data.topics && data.topics.length) {
onTopicsLoaded(data.topics); onTopicsLoaded(data.topics);
$('#topics-container').attr('data-next-start', data.nextStart); $('#topics-container').attr('data-next-start', data.nextStart);

@ -15,7 +15,7 @@
</a> </a>
<div class="category row"> <div class="category row">
<div class="{topic_row_size}"> <div class="col-md-12">
<ul id="topics-container" data-next-start="{nextStart}"> <ul id="topics-container" data-next-start="{nextStart}">
<!-- BEGIN topics --> <!-- BEGIN topics -->
<li class="category-item {topics.deleted-class}"> <li class="category-item {topics.deleted-class}">

@ -86,9 +86,7 @@ var db = require('./database.js'),
}; };
function getTopics(next) { function getTopics(next) {
topics.getTopicsByTids(tids, current_user, function(topicsData) { topics.getTopicsByTids(tids, category_id, current_user, next);
next(null, topicsData);
}, category_id);
} }
function getModerators(next) { function getModerators(next) {
@ -126,9 +124,9 @@ var db = require('./database.js'),
Categories.getCategoryTopics = function(cid, start, stop, uid, callback) { Categories.getCategoryTopics = function(cid, start, stop, uid, callback) {
Categories.getTopicIds(cid, start, stop, function(err, tids) { Categories.getTopicIds(cid, start, stop, function(err, tids) {
topics.getTopicsByTids(tids, uid, function(topicsData) { topics.getTopicsByTids(tids, cid, uid, function(err, topicsData) {
callback(topicsData); callback(err, topicsData);
}, cid); });
}); });
}; };
@ -137,7 +135,6 @@ var db = require('./database.js'),
}; };
Categories.getAllCategories = function(current_user, callback) { Categories.getAllCategories = function(current_user, callback) {
db.getListRange('categories:cid', 0, -1, function(err, cids) { db.getListRange('categories:cid', 0, -1, function(err, cids) {
if(err) { if(err) {

@ -176,16 +176,24 @@ var path = require('path'),
}); });
}); });
app.get('/unread', function (req, res) { app.get('/unread', function (req, res, next) {
var uid = (req.user) ? req.user.uid : 0; var uid = (req.user) ? req.user.uid : 0;
topics.getUnreadTopics(uid, 0, 19, function (data) { topics.getUnreadTopics(uid, 0, 19, function (err, data) {
if(err) {
return next(err);
}
res.json(data); res.json(data);
}); });
}); });
app.get('/unread/total', function (req, res) { app.get('/unread/total', function (req, res, next) {
var uid = (req.user) ? req.user.uid : 0; var uid = (req.user) ? req.user.uid : 0;
topics.getTotalUnread(uid, function (data) { topics.getTotalUnread(uid, function (err, data) {
if(err) {
return next(err);
}
res.json(data); res.json(data);
}); });
}); });
@ -273,9 +281,9 @@ var path = require('path'),
return callback(err, null); return callback(err, null);
} }
topics.getTopicsByTids(tids, 0, function (topics) { topics.getTopicsByTids(tids, 0, 0, function (topics) {
callback(null, topics); callback(null, topics);
}, 0); });
}); });
} }

@ -138,9 +138,11 @@ SocketTopics.createTopicFromPosts = function(socket, data, callback) {
return; return;
} }
topics.createTopicFromPosts(socket.uid, data.title, data.pids, function(err, data) { if(!data || !data.title || !data.pids || !Array.isArray(data.pids)) {
callback(err, data); return callback(new Error('invalid data'));
}); }
topics.createTopicFromPosts(socket.uid, data.title, data.pids, callback);
}; };
SocketTopics.movePost = function(socket, data, callback) { SocketTopics.movePost = function(socket, data, callback) {
@ -154,79 +156,74 @@ SocketTopics.movePost = function(socket, data, callback) {
return; return;
} }
topics.movePostToTopic(data.pid, data.tid, function(err, data) { if(!data || !data.pid || !data.tid) {
callback(err, data); return callback(new Error('invalid data'));
}); }
topics.movePostToTopic(data.pid, data.tid, callback);
}; };
SocketTopics.move = function(socket, data, callback) { SocketTopics.move = function(socket, data, callback) {
if(!data || !data.tid || !data.cid) {
return callback(new Error('invalid data'));
}
threadTools.move(data.tid, data.cid, function(err) { threadTools.move(data.tid, data.cid, function(err) {
if(err) { if(err) {
return callback(err); return callback(err);
} }
index.server.sockets.in('topic_' + data.tid).emit('event:topic_moved', { index.server.sockets.in('topic_' + data.tid).emit('event:topic_moved', {
tid: tid tid: data.tid
}); });
callback(null);
}); });
}; };
SocketTopics.followCheck = function(socket, tid, callback) { SocketTopics.followCheck = function(socket, tid, callback) {
threadTools.isFollowing(tid, socket.uid, function(following) { threadTools.isFollowing(tid, socket.uid, callback);
callback(following);
});
}; };
SocketTopics.follow = function(socket, tid, callback) { SocketTopics.follow = function(socket, tid, callback) {
if (socket.uid) { if(!socket.uid) {
threadTools.toggleFollow(tid, socket.uid, function(follow) { return callback(new Error('not-logged-in'));
if (follow.status === 'ok') {
callback(follow);
}
});
} else {
callback({
status: 'error',
error: 'not-logged-in'
});
} }
threadTools.toggleFollow(tid, socket.uid, callback);
}; };
SocketTopics.loadMore = function(socket, data, callback) { SocketTopics.loadMore = function(socket, data, callback) {
if(!data || !data.tid) {
return callback(new Error('invalid data'));
}
var start = data.after, var start = data.after,
end = start + 9; end = start + 9;
topics.getTopicPosts(data.tid, start, end, socket.uid, function(err, posts) { topics.getTopicPosts(data.tid, start, end, socket.uid, function(err, posts) {
if(err) { callback(err, {posts: posts});
return callback(err);
}
callback(null, {
posts: posts
});
}); });
}; };
SocketTopics.loadMoreRecentTopics = function(socket, data, callback) { SocketTopics.loadMoreRecentTopics = function(socket, data, callback) {
if(!data || !data.term) {
return callback(new Error('invalid data'));
}
var start = data.after, var start = data.after,
end = start + 9; end = start + 9;
topics.getLatestTopics(socket.uid, start, end, data.term, function(err, latestTopics) { topics.getLatestTopics(socket.uid, start, end, data.term, callback);
if(err) {
return callback(err);
}
callback(null, latestTopics);
});
}; };
SocketTopics.loadMoreUnreadTopics = function(socket, data, callback) { SocketTopics.loadMoreUnreadTopics = function(socket, data, callback) {
var start = data.after, var start = data.after,
end = start + 9; end = start + 9;
topics.getUnreadTopics(socket.uid, start, end, function(unreadTopics) { topics.getUnreadTopics(socket.uid, start, end, callback);
callback(null, unreadTopics);
});
}; };
module.exports = SocketTopics; module.exports = SocketTopics;

@ -195,49 +195,40 @@ var winston = require('winston'),
}); });
} }
ThreadTools.isFollowing = function(tid, current_user, callback) { ThreadTools.isFollowing = function(tid, uid, callback) {
db.isSetMember('tid:' + tid + ':followers', current_user, function(err, following) { db.isSetMember('tid:' + tid + ':followers', uid, callback);
callback(following);
});
} }
ThreadTools.toggleFollow = function(tid, current_user, callback) { ThreadTools.toggleFollow = function(tid, uid, callback) {
ThreadTools.isFollowing(tid, current_user, function(following) { ThreadTools.isFollowing(tid, uid, function(err, following) {
if (!following) { if(err) {
db.setAdd('tid:' + tid + ':followers', current_user, function(err, success) { return callback(err);
if (callback) {
if (!err) {
callback({
status: 'ok',
follow: true
});
} else callback({
status: 'error'
});
} }
});
} else { db[following?'setRemove':'setAdd']('tid:' + tid + ':followers', uid, function(err, success) {
db.setRemove('tid:' + tid + ':followers', current_user, function(err, success) {
if (callback) { if (callback) {
if (!err) { if(err) {
callback({ return callback(err);
status: 'ok',
follow: false
});
} else callback({
status: 'error'
});
} }
});
callback(null, !following);
} }
}); });
});
} }
ThreadTools.getFollowers = function(tid, callback) { ThreadTools.getFollowers = function(tid, callback) {
db.getSetMembers('tid:' + tid + ':followers', function(err, followers) { db.getSetMembers('tid:' + tid + ':followers', function(err, followers) {
callback(err, followers.map(function(follower) { if(err) {
return callback(err);
}
if(followers) {
followers = followers.map(function(follower) {
return parseInt(follower, 10); return parseInt(follower, 10);
})); });
}
callback(null, followers);
}); });
} }

@ -454,7 +454,7 @@ var async = require('async'),
} }
}); });
}, function(tids) { }, function(tids) {
Topics.getTopicsByTids(tids, current_user, function(topicData) { Topics.getTopicsByTids(tids, 0, current_user, function(err, topicData) {
latestTopics.topics = topicData; latestTopics.topics = topicData;
callback(err, latestTopics); callback(err, latestTopics);
}); });
@ -476,8 +476,9 @@ var async = require('async'),
function(callback) { function(callback) {
db.getSortedSetRevRange('topics:recent', start, stop, function(err, tids) { db.getSortedSetRevRange('topics:recent', start, stop, function(err, tids) {
if (err) if (err) {
return callback(err); return callback(err);
}
if (tids && !tids.length) { if (tids && !tids.length) {
done = true; done = true;
@ -499,7 +500,7 @@ var async = require('async'),
}); });
}, },
function(err) { function(err) {
callback({ callback(null, {
count: unreadTids.length count: unreadTids.length
}); });
} }
@ -569,19 +570,22 @@ var async = require('async'),
'show_topic_button': 'hidden', 'show_topic_button': 'hidden',
'show_markallread_button': 'show', 'show_markallread_button': 'show',
'no_topics_message': 'hidden', 'no_topics_message': 'hidden',
'topic_row_size': 'col-md-12',
'topics': [] 'topics': []
}; };
function noUnreadTopics() { function noUnreadTopics() {
unreadTopics.no_topics_message = 'show'; unreadTopics.no_topics_message = 'show';
unreadTopics.show_markallread_button = 'hidden'; unreadTopics.show_markallread_button = 'hidden';
callback(unreadTopics); callback(null, unreadTopics);
} }
function sendUnreadTopics(topicIds) { function sendUnreadTopics(topicIds) {
Topics.getTopicsByTids(topicIds, uid, function(topicData) { Topics.getTopicsByTids(topicIds, 0, uid, function(err, topicData) {
if(err) {
return callback(err);
}
unreadTopics.topics = topicData; unreadTopics.topics = topicData;
unreadTopics.nextStart = stop + 1; unreadTopics.nextStart = stop + 1;
if (!topicData || topicData.length === 0) { if (!topicData || topicData.length === 0) {
@ -591,13 +595,13 @@ var async = require('async'),
unreadTopics.show_markallread_button = 'hidden'; unreadTopics.show_markallread_button = 'hidden';
} }
callback(unreadTopics); callback(null, unreadTopics);
}); });
} }
Topics.getUnreadTids(uid, start, stop, function(err, unreadTids) { Topics.getUnreadTids(uid, start, stop, function(err, unreadTids) {
if (err) { if (err) {
return callback([]); return callback(err);
} }
if (unreadTids.length) { if (unreadTids.length) {
@ -634,13 +638,12 @@ var async = require('async'),
}); });
}; };
Topics.getTopicsByTids = function(tids, current_user, callback, category_id) { Topics.getTopicsByTids = function(tids, cid, current_user, callback) {
var retrieved_topics = []; var retrieved_topics = [];
if (!Array.isArray(tids) || tids.length === 0) { if (!Array.isArray(tids) || tids.length === 0) {
callback(retrieved_topics); return callback(null, retrieved_topics);
return;
} }
function getTopicInfo(topicData, callback) { function getTopicInfo(topicData, callback) {
@ -664,19 +667,19 @@ var async = require('async'),
// temporary. I don't think this call should belong here // temporary. I don't think this call should belong here
function getPrivileges(next) { function getPrivileges(next) {
categoryTools.privileges(category_id, current_user, function(err, user_privs) { categoryTools.privileges(cid, current_user, next);
next(err, user_privs);
});
} }
function getCategoryInfo(next) { function getCategoryInfo(next) {
categories.getCategoryFields(topicData.cid, ['name', 'slug', 'icon'], function(err, categoryData) { categories.getCategoryFields(topicData.cid, ['name', 'slug', 'icon'], next);
next(err, categoryData);
});
} }
async.parallel([getUserInfo, hasReadTopic, getTeaserInfo, getPrivileges, getCategoryInfo], function(err, results) { async.parallel([getUserInfo, hasReadTopic, getTeaserInfo, getPrivileges, getCategoryInfo], function(err, results) {
callback({ if(err) {
return callback(err);
}
callback(null, {
username: results[0].username, username: results[0].username,
userslug: results[0].userslug, userslug: results[0].userslug,
picture: results[0].picture, picture: results[0].picture,
@ -694,13 +697,20 @@ var async = require('async'),
return !deleted || (deleted && topicInfo.privileges.view_deleted) || topicData.uid === current_user; return !deleted || (deleted && topicInfo.privileges.view_deleted) || topicData.uid === current_user;
} }
function loadTopic(tid, callback) { function loadTopic(tid, next) {
Topics.getTopicData(tid, function(err, topicData) { Topics.getTopicData(tid, function(err, topicData) {
if(err) {
return next(err);
}
if (!topicData) { if (!topicData) {
return callback(null); return next();
} }
getTopicInfo(topicData, function(topicInfo) { getTopicInfo(topicData, function(err, topicInfo) {
if(err) {
return next(err);
}
topicData['pin-icon'] = parseInt(topicData.pinned, 10) === 1 ? 'fa-thumb-tack' : 'none'; topicData['pin-icon'] = parseInt(topicData.pinned, 10) === 1 ? 'fa-thumb-tack' : 'none';
topicData['lock-icon'] = parseInt(topicData.locked, 10) === 1 ? 'fa-lock' : 'none'; topicData['lock-icon'] = parseInt(topicData.locked, 10) === 1 ? 'fa-lock' : 'none';
@ -720,18 +730,17 @@ var async = require('async'),
topicData.teaser_pid = topicInfo.teaserInfo.pid; topicData.teaser_pid = topicInfo.teaserInfo.pid;
topicData.teaser_timestamp = topicInfo.teaserInfo.timestamp ? (new Date(parseInt(topicInfo.teaserInfo.timestamp, 10)).toISOString()) : ''; topicData.teaser_timestamp = topicInfo.teaserInfo.timestamp ? (new Date(parseInt(topicInfo.teaserInfo.timestamp, 10)).toISOString()) : '';
if (isTopicVisible(topicData, topicInfo)) if (isTopicVisible(topicData, topicInfo)) {
retrieved_topics.push(topicData); retrieved_topics.push(topicData);
}
callback(null); next(null);
}); });
}); });
} }
async.eachSeries(tids, loadTopic, function(err) { async.eachSeries(tids, loadTopic, function(err) {
if (!err) { callback(err, retrieved_topics);
callback(retrieved_topics);
}
}); });
} }

Loading…
Cancel
Save