Correcting constructed mongoSelector

This commit is contained in:
IgnatzHome 2018-05-19 15:21:12 +02:00
parent 78317ef792
commit cbdb7b4f64
2 changed files with 22 additions and 11 deletions

View file

@ -32,7 +32,7 @@
"comma-spacing": 2,
"comma-style": 2,
"eol-last": 2,
"linebreak-style": [2, "unix"],
"linebreak-style": [2, "windows"],
"new-parens": 2,
"no-lonely-if": 2,
"no-multiple-empty-lines": 2,

View file

@ -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'}]} (subField would be: _id)
class SetFilter {
constructor() {
constructor(subField = '') {
this._dep = new Tracker.Dependency();
this._selectedElements = [];
this.subField = subField;
}
isSelected(val) {
@ -61,7 +64,21 @@ class SetFilter {
_getMongoSelector() {
this._dep.depend();
return { $in: this._selectedElements };
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 };
}
}
_getEmptySelector() {
@ -86,7 +103,7 @@ Filter = {
// before changing the schema.
labelIds: new SetFilter(),
members: new SetFilter(),
customFields: new SetFilter(),
customFields: new SetFilter('_id'),
_fields: ['labelIds', 'members', 'customFields'],
@ -112,13 +129,7 @@ Filter = {
this._fields.forEach((fieldName) => {
const filter = this[fieldName];
if (filter._isActive()) {
if (fieldName === 'customFields'){
filterSelector[fieldName] = {_id: filter._getMongoSelector()};
}
else
{
filterSelector[fieldName] = filter._getMongoSelector();
}
filterSelector[fieldName] = filter._getMongoSelector();
emptySelector[fieldName] = filter._getEmptySelector();
if (emptySelector[fieldName] !== null) {
includeEmptySelectors = true;