| 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 },  });});
 |