1234567891011121314151617181920212223242526272829303132333435363738 |
- // We use activities fields at two different places:
- // 1. The board sidebar
- // 2. The card activity tab
- // We use this publication to paginate for these two publications.
- Meteor.publish('activities', (kind, id, limit, hideSystem) => {
- check(
- kind,
- Match.Where(x => {
- return ['board', 'card'].indexOf(x) !== -1;
- }),
- );
- check(id, String);
- check(limit, Number);
- check(hideSystem, Boolean);
- // Get linkedBoard
- let linkedElmtId = [id];
- if (kind == 'board') {
- Cards.find({
- "type": "cardType-linkedBoard",
- "boardId": id}
- ).forEach(card => {
- linkedElmtId.push(card.linkedId);
- });
- }
- //const selector = hideSystem
- // ? { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: id }] }
- // : { [`${kind}Id`]: id };
- const selector = hideSystem
- ? { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: { $in: linkedElmtId } }] }
- : { [`${kind}Id`]: { $in: linkedElmtId } };
- return Activities.find(selector, {
- limit,
- sort: { createdAt: -1 },
- });
- });
|