From ceba65a0986832dc9c51f41f16cc11511276988d Mon Sep 17 00:00:00 2001 From: humancopy Date: Mon, 2 Jul 2018 14:26:59 +0200 Subject: [PATCH] Add the possibility to create a negated rule on segments --- lib/models/segments.js | 5 ++++- views/lists/segments/rule-configure.hbs | 14 ++++++++++++++ views/lists/segments/rule-edit.hbs | 14 ++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/lib/models/segments.js b/lib/models/segments.js index 47a3afbc..5439059d 100644 --- a/lib/models/segments.js +++ b/lib/models/segments.js @@ -327,6 +327,7 @@ module.exports.createRule = (segmentId, rule, callback) => { break; default: value = { + negate: Number(rule.negate) ? 1 : 0, value: rule.value }; } @@ -491,6 +492,7 @@ module.exports.updateRule = (id, rule, callback) => { break; default: value = { + negate: Number(rule.negate) ? 1 : 0, value: rule.value }; } @@ -573,7 +575,8 @@ module.exports.getQuery = (id, prefix, callback) => { segment.rules.forEach(rule => { switch (rule.columnType.type) { case 'string': - query.push(prefix + '`' + rule.columnType.column + '` LIKE ?'); + let condition = rule.value.negate ? 'NOT LIKE' : 'LIKE'; + query.push(prefix + '`' + rule.columnType.column + '` ' + condition + ' ?'); values.push(rule.value.value); break; case 'boolean': diff --git a/views/lists/segments/rule-configure.hbs b/views/lists/segments/rule-configure.hbs index 0d37b1c0..e7ffee6f 100644 --- a/views/lists/segments/rule-configure.hbs +++ b/views/lists/segments/rule-configure.hbs @@ -23,6 +23,20 @@ {{#if columnTypeString}} +
+ +
+ +
+
+
diff --git a/views/lists/segments/rule-edit.hbs b/views/lists/segments/rule-edit.hbs index 4cdee26b..9c78c044 100644 --- a/views/lists/segments/rule-edit.hbs +++ b/views/lists/segments/rule-edit.hbs @@ -28,6 +28,20 @@
{{#if columnTypeString}} +
+ +
+ +
+
+