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);
|
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);
|
const topicCids = _.uniq(topicData.map(topic => topic.cid)).filter(Boolean);
|
||||||
|
|
||||||
async function getIgnoredCids() {
|
async function getIgnoredCids() {
|
||||||
@@ -192,11 +192,13 @@ module.exports = function (Topics) {
|
|||||||
topicData = filtered;
|
topicData = filtered;
|
||||||
|
|
||||||
const cids = params.cids && params.cids.map(String);
|
const cids = params.cids && params.cids.map(String);
|
||||||
|
const { tags } = params;
|
||||||
tids = topicData.filter(t => (
|
tids = topicData.filter(t => (
|
||||||
t &&
|
t &&
|
||||||
t.cid &&
|
t.cid &&
|
||||||
!isCidIgnored[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);
|
)).map(t => t.tid);
|
||||||
|
|
||||||
const result = await plugins.hooks.fire('filter:topics.filterSortedTids', { tids: tids, params: params });
|
const result = await plugins.hooks.fire('filter:topics.filterSortedTids', { tids: tids, params: params });
|
||||||
|
|||||||
Reference in New Issue
Block a user