From bc2a20f04e32607f8488a9cecd815647fb43e40e Mon Sep 17 00:00:00 2001 From: "Sam X. Chen" Date: Fri, 18 Oct 2019 16:44:09 -0400 Subject: Add Feature: allow user to sort Lists in Board by his own preference, boardadmin can star list --- client/lib/filter.js | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'client/lib/filter.js') diff --git a/client/lib/filter.js b/client/lib/filter.js index 1ca3a280..b0695625 100644 --- a/client/lib/filter.js +++ b/client/lib/filter.js @@ -439,6 +439,14 @@ class AdvancedFilter { const commands = this._filterToCommands(); return this._arrayToSelector(commands); } + getRegexSelector() { + // generate a regex for filter list + this._dep.depend(); + return new RegExp( + `^.*${this._filter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}.*$`, + 'i', + ); + } } // The global Filter object. @@ -455,8 +463,16 @@ Filter = { hideEmpty: new SetFilter(), customFields: new SetFilter('_id'), advanced: new AdvancedFilter(), - - _fields: ['labelIds', 'members', 'archive', 'hideEmpty', 'customFields'], + lists: new AdvancedFilter(), // we need the ability to filter list by name as well + + _fields: [ + 'labelIds', + 'members', + 'archive', + 'hideEmpty', + 'customFields', + 'lists', + ], // We don't filter cards that have been added after the last filter change. To // implement this we keep the id of these cards in this `_exceptions` fields -- cgit v1.2.3-1-g7c22 From d2d4840758b0f5aed7feb4f6a459bb2b2d1a3f0b Mon Sep 17 00:00:00 2001 From: "Sam X. Chen" Date: Fri, 18 Oct 2019 18:06:34 -0400 Subject: Add Feature: allowing user to filter list in Filter function not just cards --- client/lib/filter.js | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'client/lib/filter.js') diff --git a/client/lib/filter.js b/client/lib/filter.js index b0695625..9ddea65c 100644 --- a/client/lib/filter.js +++ b/client/lib/filter.js @@ -465,14 +465,7 @@ Filter = { advanced: new AdvancedFilter(), lists: new AdvancedFilter(), // we need the ability to filter list by name as well - _fields: [ - 'labelIds', - 'members', - 'archive', - 'hideEmpty', - 'customFields', - 'lists', - ], + _fields: ['labelIds', 'members', 'archive', 'hideEmpty', 'customFields'], // We don't filter cards that have been added after the last filter change. To // implement this we keep the id of these cards in this `_exceptions` fields @@ -549,6 +542,7 @@ Filter = { const filter = this[fieldName]; filter.reset(); }); + this.lists.reset(); this.advanced.reset(); this.resetExceptions(); }, -- cgit v1.2.3-1-g7c22 From b26504f4145e1968f18389982210f60c1f1fa725 Mon Sep 17 00:00:00 2001 From: "Sam X. Chen" Date: Wed, 30 Oct 2019 09:45:50 -0400 Subject: Fix: lists filter didn't get added into filter active checklist --- client/lib/filter.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'client/lib/filter.js') diff --git a/client/lib/filter.js b/client/lib/filter.js index 9ddea65c..592eb4ab 100644 --- a/client/lib/filter.js +++ b/client/lib/filter.js @@ -477,7 +477,9 @@ Filter = { return ( _.any(this._fields, fieldName => { return this[fieldName]._isActive(); - }) || this.advanced._isActive() + }) || + this.advanced._isActive() || + this.lists._isActive() ); }, -- cgit v1.2.3-1-g7c22