diff --git a/public/src/client/topic.js b/public/src/client/topic.js index 858c3d7fd3..b39d8dc77d 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -203,12 +203,11 @@ define('forum/topic', [ if (!currentBookmark || parseInt(postIndex, 10) > parseInt(currentBookmark, 10)) { if (app.user.uid) { - var data = { - 'tid': ajaxify.data.tid, - 'uid': app.user.uid, - 'postIndex': postIndex - } - socket.emit('topics.bookmark', data, function(err) { + var payload = { + 'tid': ajaxify.data.tid, + 'index': postIndex + }; + socket.emit('topics.bookmark', payload, function(err) { if (err) { console.warn('Error saving bookmark:', err); } diff --git a/src/socket.io/topics.js b/src/socket.io/topics.js index 02e092aad8..5b4b1c140d 100644 --- a/src/socket.io/topics.js +++ b/src/socket.io/topics.js @@ -96,10 +96,9 @@ SocketTopics.postcount = function(socket, tid, callback) { topics.getTopicField(tid, 'postcount', callback); }; -SocketTopics.bookmark = function(socket, data, callback) { - // data contains tid, uid, and postIndex - topics.setUserBookmark(data, callback); -} +SocketTopics.bookmark = function(socket, payload, callback) { + topics.setUserBookmark(payload.tid, socket.uid, payload.index, callback); +}; SocketTopics.markAsRead = function(socket, tids, callback) { if(!Array.isArray(tids) || !socket.uid) { diff --git a/src/topics.js b/src/topics.js index 8ba4c9c513..9dc3b29cf2 100644 --- a/src/topics.js +++ b/src/topics.js @@ -330,11 +330,11 @@ var async = require('async'), } Topics.getUserBookmark = function (tid, uid, callback) { - db.getObjectField('topic:' + tid + ':bookmarks', uid, callback); + db.sortedSetScore('topic:' + tid + ':bookmarks', uid, callback); }; - Topics.setUserBookmark = function(data, callback) { - db.setObjectField('topic:' + data.tid + ':bookmarks', data.uid, data.postIndex, callback); + Topics.setUserBookmark = function(tid, uid, index, callback) { + db.sortedSetAdd('topic:' + tid + ':bookmarks', index, uid, callback); }; Topics.getTopicField = function(tid, field, callback) {