From 6e86292b997d40e36822efd10d6940e93da4abd0 Mon Sep 17 00:00:00 2001 From: Pedro Sousa <18445484+slvrpdr@users.noreply.github.com> Date: Fri, 3 Apr 2020 16:23:48 +0100 Subject: Search also a Card's Custom Fields --- models/boards.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'models/boards.js') diff --git a/models/boards.js b/models/boards.js index 8862f301..35ee1a36 100644 --- a/models/boards.js +++ b/models/boards.js @@ -806,7 +806,11 @@ Boards.helpers({ if (term) { const regex = new RegExp(term, 'i'); - query.$or = [{ title: regex }, { description: regex }]; + query.$or = [ + { title: regex }, + { description: regex }, + { customFields: { $elemMatch: { value: regex } } }, + ]; } return Cards.find(query, projection); -- cgit v1.2.3-1-g7c22 From 2400c910135dbcdddd82954951fc3a970748af55 Mon Sep 17 00:00:00 2001 From: boeserwolf Date: Sun, 19 Apr 2020 10:48:44 +0300 Subject: Add sort field to boards model --- models/boards.js | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'models/boards.js') diff --git a/models/boards.js b/models/boards.js index 35ee1a36..fba690a7 100644 --- a/models/boards.js +++ b/models/boards.js @@ -493,6 +493,14 @@ Boards.attachSchema( type: String, defaultValue: 'board', }, + sort: { + /** + * Sort value + */ + type: Number, + decimal: true, + defaultValue: -1, + }, }), ); -- cgit v1.2.3-1-g7c22 From 10fcc19b7f9307e71f01b6abca055806d69f7d4e Mon Sep 17 00:00:00 2001 From: boeserwolf Date: Sun, 19 Apr 2020 12:30:21 +0300 Subject: Add sortDefault helper for sorting boards --- models/boards.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'models/boards.js') diff --git a/models/boards.js b/models/boards.js index fba690a7..fdb07f89 100644 --- a/models/boards.js +++ b/models/boards.js @@ -1474,7 +1474,7 @@ if (Meteor.isServer) { 'members.userId': paramUserId, }, { - sort: ['title'], + sort: { sort: 1 /* boards default sorting */ }, }, ).map(function(board) { return { @@ -1504,7 +1504,12 @@ if (Meteor.isServer) { Authentication.checkUserId(req.userId); JsonRoutes.sendResult(res, { code: 200, - data: Boards.find({ permission: 'public' }).map(function(doc) { + data: Boards.find( + { permission: 'public' }, + { + sort: { sort: 1 /* boards default sorting */ }, + }, + ).map(function(doc) { return { _id: doc._id, title: doc.title, -- cgit v1.2.3-1-g7c22 From b3efa71d1373ede679282be35cba947dc2b868ff Mon Sep 17 00:00:00 2001 From: boeserwolf Date: Sun, 19 Apr 2020 12:38:56 +0300 Subject: Add move function to boards mutations --- models/boards.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'models/boards.js') diff --git a/models/boards.js b/models/boards.js index fdb07f89..4c2d96da 100644 --- a/models/boards.js +++ b/models/boards.js @@ -1194,6 +1194,10 @@ Boards.mutations({ setPresentParentTask(presentParentTask) { return { $set: { presentParentTask } }; }, + + move(sortIndex) { + return { $set: { sort: sortIndex } }; + }, }); function boardRemover(userId, doc) { -- cgit v1.2.3-1-g7c22 From b42d8346cda99258f4ab5689ebd02fdc7c2e85c3 Mon Sep 17 00:00:00 2001 From: boeserwolf Date: Sun, 19 Apr 2020 15:53:13 +0300 Subject: Insert new boards at last position --- models/boards.js | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'models/boards.js') diff --git a/models/boards.js b/models/boards.js index 4c2d96da..170ebc5a 100644 --- a/models/boards.js +++ b/models/boards.js @@ -1295,6 +1295,14 @@ if (Meteor.isServer) { }); } +// Insert new board at last position in sort order. +Boards.before.insert((userId, doc) => { + const lastBoard = Boards.findOne({ sort: { $exists: true } }, { sort: { sort: -1 } }); + if (lastBoard && typeof lastBoard.sort !== 'undefined') { + doc.sort = lastBoard.sort + 1; + } +}); + if (Meteor.isServer) { // Let MongoDB ensure that a member is not included twice in the same board Meteor.startup(() => { -- cgit v1.2.3-1-g7c22 From 9e95c06415e614e587d684ff9660cc53c5f8c8d3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 22 Apr 2020 21:00:31 +0300 Subject: Fix lint errors in lint error fix. Thanks to xet7 ! --- models/boards.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'models/boards.js') diff --git a/models/boards.js b/models/boards.js index 170ebc5a..26dc6127 100644 --- a/models/boards.js +++ b/models/boards.js @@ -1297,7 +1297,10 @@ if (Meteor.isServer) { // Insert new board at last position in sort order. Boards.before.insert((userId, doc) => { - const lastBoard = Boards.findOne({ sort: { $exists: true } }, { sort: { sort: -1 } }); + const lastBoard = Boards.findOne( + { sort: { $exists: true } }, + { sort: { sort: -1 } }, + ); if (lastBoard && typeof lastBoard.sort !== 'undefined') { doc.sort = lastBoard.sort + 1; } -- cgit v1.2.3-1-g7c22