summaryrefslogtreecommitdiffstats
path: root/client/lib
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2018-05-19 17:39:05 +0300
committerLauri Ojansivu <x@xet7.org>2018-05-19 17:39:05 +0300
commit7dfec581282e317985191b28f302bae24534a70f (patch)
treedd52adc6c46ad14a38c63f3271902b396d387eaf /client/lib
parent8101d7ade85dbdf6dad95d96a937bf9718630373 (diff)
parent977bce9eb2d367220f30d15e5913d62a2d22c8a0 (diff)
downloadwekan-7dfec581282e317985191b28f302bae24534a70f.tar.gz
wekan-7dfec581282e317985191b28f302bae24534a70f.tar.bz2
wekan-7dfec581282e317985191b28f302bae24534a70f.zip
Merge branch 'feature-custom-fields-filter' of https://github.com/feuerball11/wekan into feuerball11-feature-custom-fields-filter
Diffstat (limited to 'client/lib')
-rw-r--r--client/lib/filter.js17
1 files changed, 14 insertions, 3 deletions
diff --git a/client/lib/filter.js b/client/lib/filter.js
index 8129776b..f68c9711 100644
--- a/client/lib/filter.js
+++ b/client/lib/filter.js
@@ -10,10 +10,13 @@ function showFilterSidebar() {
// Use a "set" filter for a field that is a set of documents uniquely
// identified. For instance `{ labels: ['labelA', 'labelC', 'labelD'] }`.
+// use "subField" for searching inside object Fields.
+// For instance '{ 'customFields._id': ['field1','field2']} (subField would be: _id)
class SetFilter {
- constructor() {
+ constructor(subField = '') {
this._dep = new Tracker.Dependency();
this._selectedElements = [];
+ this.subField = subField;
}
isSelected(val) {
@@ -86,8 +89,9 @@ Filter = {
// before changing the schema.
labelIds: new SetFilter(),
members: new SetFilter(),
+ customFields: new SetFilter('_id'),
- _fields: ['labelIds', 'members'],
+ _fields: ['labelIds', 'members', '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
@@ -111,7 +115,14 @@ Filter = {
this._fields.forEach((fieldName) => {
const filter = this[fieldName];
if (filter._isActive()) {
- filterSelector[fieldName] = filter._getMongoSelector();
+ if (filter.subField !== '')
+ {
+ filterSelector[`${fieldName}.${filter.subField}`] = filter._getMongoSelector();
+ }
+ else
+ {
+ filterSelector[fieldName] = filter._getMongoSelector();
+ }
emptySelector[fieldName] = filter._getEmptySelector();
if (emptySelector[fieldName] !== null) {
includeEmptySelectors = true;