mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 03:55:55 +01:00
removed recent/day week month
it starts with most recent 20 topics now and goes back instead of showing empty if there are no new replies in the past 24 hours
This commit is contained in:
@@ -8,15 +8,6 @@ define('forum/recent', ['forum/infinitescroll'], function(infinitescroll) {
|
||||
var newTopicCount = 0,
|
||||
newPostCount = 0;
|
||||
|
||||
var active = '';
|
||||
|
||||
function getActiveSection() {
|
||||
var url = window.location.href,
|
||||
parts = url.split('/'),
|
||||
active = parts[parts.length - 1];
|
||||
return active;
|
||||
}
|
||||
|
||||
$(window).on('action:ajaxify.start', function(ev, data) {
|
||||
if(data.url.indexOf('recent') !== 0) {
|
||||
Recent.removeListeners();
|
||||
@@ -28,31 +19,13 @@ define('forum/recent', ['forum/infinitescroll'], function(infinitescroll) {
|
||||
|
||||
Recent.watchForNewPosts();
|
||||
|
||||
active = Recent.selectActivePill();
|
||||
|
||||
$('#new-topics-alert').on('click', function() {
|
||||
$(this).addClass('hide');
|
||||
});
|
||||
|
||||
|
||||
infinitescroll.init(Recent.loadMoreTopics);
|
||||
};
|
||||
|
||||
Recent.selectActivePill = function() {
|
||||
var active = getActiveSection();
|
||||
|
||||
$('.nav-pills li').removeClass('active');
|
||||
$('.nav-pills li a').each(function() {
|
||||
var $this = $(this);
|
||||
if ($this.attr('href').match(active)) {
|
||||
$this.parent().addClass('active');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return active;
|
||||
};
|
||||
|
||||
Recent.watchForNewPosts = function () {
|
||||
newPostCount = 0;
|
||||
newTopicCount = 0;
|
||||
@@ -103,8 +76,7 @@ define('forum/recent', ['forum/infinitescroll'], function(infinitescroll) {
|
||||
}
|
||||
|
||||
infinitescroll.loadMore('topics.loadMoreRecentTopics', {
|
||||
after: $('#topics-container').attr('data-nextstart'),
|
||||
term: active
|
||||
after: $('#topics-container').attr('data-nextstart')
|
||||
}, function(data, done) {
|
||||
if (data.topics && data.topics.length) {
|
||||
Recent.onTopicsLoaded('recent', data.topics, false, done);
|
||||
|
||||
@@ -19,7 +19,7 @@ var apiToRegular = function(url) {
|
||||
categoriesController.recent = function(req, res, next) {
|
||||
var uid = req.user ? req.user.uid : 0;
|
||||
var end = (parseInt(meta.config.topicsPerList, 10) || 20) - 1;
|
||||
topics.getLatestTopics(uid, 0, end, req.params.term, function (err, data) {
|
||||
topics.getRecentTopics(uid, 0, end, function (err, data) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
@@ -27,6 +27,9 @@ categoriesController.recent = function(req, res, next) {
|
||||
data['feeds:disableRSS'] = parseInt(meta.config['feeds:disableRSS'], 10) === 1;
|
||||
|
||||
plugins.fireHook('filter:category.get', data, uid, function(err, data) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
res.render('recent', data);
|
||||
});
|
||||
});
|
||||
@@ -53,6 +56,9 @@ categoriesController.popular = function(req, res, next) {
|
||||
data['feeds:disableRSS'] = parseInt(meta.config['feeds:disableRSS'], 10) === 1;
|
||||
|
||||
plugins.fireHook('filter:category.get', {topics: data}, uid, function(err, data) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
if (uid === 0) {
|
||||
anonCache[term] = data;
|
||||
lastUpdateTime = Date.now();
|
||||
@@ -72,6 +78,9 @@ categoriesController.unread = function(req, res, next) {
|
||||
}
|
||||
|
||||
plugins.fireHook('filter:category.get', data, uid, function(err, data) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
res.render('unread', data);
|
||||
});
|
||||
});
|
||||
@@ -236,10 +245,10 @@ categoriesController.notFound = function(req, res) {
|
||||
|
||||
categoriesController.notAllowed = function(req, res) {
|
||||
var uid = req.user ? req.user.uid : 0;
|
||||
|
||||
|
||||
if (uid) {
|
||||
if (res.locals.isAPI) {
|
||||
res.status(403).json('not-allowed');
|
||||
res.status(403).json('not-allowed');
|
||||
} else {
|
||||
res.status(403).render('403');
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ function tagRoutes(app, middleware, controllers) {
|
||||
|
||||
function categoryRoutes(app, middleware, controllers) {
|
||||
setupPageRoute(app, '/popular/:term?', middleware, [], controllers.categories.popular);
|
||||
setupPageRoute(app, '/recent/:term?', middleware, [], controllers.categories.recent);
|
||||
setupPageRoute(app, '/recent', middleware, [], controllers.categories.recent);
|
||||
setupPageRoute(app, '/unread', middleware, [middleware.authenticate], controllers.categories.unread);
|
||||
app.get('/api/unread/total', middleware.authenticate, controllers.categories.unreadTotal);
|
||||
|
||||
|
||||
@@ -459,14 +459,14 @@ SocketTopics.loadMore = function(socket, data, callback) {
|
||||
};
|
||||
|
||||
SocketTopics.loadMoreRecentTopics = function(socket, data, callback) {
|
||||
if(!data || !data.term || !data.after) {
|
||||
if(!data || !data.after) {
|
||||
return callback(new Error('[[error:invalid-data]]'));
|
||||
}
|
||||
|
||||
var start = parseInt(data.after, 10),
|
||||
end = start + 9;
|
||||
|
||||
topics.getLatestTopics(socket.uid, start, end, data.term, callback);
|
||||
topics.getRecentTopics(socket.uid, start, end, callback);
|
||||
};
|
||||
|
||||
SocketTopics.loadMoreUnreadTopics = function(socket, data, callback) {
|
||||
|
||||
@@ -15,6 +15,21 @@ module.exports = function(Topics) {
|
||||
year: 31104000000
|
||||
};
|
||||
|
||||
Topics.getRecentTopics = function(uid, start, end, callback) {
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
db.getSortedSetRevRange('topics:recent', start, end, next);
|
||||
},
|
||||
function(tids, next) {
|
||||
Topics.getTopics('topics:recent', uid, tids, next);
|
||||
},
|
||||
function(data, next) {
|
||||
data.nextStart = end + 1;
|
||||
next(null, data);
|
||||
}
|
||||
], callback);
|
||||
};
|
||||
|
||||
Topics.getLatestTopics = function(uid, start, end, term, callback) {
|
||||
Topics.getLatestTids(start, end, term, function(err, tids) {
|
||||
if (err) {
|
||||
|
||||
Reference in New Issue
Block a user