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

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


The following commit(s) were added to refs/heads/branch-0.8 by this push:
     new 90b0e20  ATLAS-2994 UI - If Hide deleted entity filter is applied then 
to UI displays deleted entity in lineage
90b0e20 is described below

commit 90b0e20aa310da9398a8a3e978ab97782a811a0a
Author: Abhishek Kadam <abhishek.kada...@gmail.com>
AuthorDate: Fri Jan 11 14:40:31 2019 +0530

    ATLAS-2994 UI - If Hide deleted entity filter is applied then to UI 
displays deleted entity in lineage
---
 .../public/js/views/graph/LineageLayoutView.js     | 45 +++++++++++++++-------
 1 file changed, 32 insertions(+), 13 deletions(-)

diff --git a/dashboardv2/public/js/views/graph/LineageLayoutView.js 
b/dashboardv2/public/js/views/graph/LineageLayoutView.js
index 804dbe7..66b20ba 100644
--- a/dashboardv2/public/js/views/graph/LineageLayoutView.js
+++ b/dashboardv2/public/js/views/graph/LineageLayoutView.js
@@ -203,24 +203,31 @@ define(['require',
             generateData: function(relations, guidEntityMap) {
                 var that = this;
 
-                function isProcess(typeName) {
-                    if (typeName == "Process") {
+                function isProcess(node) {
+                    if (_.isUndefined(node) || node.typeName == "Process") {
                         return true;
                     }
-                    var entityDef = 
that.entityDefCollection.fullCollection.find({ name: typeName });
+                    var entityDef = 
that.entityDefCollection.fullCollection.find({ name: node.typeName });
                     return _.contains(Utils.getNestedSuperTypes({ data: 
entityDef.toJSON(), collection: that.entityDefCollection }), "Process")
                 }
 
-                function isDeleted(status) {
-                    return Enums.entityStateReadOnly[status];
+                function isDeleted(node) {
+                    if (_.isUndefined(node)) {
+                        return
+                    }
+                    return Enums.entityStateReadOnly[node.status];
                 }
 
                 function isNodeToBeUpdated(node) {
-                    if (that.filterObj.isProcessHideCheck) {
-                        return isProcess(node.typeName);
-                    } else if (that.filterObj.isDeletedEntityHideCheck) {
-                        return isDeleted(node.status);
-                    }
+                    var isProcessHideCheck = that.filterObj.isProcessHideCheck,
+                        isDeletedEntityHideCheck = 
that.filterObj.isDeletedEntityHideCheck
+                    var returnObj = {
+                        isProcess: (isProcessHideCheck && isProcess(node)),
+                        isDeleted: (isDeletedEntityHideCheck && 
isDeleted(node))
+
+                    };
+                    returnObj["update"] = returnObj.isProcess || 
returnObj.isDeleted;
+                    return returnObj;
                 }
 
                 function getServiceType(typeName) {
@@ -250,7 +257,7 @@ define(['require',
                     if (that.filterObj.isProcessHideCheck) {
                         obj['isProcess'] = relationObj.isProcess;
                     } else {
-                        obj['isProcess'] = isProcess(relationObj.typeName);
+                        obj['isProcess'] = isProcess(relationObj);
                     }
 
                     return obj;
@@ -263,26 +270,32 @@ define(['require',
                     _.each(relations, function(obj, index, relationArr) {
                         var toNodeToBeUpdated = 
isNodeToBeUpdated(guidEntityMap[obj.toEntityId]);
                         var fromNodeToBeUpdated = 
isNodeToBeUpdated(guidEntityMap[obj.fromEntityId]);
-                        if (toNodeToBeUpdated) {
+                        if (toNodeToBeUpdated.update) {
                             if (that.filterObj.isProcessHideCheck) {
                                 //We have already checked entity is process or 
not inside isNodeToBeUpdated();
                                 guidEntityMap[obj.toEntityId]["isProcess"] = 
true;
                             }
                             _.filter(relationArr, function(flrObj) {
                                 if (flrObj.fromEntityId === obj.toEntityId) {
+                                    if 
(that.filterObj.isDeletedEntityHideCheck && 
isDeleted(guidEntityMap[flrObj.toEntityId])) {
+                                        return;
+                                    }
                                     newRelations.push({
                                         fromEntityId: obj.fromEntityId,
                                         toEntityId: flrObj.toEntityId
                                     });
                                 }
                             })
-                        } else if (fromNodeToBeUpdated) {
+                        } else if (fromNodeToBeUpdated.update) {
                             if (that.filterObj.isProcessHideCheck) {
                                 //We have already checked entity is process or 
not inside isNodeToBeUpdated();
                                 guidEntityMap[obj.fromEntityId]["isProcess"] = 
true;
                             }
 
                             _.filter(relationArr, function(flrObj) {
+                                if (that.filterObj.isDeletedEntityHideCheck && 
isDeleted(guidEntityMap[flrObj.fromEntityId])) {
+                                    return;
+                                }
                                 if (flrObj.toEntityId === obj.fromEntityId) {
                                     newRelations.push({
                                         fromEntityId: flrObj.fromEntityId,
@@ -313,6 +326,12 @@ define(['require',
                     }
                     that.g.setEdge(obj.fromEntityId, obj.toEntityId, { 
'arrowhead': "arrowPoint", lineInterpolate: 'basis', "style": "fill:" + 
styleObj.fill + ";stroke:" + styleObj.stroke + ";stroke-width:" + 
styleObj.width + "", 'styleObj': styleObj });
                 });
+                //if no relations found
+                if (!finalRelations.length) {
+                    this.$('svg').html('<text x="50%" y="50%" 
alignment-baseline="middle" text-anchor="middle">No relations to 
display</text>');
+                } else {
+                    this.$('svg').html('<text></text>');
+                }
 
                 if (this.fromToObj[this.guid]) {
                     this.fromToObj[this.guid]['isLineage'] = false;

Reply via email to