mirror of
https://github.com/wekan/wekan.git
synced 2025-12-17 07:50:12 +01:00
Correcting constructed mongoSelector
This commit is contained in:
parent
78317ef792
commit
cbdb7b4f64
2 changed files with 22 additions and 11 deletions
|
|
@ -32,7 +32,7 @@
|
||||||
"comma-spacing": 2,
|
"comma-spacing": 2,
|
||||||
"comma-style": 2,
|
"comma-style": 2,
|
||||||
"eol-last": 2,
|
"eol-last": 2,
|
||||||
"linebreak-style": [2, "unix"],
|
"linebreak-style": [2, "windows"],
|
||||||
"new-parens": 2,
|
"new-parens": 2,
|
||||||
"no-lonely-if": 2,
|
"no-lonely-if": 2,
|
||||||
"no-multiple-empty-lines": 2,
|
"no-multiple-empty-lines": 2,
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,13 @@ function showFilterSidebar() {
|
||||||
|
|
||||||
// Use a "set" filter for a field that is a set of documents uniquely
|
// Use a "set" filter for a field that is a set of documents uniquely
|
||||||
// identified. For instance `{ labels: ['labelA', 'labelC', 'labelD'] }`.
|
// identified. For instance `{ labels: ['labelA', 'labelC', 'labelD'] }`.
|
||||||
|
// use "subField" for searching inside object Fields.
|
||||||
|
// For instance '{ customFields: [{_id : 'field1'}]} (subField would be: _id)
|
||||||
class SetFilter {
|
class SetFilter {
|
||||||
constructor() {
|
constructor(subField = '') {
|
||||||
this._dep = new Tracker.Dependency();
|
this._dep = new Tracker.Dependency();
|
||||||
this._selectedElements = [];
|
this._selectedElements = [];
|
||||||
|
this.subField = subField;
|
||||||
}
|
}
|
||||||
|
|
||||||
isSelected(val) {
|
isSelected(val) {
|
||||||
|
|
@ -61,8 +64,22 @@ class SetFilter {
|
||||||
|
|
||||||
_getMongoSelector() {
|
_getMongoSelector() {
|
||||||
this._dep.depend();
|
this._dep.depend();
|
||||||
|
if (this.subField !== '')
|
||||||
|
{
|
||||||
|
|
||||||
|
const selector = [];
|
||||||
|
this._selectedElements.forEach((element) => {
|
||||||
|
const item = [];
|
||||||
|
item[this.subField] = element;
|
||||||
|
selector.push(item);
|
||||||
|
});
|
||||||
|
return {$in: selector};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return { $in: this._selectedElements };
|
return { $in: this._selectedElements };
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_getEmptySelector() {
|
_getEmptySelector() {
|
||||||
this._dep.depend();
|
this._dep.depend();
|
||||||
|
|
@ -86,7 +103,7 @@ Filter = {
|
||||||
// before changing the schema.
|
// before changing the schema.
|
||||||
labelIds: new SetFilter(),
|
labelIds: new SetFilter(),
|
||||||
members: new SetFilter(),
|
members: new SetFilter(),
|
||||||
customFields: new SetFilter(),
|
customFields: new SetFilter('_id'),
|
||||||
|
|
||||||
_fields: ['labelIds', 'members', 'customFields'],
|
_fields: ['labelIds', 'members', 'customFields'],
|
||||||
|
|
||||||
|
|
@ -112,13 +129,7 @@ Filter = {
|
||||||
this._fields.forEach((fieldName) => {
|
this._fields.forEach((fieldName) => {
|
||||||
const filter = this[fieldName];
|
const filter = this[fieldName];
|
||||||
if (filter._isActive()) {
|
if (filter._isActive()) {
|
||||||
if (fieldName === 'customFields'){
|
|
||||||
filterSelector[fieldName] = {_id: filter._getMongoSelector()};
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
filterSelector[fieldName] = filter._getMongoSelector();
|
filterSelector[fieldName] = filter._getMongoSelector();
|
||||||
}
|
|
||||||
emptySelector[fieldName] = filter._getEmptySelector();
|
emptySelector[fieldName] = filter._getEmptySelector();
|
||||||
if (emptySelector[fieldName] !== null) {
|
if (emptySelector[fieldName] !== null) {
|
||||||
includeEmptySelectors = true;
|
includeEmptySelectors = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue