You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2017/05/01 07:44:08 UTC
[2/2] incubator-atlas git commit: ATLAS-1760: UI update to render
property value per attribute type in entity definition
ATLAS-1760: UI update to render property value per attribute type in entity definition
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/f6ea040a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/f6ea040a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/f6ea040a
Branch: refs/heads/master
Commit: f6ea040aced9fe2f76785dc2e6cb171f33b10aec
Parents: e8a7382
Author: kevalbhatt <kb...@apache.org>
Authored: Fri Apr 28 21:55:44 2017 +0530
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Mon May 1 00:20:19 2017 -0700
----------------------------------------------------------------------
.../public/js/utils/CommonViewFunction.js | 160 ++++++++-----------
.../js/views/audit/AuditTableLayoutView.js | 6 +-
.../views/audit/CreateAuditTableLayoutView.js | 4 +-
.../views/detail_page/DetailPageLayoutView.js | 14 +-
.../views/entity/EntityDetailTableLayoutView.js | 4 +-
5 files changed, 87 insertions(+), 101 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/f6ea040a/dashboardv2/public/js/utils/CommonViewFunction.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/utils/CommonViewFunction.js b/dashboardv2/public/js/utils/CommonViewFunction.js
index ce12466..e49d2b7 100644
--- a/dashboardv2/public/js/utils/CommonViewFunction.js
+++ b/dashboardv2/public/js/utils/CommonViewFunction.js
@@ -88,13 +88,10 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
}
});
}
- CommonViewFunction.propertyTable = function(valueObject, scope, searchTable) {
+ CommonViewFunction.propertyTable = function(scope, valueObject, entityDef) {
var table = "",
fetchInputOutputValue = function(id) {
var that = this;
- if (searchTable) {
- ++scope.fetchList
- }
scope.entityModel.getEntity(id, {
success: function(serverData) {
var value = "",
@@ -118,113 +115,92 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
scope.$('td div[data-id="' + id + '"]').append(deleteButton);
}
},
- complete: function() {
- if (searchTable) {
- --scope.fetchList;
- scope.checkTableFetch();
- }
- }
+ complete: function() {}
});
}
_.sortBy(_.keys(valueObject)).map(function(key) {
key = _.escape(key)
var keyValue = valueObject[key],
valueOfArray = [];
- if (_.isObject(keyValue)) {
- if (!_.isArray(keyValue) && _.isObject(keyValue)) {
- keyValue = [keyValue];
- }
- var subLink = "";
- for (var i = 0; i < keyValue.length; i++) {
- 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),
- readOnly = Enums.entityStateReadOnly[status];
- if (!inputOutputField.attributes && inputOutputField.values) {
- inputOutputField['attributes'] = inputOutputField.values;
+ var defEntity = _.find(entityDef, { name: key });
+ if (defEntity) {
+ var defEntityType = defEntity.typeName.toLocaleLowerCase();
+ if (defEntityType === 'date' || defEntityType === 'time') {
+ table += '<tr><td>' + _.escape(key) + '</td><td>' + new Date(keyValue) + '</td></tr>';
+ } else if (_.isObject(keyValue)) {
+ if (!_.isArray(keyValue) && _.isObject(keyValue)) {
+ keyValue = [keyValue];
}
- if (_.isString(inputOutputField) || _.isBoolean(inputOutputField) || _.isNumber(inputOutputField)) {
- var tempVarfor$check = inputOutputField.toString();
- if (tempVarfor$check.indexOf("$") == -1) {
- valueOfArray.push('<span>' + _.escape(inputOutputField) + '</span>');
+ var subLink = "";
+ for (var i = 0; i < keyValue.length; i++) {
+ 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),
+ readOnly = Enums.entityStateReadOnly[status];
+ if (!inputOutputField.attributes && inputOutputField.values) {
+ inputOutputField['attributes'] = inputOutputField.values;
}
- } else if (_.isObject(inputOutputField) && !id) {
- var attributesList = inputOutputField;
- if (scope.typeHeaders && inputOutputField.typeName) {
- var typeNameCategory = scope.typeHeaders.fullCollection.findWhere({ name: inputOutputField.typeName });
- if (attributesList.attributes && typeNameCategory && typeNameCategory.get('category') === 'STRUCT') {
- attributesList = attributesList.attributes;
- }
- }
- _.each(attributesList, function(objValue, objKey) {
- var value = objValue,
- tempVarfor$check = objKey.toString();
+ if (_.isString(inputOutputField) || _.isBoolean(inputOutputField) || _.isNumber(inputOutputField)) {
+ var tempVarfor$check = inputOutputField.toString();
if (tempVarfor$check.indexOf("$") == -1) {
- if (_.isObject(value)) {
- value = JSON.stringify(value);
+ valueOfArray.push('<span>' + _.escape(inputOutputField) + '</span>');
+ }
+ } else if (_.isObject(inputOutputField) && !id) {
+ var attributesList = inputOutputField;
+ if (scope.typeHeaders && inputOutputField.typeName) {
+ var typeNameCategory = scope.typeHeaders.fullCollection.findWhere({ name: inputOutputField.typeName });
+ if (attributesList.attributes && typeNameCategory && typeNameCategory.get('category') === 'STRUCT') {
+ attributesList = attributesList.attributes;
}
- valueOfArray.push('<span>' + _.escape(objKey) + ':' + _.escape(value) + '</span>');
}
- });
- }
-
- if (id && inputOutputField) {
- var name = Utils.getName(inputOutputField);
- if (name === "-" || name === id) {
- var fetch = true;
- var fetchId = (_.isObject(id) ? id.id : id);
- fetchInputOutputValue(fetchId);
- tempLink += '<div data-id="' + fetchId + '"></div>';
- } else {
- tempLink += '<a href="#!/detailPage/' + id + '">' + name + '</a>'
- }
- }
- if (readOnly) {
- if (!fetch) {
- tempLink += '<button title="Deleted" class="btn btn-atlasAction btn-atlas deleteBtn"><i class="fa fa-trash"></i></button>';
- subLink += '<div class="block readOnlyLink">' + tempLink + '</div>';
- } else {
- fetch = false;
- subLink += tempLink;
+ _.each(attributesList, function(objValue, objKey) {
+ var value = objValue,
+ tempVarfor$check = objKey.toString();
+ if (tempVarfor$check.indexOf("$") == -1) {
+ if (_.isObject(value)) {
+ value = JSON.stringify(value);
+ }
+ valueOfArray.push('<span>' + _.escape(objKey) + ':' + _.escape(value) + '</span>');
+ }
+ });
}
- } else {
- if (tempLink.search('href') != -1) {
- subLink += '<div>' + tempLink + '</div>'
- } else if (tempLink.length) {
- subLink += tempLink
- }
- }
- }
- if (valueOfArray.length) {
- subLink = valueOfArray.join(', ');
- }
- if (searchTable) {
- table = subLink;
- } else {
- table += '<tr><td>' + _.escape(key) + '</td><td>' + subLink + '</td></tr>';
- }
- } else {
- var tempVarfor$check = key.toString();
- if (tempVarfor$check.indexOf("$") == -1) {
- if (key.indexOf("Time") !== -1 || key == "retention") {
- if (searchTable) {
- table = new Date(valueObject[key]);
- } else {
- table += '<tr><td>' + _.escape(key) + '</td><td>' + new Date(valueObject[key]) + '</td></tr>';
+ if (id && inputOutputField) {
+ var name = Utils.getName(inputOutputField);
+ if (name === "-" || name === id) {
+ var fetch = true;
+ var fetchId = (_.isObject(id) ? id.id : id);
+ fetchInputOutputValue(fetchId);
+ tempLink += '<div data-id="' + fetchId + '"></div>';
+ } else {
+ tempLink += '<a href="#!/detailPage/' + id + '">' + name + '</a>'
+ }
}
- } else {
- if (searchTable) {
- if (_.isBoolean(valueObject[key])) {
- table = valueObject[key].toString();
+ if (readOnly) {
+ if (!fetch) {
+ tempLink += '<button title="Deleted" class="btn btn-atlasAction btn-atlas deleteBtn"><i class="fa fa-trash"></i></button>';
+ subLink += '<div class="block readOnlyLink">' + tempLink + '</div>';
} else {
- table = valueObject[key];
+ fetch = false;
+ subLink += tempLink;
}
+
} else {
- table += '<tr><td>' + _.escape(key) + '</td><td>' + _.escape(valueObject[key]) + '</td></tr>';
+ if (tempLink.search('href') != -1) {
+ subLink += '<div>' + tempLink + '</div>'
+ } else if (tempLink.length) {
+ subLink += tempLink
+ }
}
}
+ if (valueOfArray.length) {
+ subLink = valueOfArray.join(', ');
+ }
+ table += '<tr><td>' + _.escape(key) + '</td><td>' + subLink + '</td></tr>';
+
+ } else {
+ table += '<tr><td>' + _.escape(key) + '</td><td>' + _.escape(valueObject[key]) + '</td></tr>';
}
}
});
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/f6ea040a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js b/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
index 82206cb..0f068cc 100644
--- a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
+++ b/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
@@ -57,7 +57,7 @@ define(['require',
* @constructs
*/
initialize: function(options) {
- _.extend(this, _.pick(options, 'guid', 'entity', 'entityName'));
+ _.extend(this, _.pick(options, 'guid', 'entity', 'entityName', 'entityDef'));
this.entityCollection = new VEntityList();
this.count = 26;
this.entityCollection.url = UrlLinks.entityCollectionaudit(this.guid);
@@ -227,9 +227,9 @@ define(['require',
'views/audit/CreateAuditTableLayoutView',
], function(Modal, CreateAuditTableLayoutView) {
that.action = $(e.target).data("action");
- var eventModel = that.entityCollection.findWhere({ 'eventKey': $(e.currentTarget).data('modalid') }).toJSON(),
+ var eventModel = that.entityCollection.fullCollection.findWhere({ 'eventKey': $(e.currentTarget).data('modalid') }).toJSON(),
collectionModel = new that.entityCollection.model(eventModel),
- view = new CreateAuditTableLayoutView({ guid: that.guid, entityModel: collectionModel, action: that.action, entity: that.entity, entityName: that.entityName });
+ view = new CreateAuditTableLayoutView({ guid: that.guid, entityModel: collectionModel, action: that.action, entity: that.entity, entityName: that.entityName, entityDef: that.entityDef });
var modal = new Modal({
title: that.action,
content: view,
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/f6ea040a/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js b/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js
index cbf6a9f..3f6be02 100644
--- a/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js
+++ b/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js
@@ -54,7 +54,7 @@ define(['require',
* @constructs
*/
initialize: function(options) {
- _.extend(this, _.pick(options, 'guid', 'entityModel', 'action', 'entity', 'entityName'));
+ _.extend(this, _.pick(options, 'guid', 'entityModel', 'action', 'entity', 'entityName', 'entityDef'));
},
bindEvents: function() {},
onRender: function() {
@@ -85,7 +85,7 @@ define(['require',
} else if (parseDetailsObject && parseDetailsObject.values) {
this.ui.auditHeaderValue.html('<th>Key</th><th>New Value</th>');
//CommonViewFunction.findAndmergeRefEntity(attributeObject, that.referredEntities);
- table = CommonViewFunction.propertyTable(values, this);
+ table = CommonViewFunction.propertyTable(this, values, this.entityDef);
if (table.length) {
this.ui.noData.hide();
this.ui.tableAudit.show();
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/f6ea040a/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js b/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
index 613064f..dc3ae4c 100644
--- a/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
+++ b/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
@@ -173,8 +173,7 @@ define(['require',
entityDefCollection: this.entityDefCollection,
fetchCollection: this.fetchCollection.bind(that)
}
- this.renderEntityDetailTableLayoutView(obj);
- this.renderAuditTableLayoutView(obj);
+ this.getEntityDef(obj);
this.renderTagTableLayoutView(obj);
this.renderTermTableLayoutView(_.extend({}, obj, { term: true }));
// To render Schema check attribute "schemaElementsAttribute"
@@ -240,6 +239,17 @@ define(['require',
fetchCollection: function() {
this.collection.fetch({ reset: true });
},
+ getEntityDef: function(obj) {
+ var data = this.entityDefCollection.fullCollection.findWhere({ name: obj.entity.typeName }).toJSON();
+ var entityDef = Utils.getNestedSuperTypeObj({
+ data: data,
+ attrMerge: true,
+ collection: this.entityDefCollection
+ });
+ obj['entityDef'] = entityDef;
+ this.renderEntityDetailTableLayoutView(obj);
+ this.renderAuditTableLayoutView(obj);
+ },
onClickTagCross: function(e) {
var tagName = $(e.currentTarget).parent().text(),
tagOrTerm = $(e.target).data("type"),
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/f6ea040a/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js b/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js
index 651c1ce..480305e 100644
--- a/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js
+++ b/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js
@@ -48,7 +48,7 @@ define(['require',
* @constructs
*/
initialize: function(options) {
- _.extend(this, _.pick(options, 'entity', 'referredEntities', 'typeHeaders'));
+ _.extend(this, _.pick(options, 'entity', 'referredEntities', 'typeHeaders', 'entityDef'));
this.entityModel = new VEntity({});
},
bindEvents: function() {},
@@ -65,7 +65,7 @@ define(['require',
});
attributeObject.columns = valueSorted;
}
- var table = CommonViewFunction.propertyTable(attributeObject, this);
+ var table = CommonViewFunction.propertyTable(this, attributeObject, this.entityDef);
that.ui.detailValue.append(table);
}
});