You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by kb...@apache.org on 2019/05/28 12:33:27 UTC

[atlas] 03/04: ATLAS-3218 : UI - entity detail page columns sorting empty value check

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

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

commit 3883b363b5267c892294cc97c55576feaefe8788
Author: kevalbhatt <kb...@apache.org>
AuthorDate: Mon May 20 20:58:21 2019 +0530

    ATLAS-3218 : UI - entity detail page columns sorting empty value check
    
    Signed-off-by: Sarath Subramanian <ss...@cloudera.com>
    (cherry picked from commit 4e4038f6e1dff1e5900a14cf306ea64817647b0a)
---
 dashboardv2/public/js/utils/CommonViewFunction.js  |  8 +++----
 dashboardv2/public/js/utils/Utils.js               | 28 ++++++++++++++++++++++
 .../js/views/detail_page/DetailPageLayoutView.js   |  7 +++++-
 3 files changed, 38 insertions(+), 5 deletions(-)

diff --git a/dashboardv2/public/js/utils/CommonViewFunction.js b/dashboardv2/public/js/utils/CommonViewFunction.js
index 6741e3b..38a1467 100644
--- a/dashboardv2/public/js/utils/CommonViewFunction.js
+++ b/dashboardv2/public/js/utils/CommonViewFunction.js
@@ -104,7 +104,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
                         value = Utils.getName(data);
                         var id = "";
                         if (data.guid) {
-                            if (Enums.entityStateReadOnly[data.status]) {
+                            if (Enums.entityStateReadOnly[data.status || data.entityStatus]) {
                                 deleteButton += '<button title="Deleted" class="btn btn-action btn-md deleteBtn"><i class="fa fa-trash"></i></button>';
                             }
                             id = data.guid;
@@ -144,7 +144,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
                     var inputOutputField = keyValue[i],
                         id = inputOutputField.guid || (_.isObject(inputOutputField.id) ? inputOutputField.id.id : inputOutputField.id),
                         tempLink = "",
-                        status = inputOutputField.status || (_.isObject(inputOutputField.id) ? inputOutputField.id.state : inputOutputField.state),
+                        status = (inputOutputField.status || inputOutputField.entityStatus) || (_.isObject(inputOutputField.id) ? inputOutputField.id.state : inputOutputField.state),
                         readOnly = Enums.entityStateReadOnly[status];
                     if (!inputOutputField.attributes && inputOutputField.values) {
                         inputOutputField['attributes'] = inputOutputField.values;
@@ -301,7 +301,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
                 ++count;
             });
         }
-        if (!Enums.entityStateReadOnly[obj.status]) {
+        if (!Enums.entityStateReadOnly[obj.status || obj.entityStatus]) {
             if (obj.guid) {
                 addTag += '<a href="javascript:void(0)" data-id="addTag" class="btn btn-action btn-sm assignTag" data-guid="' + obj.guid + '" ><i class="fa fa-plus"></i></a>';
             } else {
@@ -333,7 +333,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
                 ++count;
             });
         }
-        if (!Enums.entityStateReadOnly[obj.status]) {
+        if (!Enums.entityStateReadOnly[obj.status || obj.entityStatus]) {
             if (obj.guid) {
                 addTerm += '<a href="javascript:void(0)" data-id="addTerm" class="btn btn-action btn-sm assignTag" data-guid="' + obj.guid + '" ><i class="fa fa-plus"></i></a>';
             } else {
diff --git a/dashboardv2/public/js/utils/Utils.js b/dashboardv2/public/js/utils/Utils.js
index 43b18d8..8655830 100644
--- a/dashboardv2/public/js/utils/Utils.js
+++ b/dashboardv2/public/js/utils/Utils.js
@@ -576,6 +576,34 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
             });
         }
     }
+
+    Utils.findAndMergeRelationShipEntity = function(options) {
+        var attributeObject = options.attributeObject,
+            relationshipAttributes = options.relationshipAttributes;
+        _.each(attributeObject, function(val, key) {
+            var attributVal = val;
+            if (relationshipAttributes && relationshipAttributes[key]) {
+                var relationShipVal = relationshipAttributes[key];
+                if (_.isObject(val)) {
+                    if (_.isArray(val)) {
+                        _.each(val, function(attr) {
+                            if (attr && attr.attributes === undefined) {
+                                var entityFound = _.find(relationShipVal, { guid: attr.guid });
+                                if (entityFound) {
+                                    attr.attributes = _.omit(entityFound, 'typeName', 'guid', 'entityStatus');
+                                    attr.status = entityFound.entityStatus;
+                                }
+                            }
+                        });
+                    } else if (relationShipVal && val.attributes === undefined) {
+                        val.attributes = _.omit(relationShipVal, 'typeName', 'guid', 'entityStatus');
+                        val.status = relationShipVal.entityStatus;
+                    }
+                }
+            }
+        })
+    }
+
     Utils.getNestedSuperTypes = function(options) {
         var data = options.data,
             collection = options.collection,
diff --git a/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js b/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
index aa6dc5b..d5c4d63 100644
--- a/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
+++ b/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
@@ -141,6 +141,11 @@ define(['require',
                         referredEntities: this.entityObject.referredEntities
                     });
 
+                    Utils.findAndMergeRelationShipEntity({
+                        attributeObject: collectionJSON.attributes,
+                        relationshipAttributes: collectionJSON.relationshipAttributes
+                    });
+
                     // check if entity is process
                     var isProcess = false,
                         superTypes = Utils.getNestedSuperTypes({ data: this.activeEntityDef.toJSON(), collection: this.entityDefCollection }),
@@ -217,7 +222,7 @@ define(['require',
                         }
                         if (collectionJSON.attributes && collectionJSON.attributes.columns) {
                             var valueSorted = _.sortBy(collectionJSON.attributes.columns, function(val) {
-                                return val.attributes.position
+                                return val.attributes && val.attributes.position
                             });
                             collectionJSON.attributes.columns = valueSorted;
                         }