This is an automated email from the ASF dual-hosted git repository.

nixon pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/atlas.git

commit 296be6b5945ef9df2d701e00ea25aafb7d70043b
Author: prasad pawar <[email protected]>
AuthorDate: Thu Dec 10 18:04:29 2020 +0530

    Atlas-4066: UI:- Fix Attribute Filter: 'is null' and 'is not null' does not 
work for user-defined properties.
    
    Signed-off-by: nixonrodrigues <[email protected]>
    (cherry picked from commit a4b72a00786a25e13a7453ccb199cc74cefd4aed)
---
 dashboardv2/public/js/views/search/QueryBuilderView.js | 11 ++++++-----
 dashboardv3/public/js/views/search/QueryBuilderView.js | 11 ++++++-----
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/dashboardv2/public/js/views/search/QueryBuilderView.js 
b/dashboardv2/public/js/views/search/QueryBuilderView.js
index dd38cc7..49e9f20 100644
--- a/dashboardv2/public/js/views/search/QueryBuilderView.js
+++ b/dashboardv2/public/js/views/search/QueryBuilderView.js
@@ -193,10 +193,10 @@ define(['require',
                 /* __customAttributes */
                 if (isSystemAttr && attrObj.name === "__customAttributes") {
                     obj["input"] = function(rule) {
-                        return rule.operator.nb_inputs ? 
that.getUserDefineInput() : null
+                        return (rule && rule.operator && 
rule.operator.nb_inputs) ? that.getUserDefineInput() : null
                     }
                     obj["valueGetter"] = function(rule) {
-                        if (rule.operator.type === "contains") {
+                        if (rule && rule.operator && rule.operator.type === 
"contains") {
                             var $el = rule.$el.find('.rule-value-container'),
                                 key = $el.find("[data-type='key']").val(),
                                 val = $el.find("[data-type='value']").val();
@@ -205,13 +205,15 @@ define(['require',
                             } else {
                                 return new Error("Key & Value is Required");
                             }
+                        } else {
+                            return [] // in CommonviewFunction.js value is set 
to "" for object;
                         }
                     }
                     obj["valueSetter"] = function(rule) {
-                        if (!rule.$el.hasClass("user-define")) {
+                        if (rule && !rule.$el.hasClass("user-define")) {
                             rule.$el.addClass("user-define");
                         }
-                        if (rule.value && !(rule.value instanceof Error)) {
+                        if (rule && rule.value && rule.value.length && 
!(rule.value instanceof Error)) {
                             var $el = rule.$el.find('.rule-value-container'),
                                 value = rule.value.split("=");
                             if (value) {
@@ -220,7 +222,6 @@ define(['require',
                             }
                         }
                     }
-
                     obj.operators = ['contains', 'is_null', 'not_null'];
                     return obj;
                 }
diff --git a/dashboardv3/public/js/views/search/QueryBuilderView.js 
b/dashboardv3/public/js/views/search/QueryBuilderView.js
index 9e14891..c9011f2 100644
--- a/dashboardv3/public/js/views/search/QueryBuilderView.js
+++ b/dashboardv3/public/js/views/search/QueryBuilderView.js
@@ -193,10 +193,10 @@ define(['require',
                 /* __customAttributes */
                 if (isSystemAttr && attrObj.name === "__customAttributes") {
                     obj["input"] = function(rule) {
-                        return rule.operator.nb_inputs ? 
that.getUserDefineInput() : null
+                        return (rule && rule.operator && 
rule.operator.nb_inputs) ? that.getUserDefineInput() : null
                     }
                     obj["valueGetter"] = function(rule) {
-                        if (rule.operator.type === "contains") {
+                        if (rule && rule.operator && rule.operator.type === 
"contains") {
                             var $el = rule.$el.find('.rule-value-container'),
                                 key = $el.find("[data-type='key']").val(),
                                 val = $el.find("[data-type='value']").val();
@@ -205,13 +205,15 @@ define(['require',
                             } else {
                                 return new Error("Key & Value is Required");
                             }
+                        } else {
+                            return [] // in CommonviewFunction.js value is set 
to "" for object;
                         }
                     }
                     obj["valueSetter"] = function(rule) {
-                        if (!rule.$el.hasClass("user-define")) {
+                        if (rule && !rule.$el.hasClass("user-define")) {
                             rule.$el.addClass("user-define");
                         }
-                        if (rule.value && !(rule.value instanceof Error)) {
+                        if (rule && rule.value && rule.value.length && 
!(rule.value instanceof Error)) {
                             var $el = rule.$el.find('.rule-value-container'),
                                 value = rule.value.split("=");
                             if (value) {
@@ -220,7 +222,6 @@ define(['require',
                             }
                         }
                     }
-
                     obj.operators = ['contains', 'is_null', 'not_null'];
                     return obj;
                 }

Reply via email to