mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-22 00:10:25 +01:00
stores the user's bookmark on the server
This commit is contained in:
@@ -197,10 +197,19 @@ define('forum/topic', [
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var currentBookmark = localStorage.getItem('topic:' + ajaxify.data.tid + ':bookmark');
|
var bookmarkKey = 'topic:' + ajaxify.data.tid + ':bookmark';
|
||||||
|
var currentBookmark = localStorage.getItem(bookmarkKey);
|
||||||
|
|
||||||
if (!currentBookmark || parseInt(postIndex, 10) >= parseInt(currentBookmark, 10)) {
|
if (!currentBookmark || parseInt(postIndex, 10) > parseInt(currentBookmark, 10)) {
|
||||||
localStorage.setItem('topic:' + ajaxify.data.tid + ':bookmark', postIndex);
|
localStorage.setItem(bookmarkKey, postIndex);
|
||||||
|
if (app.user.uid) {
|
||||||
|
var data = {
|
||||||
|
'tid': ajaxify.data.tid,
|
||||||
|
'uid': app.user.uid,
|
||||||
|
'postIndex': postIndex
|
||||||
|
}
|
||||||
|
socket.emit('topics.bookmark', data);
|
||||||
|
}
|
||||||
app.removeAlert('bookmark');
|
app.removeAlert('bookmark');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -96,6 +96,11 @@ SocketTopics.postcount = function(socket, tid, callback) {
|
|||||||
topics.getTopicField(tid, 'postcount', callback);
|
topics.getTopicField(tid, 'postcount', callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
SocketTopics.bookmark = function(socket, data, callback) {
|
||||||
|
// data contains tid, uid, and postIndex
|
||||||
|
topics.setUserBookmark(data, callback);
|
||||||
|
}
|
||||||
|
|
||||||
SocketTopics.markAsRead = function(socket, tids, callback) {
|
SocketTopics.markAsRead = function(socket, tids, callback) {
|
||||||
if(!Array.isArray(tids) || !socket.uid) {
|
if(!Array.isArray(tids) || !socket.uid) {
|
||||||
return callback(new Error('[[error:invalid-data]]'));
|
return callback(new Error('[[error:invalid-data]]'));
|
||||||
|
|||||||
@@ -327,6 +327,14 @@ var async = require('async'),
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Topics.getUserBookmark = function (tid, uid, callback) {
|
||||||
|
Topics.getTopicField(tid + ':bookmarks', uid, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
Topics.setUserBookmark = function(data, callback) {
|
||||||
|
Topics.setTopicField(data.tid + ':bookmarks', data.uid, data.postIndex, callback);
|
||||||
|
}
|
||||||
|
|
||||||
Topics.getTopicField = function(tid, field, callback) {
|
Topics.getTopicField = function(tid, field, callback) {
|
||||||
db.getObjectField('topic:' + tid, field, callback);
|
db.getObjectField('topic:' + tid, field, callback);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user