mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-03-06 12:31:33 +01:00
closes #4772
This commit is contained in:
@@ -242,37 +242,40 @@ define('forum/topic', [
|
||||
Topic.navigatorCallback = function(index, elementCount, threshold) {
|
||||
var path = ajaxify.removeRelativePath(window.location.pathname.slice(1));
|
||||
if (!path.startsWith('topic')) {
|
||||
return 1;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!navigator.scrollActive) {
|
||||
var parts = ajaxify.removeRelativePath(window.location.pathname.slice(1)).split('/');
|
||||
var topicId = parts[1],
|
||||
slug = parts[2];
|
||||
var newUrl = 'topic/' + topicId + '/' + (slug ? slug : '');
|
||||
if (index > 1) {
|
||||
newUrl += '/' + index;
|
||||
if (navigator.scrollActive) {
|
||||
return;
|
||||
}
|
||||
|
||||
posts.loadImages(threshold);
|
||||
|
||||
var newUrl = 'topic/' + ajaxify.data.slug + (index > 1 ? ('/' + index) : '');
|
||||
|
||||
if (newUrl !== currentUrl) {
|
||||
|
||||
if (Topic.replaceURLTimeout) {
|
||||
clearTimeout(Topic.replaceURLTimeout);
|
||||
}
|
||||
|
||||
posts.loadImages(threshold);
|
||||
Topic.replaceURLTimeout = setTimeout(function() {
|
||||
|
||||
if (newUrl !== currentUrl) {
|
||||
if (Topic.replaceURLTimeout) {
|
||||
clearTimeout(Topic.replaceURLTimeout);
|
||||
if (index >= elementCount && app.user.uid) {
|
||||
socket.emit('topics.markAsRead', [ajaxify.data.tid]);
|
||||
}
|
||||
Topic.replaceURLTimeout = setTimeout(function() {
|
||||
updateUserBookmark(index);
|
||||
|
||||
Topic.replaceURLTimeout = 0;
|
||||
if (history.replaceState) {
|
||||
var search = (window.location.search ? window.location.search : '');
|
||||
history.replaceState({
|
||||
url: newUrl + search
|
||||
}, null, window.location.protocol + '//' + window.location.host + RELATIVE_PATH + '/' + newUrl + search);
|
||||
}
|
||||
currentUrl = newUrl;
|
||||
}, 500);
|
||||
}
|
||||
updateUserBookmark(index);
|
||||
|
||||
Topic.replaceURLTimeout = 0;
|
||||
if (history.replaceState) {
|
||||
var search = (window.location.search ? window.location.search : '');
|
||||
history.replaceState({
|
||||
url: newUrl + search
|
||||
}, null, window.location.protocol + '//' + window.location.host + RELATIVE_PATH + '/' + newUrl + search);
|
||||
}
|
||||
currentUrl = newUrl;
|
||||
}, 500);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -225,9 +225,6 @@ define('forum/topic/posts', [
|
||||
if (data && data.posts && data.posts.length) {
|
||||
createNewPosts(data, replies, direction, done);
|
||||
} else {
|
||||
if (app.user.uid) {
|
||||
socket.emit('topics.markAsRead', [tid]);
|
||||
}
|
||||
navigator.update();
|
||||
done();
|
||||
}
|
||||
|
||||
@@ -17,8 +17,15 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com
|
||||
navigator.callback = callback;
|
||||
toTop = toTop || function() {};
|
||||
toBottom = toBottom || function() {};
|
||||
var navigatorUpdateTimeoutId = 0;
|
||||
|
||||
$(window).off('scroll', navigator.update).on('scroll', navigator.update);
|
||||
$(window).off('scroll', navigator.update).on('scroll', function() {
|
||||
if (navigatorUpdateTimeoutId) {
|
||||
clearTimeout(navigatorUpdateTimeoutId);
|
||||
navigatorUpdateTimeoutId = 0;
|
||||
}
|
||||
navigatorUpdateTimeoutId = setTimeout(navigator.update, 100);
|
||||
});
|
||||
|
||||
$('.pagination-block .dropdown-menu').off('click').on('click', function(e) {
|
||||
e.stopPropagation();
|
||||
|
||||
@@ -255,7 +255,7 @@ module.exports = function(Topics) {
|
||||
async.parallel({
|
||||
markRead: async.apply(db.sortedSetAdd, 'uid:' + uid + ':tids_read', scores, tids),
|
||||
markUnread: async.apply(db.sortedSetRemove, 'uid:' + uid + ':tids_unread', tids),
|
||||
topicData: async.apply( Topics.getTopicsFields, tids, ['cid'])
|
||||
topicData: async.apply(Topics.getTopicsFields, tids, ['cid'])
|
||||
}, next);
|
||||
},
|
||||
function (results, next) {
|
||||
|
||||
Reference in New Issue
Block a user