mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix: tag filtering when changing filter to watched topics
or changing popular time limit to month
This commit is contained in:
@@ -174,7 +174,7 @@ module.exports = function (Topics) {
|
||||
}
|
||||
|
||||
tids = await privileges.topics.filterTids('topics:read', tids, uid);
|
||||
let topicData = await Topics.getTopicsFields(tids, ['uid', 'tid', 'cid']);
|
||||
let topicData = await Topics.getTopicsFields(tids, ['uid', 'tid', 'cid', 'tags']);
|
||||
const topicCids = _.uniq(topicData.map(topic => topic.cid)).filter(Boolean);
|
||||
|
||||
async function getIgnoredCids() {
|
||||
@@ -192,11 +192,13 @@ module.exports = function (Topics) {
|
||||
topicData = filtered;
|
||||
|
||||
const cids = params.cids && params.cids.map(String);
|
||||
const { tags } = params;
|
||||
tids = topicData.filter(t => (
|
||||
t &&
|
||||
t.cid &&
|
||||
!isCidIgnored[t.cid] &&
|
||||
(!cids || cids.includes(String(t.cid)))
|
||||
(!cids || cids.includes(String(t.cid))) &&
|
||||
(!tags.length || tags.every(tag => t.tags.find(topicTag => topicTag.value === tag)))
|
||||
)).map(t => t.tid);
|
||||
|
||||
const result = await plugins.hooks.fire('filter:topics.filterSortedTids', { tids: tids, params: params });
|
||||
|
||||
Reference in New Issue
Block a user