You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by sh...@apache.org on 2016/09/19 06:27:05 UTC

[2/8] incubator-atlas git commit: ATLAS-1142 Lineage UI Improvement (kevalbhatt via shwethags)

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/7bb2709d/dashboardv2/public/js/require-handlebars-plugin/js/hbs.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/require-handlebars-plugin/js/hbs.js b/dashboardv2/public/js/require-handlebars-plugin/js/hbs.js
deleted file mode 100644
index 4aa054c..0000000
--- a/dashboardv2/public/js/require-handlebars-plugin/js/hbs.js
+++ /dev/null
@@ -1,490 +0,0 @@
-/**
- * @license Handlebars hbs 0.4.0 - Alex Sexton, but Handlebars has it's own licensing junk
- *
- * Available via the MIT or new BSD license.
- * see: http://github.com/jrburke/require-cs for details on the plugin this was based off of
- */
-
-/* Yes, deliciously evil. */
-/*jslint evil: true, strict: false, plusplus: false, regexp: false */
-/*global require: false, XMLHttpRequest: false, ActiveXObject: false,
-define: false, process: false, window: false */
-define([
-    //>>excludeStart('excludeHbs', pragmas.excludeHbs)
-    'handlebars', 'underscore', 'i18nprecompile', 'json2'
-    //>>excludeEnd('excludeHbs')
-], function(
-    //>>excludeStart('excludeHbs', pragmas.excludeHbs)
-    Handlebars, _, precompile, JSON
-    //>>excludeEnd('excludeHbs')
-) {
-    //>>excludeStart('excludeHbs', pragmas.excludeHbs)
-    var fs, getXhr,
-        progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'],
-        fetchText = function() {
-            throw new Error('Environment unsupported.');
-        },
-        buildMap = [],
-        filecode = "w+",
-        templateExtension = "hbs",
-        customNameExtension = "@hbs",
-        devStyleDirectory = "/styles/",
-        buildStyleDirectory = "/demo-build/styles/",
-        helperDirectory = "template/helpers/",
-        i18nDirectory = "template/i18n/",
-        buildCSSFileName = "screen.build.css";
-
-    Handlebars.registerHelper('$', function() {
-        //placeholder for translation helper
-    });
-
-    if (typeof window !== "undefined" && window.navigator && window.document && !window.navigator.userAgent.match(/Node.js/)) {
-        // Browser action
-        getXhr = function() {
-            //Would love to dump the ActiveX crap in here. Need IE 6 to die first.
-            var xhr, i, progId;
-            if (typeof XMLHttpRequest !== "undefined") {
-                return new XMLHttpRequest();
-            } else {
-                for (i = 0; i < 3; i++) {
-                    progId = progIds[i];
-                    try {
-                        xhr = new ActiveXObject(progId);
-                    } catch (e) {}
-
-                    if (xhr) {
-                        progIds = [progId]; // so faster next time
-                        break;
-                    }
-                }
-            }
-
-            if (!xhr) {
-                throw new Error("getXhr(): XMLHttpRequest not available");
-            }
-
-            return xhr;
-        };
-
-        fetchText = function(url, callback) {
-            var prependComment = "<!--START: " + url + "--> == <!--END: " + url + "-->";
-            var xhr = getXhr();
-            xhr.open('GET', url, true);
-            xhr.onreadystatechange = function(evt) {
-                //Do not explicitly handle errors, those should be
-                //visible via console output in the browser.
-                if (xhr.readyState === 4) {
-                    callback(xhr.responseText);
-                    //TODO FIXME Gautam:Not working with backbone-forms when it does this : $($.trim(this.template(_.result(this, 'templateData'))));
-                    // callback(prependComment.replace('==',xhr.responseText));
-                }
-            };
-            xhr.send(null);
-        };
-
-    } else if (typeof process !== "undefined" &&
-        process.versions &&
-        !!process.versions.node) {
-        //Using special require.nodeRequire, something added by r.js.
-        fs = require.nodeRequire('fs');
-        fetchText = function(path, callback) {
-            var body = fs.readFileSync(path, 'utf8') || "";
-            // we need to remove BOM stuff from the file content
-            body = body.replace(/^\uFEFF/, '');
-            callback(body);
-        };
-    } else if (typeof java !== "undefined" && typeof java.io !== "undefined") {
-        fetchText = function(path, callback) {
-            var f = new java.io.File(path);
-            var is = new java.io.FileReader(f);
-            var reader = new java.io.BufferedReader(is);
-            var line;
-            var text = "";
-            while ((line = reader.readLine()) !== null) {
-                text += new String(line) + "\n";
-            }
-            reader.close();
-            callback(text);
-        };
-    }
-
-    var cache = {};
-    var fetchOrGetCached = function(path, callback) {
-        if (cache[path]) {
-            callback(cache[path]);
-        } else {
-            fetchText(path, function(data) {
-                cache[path] = data;
-                callback.call(this, data);
-            });
-        }
-    };
-    var styleList = [],
-        styleMap = {};
-    //>>excludeEnd('excludeHbs')
-
-    return {
-
-        get: function() {
-            return Handlebars;
-        },
-
-        write: function(pluginName, name, write) {
-
-            if ((name + customNameExtension) in buildMap) {
-                var text = buildMap[name + customNameExtension];
-                write.asModule(pluginName + "!" + name, text);
-            }
-        },
-
-        version: '0.4.0',
-
-        load: function(name, parentRequire, load, config) {
-            //>>excludeStart('excludeHbs', pragmas.excludeHbs)
-
-            var compiledName = name + customNameExtension,
-                disableI18n = (config.hbs && config.hbs.disableI18n),
-                partialDeps = [];
-
-            function recursiveNodeSearch(statements, res) {
-                _(statements).forEach(function(statement) {
-                    if (statement && statement.type && statement.type === 'partial') {
-                        res.push(statement.partialName.name);
-                    }
-                    if (statement && statement.program && statement.program.statements) {
-                        recursiveNodeSearch(statement.program.statements, res);
-                    }
-                    if (statement && statement.program && statement.program.inverse && statement.program.inverse.statements) {
-                        recursiveNodeSearch(statement.program.inverse.statements, res);
-                    }
-                });
-                return res;
-            }
-
-            // TODO :: use the parser to do this!
-            function findPartialDeps(nodes) {
-                var res = [];
-                if (nodes && nodes.statements) {
-                    res = recursiveNodeSearch(nodes.statements, []);
-                }
-                return _(res).unique();
-            }
-
-            // See if the first item is a comment that's json
-            function getMetaData(nodes) {
-                var statement, res, test;
-                if (nodes && nodes.statements) {
-                    statement = nodes.statements[0];
-                    if (statement && statement.type === "comment") {
-                        try {
-                            res = (statement.comment).replace(new RegExp('^[\\s]+|[\\s]+$', 'g'), '');
-                            test = JSON.parse(res);
-                            return res;
-                        } catch (e) {
-                            return "{}";
-                        }
-                    }
-                }
-                return "{}";
-            }
-
-            function composeParts(parts) {
-                if (!parts) {
-                    return [];
-                }
-                var res = [parts[0]],
-                    cur = parts[0],
-                    i;
-
-                for (i = 1; i < parts.length; ++i) {
-                    if (parts.hasOwnProperty(i)) {
-                        cur += "." + parts[i];
-                        res.push(cur);
-                    }
-                }
-                return res;
-            }
-
-            function recursiveVarSearch(statements, res, prefix, helpersres) {
-                prefix = prefix ? prefix + "." : "";
-
-                var newprefix = "",
-                    flag = false;
-
-                // loop through each statement
-                _(statements).forEach(function(statement) {
-                    var parts, part, sideways;
-
-                    // if it's a mustache block
-                    if (statement && statement.type && statement.type === 'mustache') {
-
-                        // If it has params, the first part is a helper or something
-                        if (!statement.params || !statement.params.length) {
-                            parts = composeParts(statement.id.parts);
-                            for (part in parts) {
-                                if (parts[part]) {
-                                    newprefix = parts[part] || newprefix;
-                                    res.push(prefix + parts[part]);
-                                }
-                            }
-                            res.push(prefix + statement.id.string);
-                        }
-
-                        var paramsWithoutParts = ['this', '.', '..', './..', '../..', '../../..'];
-
-                        // grab the params
-                        if (statement.params && typeof Handlebars.helpers[statement.id.string] === 'undefined') {
-                            _(statement.params).forEach(function(param) {
-                                if (_(paramsWithoutParts).contains(param.original) || param instanceof Handlebars.AST.StringNode || param instanceof Handlebars.AST.IntegerNode || param instanceof Handlebars.AST.BooleanNode) {
-                                    helpersres.push(statement.id.string);
-                                }
-
-                                parts = composeParts(param.parts);
-
-                                for (var part in parts) {
-                                    if (parts[part]) {
-                                        newprefix = parts[part] || newprefix;
-                                        helpersres.push(statement.id.string);
-                                        res.push(prefix + parts[part]);
-                                    }
-                                }
-                            });
-                        }
-                    }
-
-                    // If it's a meta block
-                    if (statement && statement.mustache) {
-                        recursiveVarSearch([statement.mustache], res, prefix + newprefix, helpersres);
-                    }
-
-                    // if it's a whole new program
-                    if (statement && statement.program && statement.program.statements) {
-                        sideways = recursiveVarSearch([statement.mustache], [], "", helpersres)[0] || "";
-                        if (statement.program.inverse && statement.program.inverse.statements) {
-                            recursiveVarSearch(statement.program.inverse.statements, res, prefix + newprefix + (sideways ? (prefix + newprefix) ? "." + sideways : sideways : ""), helpersres);
-                        }
-                        recursiveVarSearch(statement.program.statements, res, prefix + newprefix + (sideways ? (prefix + newprefix) ? "." + sideways : sideways : ""), helpersres);
-                    }
-                });
-                return res;
-            }
-
-            // This finds the Helper dependencies since it's soooo similar
-            function getExternalDeps(nodes) {
-                var res = [];
-                var helpersres = [];
-
-                if (nodes && nodes.statements) {
-                    res = recursiveVarSearch(nodes.statements, [], undefined, helpersres);
-                }
-
-                var defaultHelpers = ["helperMissing", "blockHelperMissing", "each", "if", "unless", "with"];
-
-                return {
-                    vars: _(res).chain().unique().map(function(e) {
-                        if (e === "") {
-                            return '.';
-                        }
-                        if (e.length && e[e.length - 1] === '.') {
-                            return e.substr(0, e.length - 1) + '[]';
-                        }
-                        return e;
-                    }).value(),
-                    helpers: _(helpersres).chain().unique().map(function(e) {
-                        if (_(defaultHelpers).contains(e)) {
-                            return undefined;
-                        }
-                        return e;
-                    }).compact().value()
-                };
-            }
-
-            function fetchAndRegister(langMap) {
-                fetchText(path, function(text) {
-                    // for some reason it doesn't include hbs _first_ when i don't add it here...
-                    var nodes = Handlebars.parse(text),
-                        deps = findPartialDeps(nodes),
-                        meta = getMetaData(nodes),
-                        extDeps = getExternalDeps(nodes),
-                        vars = extDeps.vars,
-                        helps = extDeps.helpers || [],
-                        depStr = deps.join("', 'hbs!").replace(/_/g, '/'),
-                        helpDepStr = config.hbs && config.hbs.disableHelpers ?
-                        "" : (function() {
-                            var i, paths = [],
-                                pathGetter = config.hbs && config.hbs.helperPathCallback ? config.hbs.helperPathCallback : function(name) {
-                                    return (config.hbs && config.hbs.helperDirectory ? config.hbs.helperDirectory : helperDirectory) + name;
-                                };
-
-                            for (i = 0; i < helps.length; i++) {
-                                paths[i] = "'" + pathGetter(helps[i], path) + "'"
-                            }
-                            return paths;
-                        })().join(','),
-                        debugOutputStart = "",
-                        debugOutputEnd = "",
-                        debugProperties = "",
-                        metaObj, head, linkElem;
-
-                    if (depStr) {
-                        depStr = ",'hbs!" + depStr + "'";
-                    }
-                    if (helpDepStr) {
-                        helpDepStr = "," + helpDepStr;
-                    }
-
-                    if (meta !== "{}") {
-                        try {
-                            metaObj = JSON.parse(meta);
-                            if (metaObj && metaObj.styles) {
-                                styleList = _.union(styleList, metaObj.styles);
-
-                                // In dev mode in the browser
-                                if (require.isBrowser && !config.isBuild) {
-                                    head = document.head || document.getElementsByTagName('head')[0];
-                                    _(metaObj.styles).forEach(function(style) {
-                                        if (!styleMap[style]) {
-                                            linkElem = document.createElement('link');
-                                            linkElem.href = config.baseUrl + devStyleDirectory + style + '.css';
-                                            linkElem.media = 'all';
-                                            linkElem.rel = 'stylesheet';
-                                            linkElem.type = 'text/css';
-                                            head.appendChild(linkElem);
-                                            styleMap[style] = linkElem;
-                                        }
-                                    });
-                                } else if (config.isBuild) {
-                                    (function() {
-                                        var fs = require.nodeRequire('fs'),
-                                            str = _(metaObj.styles).map(function(style) {
-                                                if (!styleMap[style]) {
-                                                    styleMap[style] = true;
-                                                    return "@import url(" + style + ".css);\n";
-                                                }
-                                                return "";
-                                            }).join("\n");
-
-                                        // I write out my import statements to a file in order to help me build stuff.
-                                        // Then I use a tool to inline my import statements afterwards. (you can run r.js on it too)
-                                        fs.open(__dirname + buildStyleDirectory + buildCSSFileName, filecode, '0666', function(e, id) {
-                                            fs.writeSync(id, str, null, encoding = 'utf8');
-                                            fs.close(id);
-                                        });
-                                        filecode = "a";
-                                    })();
-                                }
-                            }
-                        } catch (e) {
-                            console.log('error injecting styles');
-                        }
-                    }
-
-                    if (!config.isBuild && !config.serverRender) {
-                        debugOutputStart = "<!-- START - " + name + " -->";
-                        debugOutputEnd = "<!-- END - " + name + " -->";
-                        debugProperties = "t.meta = " + meta + ";\n" +
-                            "t.helpers = " + JSON.stringify(helps) + ";\n" +
-                            "t.deps = " + JSON.stringify(deps) + ";\n" +
-                            "t.vars = " + JSON.stringify(vars) + ";\n";
-                    }
-
-                    var mapping = disableI18n ? false : _.extend(langMap, config.localeMapping),
-                        configHbs = config.hbs || {},
-                        options = _.extend(configHbs.compileOptions || {}, {
-                            originalKeyFallback: configHbs.originalKeyFallback
-                        }),
-                        prec = precompile(text, mapping, options);
-
-                    text = "/* START_TEMPLATE */\n" +
-                        "define(['hbs','handlebars'" + depStr + helpDepStr + "], function( hbs, Handlebars ){ \n" +
-                        "var t = Handlebars.template(" + prec + ");\n" +
-                        "Handlebars.registerPartial('" + name.replace(/\//g, '_') + "', t);\n" +
-                        debugProperties +
-                        "return t;\n" +
-                        "});\n" +
-                        "/* END_TEMPLATE */\n";
-
-                    //Hold on to the transformed text if a build.
-                    if (config.isBuild) {
-                        buildMap[compiledName] = text;
-                    }
-
-                    //IE with conditional comments on cannot handle the
-                    //sourceURL trick, so skip it if enabled.
-                    /*@if (@_jscript) @else @*/
-                    if (!config.isBuild) {
-                        text += "\r\n//@ sourceURL=" + path;
-                    }
-                    /*@end@*/
-
-                    for (var i in deps) {
-                        if (deps.hasOwnProperty(i)) {
-                            deps[i] = 'hbs!' + deps[i].replace(/_/g, '/');
-                        }
-                    }
-
-                    if (!config.isBuild) {
-                        require(deps, function() {
-                            load.fromText(text);
-
-                            //Give result to load. Need to wait until the module
-                            //is fully parse, which will happen after this
-                            //execution.
-                            parentRequire([name], function(value) {
-                                load(value);
-                            });
-                        });
-                    } else {
-                        load.fromText(name, text);
-
-                        //Give result to load. Need to wait until the module
-                        //is fully parse, which will happen after this
-                        //execution.
-                        parentRequire([name], function(value) {
-                            load(value);
-                        });
-                    }
-
-                    if (config.removeCombined) {
-                        fs.unlinkSync(path);
-                    }
-                });
-            }
-
-            var path,
-                omitExtension = config.hbs && config.hbs.templateExtension === false;
-            if (omitExtension) {
-                path = parentRequire.toUrl(name);
-            } else {
-                path = parentRequire.toUrl(name + '.' + (config.hbs && config.hbs.templateExtension ? config.hbs.templateExtension : templateExtension));
-            }
-
-            if (disableI18n) {
-                fetchAndRegister(false);
-            } else {
-                // Workaround until jam is able to pass config info or we move i18n to a separate module.
-                // This logs a warning and disables i18n if there's an error loading the language file
-                var langMapPath = (config.hbs && config.hbs.i18nDirectory ? config.hbs.i18nDirectory : i18nDirectory) + (config.locale || "en_us") + '.json';
-                try {
-                    fetchOrGetCached(parentRequire.toUrl(langMapPath), function(langMap) {
-                        fetchAndRegister(JSON.parse(langMap));
-                    });
-                } catch (er) {
-                    // if there's no configuration at all, log a warning and disable i18n for this and subsequent templates
-                    if (!config.hbs) {
-                        console.warn('hbs: Error reading ' + langMapPath + ', disabling i18n. Ignore this if you\'re using jam, otherwise check your i18n configuration.\n');
-                        config.hbs = {
-                            disableI18n: true
-                        };
-                        fetchAndRegister(false);
-                    } else {
-                        throw er;
-
-                    }
-                }
-            }
-            //>>excludeEnd('excludeHbs')
-        }
-    };
-});
-/* END_hbs_PLUGIN */

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/7bb2709d/dashboardv2/public/js/require-handlebars-plugin/js/i18nprecompile.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/require-handlebars-plugin/js/i18nprecompile.js b/dashboardv2/public/js/require-handlebars-plugin/js/i18nprecompile.js
deleted file mode 100644
index 925ac39..0000000
--- a/dashboardv2/public/js/require-handlebars-plugin/js/i18nprecompile.js
+++ /dev/null
@@ -1,57 +0,0 @@
-//>>excludeStart('excludeAfterBuild', pragmas.excludeAfterBuild)
-define(['handlebars', "underscore"], function(Handlebars, _) {
-
-    function replaceLocaleStrings(ast, mapping, options) {
-        options = options || {};
-        mapping = mapping || {};
-        // Base set of things
-        if (ast && ast.type === "program" && ast.statements) {
-            _(ast.statements).forEach(function(statement, i) {
-                var newString = "<!-- i18n error -->";
-                // If it's a translation node
-                if (statement.type === "mustache" && statement.id && statement.id.original === "$") {
-
-                    if (statement.params.length && statement.params[0].string) {
-                        var key = statement.params[0].string;
-                        newString = mapping[key] || (options.originalKeyFallback ? key : newString);
-                    }
-                    ast.statements[i] = new Handlebars.AST.ContentNode(newString);
-                }
-                // If we need to recurse
-                else if (statement.program) {
-                    statement.program = replaceLocaleStrings(statement.program, mapping, options);
-                }
-            });
-            // Also cover the else blocks
-            if (ast.inverse) {
-                replaceLocaleStrings(ast.inverse, mapping, options);
-            }
-        }
-        return ast;
-    }
-
-    return function precompile(string, mapping, options) {
-        var ast, environment;
-
-        options = options || {};
-
-        if (!('data' in options)) {
-            options.data = true;
-        }
-
-        if (options.compat) {
-            options.useDepths = true;
-        }
-
-        ast = Handlebars.parse(string);
-
-        // avoid replacing locale if mapping is `false`
-        if (mapping !== false) {
-            ast = replaceLocaleStrings(ast, mapping, options);
-        }
-
-        environment = new Handlebars.Compiler().compile(ast, options);
-        return new Handlebars.JavaScriptCompiler().compile(environment, options);
-    };
-});
-//>>excludeEnd('excludeAfterBuild')

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/7bb2709d/dashboardv2/public/js/require-handlebars-plugin/js/json2.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/require-handlebars-plugin/js/json2.js b/dashboardv2/public/js/require-handlebars-plugin/js/json2.js
deleted file mode 100644
index c740001..0000000
--- a/dashboardv2/public/js/require-handlebars-plugin/js/json2.js
+++ /dev/null
@@ -1,351 +0,0 @@
-//>>excludeStart('excludeAfterBuild', pragmas.excludeAfterBuild)
-/*
-    http://www.JSON.org/json2.js
-    2011-10-19
-
-    Public Domain.
-
-    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
-
-    See http://www.JSON.org/js.html
-
-
-    This code should be minified before deployment.
-    See http://javascript.crockford.com/jsmin.html
-
-    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
-    NOT CONTROL.
-*/
-
-/*jslint evil: true, regexp: true */
-
-/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
-    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
-    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
-    lastIndex, length, parse, prototype, push, replace, slice, stringify,
-    test, toJSON, toString, valueOf
-*/
-
-(function(window) {
-
-    // Create a JSON object only if one does not already exist. We create the
-    // methods in a closure to avoid creating global variables.
-
-    // Return the window JSON element if it exists;
-    var JSON = window.JSON || {};
-
-    (function() {
-        'use strict';
-
-        function f(n) {
-            // Format integers to have at least two digits.
-            return n < 10 ? '0' + n : n;
-        }
-
-        if (typeof Date.prototype.toJSON !== 'function') {
-
-            Date.prototype.toJSON = function(key) {
-
-                return isFinite(this.valueOf()) ? this.getUTCFullYear() + '-' +
-                    f(this.getUTCMonth() + 1) + '-' +
-                    f(this.getUTCDate()) + 'T' +
-                    f(this.getUTCHours()) + ':' +
-                    f(this.getUTCMinutes()) + ':' +
-                    f(this.getUTCSeconds()) + 'Z' : null;
-            };
-
-            String.prototype.toJSON =
-                Number.prototype.toJSON =
-                Boolean.prototype.toJSON = function(key) {
-                    return this.valueOf();
-                };
-        }
-
-        var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-            escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-            gap,
-            indent,
-            meta = { // table of character substitutions
-                '\b': '\\b',
-                '\t': '\\t',
-                '\n': '\\n',
-                '\f': '\\f',
-                '\r': '\\r',
-                '"': '\\"',
-                '\\': '\\\\'
-            },
-            rep;
-
-        function quote(string) {
-
-            // If the string contains no control characters, no quote characters, and no
-            // backslash characters, then we can safely slap some quotes around it.
-            // Otherwise we must also replace the offending characters with safe escape
-            // sequences.
-
-            escapable.lastIndex = 0;
-            return escapable.test(string) ? '"' + string.replace(escapable, function(a) {
-                var c = meta[a];
-                return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-            }) + '"' : '"' + string + '"';
-        }
-
-        function str(key, holder) {
-
-            // Produce a string from holder[key].
-
-            var i, // The loop counter.
-                k, // The member key.
-                v, // The member value.
-                length,
-                mind = gap,
-                partial,
-                value = holder[key];
-
-            // If the value has a toJSON method, call it to obtain a replacement value.
-
-            if (value && typeof value === 'object' &&
-                typeof value.toJSON === 'function') {
-                value = value.toJSON(key);
-            }
-
-            // If we were called with a replacer function, then call the replacer to
-            // obtain a replacement value.
-
-            if (typeof rep === 'function') {
-                value = rep.call(holder, key, value);
-            }
-
-            // What happens next depends on the value's type.
-
-            switch (typeof value) {
-                case 'string':
-                    return quote(value);
-
-                case 'number':
-
-                    // JSON numbers must be finite. Encode non-finite numbers as null.
-
-                    return isFinite(value) ? String(value) : 'null';
-
-                case 'boolean':
-                case 'null':
-
-                    // If the value is a boolean or null, convert it to a string. Note:
-                    // typeof null does not produce 'null'. The case is included here in
-                    // the remote chance that this gets fixed someday.
-
-                    return String(value);
-
-                    // If the type is 'object', we might be dealing with an object or an array or
-                    // null.
-
-                case 'object':
-
-                    // Due to a specification blunder in ECMAScript, typeof null is 'object',
-                    // so watch out for that case.
-
-                    if (!value) {
-                        return 'null';
-                    }
-
-                    // Make an array to hold the partial results of stringifying this object value.
-
-                    gap += indent;
-                    partial = [];
-
-                    // Is the value an array?
-
-                    if (Object.prototype.toString.apply(value) === '[object Array]') {
-
-                        // The value is an array. Stringify every element. Use null as a placeholder
-                        // for non-JSON values.
-
-                        length = value.length;
-                        for (i = 0; i < length; i += 1) {
-                            partial[i] = str(i, value) || 'null';
-                        }
-
-                        // Join all of the elements together, separated with commas, and wrap them in
-                        // brackets.
-
-                        v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']';
-                        gap = mind;
-                        return v;
-                    }
-
-                    // If the replacer is an array, use it to select the members to be stringified.
-
-                    if (rep && typeof rep === 'object') {
-                        length = rep.length;
-                        for (i = 0; i < length; i += 1) {
-                            if (typeof rep[i] === 'string') {
-                                k = rep[i];
-                                v = str(k, value);
-                                if (v) {
-                                    partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                                }
-                            }
-                        }
-                    } else {
-
-                        // Otherwise, iterate through all of the keys in the object.
-
-                        for (k in value) {
-                            if (Object.prototype.hasOwnProperty.call(value, k)) {
-                                v = str(k, value);
-                                if (v) {
-                                    partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                                }
-                            }
-                        }
-                    }
-
-                    // Join all of the member texts together, separated with commas,
-                    // and wrap them in braces.
-
-                    v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}';
-                    gap = mind;
-                    return v;
-            }
-        }
-
-        // If the JSON object does not yet have a stringify method, give it one.
-
-        if (typeof JSON.stringify !== 'function') {
-            JSON.stringify = function(value, replacer, space) {
-
-                // The stringify method takes a value and an optional replacer, and an optional
-                // space parameter, and returns a JSON text. The replacer can be a function
-                // that can replace values, or an array of strings that will select the keys.
-                // A default replacer method can be provided. Use of the space parameter can
-                // produce text that is more easily readable.
-
-                var i;
-                gap = '';
-                indent = '';
-
-                // If the space parameter is a number, make an indent string containing that
-                // many spaces.
-
-                if (typeof space === 'number') {
-                    for (i = 0; i < space; i += 1) {
-                        indent += ' ';
-                    }
-
-                    // If the space parameter is a string, it will be used as the indent string.
-
-                } else if (typeof space === 'string') {
-                    indent = space;
-                }
-
-                // If there is a replacer, it must be a function or an array.
-                // Otherwise, throw an error.
-
-                rep = replacer;
-                if (replacer && typeof replacer !== 'function' &&
-                    (typeof replacer !== 'object' ||
-                        typeof replacer.length !== 'number')) {
-                    throw new Error('JSON.stringify');
-                }
-
-                // Make a fake root object containing our value under the key of ''.
-                // Return the result of stringifying the value.
-
-                return str('', {
-                    '': value
-                });
-            };
-        }
-
-        // If the JSON object does not yet have a parse method, give it one.
-
-        if (typeof JSON.parse !== 'function') {
-            JSON.parse = function(text, reviver) {
-
-                // The parse method takes a text and an optional reviver function, and returns
-                // a JavaScript value if the text is a valid JSON text.
-
-                var j;
-
-                function walk(holder, key) {
-
-                    // The walk method is used to recursively walk the resulting structure so
-                    // that modifications can be made.
-
-                    var k, v, value = holder[key];
-                    if (value && typeof value === 'object') {
-                        for (k in value) {
-                            if (Object.prototype.hasOwnProperty.call(value, k)) {
-                                v = walk(value, k);
-                                if (v !== undefined) {
-                                    value[k] = v;
-                                } else {
-                                    delete value[k];
-                                }
-                            }
-                        }
-                    }
-                    return reviver.call(holder, key, value);
-                }
-
-                // Parsing happens in four stages. In the first stage, we replace certain
-                // Unicode characters with escape sequences. JavaScript handles many characters
-                // incorrectly, either silently deleting them, or treating them as line endings.
-
-                text = String(text);
-                cx.lastIndex = 0;
-                if (cx.test(text)) {
-                    text = text.replace(cx, function(a) {
-                        return '\\u' +
-                            ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-                    });
-                }
-
-                // In the second stage, we run the text against regular expressions that look
-                // for non-JSON patterns. We are especially concerned with '()' and 'new'
-                // because they can cause invocation, and '=' because it can cause mutation.
-                // But just to be safe, we want to reject all unexpected forms.
-
-                // We split the second stage into 4 regexp operations in order to work around
-                // crippling inefficiencies in IE's and Safari's regexp engines. First we
-                // replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
-                // replace all simple value tokens with ']' characters. Third, we delete all
-                // open brackets that follow a colon or comma or that begin the text. Finally,
-                // we look to see that the remaining characters are only whitespace or ']' or
-                // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
-
-                if (/^[\],:{}\s]*$/
-                    .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
-                        .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
-                        .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
-
-                    // In the third stage we use the eval function to compile the text into a
-                    // JavaScript structure. The '{' operator is subject to a syntactic ambiguity
-                    // in JavaScript: it can begin a block or an object literal. We wrap the text
-                    // in parens to eliminate the ambiguity.
-
-                    j = eval('(' + text + ')');
-
-                    // In the optional fourth stage, we recursively walk the new structure, passing
-                    // each name/value pair to a reviver function for possible transformation.
-
-                    return typeof reviver === 'function' ? walk({
-                        '': j
-                    }, '') : j;
-                }
-
-                // If the text is not JSON parseable, then a SyntaxError is thrown.
-
-                throw new SyntaxError('JSON.parse');
-            };
-        }
-    }());
-
-    define(function() {
-        return JSON;
-    });
-    // otherwise just leave it alone
-
-}).call(this, this);
-//>>excludeEnd('excludeAfterBuild')

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/7bb2709d/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html b/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html
index 26d27b3..12e3a0a 100644
--- a/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html
+++ b/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html
@@ -17,7 +17,7 @@
 <!-- <div class="panel-heading">
     <h3 class="panel-title">Lineage</h3>
 </div> -->
