summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgnatzHome <ignatz@maschath.de>2018-05-20 14:53:00 +0200
committerIgnatzHome <ignatz@maschath.de>2018-05-20 14:53:00 +0200
commitdd7c9997a937fde0c598188884db6690e77bfb11 (patch)
treeb5c74ac10dabe4eaf5544b7f2a8a4a6440615fa9
parent256ca129f0301765ce1b2522c9e4aef68eda9e8c (diff)
downloadwekan-dd7c9997a937fde0c598188884db6690e77bfb11.tar.gz
wekan-dd7c9997a937fde0c598188884db6690e77bfb11.tar.bz2
wekan-dd7c9997a937fde0c598188884db6690e77bfb11.zip
Removing Debug Lines, correcting behavior, caching las valide filter, and adding description
-rw-r--r--client/components/sidebar/sidebarFilters.jade2
-rw-r--r--client/components/sidebar/sidebarFilters.js2
-rw-r--r--client/lib/filter.js13
-rw-r--r--i18n/en.i18n.json2
4 files changed, 10 insertions, 9 deletions
diff --git a/client/components/sidebar/sidebarFilters.jade b/client/components/sidebar/sidebarFilters.jade
index 00d8c87b..c0696391 100644
--- a/client/components/sidebar/sidebarFilters.jade
+++ b/client/components/sidebar/sidebarFilters.jade
@@ -56,7 +56,9 @@ template(name="filterSidebar")
if Filter.customFields.isSelected _id
i.fa.fa-check
hr
+ span {{_ 'advanced-filter-label}}
input.js-field-advanced-filter(type="text")
+ span {{_ 'advanced-filter-description'}}
if Filter.isActive
hr
a.sidebar-btn.js-clear-all
diff --git a/client/components/sidebar/sidebarFilters.js b/client/components/sidebar/sidebarFilters.js
index 6fb3f500..fd8229e4 100644
--- a/client/components/sidebar/sidebarFilters.js
+++ b/client/components/sidebar/sidebarFilters.js
@@ -16,7 +16,7 @@ BlazeComponent.extendComponent({
Filter.customFields.toggle(this.currentData()._id);
Filter.resetExceptions();
},
- 'input .js-field-advanced-filter'(evt) {
+ 'change .js-field-advanced-filter'(evt) {
evt.preventDefault();
Filter.advanced.set(this.find('.js-field-advanced-filter').value.trim());
Filter.resetExceptions();
diff --git a/client/lib/filter.js b/client/lib/filter.js
index 18d95ebd..c5f8fe7e 100644
--- a/client/lib/filter.js
+++ b/client/lib/filter.js
@@ -86,6 +86,7 @@ class AdvancedFilter {
constructor() {
this._dep = new Tracker.Dependency();
this._filter = '';
+ this._lastValide={};
}
set(str)
@@ -96,6 +97,7 @@ class AdvancedFilter {
reset() {
this._filter = '';
+ this._lastValide={};
this._dep.changed();
}
@@ -147,26 +149,23 @@ class AdvancedFilter {
_fieldNameToId(field)
{
- console.log(`searching: ${field}`);
const found = CustomFields.findOne({'name':field});
- console.log(found);
return found._id;
}
_arrayToSelector(commands)
{
- console.log('Parts: ', JSON.stringify(commands));
try {
//let changed = false;
this._processSubCommands(commands);
}
- catch (e){return { $in: [] };}
+ catch (e){return this._lastValide;}
+ this._lastValide = {$or: commands};
return {$or: commands};
}
_processSubCommands(commands)
{
- console.log('SubCommands: ', JSON.stringify(commands));
const subcommands = [];
let level = 0;
let start = -1;
@@ -205,16 +204,13 @@ class AdvancedFilter {
if (start !== -1)
{
this._processSubCommands(subcommands);
- console.log ('subcommands: ', subcommands.length);
if (subcommands.length === 1)
commands.splice(start, 0, subcommands[0]);
else
commands.splice(start, 0, subcommands);
}
this._processConditions(commands);
- console.log('Conditions: ', JSON.stringify(commands));
this._processLogicalOperators(commands);
- console.log('Operator: ', JSON.stringify(commands));
}
_processConditions(commands)
@@ -458,6 +454,7 @@ Filter = {
const filter = this[fieldName];
filter.reset();
});
+ this.advanced.reset();
this.resetExceptions();
},
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index e2d6ddce..f44dba23 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -246,6 +246,8 @@
"filter-on": "Filter is on",
"filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
"filter-to-selection": "Filter to selection",
+ "advanced-filter-label": "Advanced Filter",
+ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A Space is used as seperator between the operators. You can filter for all custom fields by simply typing there names and values. For example: Field1 == Value1 Note: If fields or values contains spaces, you need to encapsulate them into single quetes. For example: 'Field 1' == 'Value 1' Also you can combine multiple Conditions. For Example: F1 == V1 || F1 = V2 Normaly all Operators are interpreted from left to right. You can change the order of that by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
"fullname": "Full Name",
"header-logo-title": "Go back to your boards page.",
"hide-system-messages": "Hide system messages",