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:
barisusakli
2014-10-26 20:26:56 -04:00
parent c4a39c8163
commit c74370bfb1
5 changed files with 31 additions and 35 deletions

View File

@@ -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);

View File

@@ -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');
}

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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) {