use ReactiveMiniMongoIndex for notifications

This commit is contained in:
Martin Filser 2023-11-07 19:07:06 +01:00
parent 402528d97e
commit c4882707e9
2 changed files with 24 additions and 2 deletions

View file

@ -1410,6 +1410,28 @@ ReactiveMiniMongoIndex = {
} }
} }
return ret; return ret;
},
getActivityWithId(activityId, addSelect = {}, options) {
let ret = []
if (activityId) {
const select = {addSelect, options}
if (!this.__activityWithId) {
this.__activityWithId = new DataCache(_select => {
const __select = EJSON.parse(_select);
const _activities = ReactiveCache.getActivities(
{ _id: { $exists: true },
...__select.addSelect,
}, __select.options);
const _ret = _.indexBy(_activities, '_id')
return _ret;
});
}
ret = this.__activityWithId.get(EJSON.stringify(select));
if (ret) {
ret = ret[activityId];
}
}
return ret;
} }
} }

View file

@ -1,4 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache'; import { ReactiveCache, ReactiveMiniMongoIndex } from '/imports/reactiveCache';
import { SyncedCron } from 'meteor/percolate:synced-cron'; import { SyncedCron } from 'meteor/percolate:synced-cron';
import { TAPi18n } from '/imports/i18n'; import { TAPi18n } from '/imports/i18n';
import ImpersonatedUsers from './impersonatedUsers'; import ImpersonatedUsers from './impersonatedUsers';
@ -853,7 +853,7 @@ Users.helpers({
// this preserves their db sort order for editing // this preserves their db sort order for editing
notification.dbIndex = index; notification.dbIndex = index;
if (!notification.activityObj && typeof(notification.activity) === 'string') { if (!notification.activityObj && typeof(notification.activity) === 'string') {
notification.activityObj = ReactiveCache.getActivity(notification.activity); notification.activityObj = ReactiveMiniMongoIndex.getActivityWithId(notification.activity);
} }
} }
// this sorts them newest to oldest to match Trello's behavior // this sorts them newest to oldest to match Trello's behavior