Merge branch 'master' of github.com:designcreateplay/NodeBB

v1.18.x
Julian Lam 11 years ago
commit cb5baec4eb

@ -58,13 +58,18 @@ var path = require('path'),
app.get('/home', function (req, res) { app.get('/home', function (req, res) {
var uid = (req.user) ? req.user.uid : 0; var uid = (req.user) ? req.user.uid : 0;
categories.getAllCategories(uid, function (err, data) { categories.getAllCategories(uid, function (err, data) {
// Remove disabled categories
data.categories = data.categories.filter(function (category) { data.categories = data.categories.filter(function (category) {
return (!category.disabled || parseInt(category.disabled, 10) === 0); return (!category.disabled || parseInt(category.disabled, 10) === 0);
}); });
// Retrieve category information for / function canSee(category, next) {
function iterator(category, callback) { categoryTools.privileges(category.cid, ((req.user) ? req.user.uid || 0 : 0), function(err, privileges) {
next(!err && privileges.read);
});
}
function getRecentReplies(category, callback) {
categories.getRecentReplies(category.cid, uid, parseInt(category.numRecentReplies, 10), function (err, posts) { categories.getRecentReplies(category.cid, uid, parseInt(category.numRecentReplies, 10), function (err, posts) {
category.posts = posts; category.posts = posts;
category.post_count = posts.length > 2 ? 2 : posts.length; // this was a hack to make metro work back in the day, post_count should just = length category.post_count = posts.length > 2 ? 2 : posts.length; // this was a hack to make metro work back in the day, post_count should just = length
@ -72,46 +77,50 @@ var path = require('path'),
}); });
} }
async.each(data.categories, iterator, function (err) { async.filter(data.categories, canSee, function(visibleCategories) {
// Assemble the MOTD data.categories = visibleCategories;
var motdString,
assemble = function() { async.each(data.categories, getRecentReplies, function (err) {
data.motd_class = (parseInt(meta.config.show_motd, 10) === 1 || meta.config.show_motd === undefined) ? '' : ' none';
data.motd_class += (meta.config.motd && meta.config.motd.length > 0 ? '' : ' default'); var motdString,
data.motd_class += meta.config.motd_class ? ' ' + meta.config.motd_class : ''; assemble = function() {
data.motd_class = (parseInt(meta.config.show_motd, 10) === 1 || meta.config.show_motd === undefined) ? '' : ' none';
data.motd = require('marked')(motdString); data.motd_class += (meta.config.motd && meta.config.motd.length > 0 ? '' : ' default');
res.json(data); data.motd_class += meta.config.motd_class ? ' ' + meta.config.motd_class : '';
};
if (!meta.config.motd) { data.motd = require('marked')(motdString);
// Construct default MOTD res.json(data);
translator.translate('\n\n# NodeBB <small><span>v' + pkg.version + '</span></small>\n\n<h5>[[global:motd.welcome]]</h5>\ };
<div class="btn-group">\
<a target="_blank" href="https://www.nodebb.org" class="btn btn-link btn-md">\ if (!meta.config.motd) {
<i class="fa fa-comment"></i>\ translator.translate('\n\n# NodeBB <small><span>v' + pkg.version + '</span></small>\n\n<h5>[[global:motd.welcome]]</h5>\
<span>&nbsp;[[global:motd.get]]</span>\ <div class="btn-group">\
</a>\ <a target="_blank" href="https://www.nodebb.org" class="btn btn-link btn-md">\
<a target="_blank" href="https://github.com/designcreateplay/NodeBB" class="btn btn-link btn-md">\ <i class="fa fa-comment"></i>\
<i class="fa fa-github"></i>\ <span>&nbsp;[[global:motd.get]]</span>\
<span>&nbsp;[[global:motd.fork]]</span>\ </a>\
</a>\ <a target="_blank" href="https://github.com/designcreateplay/NodeBB" class="btn btn-link btn-md">\
<a target="_blank" href="https://facebook.com/NodeBB" class="btn btn-link btn-md">\ <i class="fa fa-github"></i>\
<i class="fa fa-facebook"></i>\ <span>&nbsp;[[global:motd.fork]]</span>\
<span>&nbsp;[[global:motd.like]]</span>\ </a>\
</a>\ <a target="_blank" href="https://facebook.com/NodeBB" class="btn btn-link btn-md">\
<a target="_blank" href="https://twitter.com/NodeBB" class="btn btn-link btn-md">\ <i class="fa fa-facebook"></i>\
<i class="fa fa-twitter"></i>\ <span>&nbsp;[[global:motd.like]]</span>\
<span>&nbsp;[[global:motd.follow]]</span>\ </a>\
</a>\ <a target="_blank" href="https://twitter.com/NodeBB" class="btn btn-link btn-md">\
</div>\ <i class="fa fa-twitter"></i>\
', function(motd) { <span>&nbsp;[[global:motd.follow]]</span>\
motdString = motd; </a>\
</div>\
', function(motd) {
motdString = motd;
assemble();
});
} else {
motdString = meta.config.motd;
assemble(); assemble();
}); }
} else { });
motdString = meta.config.motd;
assemble();
}
}); });
}); });
}); });

@ -487,16 +487,21 @@ module.exports.server = server;
}, next); }, next);
}, },
"categories": function (next) { "categories": function (next) {
function canSee(category, next) {
CategoryTools.privileges(category.cid, ((req.user) ? req.user.uid || 0 : 0), function(err, privileges) {
next(!err && privileges.read);
});
}
categories.getAllCategories(0, function (err, returnData) { categories.getAllCategories(0, function (err, returnData) {
returnData.categories = returnData.categories.filter(function (category) { returnData.categories = returnData.categories.filter(function (category) {
if (parseInt(category.disabled, 10) !== 1) { return parseInt(category.disabled, 10) !== 1;
return true;
} else {
return false;
}
}); });
next(null, returnData); async.filter(returnData.categories, canSee, function(visibleCategories) {
returnData.categories = visibleCategories;
next(null, returnData);
});
}); });
} }
}, function (err, data) { }, function (err, data) {

Loading…
Cancel
Save