diff --git a/client/lib/cardSearch.js b/client/lib/cardSearch.js index 749ced988..4803f815b 100644 --- a/client/lib/cardSearch.js +++ b/client/lib/cardSearch.js @@ -62,8 +62,8 @@ export class CardSearchPagedComponent extends BlazeComponent { } getSessionData(sessionId) { - return SessionData.findOne({ - sessionId: sessionId ? sessionId : SessionData.getSessionId(), + return ReactiveCache.getSessionData({ + sessionId: sessionId || SessionData.getSessionId(), }); } diff --git a/imports/reactiveCache.js b/imports/reactiveCache.js index 6ec4fd28d..196d404a2 100644 --- a/imports/reactiveCache.js +++ b/imports/reactiveCache.js @@ -155,6 +155,14 @@ ReactiveCacheServer = { const ret = Integrations.find(selector, options).fetch(); return ret; }, + getSessionData(idOrFirstObjectSelector, options) { + const ret = SessionData.findOne(idOrFirstObjectSelector, options); + return ret; + }, + getSessionDatas(selector, options) { + const ret = SessionData.find(selector, options).fetch(); + return ret; + }, getCurrentSetting() { const ret = Settings.findOne(); return ret; @@ -996,6 +1004,16 @@ ReactiveCache = { } return ret; }, + getSessionData(idOrFirstObjectSelector, options) { + // no reactive cache, otherwise global search will not work anymore + let ret = ReactiveCacheServer.getSessionData(idOrFirstObjectSelector, options); + return ret; + }, + getSessionDatas(selector, options) { + // no reactive cache, otherwise global search will not work anymore + let ret = ReactiveCacheServer.getSessionDatas(selector, options); + return ret; + }, getCurrentSetting() { let ret; if (Meteor.isServer) { diff --git a/server/publications/cards.js b/server/publications/cards.js index d00263b77..c2efd260c 100644 --- a/server/publications/cards.js +++ b/server/publications/cards.js @@ -648,7 +648,7 @@ Meteor.publish('brokenCards', function(sessionId) { Meteor.publish('nextPage', function(sessionId) { check(sessionId, String); - const session = SessionData.findOne({ sessionId }); + const session = ReactiveCache.getSessionData({ sessionId }); const projection = session.getProjection(); projection.skip = session.lastHit; @@ -658,7 +658,7 @@ Meteor.publish('nextPage', function(sessionId) { Meteor.publish('previousPage', function(sessionId) { check(sessionId, String); - const session = SessionData.findOne({ sessionId }); + const session = ReactiveCache.getSessionData({ sessionId }); const projection = session.getProjection(); projection.skip = session.lastHit - session.resultsCount - projection.limit;