From 07aa20a3cdb7034a181d76df51abfca9d2656dee Mon Sep 17 00:00:00 2001 From: "John R. Supplee" Date: Thu, 11 Mar 2021 02:05:46 +0200 Subject: [PATCH] Fix for Due Cards and some cleanup --- client/components/main/dueCards.js | 28 ++++++++++++++++++++-------- client/components/main/myCards.js | 16 +++++++++++++--- client/lib/cardSearch.js | 3 +++ config/query-classes.js | 4 ++++ 4 files changed, 40 insertions(+), 11 deletions(-) diff --git a/client/components/main/dueCards.js b/client/components/main/dueCards.js index 7c329586f..f08e306a0 100644 --- a/client/components/main/dueCards.js +++ b/client/components/main/dueCards.js @@ -1,4 +1,12 @@ import { CardSearchPagedComponent } from '../../lib/cardSearch'; +import { + OPERATOR_HAS, + OPERATOR_SORT, + OPERATOR_USER, + ORDER_DESCENDING, + PREDICATE_DUE_AT, +} from '../../../config/search-const'; +import { QueryParams } from '../../../config/query-classes'; // const subManager = new SubsManager(); @@ -46,18 +54,22 @@ class DueCardsComponent extends CardSearchPagedComponent { onCreated() { super.onCreated(); - const queryParams = { - has: [{ field: 'dueAt', exists: true }], - limit: 5, - skip: 0, - sort: { name: 'dueAt', order: 'des' }, - }; + const queryParams = new QueryParams(); + queryParams.addPredicate(OPERATOR_HAS, { + field: PREDICATE_DUE_AT, + exists: true, + }); + // queryParams[OPERATOR_LIMIT] = 5; + queryParams.addPredicate(OPERATOR_SORT, { + name: PREDICATE_DUE_AT, + order: ORDER_DESCENDING, + }); if (Utils.dueCardsView() !== 'all') { - queryParams.users = [Meteor.user().username]; + queryParams.addPredicate(OPERATOR_USER, Meteor.user().username); } - this.runGlobalSearch(queryParams); + this.runGlobalSearch(queryParams.getParams()); } dueCardsView() { diff --git a/client/components/main/myCards.js b/client/components/main/myCards.js index 0a2794e5b..3f79e0f26 100644 --- a/client/components/main/myCards.js +++ b/client/components/main/myCards.js @@ -1,6 +1,12 @@ import { CardSearchPagedComponent } from '../../lib/cardSearch'; -import {QueryParams} from "../../../config/query-classes"; -import {OPERATOR_SORT, OPERATOR_USER} from "../../../config/search-const"; +import { QueryParams } from '../../../config/query-classes'; +import { + OPERATOR_LIMIT, + OPERATOR_SORT, + OPERATOR_USER, + ORDER_DESCENDING, + PREDICATE_DUE_AT, +} from '../../../config/search-const'; // const subManager = new SubsManager(); @@ -52,7 +58,11 @@ class MyCardsComponent extends CardSearchPagedComponent { const queryParams = new QueryParams(); queryParams.addPredicate(OPERATOR_USER, Meteor.user().username); - queryParams.addPredicate(OPERATOR_SORT, { name: 'dueAt', order: 'des' }); + queryParams.addPredicate(OPERATOR_SORT, { + name: PREDICATE_DUE_AT, + order: ORDER_DESCENDING, + }); + queryParams.addPredicate(OPERATOR_LIMIT, 100); this.runGlobalSearch(queryParams); Meteor.subscribe('setting'); diff --git a/client/lib/cardSearch.js b/client/lib/cardSearch.js index 5af6a974f..621b8bd3d 100644 --- a/client/lib/cardSearch.js +++ b/client/lib/cardSearch.js @@ -1,3 +1,6 @@ +import Cards from '../../models/cards'; +import SessionData from '../../models/usersessiondata'; + export class CardSearchPagedComponent extends BlazeComponent { onCreated() { this.searching = new ReactiveVar(false); diff --git a/config/query-classes.js b/config/query-classes.js index aa97f306a..3120dce71 100644 --- a/config/query-classes.js +++ b/config/query-classes.js @@ -193,6 +193,10 @@ export class Query { return this.queryParams.getParams(); } + addPredicate(operator, predicate) { + this.queryParams.addPredicate(operator, predicate); + } + buildParams(queryText) { queryText = queryText.trim(); // eslint-disable-next-line no-console