More Filter Corrections (Custom Fields)

This commit is contained in:
IgnatzHome 2018-05-19 16:06:06 +02:00
parent f6d19d2833
commit bc0aef3332

View file

@ -11,7 +11,7 @@ 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 : { $in: ['field1']}}]} (subField would be: _id)
// For instance '{ 'customFields._id': ['field1','field2']} (subField would be: _id)
class SetFilter {
constructor(subField = '') {
this._dep = new Tracker.Dependency();
@ -64,21 +64,7 @@ class SetFilter {
_getMongoSelector() {
this._dep.depend();
if (this.subField !== '')
{
const selector = [];
this._selectedElements.forEach((element) => {
const item = [];
item[this.subField] = {$in: [element]};
selector.push(item);
});
return {$in: selector};
}
else
{
return { $in: this._selectedElements };
}
return { $in: this._selectedElements };
}
_getEmptySelector() {
@ -128,6 +114,7 @@ Filter = {
let includeEmptySelectors = false;
this._fields.forEach((fieldName) => {
const filter = this[fieldName];
if (filter.subField !== '') fieldName = `${fieldName}.${filter.subField}`;
if (filter._isActive()) {
filterSelector[fieldName] = filter._getMongoSelector();
emptySelector[fieldName] = filter._getEmptySelector();