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 2018/02/22 04:20:36 UTC

atlas git commit: ATLAS-2451: UI to list tables in a HBase namespace similar to tables listing for Hive DB

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 <ma...@apache.org>


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 <pr...@gmail.com>
Authored: Fri Feb 16 23:37:59 2018 +0530
Committer: Madhan Neethiraj <ma...@apache.org>
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);