Better fix for #5993 (#6034)

* Better fix for #5993

Also a nice newline so the line doesn't get overwritten when running `./nodebb upgrade`

* Optimizations for custom homepage

Move it into a separate module
This commit is contained in:
Peter Jaszkowiak
2017-11-04 08:51:44 -06:00
committed by Barış Soner Uşaklı
parent 9728b80c38
commit bbdc55cb3a
6 changed files with 125 additions and 91 deletions

View File

@@ -3,7 +3,6 @@
var async = require('async');
var nconf = require('nconf');
var validator = require('validator');
var request = require('request');
var meta = require('../meta');
var user = require('../user');
@@ -13,6 +12,7 @@ var helpers = require('./helpers');
var Controllers = module.exports;
Controllers.home = require('./home');
Controllers.topics = require('./topics');
Controllers.posts = require('./posts');
Controllers.categories = require('./categories');
@@ -36,52 +36,6 @@ Controllers.osd = require('./osd');
Controllers['404'] = require('./404');
Controllers.errors = require('./errors');
Controllers.home = function (req, res, next) {
var route = meta.config.homePageRoute || (meta.config.homePageCustom || '').replace(/^\/+/, '') || 'categories';
async.waterfall([
function (next) {
user.getSettings(req.uid, next);
},
function (settings, next) {
if (parseInt(meta.config.allowUserHomePage, 10) === 1 && settings.homePageRoute !== 'undefined' && settings.homePageRoute !== 'none') {
route = settings.homePageRoute || route;
}
var hook = 'action:homepage.get:' + route;
if (plugins.hasListeners(hook)) {
return plugins.fireHook(hook, {
req: req,
res: res,
next: next,
});
}
if (route === 'categories' || route === '/') {
Controllers.categories.list(req, res, next);
} else if (route === 'unread') {
Controllers.unread.get(req, res, next);
} else if (route === 'recent') {
Controllers.recent.get(req, res, next);
} else if (route === 'popular') {
Controllers.popular.get(req, res, next);
} else {
var match = /^category\/(\d+)\/(.*)$/.exec(route);
if (match) {
req.params.topic_index = '1';
req.params.category_id = match[1];
req.params.slug = match[2];
Controllers.category.get(req, res, next);
} else {
request.get(nconf.get('url') + '/' + route).pipe(res);
}
}
},
], next);
};
Controllers.reset = function (req, res, next) {
if (req.params.code) {
async.waterfall([