lint corrections

This commit is contained in:
Ignatz 2018-05-23 11:04:12 +02:00
parent 0195044ba1
commit 3d1f004e90

View file

@ -86,18 +86,17 @@ class AdvancedFilter {
constructor() { constructor() {
this._dep = new Tracker.Dependency(); this._dep = new Tracker.Dependency();
this._filter = ''; this._filter = '';
this._lastValide={}; this._lastValide = {};
} }
set(str) set(str) {
{
this._filter = str; this._filter = str;
this._dep.changed(); this._dep.changed();
} }
reset() { reset() {
this._filter = ''; this._filter = '';
this._lastValide={}; this._lastValide = {};
this._dep.changed(); this._dep.changed();
} }
@ -106,103 +105,89 @@ class AdvancedFilter {
return this._filter !== ''; return this._filter !== '';
} }
_filterToCommands(){ _filterToCommands() {
const commands = []; const commands = [];
let current = ''; let current = '';
let string = false; let string = false;
let wasString = false; let wasString = false;
let ignore = false; let ignore = false;
for (let i = 0; i < this._filter.length; i++) for (let i = 0; i < this._filter.length; i++) {
{
const char = this._filter.charAt(i); const char = this._filter.charAt(i);
if (ignore) if (ignore) {
{
ignore = false; ignore = false;
continue; continue;
} }
if (char === '\'') if (char === '\'') {
{
string = !string; string = !string;
if (string) wasString = true; if (string) wasString = true;
continue; continue;
} }
if (char === '\\') if (char === '\\') {
{
ignore = true; ignore = true;
continue; continue;
} }
if (char === ' ' && !string) if (char === ' ' && !string) {
{ commands.push({ 'cmd': current, 'string': wasString });
commands.push({'cmd':current, 'string':wasString});
wasString = false; wasString = false;
current = ''; current = '';
continue; continue;
} }
current += char; current += char;
} }
if (current !== '') if (current !== '') {
{ commands.push({ 'cmd': current, 'string': wasString });
commands.push({'cmd':current, 'string':wasString});
} }
return commands; return commands;
} }
_fieldNameToId(field) _fieldNameToId(field) {
{ const found = CustomFields.findOne({ 'name': field });
const found = CustomFields.findOne({'name':field});
return found._id; return found._id;
} }
_arrayToSelector(commands) _arrayToSelector(commands) {
{
try { try {
//let changed = false; //let changed = false;
this._processSubCommands(commands); this._processSubCommands(commands);
} }
catch (e){return this._lastValide;} catch (e) { return this._lastValide; }
this._lastValide = {$or: commands}; this._lastValide = { $or: commands };
return {$or: commands}; return { $or: commands };
} }
_processSubCommands(commands) _processSubCommands(commands) {
{
const subcommands = []; const subcommands = [];
let level = 0; let level = 0;
let start = -1; let start = -1;
for (let i = 0; i < commands.length; i++) for (let i = 0; i < commands.length; i++) {
{ if (commands[i].cmd) {
if (commands[i].cmd) switch (commands[i].cmd) {
{
switch (commands[i].cmd)
{
case '(': case '(':
{
level++;
if (start === -1) start = i;
continue;
}
case ')':
{
level--;
commands.splice(i, 1);
i--;
continue;
}
default:
{
if (level > 0)
{ {
subcommands.push(commands[i]); level++;
if (start === -1) start = i;
continue;
}
case ')':
{
level--;
commands.splice(i, 1); commands.splice(i, 1);
i--; i--;
continue; continue;
} }
} default:
{
if (level > 0) {
subcommands.push(commands[i]);
commands.splice(i, 1);
i--;
continue;
}
}
} }
} }
} }
if (start !== -1) if (start !== -1) {
{
this._processSubCommands(subcommands); this._processSubCommands(subcommands);
if (subcommands.length === 1) if (subcommands.length === 1)
commands.splice(start, 0, subcommands[0]); commands.splice(start, 0, subcommands[0]);
@ -213,154 +198,146 @@ class AdvancedFilter {
this._processLogicalOperators(commands); this._processLogicalOperators(commands);
} }
_processConditions(commands) _processConditions(commands) {
{ for (let i = 0; i < commands.length; i++) {
for (let i = 0; i < commands.length; i++) if (!commands[i].string && commands[i].cmd) {
{ switch (commands[i].cmd) {
if (!commands[i].string && commands[i].cmd)
{
switch (commands[i].cmd)
{
case '=': case '=':
case '==': case '==':
case '===': case '===':
{ {
const field = commands[i-1].cmd; const field = commands[i - 1].cmd;
const str = commands[i+1].cmd; const str = commands[i + 1].cmd;
commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value':str}; commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': str };
commands.splice(i-1, 1); commands.splice(i - 1, 1);
commands.splice(i, 1); commands.splice(i, 1);
//changed = true; //changed = true;
i--; i--;
break; break;
} }
case '!=': case '!=':
case '!==': case '!==':
{ {
const field = commands[i-1].cmd; const field = commands[i - 1].cmd;
const str = commands[i+1].cmd; const str = commands[i + 1].cmd;
commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $not: str }}; commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $not: str } };
commands.splice(i-1, 1); commands.splice(i - 1, 1);
commands.splice(i, 1); commands.splice(i, 1);
//changed = true; //changed = true;
i--; i--;
break; break;
} }
case '>': case '>':
case 'gt': case 'gt':
case 'Gt': case 'Gt':
case 'GT': case 'GT':
{ {
const field = commands[i-1].cmd; const field = commands[i - 1].cmd;
const str = commands[i+1].cmd; const str = commands[i + 1].cmd;
commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $gt: str } }; commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $gt: str } };
commands.splice(i-1, 1); commands.splice(i - 1, 1);
commands.splice(i, 1); commands.splice(i, 1);
//changed = true; //changed = true;
i--; i--;
break; break;
} }
case '>=': case '>=':
case '>==': case '>==':
case 'gte': case 'gte':
case 'Gte': case 'Gte':
case 'GTE': case 'GTE':
{ {
const field = commands[i-1].cmd; const field = commands[i - 1].cmd;
const str = commands[i+1].cmd; const str = commands[i + 1].cmd;
commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $gte: str } }; commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $gte: str } };
commands.splice(i-1, 1); commands.splice(i - 1, 1);
commands.splice(i, 1); commands.splice(i, 1);
//changed = true; //changed = true;
i--; i--;
break; break;
} }
case '<': case '<':
case 'lt': case 'lt':
case 'Lt': case 'Lt':
case 'LT': case 'LT':
{ {
const field = commands[i-1].cmd; const field = commands[i - 1].cmd;
const str = commands[i+1].cmd; const str = commands[i + 1].cmd;
commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $lt: str } }; commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $lt: str } };
commands.splice(i-1, 1); commands.splice(i - 1, 1);
commands.splice(i, 1); commands.splice(i, 1);
//changed = true; //changed = true;
i--; i--;
break; break;
} }
case '<=': case '<=':
case '<==': case '<==':
case 'lte': case 'lte':
case 'Lte': case 'Lte':
case 'LTE': case 'LTE':
{ {
const field = commands[i-1].cmd; const field = commands[i - 1].cmd;
const str = commands[i+1].cmd; const str = commands[i + 1].cmd;
commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $lte: str } }; commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $lte: str } };
commands.splice(i-1, 1); commands.splice(i - 1, 1);
commands.splice(i, 1); commands.splice(i, 1);
//changed = true; //changed = true;
i--; i--;
break; break;
} }
} }
} }
} }
} }
_processLogicalOperators(commands) _processLogicalOperators(commands) {
{ for (let i = 0; i < commands.length; i++) {
for (let i = 0; i < commands.length; i++) if (!commands[i].string && commands[i].cmd) {
{ switch (commands[i].cmd) {
if (!commands[i].string && commands[i].cmd)
{
switch (commands[i].cmd)
{
case 'or': case 'or':
case 'Or': case 'Or':
case 'OR': case 'OR':
case '|': case '|':
case '||': case '||':
{ {
const op1 = commands[i-1]; const op1 = commands[i - 1];
const op2 = commands[i+1]; const op2 = commands[i + 1];
commands[i] = {$or: [op1, op2]}; commands[i] = { $or: [op1, op2] };
commands.splice(i-1, 1); commands.splice(i - 1, 1);
commands.splice(i, 1); commands.splice(i, 1);
//changed = true; //changed = true;
i--; i--;
break; break;
} }
case 'and': case 'and':
case 'And': case 'And':
case 'AND': case 'AND':
case '&': case '&':
case '&&': case '&&':
{ {
const op1 = commands[i-1]; const op1 = commands[i - 1];
const op2 = commands[i+1]; const op2 = commands[i + 1];
commands[i] = {$and: [op1, op2]}; commands[i] = { $and: [op1, op2] };
commands.splice(i-1, 1); commands.splice(i - 1, 1);
commands.splice(i, 1); commands.splice(i, 1);
//changed = true; //changed = true;
i--; i--;
break; break;
} }
case 'not': case 'not':
case 'Not': case 'Not':
case 'NOT': case 'NOT':
case '!': case '!':
{ {
const op1 = commands[i+1]; const op1 = commands[i + 1];
commands[i] = {$not: op1}; commands[i] = { $not: op1 };
commands.splice(i+1, 1); commands.splice(i + 1, 1);
//changed = true; //changed = true;
i--; i--;
break; break;
} }
} }
} }
@ -412,12 +389,10 @@ Filter = {
this._fields.forEach((fieldName) => { this._fields.forEach((fieldName) => {
const filter = this[fieldName]; const filter = this[fieldName];
if (filter._isActive()) { if (filter._isActive()) {
if (filter.subField !== '') if (filter.subField !== '') {
{
filterSelector[`${fieldName}.${filter.subField}`] = filter._getMongoSelector(); filterSelector[`${fieldName}.${filter.subField}`] = filter._getMongoSelector();
} }
else else {
{
filterSelector[fieldName] = filter._getMongoSelector(); filterSelector[fieldName] = filter._getMongoSelector();
} }
emptySelector[fieldName] = filter._getEmptySelector(); emptySelector[fieldName] = filter._getEmptySelector();
@ -427,7 +402,7 @@ Filter = {
} }
}); });
const exceptionsSelector = {_id: {$in: this._exceptions}}; const exceptionsSelector = { _id: { $in: this._exceptions } };
this._exceptionsDep.depend(); this._exceptionsDep.depend();
const selectors = [exceptionsSelector]; const selectors = [exceptionsSelector];
@ -438,7 +413,7 @@ Filter = {
if (includeEmptySelectors) selectors.push(emptySelector); if (includeEmptySelectors) selectors.push(emptySelector);
if (this.advanced._isActive()) selectors.push(this.advanced._getMongoSelector()); if (this.advanced._isActive()) selectors.push(this.advanced._getMongoSelector());
return {$or: selectors}; return { $or: selectors };
}, },
mongoSelector(additionalSelector) { mongoSelector(additionalSelector) {
@ -446,7 +421,7 @@ Filter = {
if (_.isUndefined(additionalSelector)) if (_.isUndefined(additionalSelector))
return filterSelector; return filterSelector;
else else
return {$and: [filterSelector, additionalSelector]}; return { $and: [filterSelector, additionalSelector] };
}, },
reset() { reset() {