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 2016/12/23 01:46:58 UTC

[29/50] [abbrv] incubator-atlas git commit: ATLAS-1147 UI: column name doesn't show up in schema tab for hive table (Kalyanikashikar via kevalbhatt)

ATLAS-1147 UI: column name doesn't show up in schema tab for hive table (Kalyanikashikar via kevalbhatt)

(cherry picked from commit f54325f1c99fec1a9d06a1fab7893b7656a8398f)


Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/edfa009c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/edfa009c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/edfa009c

Branch: refs/heads/0.7-incubating
Commit: edfa009c12bfb314ed44f110dd82597418e130a0
Parents: 049e56b
Author: Keval Bhatt <kb...@apache.org>
Authored: Thu Sep 1 12:41:22 2016 +0530
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Thu Dec 22 15:27:22 2016 -0800

----------------------------------------------------------------------
 .../public/js/views/schema/SchemaLayoutView.js  | 192 ++++++++++++-------
 release-log.txt                                 |   1 +
 2 files changed, 126 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/edfa009c/dashboardv2/public/js/views/schema/SchemaLayoutView.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/views/schema/SchemaLayoutView.js b/dashboardv2/public/js/views/schema/SchemaLayoutView.js
index 9bd8c82..dc19619 100644
--- a/dashboardv2/public/js/views/schema/SchemaLayoutView.js
+++ b/dashboardv2/public/js/views/schema/SchemaLayoutView.js
@@ -98,6 +98,7 @@ define(['require',
                     includePagination: true,
                     includePageSize: false,
                     includeFooterRecords: true,
+                    includeOrderAbleColumns: true,
                     gridOpts: {
                         className: "table table-hover backgrid table-quickMenu",
                         emptyText: 'No records found!'
@@ -177,12 +178,29 @@ define(['require',
                         sortKey: "position",
                         comparator: function(item) {
                             return item.get(this.sortKey) || 999;
+                        },
+                        setPositions: function() {
+                            _.each(this.models, function(model, index) {
+                                if (model.get('name') == "name") {
+                                    model.set("position", 2, { silent: true });
+                                    model.set("label", "Name");
+                                } else if (model.get('name') == "description") {
+                                    model.set("position", 3, { silent: true });
+                                    model.set("label", "Description");
+                                } else if (model.get('name') == "owner") {
+                                    model.set("position", 4, { silent: true });
+                                    model.set("label", "Owner");
+                                }
+                            });
+                            return this;
                         }
                     });
                     var columns = new columnCollection(that.getSchemaTableColumns());
+                    columns.setPositions().sort();
                     that.RTagLayoutView.show(new TableLayout(_.extend({}, that.commonTableOptions, {
                         globalVent: that.globalVent,
-                        columns: columns
+                        columns: columns,
+                        includeOrderAbleColumns: true
                     })));
                     that.$('.multiSelectTerm').hide();
                     that.$('.multiSelectTag').hide();
@@ -199,86 +217,126 @@ define(['require',
                 });
             },
             getSchemaTableColumns: function() {
-                var that = this;
-                var col = {};
-                if (this.schemaCollection.keyList) {
-                    _.each(this.schemaCollection.keyList, function(obj, key) {
-                        col[obj.name] = {
-                            cell: "Html",
-                            editable: false,
-                            sortable: false,
-                            orderable: true,
-                            formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
-                                fromRaw: function(rawValue, model) {
-                                    if (model) {
-                                        if (!_.isArray(rawValue) && _.isObject(rawValue)) {
-                                            if (rawValue.id) {
-                                                return '<div><a href="#!/detailPage/' + rawValue.id + '">' + rawValue.$typeName$ + '</a></div>';
-                                            } else {
-                                                return rawValue.$typeName$;
-                                            }
-                                        } else if (_.isArray(rawValue)) {
-                                            var links = "";
-                                            _.each(rawValue, function(val, key) {
-                                                if (val.id) {
-                                                    links += '<div><a href="#!/detailPage/' + val.id + '">' + val.$typeName$ + '</a></div>';
+                var that = this,
+                    col = {},
+                    nameCheck = false,
+                    modelJSON = this.schemaCollection.toJSON()[0];
+                for (var i = 0; i < this.schemaCollection.models.length; i++) {
+                    var model = this.schemaCollection.models[i];
+                    if (model && (model.get('name') || model.get('qualifiedName'))) {
+                        nameCheck = true;
+                    }
+                }
+                if (nameCheck === true) {
+                    col['name'] = {
+                        label: "Name",
+                        cell: "html",
+                        editable: false,
+                        sortable: false,
+                        className: "searchTableName",
+                        formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
+                            fromRaw: function(rawValue, model) {
+                                var nameHtml = "";
+                                if (rawValue === undefined) {
+                                    if (model.get('qualifiedName')) {
+                                        rawValue = model.get('qualifiedName');
+                                    } else if (model.get('$id$') && model.get('$id$').qualifiedName) {
+                                        rawValue = model.get('$id$').qualifiedName;
+                                    } else {
+                                        return "";
+                                    }
+                                }
+                                if (model.get('$id$') && model.get('$id$').id) {
+                                    nameHtml = '<a href="#!/detailPage/' + model.get('$id$').id + '">' + rawValue + '</a>';
+                                } else {
+                                    nameHtml = '<a>' + rawValue + '</a>';
+                                }
+                                if (model.get('$id$') && model.get('$id$').state && Globals.entityStateReadOnly[model.get('$id$').state]) {
+                                    nameHtml += '<button title="Deleted" class="btn btn-atlasAction btn-atlas deleteBtn"><i class="fa fa-trash"></i></button>';
+                                    return '<div class="readOnly readOnlyLink">' + nameHtml + '</div>';
+                                } else {
+                                    return nameHtml;
+                                }
+                            }
+                        })
+                    };
+                };
+                _.keys(modelJSON).map(function(key) {
+                    if (key.indexOf("$") == -1) {
+                        if (!(key === "qualifiedName" || key === "name")) {
+                            col[key] = {
+                                cell: "Html",
+                                editable: false,
+                                sortable: false,
+                                orderable: true,
+                                formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
+                                    fromRaw: function(rawValue, model) {
+                                        if (model) {
+                                            if (!_.isArray(rawValue) && _.isObject(rawValue)) {
+                                                if (rawValue.id) {
+                                                    return '<div><a href="#!/detailPage/' + rawValue.id + '">' + rawValue.$typeName$ + '</a></div>';
                                                 } else {
-                                                    links += '<div>' + val.$typeName$ + '</div>';
+                                                    return rawValue.$typeName$;
                                                 }
-                                            });
-                                            return links;
-
-                                        } else if (model.get('$id$') && model.get('$id$').id && model.get('name') == rawValue) {
-                                            return '<div><a href="#!/detailPage/' + model.get('$id$').id + '">' + rawValue + '</a></div>';
+                                            } else if (_.isArray(rawValue)) {
+                                                var links = "";
+                                                _.each(rawValue, function(val, key) {
+                                                    if (val.id) {
+                                                        links += '<div><a href="#!/detailPage/' + val.id + '">' + val.$typeName$ + '</a></div>';
+                                                    } else {
+                                                        links += '<div>' + val.$typeName$ + '</div>';
+                                                    }
+                                                });
+                                                return links;
+                                            } else {
+                                                return rawValue;
+                                            }
                                         } else {
                                             return rawValue;
                                         }
-                                    } else {
-                                        return rawValue;
                                     }
-
-                                }
-                            })
-                        };
-                    });
-                    col['Check'] = {
-                        name: "selected",
-                        label: "",
-                        cell: "select-row",
-                        headerCell: "select-all",
-                        position: 1
-                    };
-                    col['tag'] = {
-                        label: "Tags",
+                                })
+                            };
+                        }
+                    }
+                });
+                col['Check'] = {
+                    name: "selected",
+                    label: "",
+                    cell: "select-row",
+                    headerCell: "select-all",
+                    position: 1
+                };
+                col['tag'] = {
+                    label: "Tags",
+                    cell: "Html",
+                    editable: false,
+                    sortable: false,
+                    className: 'searchTag',
+                    formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
+                        fromRaw: function(rawValue, model) {
+                            return CommonViewFunction.tagForTable(model);
+                        }
+                    })
+                };
+                if (Globals.taxonomy) {
+                    col['terms'] = {
+                        label: "Terms",
                         cell: "Html",
                         editable: false,
                         sortable: false,
-                        className: 'searchTag',
+                        orderable: true,
+                        className: 'searchTerm',
                         formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
                             fromRaw: function(rawValue, model) {
-                                return CommonViewFunction.tagForTable(model);
+                                var returnObject = CommonViewFunction.termTableBreadcrumbMaker(model, "schema");
+                                if (returnObject.object) {
+                                    that.bradCrumbList.push(returnObject.object);
+                                }
+                                return returnObject.html;
                             }
                         })
                     };
