|
|
|
@ -5,6 +5,7 @@ const nconf = require('nconf');
|
|
|
|
|
const user = require('../user');
|
|
|
|
|
const meta = require('../meta');
|
|
|
|
|
const topics = require('../topics');
|
|
|
|
|
const categories = require('../categories');
|
|
|
|
|
const posts = require('../posts');
|
|
|
|
|
const privileges = require('../privileges');
|
|
|
|
|
const helpers = require('./helpers');
|
|
|
|
@ -93,6 +94,7 @@ topicsController.get = async function getTopic(req, res, callback) {
|
|
|
|
|
|
|
|
|
|
await Promise.all([
|
|
|
|
|
buildBreadcrumbs(topicData),
|
|
|
|
|
addOldCategory(topicData, userPrivileges),
|
|
|
|
|
addTags(topicData, req, res),
|
|
|
|
|
incrementViewCount(req, tid),
|
|
|
|
|
markAsRead(req, tid),
|
|
|
|
@ -166,6 +168,14 @@ async function buildBreadcrumbs(topicData) {
|
|
|
|
|
topicData.breadcrumbs = parentCrumbs.concat(breadcrumbs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function addOldCategory(topicData, userPrivileges) {
|
|
|
|
|
if (userPrivileges.isAdminOrMod && topicData.oldCid) {
|
|
|
|
|
topicData.oldCategory = await categories.getCategoryFields(
|
|
|
|
|
topicData.oldCid, ['cid', 'name', 'icon', 'bgColor', 'color', 'slug']
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function addTags(topicData, req, res) {
|
|
|
|
|
const postIndex = parseInt(req.params.post_index, 10) || 0;
|
|
|
|
|
const postAtIndex = topicData.posts.find(p => parseInt(p.index, 10) === parseInt(Math.max(0, postIndex - 1), 10));
|
|
|
|
|