Move every Lists.findOne() to the ReactiveCache

This commit is contained in:
Martin Filser 2023-01-14 19:33:36 +01:00
parent 06e26d8d89
commit 0926943670
9 changed files with 17 additions and 16 deletions

View file

@ -1,7 +1,7 @@
const { calculateIndex } = Utils; const { calculateIndex } = Utils;
function currentListIsInThisSwimlane(swimlaneId) { function currentListIsInThisSwimlane(swimlaneId) {
const currentList = Lists.findOne(Session.get('currentList')); const currentList = Utils.getCurrentList();
return ( return (
currentList && currentList &&
(currentList.swimlaneId === swimlaneId || currentList.swimlaneId === '') (currentList.swimlaneId === swimlaneId || currentList.swimlaneId === '')

View file

@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { DialogWithBoardSwimlaneList } from '/client/lib/dialogWithBoardSwimlaneList'; import { DialogWithBoardSwimlaneList } from '/client/lib/dialogWithBoardSwimlaneList';
export class DialogWithBoardSwimlaneListCard extends DialogWithBoardSwimlaneList { export class DialogWithBoardSwimlaneListCard extends DialogWithBoardSwimlaneList {
@ -22,7 +23,7 @@ export class DialogWithBoardSwimlaneListCard extends DialogWithBoardSwimlaneList
/** returns all available cards of the current list */ /** returns all available cards of the current list */
cards() { cards() {
const list = Lists.findOne(this.selectedListId.get()); const list = ReactiveCache.getList(this.selectedListId.get());
let ret = []; let ret = [];
if (list) { if (list) {
ret = list.cards(this.selectedSwimlaneId.get()); ret = list.cards(this.selectedSwimlaneId.get());

View file

@ -8,8 +8,8 @@ function getCardsBetween(idA, idB) {
function getListsStrictlyBetween(id1, id2) { function getListsStrictlyBetween(id1, id2) {
return Lists.find({ return Lists.find({
$and: [ $and: [
{ sort: { $gt: Lists.findOne(id1).sort } }, { sort: { $gt: ReactiveCache.getList(id1).sort } },
{ sort: { $lt: Lists.findOne(id2).sort } }, { sort: { $lt: ReactiveCache.getList(id2).sort } },
], ],
archived: false, archived: false,
}).map(pluckId); }).map(pluckId);

View file

@ -26,7 +26,7 @@ Activities.helpers({
return Users.findOne(this.memberId); return Users.findOne(this.memberId);
}, },
list() { list() {
return Lists.findOne(this.listId); return ReactiveCache.getList(this.listId);
}, },
swimlane() { swimlane() {
return Swimlanes.findOne(this.swimlaneId); return Swimlanes.findOne(this.swimlaneId);
@ -35,7 +35,7 @@ Activities.helpers({
return Swimlanes.findOne(this.oldSwimlaneId); return Swimlanes.findOne(this.oldSwimlaneId);
}, },
oldList() { oldList() {
return Lists.findOne(this.oldListId); return ReactiveCache.getList(this.oldListId);
}, },
card() { card() {
return ReactiveCache.getCard(this.cardId); return ReactiveCache.getCard(this.cardId);

View file

@ -1176,7 +1176,7 @@ Boards.helpers({
}, },
getDefaultSubtasksList() { getDefaultSubtasksList() {
return Lists.findOne(this.getDefaultSubtasksListId()); return ReactiveCache.getList(this.getDefaultSubtasksListId());
}, },
getDefaultDateSettingsListId() { getDefaultDateSettingsListId() {
@ -1194,7 +1194,7 @@ Boards.helpers({
}, },
getDefaultDateSettingsList() { getDefaultDateSettingsList() {
return Lists.findOne(this.getDefaultDateSettingsListId()); return ReactiveCache.getList(this.getDefaultDateSettingsListId());
}, },
getDefaultSwimline() { getDefaultSwimline() {

View file

@ -274,7 +274,7 @@ Lists.helpers({
}, },
getWipLimit(option) { getWipLimit(option) {
const list = Lists.findOne({ _id: this._id }); const list = ReactiveCache.getList(this._id);
if (!list.wipLimit) { if (!list.wipLimit) {
// Necessary check to avoid exceptions for the case where the doc doesn't have the wipLimit field yet set // Necessary check to avoid exceptions for the case where the doc doesn't have the wipLimit field yet set
return 0; return 0;
@ -389,12 +389,12 @@ Meteor.methods({
if (limit === 0) { if (limit === 0) {
limit = 1; limit = 1;
} }
Lists.findOne({ _id: listId }).setWipLimit(limit); ReactiveCache.getList(listId).setWipLimit(limit);
}, },
enableWipLimit(listId) { enableWipLimit(listId) {
check(listId, String); check(listId, String);
const list = Lists.findOne({ _id: listId }); const list = ReactiveCache.getList(listId);
if (list.getWipLimit('value') === 0) { if (list.getWipLimit('value') === 0) {
list.setWipLimit(1); list.setWipLimit(1);
} }
@ -403,7 +403,7 @@ Meteor.methods({
enableSoftLimit(listId) { enableSoftLimit(listId) {
check(listId, String); check(listId, String);
const list = Lists.findOne({ _id: listId }); const list = ReactiveCache.getList(listId);
list.toggleSoftLimit(!list.getWipLimit('soft')); list.toggleSoftLimit(!list.getWipLimit('soft'));
}, },

View file

@ -47,11 +47,11 @@ Triggers.helpers({
}, },
fromList() { fromList() {
return Lists.findOne(this.fromId); return ReactiveCache.getList(this.fromId);
}, },
toList() { toList() {
return Lists.findOne(this.toId); return ReactiveCache.getList(this.toId);
}, },
findList(title) { findList(title) {

View file

@ -15,7 +15,7 @@ Meteor.methods({
if (!watchableObj) throw new Meteor.Error('error-board-doesNotExist'); if (!watchableObj) throw new Meteor.Error('error-board-doesNotExist');
board = watchableObj; board = watchableObj;
} else if (watchableType === 'list') { } else if (watchableType === 'list') {
watchableObj = Lists.findOne(id); watchableObj = ReactiveCache.getList(id);
if (!watchableObj) throw new Meteor.Error('error-list-doesNotExist'); if (!watchableObj) throw new Meteor.Error('error-list-doesNotExist');
board = watchableObj.board(); board = watchableObj.board();
} else if (watchableType === 'card') { } else if (watchableType === 'card') {

View file

@ -37,7 +37,7 @@ RulesHelper = {
// in any [*] board // in any [*] board
let value = activity[field]; let value = activity[field];
if (field === 'oldListName') { if (field === 'oldListName') {
const oldList = Lists.findOne({ _id: activity.oldListId }); const oldList = ReactiveCache.getList(activity.oldListId);
if (oldList) { if (oldList) {
value = oldList.title; value = oldList.title;
} }