Repository: atlas Updated Branches: refs/heads/master 48b2eaa99 -> d74f0ce9d
ATLAS-2451: UI to list tables in a HBase namespace similar to tables listing for Hive DB Signed-off-by: Madhan Neethiraj <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/d74f0ce9 Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/d74f0ce9 Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/d74f0ce9 Branch: refs/heads/master Commit: d74f0ce9da0960192c9a7bae9e2e42f82a038a76 Parents: 48b2eaa Author: pratik24mac <[email protected]> Authored: Fri Feb 16 23:37:59 2018 +0530 Committer: Madhan Neethiraj <[email protected]> Committed: Wed Feb 21 19:44:37 2018 -0800 ---------------------------------------------------------------------- .../views/detail_page/DetailPageLayoutView.js | 6 +- .../js/views/profile/ProfileLayoutView.js | 8 +- .../js/views/search/SearchResultLayoutView.js | 90 ++++++++++---------- 3 files changed, 54 insertions(+), 50 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/d74f0ce9/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 ab74c3e..802f6a4 100644 --- a/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js +++ b/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js @@ -176,8 +176,8 @@ define(['require', this.renderEntityDetailTableLayoutView(obj); this.renderAuditTableLayoutView(obj); this.renderTagTableLayoutView(obj); - if (collectionJSON && (!_.isUndefined(collectionJSON.attributes['profileData']) || collectionJSON.typeName === "hive_db")) { - if (collectionJSON.typeName === "hive_db") { + if (collectionJSON && (!_.isUndefined(collectionJSON.attributes['profileData']) || collectionJSON.typeName === "hive_db" || collectionJSON.typeName === "hbase_namespace")) { + if (collectionJSON.typeName === "hive_db" || collectionJSON.typeName === "hbase_namespace") { this.$('.profileTab a').text("Tables") } this.$('.profileTab').show(); @@ -282,7 +282,7 @@ define(['require', that.deleteTagData({ 'tagName': tagName, 'guid': that.id, - 'el' : $(e.currentTarget) + 'el': $(e.currentTarget) }); }); modal.on('closeModal', function() { http://git-wip-us.apache.org/repos/asf/atlas/blob/d74f0ce9/dashboardv2/public/js/views/profile/ProfileLayoutView.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/views/profile/ProfileLayoutView.js b/dashboardv2/public/js/views/profile/ProfileLayoutView.js index 79cf3a5..d807f41 100644 --- a/dashboardv2/public/js/views/profile/ProfileLayoutView.js +++ b/dashboardv2/public/js/views/profile/ProfileLayoutView.js @@ -58,7 +58,7 @@ define(['require', */ initialize: function(options) { _.extend(this, _.pick(options, 'profileData', 'guid', 'value', 'typeName', 'entityDetail', 'typeHeaders', 'entityDefCollection', 'enumDefCollection', 'classificationDefCollection')); - if (this.typeName === "hive_db") { + if (this.typeName === "hive_db" || this.typeName === "hbase_namespace") { this.profileData = { attributes: true }; } }, @@ -67,7 +67,7 @@ define(['require', if (this.profileData) { if (this.typeName === "hive_table") { this.renderProfileTableLayoutView(); - } else if (this.typeName === "hive_db") { + } else if (this.typeName === "hive_db" || this.typeName === "hbase_namespace") { this.renderSearchResultLayoutView(); } else { this.renderProfileColumnLayoutView(); @@ -80,13 +80,15 @@ define(['require', var value = _.extend({}, that.value, { 'guid': that.guid, 'searchType': 'relationship', - 'profileDBView': true + 'profileDBView' : true, + 'typeName': that.typeName }); that.RProfileTableOrColumnLayoutView.show(new SearchResultLayoutView({ 'value': value, 'typeHeaders': that.typeHeaders, 'entityDefCollection': that.entityDefCollection, 'enumDefCollection': that.enumDefCollection, + 'isDisable': true, 'classificationDefCollection': that.classificationDefCollection })); }); http://git-wip-us.apache.org/repos/asf/atlas/blob/d74f0ce9/dashboardv2/public/js/views/search/SearchResultLayoutView.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/views/search/SearchResultLayoutView.js b/dashboardv2/public/js/views/search/SearchResultLayoutView.js index 18fb718..86520c9 100644 --- a/dashboardv2/public/js/views/search/SearchResultLayoutView.js +++ b/dashboardv2/public/js/views/search/SearchResultLayoutView.js @@ -124,7 +124,7 @@ define(['require', * @constructs */ initialize: function(options) { - _.extend(this, _.pick(options, 'value', 'initialView', 'isTypeTagNotExists', 'classificationDefCollection', 'entityDefCollection', 'typeHeaders', 'searchVent', 'enumDefCollection', 'tagCollection', 'searchTableColumns')); + _.extend(this, _.pick(options, 'value', 'initialView', 'isTypeTagNotExists', 'classificationDefCollection', 'entityDefCollection', 'typeHeaders', 'searchVent', 'enumDefCollection', 'tagCollection', 'searchTableColumns', 'isDisable')); this.entityModel = new VEntity(); this.searchCollection = new VSearchList(); this.limit = 25; @@ -186,7 +186,7 @@ define(['require', this.listenTo(this.searchCollection, "error", function(model, response) { this.hideLoader({ type: 'error' }); var responseJSON = response && response.responseJSON ? response.responseJSON : null, - errorText = (responseJSON && (responseJSON.errorMessage || responseJSON.message || responseJSON.error ))|| 'Invalid Expression'; + errorText = (responseJSON && (responseJSON.errorMessage || responseJSON.message || responseJSON.error)) || 'Invalid Expression'; if (errorText) { Utils.notifyError({ content: errorText @@ -458,10 +458,10 @@ define(['require', this.searchCollection.url = UrlLinks.searchApiUrl(value.searchType); } _.extend(this.searchCollection.queryParams, { 'limit': this.limit, 'offset': this.offset, 'query': _.trim(value.query), 'typeName': value.type || null, 'classification': value.tag || null }); - if (value.profileDBView && value.guid) { + if (value.profileDBView && value.typeName && value.guid) { var profileParam = {}; profileParam['guid'] = value.guid; - profileParam['relation'] = '__hive_table.db'; + profileParam['relation'] = value.typeName === 'hive_db' ? '__hive_table.db' : '__hbase_table.namespace'; profileParam['sortBy'] = 'name'; profileParam['sortOrder'] = 'ASCENDING'; _.extend(this.searchCollection.queryParams, profileParam); @@ -485,7 +485,7 @@ define(['require', } else { apiObj.data = null; if (this.value.profileDBView) { - _.extend(this.searchCollection.queryParams,checkBoxValue); + _.extend(this.searchCollection.queryParams, checkBoxValue); } Globals.searchApiCallRef = this.searchCollection.fetch(apiObj); } @@ -534,11 +534,13 @@ define(['require', } that.$(".ellipsis .inputAssignTag").hide(); table.trigger("grid:refresh"); /*Event fire when table rendered*/ - tableDragger(document.querySelector(".colSort")).on('drop', function(from, to, el) { - that.columnOrder = that.getColumnOrder(el.querySelectorAll('th.renderable')); - table.trigger("grid:refresh:update"); - that.triggerUrl(); - }); + if (that.isDisable !== true) { + tableDragger(document.querySelector(".colSort")).on('drop', function(from, to, el) { + that.columnOrder = that.getColumnOrder(el.querySelectorAll('th.renderable')); + table.trigger("grid:refresh:update"); + that.triggerUrl(); + }); + } that.checkTableFetch(); }); }, @@ -731,42 +733,42 @@ define(['require', if (valueObj && valueObj.length) { var firstObj = _.first(valueObj); _.each(_.keys(firstObj), function(key) { - col[key] = { - label: key.capitalize(), - cell: "Html", - editable: false, - sortable: false, - resizeable: true, - orderable: true, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function(rawValue, model) { - var modelObj = model.toJSON(); - if (key == "name") { - var nameHtml = "", - name = modelObj[key]; - if (modelObj.guid) { - nameHtml = '<a title="' + name + '" href="#!/detailPage/' + modelObj.guid + '">' + name + '</a>'; - } else { - nameHtml = '<span title="' + name + '">' + name + '</span>'; - } - if (modelObj.status && Enums.entityStateReadOnly[modelObj.status]) { - nameHtml += '<button type="button" title="Deleted" class="btn btn-action btn-md deleteBtn"><i class="fa fa-trash"></i></button>'; - return '<div class="readOnly readOnlyLink">' + nameHtml + '</div>'; - } - return nameHtml; - } else if (modelObj && !_.isUndefined(modelObj[key])) { - var tempObj = { - 'scope': that, - // 'attributeDefs': - 'valueObject': {}, - 'isTable': false - }; - tempObj.valueObject[key] = modelObj[key]; - return CommonViewFunction.propertyTable(tempObj); + col[key] = { + label: key.capitalize(), + cell: "Html", + editable: false, + sortable: false, + resizeable: true, + orderable: true, + formatter: _.extend({}, Backgrid.CellFormatter.prototype, { + fromRaw: function(rawValue, model) { + var modelObj = model.toJSON(); + if (key == "name") { + var nameHtml = "", + name = modelObj[key]; + if (modelObj.guid) { + nameHtml = '<a title="' + name + '" href="#!/detailPage/' + modelObj.guid + '">' + name + '</a>'; + } else { + nameHtml = '<span title="' + name + '">' + name + '</span>'; + } + if (modelObj.status && Enums.entityStateReadOnly[modelObj.status]) { + nameHtml += '<button type="button" title="Deleted" class="btn btn-action btn-md deleteBtn"><i class="fa fa-trash"></i></button>'; + return '<div class="readOnly readOnlyLink">' + nameHtml + '</div>'; } + return nameHtml; + } else if (modelObj && !_.isUndefined(modelObj[key])) { + var tempObj = { + 'scope': that, + // 'attributeDefs': + 'valueObject': {}, + 'isTable': false + }; + tempObj.valueObject[key] = modelObj[key]; + return CommonViewFunction.propertyTable(tempObj); } - }) - }; + } + }) + }; }); } return this.searchCollection.constructor.getTableCols(col, this.searchCollection);
