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 <kbh...@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 <ssubraman...@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; }