Răsfoiți Sursa

Merge pull request #4074 from mfilser/global_search_checklistitems_and_customFields_boolean

Global search checklistitems and custom fields boolean
Lauri Ojansivu 3 ani în urmă
părinte
comite
18ff4bee2d
1 a modificat fișierele cu 9 adăugiri și 16 ștergeri
  1. 9 16
      server/publications/cards.js

+ 9 - 16
server/publications/cards.js

@@ -404,7 +404,7 @@ function buildSelector(queryParams) {
 
       const items = ChecklistItems.find(
         { title: regex },
-        { fields: { cardId: 1 } },
+        { fields: { cardId: 1, checklistId: 1 } },
       );
       const checklists = Checklists.find(
         {
@@ -423,23 +423,18 @@ function buildSelector(queryParams) {
         { fields: { cardId: 1 } },
       );
 
-      selector.$and.push({
-        $or: [
+      let cardsSelector = [
           { title: regex },
           { description: regex },
           { customFields: { $elemMatch: { value: regex } } },
-          // {
-          //   _id: {
-          //     $in: CardComments.textSearch(userId, [queryParams.text]).map(
-          //       com => com.cardId,
-          //     ),
-          //   },
-          // },
           { _id: { $in: checklists.map(list => list.cardId) } },
           { _id: { $in: attachments.map(attach => attach.cardId) } },
           { _id: { $in: comments.map(com => com.cardId) } },
-        ],
-      });
+        ];
+      if (queryParams.text == "false" || queryParams.text == "true") {
+        cardsSelector.push({ customFields: { $elemMatch: { value: queryParams.text == "true" ? true : false } } } );
+      }
+      selector.$and.push({ $or: cardsSelector });
     }
 
     if (selector.$and.length === 0) {
@@ -448,9 +443,7 @@ function buildSelector(queryParams) {
   }
 
   // eslint-disable-next-line no-console
-  console.log('selector:', selector);
-  // eslint-disable-next-line no-console
-  console.log('selector.$and:', selector.$and);
+  console.log('cards selector:', JSON.stringify(selector, null, 2));
 
   const query = new Query();
   query.selector = selector;
@@ -610,7 +603,7 @@ function findCards(sessionId, query) {
   // console.log('selector:', query.selector);
   // console.log('selector.$and:', query.selector.$and);
   // eslint-disable-next-line no-console
-  // console.log('projection:', projection);
+  // console.log('projection:', query.projection);
 
   const cards = Cards.find(query.selector, query.projection);
   // eslint-disable-next-line no-console