-<div class="panel-body graph-bg" align="center">
+<div class="panel-body graph-bg resize-graph" align="center">
     <div class="graph" id="tree-container">
     </div>
     <div style="position:relative">

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/7bb2709d/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 35f5811..4706ba3 100644
--- a/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
+++ b/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
@@ -142,9 +142,13 @@ define(['require',
                             if (!this.name && collectionJSON[0].values.qualifiedName) {
                                 this.name = collectionJSON[0].values.qualifiedName;
                             }
+                            if (this.name && collectionJSON[0].typeName) {
+                                this.name = this.name + ' (' + collectionJSON[0].typeName + ')';
+                            }
                             if (!this.name && collectionJSON[0].typeName) {
                                 this.name = collectionJSON[0].typeName;
                             }
+
                             if (!this.name && this.id) {
                                 this.name = this.id;
                             }
@@ -153,7 +157,7 @@ define(['require',
                                 this.ui.title.show();
                                 var titleName = '<span>' + this.name + '</span>';
                                 if (this.readOnly) {
-                                    titleName += '<button title="Deleted" class="btn btn-atlasAction btn-atlas deleteBtn"><i class="fa fa-trash"></i> Deleted</button>'
+                                    titleName += '<button title="Deleted" class="btn btn-atlasAction btn-atlas deleteBtn"><i class="fa fa-trash"></i> Deleted</button>';
                                 }
                                 this.ui.title.html(titleName);
                             } else {

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/7bb2709d/dashboardv2/public/js/views/graph/LineageLayoutView.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/views/graph/LineageLayoutView.js b/dashboardv2/public/js/views/graph/LineageLayoutView.js
index 706848e..eebbd9f 100644
--- a/dashboardv2/public/js/views/graph/LineageLayoutView.js
+++ b/dashboardv2/public/js/views/graph/LineageLayoutView.js
@@ -24,7 +24,8 @@ define(['require',
     'utils/Utils',
     'dagreD3',
     'd3-tip',
-    'utils/Globals'
+    'utils/Globals',
+    'jquery-ui'
 ], function(require, Backbone, LineageLayoutViewtmpl, VLineageList, VEntity, Utils, dagreD3, d3Tip, Globals) {
     'use strict';
 
@@ -64,6 +65,7 @@ define(['require',
                 this.fetchGraphData();
                 this.data = {};
                 this.asyncFetchCounter = 0;
+
             },
             bindEvents: function() {
                 this.listenTo(this.inputCollection, 'reset', function() {
@@ -82,7 +84,15 @@ define(['require',
                 }, this);
             },
             onRender: function() {
+                var that = this;
                 this.$('.fontLoader').show();
+                this.$(".resize-graph").resizable({
+                    handles: ' s',
+                    minHeight: 355,
+                    stop: function(event, ui) {
+                        that.$('svg').height(($(this).height() - 5))
+                    },
+                });
                 this.g = new dagreD3.graphlib.Graph()
                     .setGraph({
                         nodesep: 50,
@@ -114,8 +124,15 @@ define(['require',
                     if (data && data.definition) {
                         if (data.definition.values) {
                             var values = data.definition.values;
-                            obj['label'] = values.name.trunc(20);
+                            obj['label'] = values.name;
+
                             obj['toolTiplabel'] = values.name;
+                            if (data.definition.typeName) {
+                                var temp = obj['label'] + ' (' + data.definition.typeName + ')'
+                                obj['label'] = temp;
+                                obj['toolTiplabel'] = temp;
+                            }
+                            obj['label'] = obj['label'].trunc(18);
                             obj['id'] = data.GUID;
                             if (values.queryText) {
                                 obj['queryText'] = values.queryText;
@@ -176,8 +193,14 @@ define(['require',
                     _.each(uniquNode, function(val, key) {
                         var obj = {};
                         if (vertices[val] && vertices[val].values) {
-                            obj['label'] = vertices[val].values.name.trunc(20);
+                            obj['label'] = vertices[val].values.name;
                             obj['toolTiplabel'] = vertices[val].values.name;
+                            if (vertices[val].values.vertexId && vertices[val].values.vertexId.values && vertices[val].values.vertexId.values.typeName) {
+                                var temp = obj['label'] + ' (' + vertices[val].values.vertexId.values.typeName + ')';
+                                obj['label'] = temp;
+                                obj['toolTiplabel'] = temp;
+                            }
+                            obj['label'] = obj['label'].trunc(18);
                             obj['id'] = val;
                             obj['class'] = "type-TOP";
                             obj['shape'] = "img";

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/7bb2709d/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index b11d7dc..d53a866 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -9,6 +9,7 @@ ATLAS-1060 Add composite indexes for exact match performance improvements for al
 ATLAS-1127 Modify creation and modification timestamps to Date instead of Long(sumasai)
 
 ALL CHANGES:
+ATLAS-1142 Lineage UI Improvement (kevalbhatt via shwethags)
 ATLAS-712 Support getTrait() API (svimal2106 via shwethags)
 ATLAS-1173 Doc: Minor editorial bug in the example given for property atlas.server.ha.zookeeper.auth (yhemanth via shwethags)
 ATLAS-1133 Jetty Server start doesn't throw exception when user-credential.properties file is not found (nixonrodrigues,svimal2106 via kevalbhatt)