-                    if (Globals.taxonomy) {
-                        col['terms'] = {
-                            label: "Terms",
-                            cell: "Html",
-                            editable: false,
-                            sortable: false,
-                            orderable: true,
-                            className: 'searchTerm',
-                            formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
-                                fromRaw: function(rawValue, model) {
-                                    var returnObject = CommonViewFunction.termTableBreadcrumbMaker(model, "schema");
-                                    if (returnObject.object) {
-                                        that.bradCrumbList.push(returnObject.object);
-                                    }
-                                    return returnObject.html;
-                                }
-                            })
-                        };
-                    }
                 }
                 return this.schemaCollection.constructor.getTableCols(col, this.schemaCollection);
             },

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/edfa009c/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index c5a27c5..bb43cc5 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -31,6 +31,7 @@ ATLAS-409 Atlas will not import avro tables with schema read from a file (dosset
 ATLAS-379 Create sqoop and falcon metadata addons (venkatnrangan,bvellanki,sowmyaramesh via shwethags)
 
 ALL CHANGES:
+ATLAS-1147 UI: column name doesn't show up in schema tab for hive table (Kalyanikashikar via kevalbhatt)
 ATLAS-772 Ordering of columns is not maintained in schema query response, where as hive table entity response maintains the ordering (sarath.kum4r@gmail.com via kevalbhatt)
 ATLAS-1140 All the tag's attributes are not seen while applying a tag to entity (kevalbhatt)
 ATLAS-1141 UI-Issue - Tag with spaces, when searched, then it is wrongly set in search textbox. (Kalyanikashikar via kevalbhatt)