atlas-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From suma...@apache.org
Subject [3/4] incubator-atlas git commit: ATLAS-731 Remove dashboard module in Atlas, replaced by dashboardv2 (kevalbhatt18 via sumasai)
Date Wed, 01 Jun 2016 20:01:39 GMT
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/details/detailsResource.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/details/detailsResource.js b/dashboard/public/modules/details/detailsResource.js
deleted file mode 100644
index 982cd1e..0000000
--- a/dashboard/public/modules/details/detailsResource.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.details').factory('detailsResource', ['$resource', 'atlasConfig', function($resource, atlasConfig) {
-    return $resource(atlasConfig.API_ENDPOINTS.GET_ENTITY + '/:id', {}, {
-        get: {
-            method: 'GET',
-            transformResponse: function(data) {
-                if (data) {
-                    return angular.fromJson(data.definition);
-                }
-            },
-            responseType: 'json'
-        },
-        saveTag: {
-            method: 'POST',
-            url: atlasConfig.API_ENDPOINTS.GET_ENTITY + '/:id/' + atlasConfig.API_ENDPOINTS.ATTACH_DETACH_TRAITS
-        },
-        detachTag: {
-            method: 'DELETE',
-            url: atlasConfig.API_ENDPOINTS.GET_ENTITY + '/:id/' + atlasConfig.API_ENDPOINTS.ATTACH_DETACH_TRAITS + '/:tagName'
-        }
-    });
-
-}]).factory('schemaResource', ['$resource', 'atlasConfig', function($resource, atlasConfig) {
-    return $resource(atlasConfig.API_ENDPOINTS.SCHEMA_LINEAGE_PREPEND + '/:tableName/' + atlasConfig.API_ENDPOINTS.SCHEMA_APPEND, {}, {
-        get: {
-            method: 'GET',
-            transformResponse: function(data) {
-                if (data) {
-                    return angular.fromJson(data);
-                }
-            },
-            responseType: 'json'
-        }
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/details/detailsRoutes.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/details/detailsRoutes.js b/dashboard/public/modules/details/detailsRoutes.js
deleted file mode 100644
index 1886353..0000000
--- a/dashboard/public/modules/details/detailsRoutes.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-'use strict';
-
-angular.module('dgc.details').config(['$stateProvider',
-    function($stateProvider) {
-
-        // states for my app
-        $stateProvider.state('details', {
-            url: '/details/:id',
-            templateUrl: '/modules/details/views/details.html'
-        });
-
-        $stateProvider.state('addTagDetails', {
-            parent: 'details',
-            params: {
-                tId: null,
-                frm: 'details'
-            },
-            onEnter: ['$stateParams', '$state', '$modal', 'navigationResource', function($stateParams, $state, $modal, navigationResource) {
-                $modal.open({
-                    templateUrl: '/modules/tags/instance/views/createTag.html',
-                    controller: 'createTagController',
-                    windowClass: 'create-tag-entity',
-                    resolve: {
-                        typesList: function() {
-                            return navigationResource.get().$promise;
-                        }
-                    }
-                }).result.finally(function() {
-                    $state.go('^');
-                });
-            }]
-        });
-    }
-]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/details/views/attribute.html
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/details/views/attribute.html b/dashboard/public/modules/details/views/attribute.html
deleted file mode 100644
index 38c85b9..0000000
--- a/dashboard/public/modules/details/views/attribute.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<div class="row" data-ng-repeat="(key1, value1) in value" ng-if="value1">
-    <div class="col-md-6" data-ng-if="!isString(value1)" data-ng-repeat="(key2, value2) in value1 track by $index"></div>
-    <div data-ng-if="isString(value2)" data-ng-repeat="(key3, value3) in value2"> {{key3}}: {{value3}}</div>
-    <div class="col-md-6" data-ng-if="isString(value1)"> {{key1}} : {{value1 | date:'medium'}}</div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/details/views/details.html
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/details/views/details.html b/dashboard/public/modules/details/views/details.html
deleted file mode 100644
index 360c6cc..0000000
--- a/dashboard/public/modules/details/views/details.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-   ~ Licensed to the Apache Software Foundation (ASF) under one
-   ~ or more contributor license agreements.  See the NOTICE file
-   ~ distributed with this work for additional information
-   ~ regarding copyright ownership.  The ASF licenses this file
-   ~ to you under the Apache License, Version 2.0 (the
-   ~ "License"); you may not use this file except in compliance
-   ~ with the License.  You may obtain a copy of the License at
-   ~
-   ~     http://www.apache.org/licenses/LICENSE-2.0
-   ~
-   ~ Unless required by applicable law or agreed to in writing, software
-   ~ distributed under the License is distributed on an "AS IS" BASIS,
-   ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   ~ See the License for the specific language governing permissions and
-   ~ limitations under the License.
-   -->
-<div class="row  details-page" data-ng-controller="detailsController">
-   <div class="col-lg-12 padding0">
-      <ul class="breadcrumb">
-         <li><button class="btn btn-link" data-ng-click="goBack()"><i class="fa fa-arrow-left"></i> Back To Result</button> </li>
-      </ul>
-   </div>
-   <div role="tabpanel" class="col-lg-12 padding0">
-      <div class="mB20">
-         <h4 ng-if="details.values && details.values.name && details.values.name != ''">
-         <b>Name:</b> <span class="black">{{details.values.name}}</span></h2>
-         <h4 ng-if="details.values && details.values.description && details.values.description != ''"><b>Description:</b> <span class="black">{{details.values.description}}</span></h4>
-         <h4 data-disable="!tableName" data-select="onActivate('io')" id="lineageGraph" class="hide">
-            <span class="lineage">Lineage</span> 
-            <ng-include data-table-type="io" src="'/modules/lineage/views/lineage_io.html'"/>
-         </h4>
-      </div>
-      <tabset>
-         <tab heading="Details">
-            <table class="table table-bordered">
-               <thead>
-                  <tr>
-                     <th>Key</th>
-                     <th>Value</th>
-                  </tr>
-               </thead>
-               <tbody>
-                  <tr data-ng-repeat="(key,value) in details.values" ng-if="value && !(key==='columns') && !(key==='name') && !(key==='description')">
-                     <td>{{key}}</td>
-                     <td data-ng-if="isObject(value) && isString(value.id)" class="pointer"> 
-                        <a data-ui-sref="details({id:value.id})">{{ value.name }}</a>
-                     </td>
-                     <td data-ng-if="isObject(value) && isObject(value.id) && isString(value.id.id)" class="pointer">  <a data-ui-sref="details({id:value.id.id})">{{ value.id.name }}</a>
-                     </td>
-                     <td data-ng-if="isObject(value) && !isArray(value) && !isString(value.id) && !isObject(value.id)">
-                        <span data-ng-repeat="(key2, value2) in value"> {{ key2 }} : {{ value2 }}<span ng-if="!$last">,</span></span>
-                     </td>
-                     <td data-ng-if="isArray(value) && !isString(value.id) && !isObject(value.id)">
-                        <div  data-ng-repeat="(key2, value2) in value">
-                           <a class=" pointer" data-ng-if="isObject(value2) && isString(value2.id)"   data-ui-sref="details({id:value2.id})">{{ value2.name }}<span ng-if="!$last">,</span></a>
-                           <div class="row pdLft15px" data-ng-repeat="(key1, value1) in value2">
-                              <span ng-if="isObject(value1)">
-                              <a class=" pointer" data-ng-if="isString(value1.id)"   data-ui-sref="details({id:value1.id})">{{ value1.id }}</a> 
-                              </span>  
-                           </div>
-                        </div>
-                     </td>
-                     <td data-ng-if="isArray(value) && !isObject(value)" >
-                        <div class="row" data-ng-repeat="(key1, value1) in value" ng-if="value1">
-                           <div data-ng-if="isObject(value1)" data-ng-repeat="(key2, value2) in value1" > 
-                              <a data-ng-if="isString(value2) && key2 == 'id'" class="pointer pdLft15px" data-ui-sref="details({id:value2})">{{ value2 }}</a> 
-                           </div>
-                        </div>
-                     </td>
-                     <td data-ng-if="!isArray(value) && isObject(value[0]) && isString(value[0].id) && key=='inputTables'" data-ng-click="goDetails(value[0].id)" class="pointer">
-                        <div class="row" data-ng-repeat="(key1, value1) in value[0]" ng-if="value1">
-                           <div class="col-md-6" data-ng-if="!isString(value1)" data-ng-repeat="(key2, value2) in value1 track by $index"></div>
-                           <div data-ng-if="isString(value2)" data-ng-repeat="(key3, value3) in value2"> {{key3}}: {{value3}}</div>
-                           <div class="col-md-6" data-ng-if="isString(value1)"> {{key1}} : {{value1 | date:'medium'}} UTC</div>
-                        </div>
-                     </td>
-                     <td data-ng-if="isNumber(value)">{{value | date:'yyyy-MM-dd HH:mm:ss'}} UTC</td>
-                     <td data-ng-if="isString(value)">{{value}}</td>
-                  </tr>
-               </tbody>
-            </table>
-         </tab>
-         <tab data-heading="Schema" data-ng-if="isSchema">
-            <ng-include src="'/modules/details/views/schema.html'"/>
-         </tab>
-         <tab data-heading="Tags" data-ng-if="isTags">
-            <ng-include  src="'/modules/tags/instance/views/tags.html'"/>
-         </tab>
-      </tabset>
-   </div>
-</div>
-

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/details/views/schema.html
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/details/views/schema.html b/dashboard/public/modules/details/views/schema.html
deleted file mode 100644
index 22262fc..0000000
--- a/dashboard/public/modules/details/views/schema.html
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-<!--
-    ~ Licensed to the Apache Software Foundation (ASF) under one
-    ~ or more contributor license agreements.  See the NOTICE file
-    ~ distributed with this work for additional information
-    ~ regarding copyright ownership.  The ASF licenses this file
-    ~ to you under the Apache License, Version 2.0 (the
-    ~ "License"); you may not use this file except in compliance
-    ~ with the License.  You may obtain a copy of the License at
-    ~
-    ~     http://www.apache.org/licenses/LICENSE-2.0
-    ~
-    ~ Unless required by applicable law or agreed to in writing, software
-    ~ distributed under the License is distributed on an "AS IS" BASIS,
-    ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    ~ See the License for the specific language governing permissions and
-    ~ limitations under the License.
-    -->
-<table class="table table-bordered">
-    <thead>
-        <tr>
-            <th>Name</th>
-            <th>Comment</th>
-            <th ng-if="!isHiveSchema">DataType</th>
-            <th ng-if="isHiveSchema">Type</th>
-            <th ng-if="isTraitId">Tags </th>
-            <th ng-if="isTraitId">Tools</th>
-        </tr>
-    </thead>
-    <tbody>
-        <tr ng-repeat="colm in schema">
-            <td> 
-                <a ng-if="colm['$id$']" data-ui-sref="details({id:colm['$id$'].id})">{{colm.name}}</a> 
-                <span ng-if="!colm['$id$']"> {{colm.name}} </span>
-            </td>
-            <td>{{colm.comment}}</td>
-            <td ng-if="!isHiveSchema"> {{colm.dataType}}</td>
-            <td ng-if="isHiveSchema"> {{colm.type}}</td>
-            <td ng-if="colm['$id$']">
-                <div id="{{colm['$id$'].id}}_schema" class="word-break"><a class="tab-search-tags" ng-repeat="(key, value) in colm['$traits$']" data-ui-sref="search({query: key})" title="{{key}}">{{key}}<span> </span></a></div>
-            </td>
-            <td ng-if="colm['$id$']" class="add-tag">
-                <img ng-src="img/addTag.png" tooltip="Add Tag" ng-click="openAddTagHome(colm['$id$'].id )">
-            </td>
-        </tr>
-    </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/home/headerController.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/home/headerController.js b/dashboard/public/modules/home/headerController.js
deleted file mode 100644
index 9edbd28..0000000
--- a/dashboard/public/modules/home/headerController.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.home').controller('headerController', ['$scope', '$modal', function($scope, $modal) {
-
-    $scope.menu = [{
-        title: "Tags",
-        state: "tags"
-    }];
-
-    $scope.isCollapsed = true;
-    $scope.isLoggedIn = function() {
-        return true;
-    };
-
-    $scope.showAbout = function() {
-        $modal.open({
-            animation: true,
-            templateUrl: '/modules/about/views/about.html',
-            controller: 'aboutController',
-            size: 'lg'
-        });
-    };
-}]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/home/homeModule.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/home/homeModule.js b/dashboard/public/modules/home/homeModule.js
deleted file mode 100644
index 017811c..0000000
--- a/dashboard/public/modules/home/homeModule.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.home', []);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/home/views/header.html
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/home/views/header.html b/dashboard/public/modules/home/views/header.html
deleted file mode 100644
index c5bac05..0000000
--- a/dashboard/public/modules/home/views/header.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<div data-ng-controller="headerController" class="row">
-    <div class="navbar-header">
-        <button class="navbar-toggle" type="button" data-ng-click="isCollapsed = !isCollapsed">
-            <span class="sr-only">Toggle navigation</span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-        </button>
- <a data-ui-sref="search()" data-ui-sref-active="active" class="main-logo">
-   Apache <b>Atlas</b>
- </a>
-    </div>
-    <nav class="collapse navbar-collapse" data-collapse="isCollapsed" data-role="navigation">
-        <ul class="navbar-nav nav pull-right menu-bar" data-ng-if="isLoggedIn()">
-            <li data-ui-sref-active="active">
-                 <a data-ui-sref="search()" class="menu-link">Search</a>
-            </li>
-            <li data-ng-repeat="item in menu" data-ui-sref-active="active">
-                <a data-ui-sref="{{item.state}}">{{item.title}}</a>
-            </li>
-            <li data-ui-sref-active="active">
-              <a  ng-if="!username" class="menu-link" href="https://cwiki.apache.org/confluence/display/ATLAS/Atlas+Home" target="_blank">Help</a>
-            </li>
-            <li data-ui-sref-active="active">
-                <a  ng-if="!username" class="menu-link" href="javascript:void(0)" ng-click="showAbout()">About</a>
-            </li>
-            <li data-ui-sref-active="active">
-                <a  ng-if="!username" class="menu-link" href="/logout.html">Logout</a>
-            </li>
-        </ul>
-    </nav>
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/home/views/home.html
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/home/views/home.html b/dashboard/public/modules/home/views/home.html
deleted file mode 100644
index 4e93782..0000000
--- a/dashboard/public/modules/home/views/home.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<section class="text-center">
-    <img data-ui-sref="search" class="pointer" src="modules/home/img/splash.png"/>
-</section>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/lineage/lineageModule.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/lineage/lineageModule.js b/dashboard/public/modules/lineage/lineageModule.js
deleted file mode 100644
index 4fda24d..0000000
--- a/dashboard/public/modules/lineage/lineageModule.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.lineage', []);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/lineage/lineageResource.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/lineage/lineageResource.js b/dashboard/public/modules/lineage/lineageResource.js
deleted file mode 100644
index a376532..0000000
--- a/dashboard/public/modules/lineage/lineageResource.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.lineage').factory('lineageResource', ['$resource', 'atlasConfig', function($resource, atlasConfig) {
-    return $resource(atlasConfig.API_ENDPOINTS.SCHEMA_LINEAGE_PREPEND + '/:tableName/:type/' + atlasConfig.API_ENDPOINTS.GRAPH, {});
-}]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/lineage/lineage_ioController.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/lineage/lineage_ioController.js b/dashboard/public/modules/lineage/lineage_ioController.js
deleted file mode 100644
index 7ec0695..0000000
--- a/dashboard/public/modules/lineage/lineage_ioController.js
+++ /dev/null
@@ -1,784 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * 'License'); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an 'AS IS' BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-'use strict';
-
-angular.module('dgc.lineage').controller('lineage_ioController', ['$element', '$scope', '$state', '$stateParams', 'lodash', 'lineageResource', 'd3', 'detailsResource', '$q',
-    function($element, $scope, $state, $stateParams, _, lineageResource, d3, detailsResource, $q) {
-        var guidsList = [],
-            $$ = angular.element;
-
-        function inVertObj(edgs) {
-            var newEdgsObj = {};
-
-            $.each(edgs, function(key, value) {
-                for (var k = 0; k < value.length; k++) {
-                    newEdgsObj[value[k]] = newEdgsObj[value[k]] || [];
-                    newEdgsObj[value[k]].push(key);
-                }
-            });
-            return newEdgsObj;
-        }
-
-        function getCombinedLineageData(tableData, callRender) {
-            lineageResource.get({
-                tableName: tableData.tableName,
-                type: 'outputs'
-            }).$promise.then(
-                function lineageSuccess(response1) {
-                    $('#lineageGraph').removeClass('hide');
-                    lineageResource.get({
-                        tableName: tableData.tableName,
-                        type: 'inputs'
-                    }).$promise.then(
-                        //success
-                        function lineageSuccess(response) {
-                            if (response && response.results) {
-                                response.results.values.edges = inVertObj(response.results.values.edges);
-
-                                angular.forEach(response.results.values.edges, function(value, key) {
-                                    angular.forEach(response1.results.values.edges, function(value1, key1) {
-                                        if (key === key1) {
-                                            var array1 = value;
-                                            angular.forEach(value1, function(value2) {
-                                                array1.push(value2);
-                                            });
-                                            response.results.values.edges[key] = array1;
-                                            response1.results.values.edges[key] = array1;
-                                        }
-                                    });
-                                });
-
-                                angular.extend(response.results.values.edges, response1.results.values.edges);
-                                angular.extend(response.results.values.vertices, response1.results.values.vertices);
-
-                                if (!_.isEmpty(response.results.values.vertices)) {
-                                    loadProcess(response.results.values.edges, response.results.values.vertices)
-                                        .then(function(res) {
-                                            guidsList = res;
-
-                                            $scope.lineageData = transformData(response.results);
-
-                                            if (callRender) {
-                                                render();
-                                            }
-                                        });
-                                } else {
-                                    $scope.requested = false;
-                                }
-                            } else {
-                                $scope.requested = false;
-                            }
-                        },
-                        function() {
-                            $scope.requested = false;
-                        }
-                    );
-                },
-                function() {
-                    $scope.requested = false;
-                }
-            );
-        }
-
-        function loadProcess(edges, vertices) {
-            var urlCalls = [];
-            var deferred = $q.defer();
-            for (var guid in edges) {
-                if (!vertices.hasOwnProperty(guid)) {
-                    urlCalls.push(detailsResource.get({
-                        id: guid
-                    }).$promise);
-                }
-
-            }
-            $q.all(urlCalls)
-                .then(function(results) {
-                    deferred.resolve(results);
-                });
-            return deferred.promise;
-        }
-
-        $scope.type = $element.parent().attr('data-table-type');
-        $scope.requested = true;
-        $scope.height = $element[0].offsetHeight;
-        $scope.width = $element[0].offsetWidth;
-
-        function render() {
-            renderGraph($scope.lineageData, {
-                eleObj: $element,
-                element: $element[0],
-                height: $scope.height,
-                width: $scope.width
-            });
-            $scope.rendered = true;
-        }
-
-        $scope.onReset = function() {
-            $scope.height = $scope.initialHeight;
-            angular.element('.lineage-viz').height($scope.height);
-            renderGraph($scope.lineageData, {
-                eleObj: $element,
-                element: $element[0],
-                height: $scope.height,
-                width: $scope.width
-            });
-        };
-
-        $scope.$on('render-lineage', function(event, lineageData) {
-            if (lineageData.type === $scope.type) {
-                if (!$scope.lineageData) {
-                    if ($scope.requested) {
-                        if ($scope.type === 'io') {
-                            getCombinedLineageData(lineageData, true);
-                        } else {
-                            getCombinedLineageData(lineageData, true);
-                        }
-                    }
-                } else {
-                    render();
-                }
-            }
-            $scope.guid = lineageData.guid;
-        });
-
-        function transformData(metaData) {
-            var edges = metaData.values.edges,
-                vertices = metaData.values.vertices,
-                nodes = {};
-
-            function getNode(guid) {
-                var name, type, tip;
-                if (vertices.hasOwnProperty(guid)) {
-                    name = vertices[guid].values.name;
-                    type = vertices[guid].values.vertexId.values.typeName;
-                } else {
-                    var loadProcess = getLoadProcessTypes(guid);
-                    if (typeof loadProcess !== "undefined") {
-                        name = loadProcess.name;
-                        type = 'edges';
-                        tip = loadProcess.tip;
-                    } else {
-                        name = 'Load Process';
-                        type = 'edges';
-                    }
-                }
-                var vertex = {
-                    guid: guid,
-                    name: name,
-                    type: type,
-                    tip: tip
-                };
-                if (!nodes.hasOwnProperty(guid)) {
-                    nodes[guid] = vertex;
-                }
-                return nodes[guid];
-            }
-
-            function getLoadProcessTypes(guid) {
-                var procesRes = [];
-                angular.forEach(guidsList, function(value) {
-                    if (value.id.id === guid) {
-                        procesRes.name = value.values.name;
-                        procesRes.typeName = value.typeName;
-                        procesRes.tip = value.values.queryText;
-                    }
-                });
-                return procesRes;
-            }
-
-            function attachParent(edge, node) {
-                edge.forEach(function eachPoint(childGuid) {
-                    var childNode = getNode(childGuid);
-                    node.children = node.children || [];
-                    node.children.push(childNode);
-                    childNode.parent = node.guid;
-                });
-            }
-
-            /* Loop through all edges and attach them to correct parent */
-            for (var guid in edges) {
-                var edge = edges[guid],
-                    node = getNode(guid);
-
-                /* Attach parent to each endpoint of edge */
-                attachParent(edge, node);
-            }
-
-            var starTingObj = {
-                name: 'root',
-                guid: 'root',
-                children: []
-            };
-
-            angular.forEach(nodes, function(value) {
-                if (!value.hasOwnProperty('parent')) {
-                    starTingObj.children.push(value);
-                }
-            });
-
-            return starTingObj;
-        }
-
-        function renderGraph(data, container) {
-            // ************** Generate the tree diagram  *****************
-            var element = d3.select(container.element),
-                widthg = container.width || 1100,
-                heightg = container.height || Math.max((window.innerHeight - 400), 300),
-                totalNodes = 0,
-                maxLabelLength = 0,
-                selectedNode = null,
-                draggingNode = null,
-                dragListener = null,
-                dragStarted = true,
-                domNode = null,
-                multiParents = null,
-                nodes = null,
-                tooltip = null,
-                node = null,
-                i = 0,
-                duration = 750,
-                root,
-                depthwidth = 10;
-
-            var viewerWidth = widthg - 15,
-                viewerHeight = heightg,
-                center = [viewerWidth / 2, viewerHeight / 2];
-
-            var tree = d3.layout.tree().size([viewerHeight, viewerWidth]);
-          
-
-            container.eleObj.find(".graph").html('');
-            container.eleObj.find("svg").remove();
-
-            // define a d3 diagonal projection for use by the node paths later on.
-            var diagonal = d3.svg.diagonal()
-                .projection(function(d) {
-                    return [d.y, d.x];
-                });
-
-            // A recursive helper function for performing some setup by walking through all nodes
-
-            function visit(parent, visitFn, childrenFn) {
-                if (!parent) return;
-
-                visitFn(parent);
-
-                var children = childrenFn(parent);
-                if (children) {
-                    var count = children.length;
-                    for (var i = 0; i < count; i++) {
-                        visit(children[i], visitFn, childrenFn);
-                    }
-                }
-            }
-
-            // Call visit function to establish maxLabelLength
-            visit(data, function(d) {
-                totalNodes++;
-                maxLabelLength = Math.max(d.name.length, maxLabelLength);
-
-            }, function(d) {
-                return d.children && d.children.length > 0 ? d.children : null;
-            });
-
-            // sort the tree according to the node names
-
-            function sortTree() {
-                tree.sort(function(a, b) {
-                    return b.name.toLowerCase() < a.name.toLowerCase() ? 1 : -1;
-                });
-            }
-            // Sort the tree initially incase the JSON isn't in a sorted order.
-            sortTree();
-
-            // Define the zoom function for the zoomable tree
-            function zoom() {
-                d3.select('g').attr("transform", "translate(" + zoomListener.translate() + ")scale(" + zoomListener.scale() + ")");
-            }
-
-            // define the zoomListener which calls the zoom function on the "zoom" event constrained within the scaleExtents
-            var zoomListener = d3.behavior.zoom().scaleExtent([0.1, 3]).on("zoom", zoom);
-            /* Initialize tooltip */
-            tooltip = d3.tip()
-                .attr('class', 'd3-tip')
-                .html(function(d) {
-                    var toolTip = $$("<pre>").attr("class", "alert alert-success")
-                        .append($$("<p>").html('Name :<b>' + d.name + '</b>'));
-
-                    if (d.tip && d.tip.trim() !== "") {
-                        toolTip.append($$("<p>").html('Query: ' + d.tip));
-                    }
-                    return toolTip.prop("outerHTML");
-                });
-
-            // define the baseSvg, attaching a class for styling and the zoomListener
-            var baseSvg = element.append('svg')
-                .attr("width", viewerWidth)
-                .attr("height", viewerHeight)
-                .attr("class", "overlay")
-                .call(zoomListener)
-                .call(zoomListener.event)
-                .on("dblclick.zoom", function() {
-                    return null;
-                })
-                .call(tooltip);
-
-            // Define the drag listeners for drag/drop behaviour of nodes.
-            dragListener = d3.behavior.drag()
-                .on("dragstart", function(d) {
-                    if (d === root) {
-                        return;
-                    }
-                    dragStarted = true;
-                    nodes = tree.nodes(d);
-                    d3.event.sourceEvent.stopPropagation();
-                    // it's important that we suppress the mouseover event on the node being dragged. Otherwise it will absorb the mouseover event and the underlying node will not detect it d3.select(this).attr('pointer-events', 'none');
-                })
-                .on("dragend", function(d) {
-                    if (d === root) {
-                        return;
-                    }
-                    domNode = this;
-                    if (selectedNode) {
-                        // now remove the element from the parent, and insert it into the new elements children
-                        var index = draggingNode.parent.children.indexOf(draggingNode);
-                        if (index > -1) {
-                            draggingNode.parent.children.splice(index, 1);
-                        }
-                        if (typeof selectedNode.children !== 'undefined' || typeof selectedNode._children !== 'undefined') {
-                            if (typeof selectedNode.children !== 'undefined') {
-                                selectedNode.children.push(draggingNode);
-                            } else {
-                                selectedNode._children.push(draggingNode);
-                            }
-                        } else {
-                            selectedNode.children = [];
-                            selectedNode.children.push(draggingNode);
-                        }
-                        // Make sure that the node being added to is expanded so user can see added node is correctly moved
-                        expand(selectedNode);
-                        sortTree();
-                        endDrag();
-                    } else {
-                        endDrag();
-                    }
-                });
-
-            function endDrag() {
-                selectedNode = null;
-                d3.selectAll('.ghostCircle').attr('class', 'ghostCircle');
-                d3.select(domNode).attr('class', 'node');
-                // now restore the mouseover event or we won't be able to drag a 2nd time
-                d3.select(domNode).select('.ghostCircle').attr('pointer-events', '');
-                updateTempConnector();
-                if (draggingNode !== null) {
-                    update(root);
-                    centerNode(draggingNode);
-                    draggingNode = null;
-                }
-            }
-
-            function expand(d) {
-                if (d._children) {
-                    d.children = d._children;
-                    d.children.forEach(expand);
-                    d._children = null;
-                }
-            }
-
-            // Function to update the temporary connector indicating dragging affiliation
-            var updateTempConnector = function() {
-                var data = [];
-                if (draggingNode !== null && selectedNode !== null) {
-                    // have to flip the source coordinates since we did this for the existing connectors on the original tree
-                    data = [{
-                        source: {
-                            x: selectedNode.y0,
-                            y: selectedNode.x0
-                        },
-                        target: {
-                            x: draggingNode.y0,
-                            y: draggingNode.x0
-                        }
-                    }];
-                }
-                var link = svgGroup.selectAll(".templink").data(data);
-
-                link.enter().append("path")
-                    .attr("class", "templink")
-                    .attr("d", d3.svg.diagonal())
-                    .attr('pointer-events', 'none');
-
-                link.attr("d", d3.svg.diagonal());
-
-                link.exit().remove();
-            };
-
-            // Function to center node when clicked/dropped so node doesn't get lost when collapsing/moving with large amount of children.
-
-            function centerNode(source) {
-                var scale = zoomListener.scale();
-                var x = -source.y0;
-                var y = -source.x0;
-                x = x * scale - 130;
-                y = y * scale + viewerHeight / 2;
-                d3.select('g').transition()
-                    .duration(duration)
-                    .attr("transform", "translate(" + x + "," + y + ")scale(" + scale + ")");
-                zoomListener.scale(scale);
-                zoomListener.translate([x, y]);
-            }
-            //arrow
-            baseSvg.append("svg:defs")
-                .append("svg:marker")
-                .attr("id", "arrow")
-                .attr("viewBox", "0 0 10 10")
-                .attr("refX", 22)
-                .attr("refY", 5)
-                .attr("markerUnits", "strokeWidth")
-                .attr("markerWidth", 6)
-                .attr("markerHeight", 9)
-                .attr("orient", "auto")
-                .append("svg:path")
-                .attr("d", "M 0 0 L 10 5 L 0 10 z");
-
-            //marker for input type graph
-            baseSvg.append("svg:defs")
-                .append("svg:marker")
-                .attr("id", "input-arrow")
-                .attr("viewBox", "0 0 10 10")
-                .attr("refX", -15)
-                .attr("refY", 5)
-                .attr("markerUnits", "strokeWidth")
-                .attr("markerWidth", 6)
-                .attr("markerHeight", 9)
-                .attr("orient", "auto")
-                .append("svg:path")
-                .attr("d", "M -2 5 L 8 0 L 8 10 z");
-
-            function update(source) {
-                // Compute the new height, function counts total children of root node and sets tree height accordingly.
-                // This prevents the layout looking squashed when new nodes are made visible or looking sparse when nodes are removed
-                // This makes the layout more consistent.
-                var levelWidth = [1];
-                var childCount = function(level, n) {
-
-                    if (n.children && n.children.length > 0) {
-                        if (levelWidth.length <= level + 1) levelWidth.push(0);
-
-                        levelWidth[level + 1] += n.children.length;
-                        n.children.forEach(function(d) {
-                            childCount(level + 1, d);
-                        });
-                    }
-                };
-                childCount(0, root);
-                tree = tree.separation(function(a, b) {
-                        return ((a.parent === root) && (b.parent === root)) ? 3 : 1;
-                    })
-                    .size([viewerHeight, viewerWidth - 160]);
-
-                // Compute the new tree layout.
-                var nodes = tree.nodes(root).reverse();
-
-                nodes = _.uniq(nodes, 'guid');
-
-                _.each(nodes, function(o, i) {
-                    var itemsOfTheSameDepth = _.where(nodes, {
-                        depth: o.depth
-                    });
-                    var indexOfCurrent = _.indexOf(itemsOfTheSameDepth, o);
-                    var interval = viewerHeight / itemsOfTheSameDepth.length;
-                    nodes[i].x = interval / 2 + (interval * indexOfCurrent);
-                });
-
-                var links = tree.links(nodes);
-
-                _.each(links, function(o, i) {
-                    links[i].target = _.find(nodes, {
-                        guid: o.target.guid
-                    });
-                });
-
-                // Set widths between levels based on maxLabelLength.
-                nodes.forEach(function(d) {
-                    if (levelWidth.length > 1 && depthwidth === 10) {
-                        for (var o = 0; o < levelWidth.length; o++) {
-                            if (levelWidth[o] > 4) {
-                                depthwidth = 10;
-                                break;
-                            }
-                        }
-                    }
-                    var maxLebal = maxLabelLength;
-                    if (depthwidth === 10) {
-                        maxLebal = 20;
-                    }
-                    d.y = (d.depth * (maxLebal * depthwidth));
-                });
-
-                // Update the nodes…
-                node = svgGroup.selectAll("g.node")
-                    .data(nodes, function(d) {
-                        return d.id || (d.id = ++i);
-                    });
-
-                // Enter any new nodes at the parent's previous position.
-                var nodeEnter = node.enter().append("g")
-                    .call(dragListener)
-                    .attr('class', function(d) {
-                        if (d.guid === "root") {
-                            return "hide";
-                        } else {
-                            return "";
-                        }
-                    })
-                    .classed('node', true)
-                    .attr("transform", function() {
-                        return "translate(" + source.y0 + "," + source.x0 + ")";
-                    });
-            
-
-                nodeEnter.append("image")
-                    .attr("class", "nodeImage")
-                    .attr("xlink:href", function(d) {
-                        return (d.type && d.type !== '' && d.type.toLowerCase().indexOf('edges') !== -1) ?
-                            ((d.guid === $scope.guid) ? '../img/process1.png' : '../img/process.png') :
-                            ((d.guid === $scope.guid) ? '../img/tableicon1.png' : '../img/tableicon.png');
-                    })
-                    .on('mouseover', function(d) {
-                        if (d.type === 'edges' || 'Table') {
-                            tooltip.show(d);
-                        }
-                    })
-                    .on('dblclick', function(d) {
-                        $state.go("details", {
-                            id: d.guid
-                        });
-                    })
-                    .on('mouseout', function(d) {
-                        if (d.type === 'LoadProcess' || 'Table') {
-                            tooltip.hide(d);
-                        }
-                    })
-                    .attr("x", "-18px")
-                    .attr("y", "-18px")
-                    .attr("width", "34px")
-                    .attr("height", "34px");
-
-                nodeEnter.append("text")
-                    .attr("x", function(d) {
-                        return d.children || d._children ? -10 : 10;
-                    })
-                    .attr("dx", function(d) {
-                        return d.children ? 50 : -50;
-                    })
-                    .attr("dy", -24)
-                    .attr('class', 'place-label')
-                    .attr("text-anchor", function(d) {
-                        return d.children || d._children ? "end" : "start";
-                    })
-                    .text(function(d) {
-                        var nameDis = (d.name.length > 15) ? d.name.substring(0, 15) + "..." : d.name;
-                        $$(this).attr('title', d.name);
-                        return nameDis;
-                    })
-                    .style("fill-opacity", 0);
-
-                // Update the text to reflect whether node has children or not.
-                node.select('text')
-                    .attr("x", function(d) {
-                        return d.children || d._children ? -10 : 10;
-                    })
-                    .attr("text-anchor", function(d) {
-                        return d.children || d._children ? "end" : "start";
-                    })
-                    .text(function(d) {
-                        var nameDis = (d.name.length > 15) ? d.name.substring(0, 15) + "..." : d.name;
-                        $(this).attr('title', d.name);
-                        return nameDis;
-                    });
-
-                // Transition nodes to their new position.
-                var nodeUpdate = node.transition()
-                    .duration(duration)
-                    .attr("transform", function(d) {
-                        return "translate(" + d.y + "," + d.x + ")";
-                    });
-
-                // Fade the text in
-                nodeUpdate.select("text")
-                    .style("fill-opacity", 1);
-
-                // Transition exiting nodes to the parent's new position.
-                var nodeExit = node.exit().transition()
-                    .duration(duration)
-                    .attr("transform", function() {
-                        return "translate(" + source.y + "," + source.x + ")";
-                    })
-                    .remove();
-
-                nodeExit.select("circle")
-                    .attr("r", 0);
-
-                nodeExit.select("text")
-                    .style("fill-opacity", 0);
-
-                // Update the links…
-                var link = svgGroup.selectAll("path.link")
-                    .data(links);
-                
-
-                // Enter any new links at the parent's previous position.
-                link.enter().insert("path", "g")
-                    .attr('class', function(d) {
-                        if (d.source.guid === "root") {
-                            return "hide";
-                        } else {
-                            return "";
-                        }
-                    })
-                    .classed('link', true)
-                    .style('stroke', 'green')
-                    .attr("d", function() {
-                        var o = {
-                            x: source.x0,
-                            y: source.y0
-                        };
-                        return diagonal({
-                            source: o,
-                            target: o
-                        });
-                    });
-
-                // Transition links to their new position.
-                link.transition()
-                    .duration(duration)
-                    .attr("d", diagonal);
-
-                // Transition exiting nodes to the parent's new position.
-                link.exit().transition()
-                    .duration(duration)
-                    .attr("d", function() {
-                        var o = {
-                            x: source.x,
-                            y: source.y
-                        };
-                        return diagonal({
-                            source: o,
-                            target: o
-                        });
-                    })
-                    .remove();
-
-                // Stash the old positions for transition.
-                nodes.forEach(function(d) {
-                    d.x0 = d.x;
-                    d.y0 = d.y;
-                });
-
-                if ($scope.type === 'inputs') {
-                    link.attr("marker-start", "url(#input-arrow)"); //if input
-                } else {
-                    link.attr("marker-end", "url(#arrow)"); //if input
-                }
-            }
-
-            // Append a group which holds all nodes and which the zoom Listener can act upon.
-            var svgGroup = baseSvg.append("g")
-                .attr("transform", "translate(0,0)");
-
-            // Simplest possible buttons
-            var intervalID;
-
-            d3.selectAll('.zoom-buttons').on('mousedown', function() {
-                d3.event.preventDefault();
-                $scope.factor = (this.id === 'zoom_in') ? 1.1 : 1 / 1.1;
-                intervalID = setInterval(zoom_by, 40, $scope.factor);
-            }).on('mouseup', function() {
-                d3.event.preventDefault();
-                clearInterval(intervalID);
-                intervalID = undefined;
-            });
-
-            function zoom_by(factor) {
-                var scale = zoomListener.scale(),
-                    extent = zoomListener.scaleExtent(),
-                    translate = zoomListener.translate(),
-                    x = translate[0],
-                    y = translate[1],
-                    target_scale = scale * factor;
-
-                // If we're already at an extent, done
-                if (target_scale === extent[0] || target_scale === extent[1]) {
-                    return false;
-                }
-                // If the factor is too much, scale it down to reach the extent exactly
-                var clamped_target_scale = Math.max(extent[0], Math.min(extent[1], target_scale));
-                if (clamped_target_scale !== target_scale) {
-                    target_scale = clamped_target_scale;
-                    factor = target_scale / scale;
-                }
-
-                // Center each vector, stretch, then put back
-                x = (x - center[0]) * factor + center[0];
-                y = (y - center[1]) * factor + center[1];
-
-                // Enact the zoom immediately
-                zoomListener.scale(target_scale)
-                    .translate([x, y]);
-                zoom();
-            }
-
-            // Define the root
-            root = data;
-            root.x0 = viewerWidth / 2;
-            root.y0 = viewerHeight / 2;
-
-            // Layout the tree initially and center on the root node.
-            update(root);
-            centerNode(root);
-            if (!$scope.initialHeight) {
-                $scope.initialHeight = angular.element('.lineage-viz').height();
-            }
-            angular.element('.lineage-viz').resizable({
-                minWidth: 1150,
-                maxWidth: 1150,
-                maxHeight: angular.element('.lineage-viz').height(),
-                minHeight: 50
-            });
-            $scope.requested = false;
-            var couplingParent1 = tree.nodes(root).filter(function(d) {
-                return d.name === 'cluster';
-            })[0];
-            var couplingChild1 = tree.nodes(root).filter(function(d) {
-                return d.name === 'JSONConverter';
-            })[0];
-
-            multiParents = [{
-                parent: couplingParent1,
-                child: couplingChild1
-            }];
-
-            multiParents.forEach(function() {
-                svgGroup.append("path", "g");
-            });
-        }
-
-    }
-]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/lineage/views/lineage.html
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/lineage/views/lineage.html b/dashboard/public/modules/lineage/views/lineage.html
deleted file mode 100644
index 3b412f7..0000000
--- a/dashboard/public/modules/lineage/views/lineage.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<div class="lineage-viz" data-ng-controller="LineageController">
-    <button type="button" class="btn btn-primary pull-right" ng-click="onReset()">
-        Reset
-    </button>
-    <div class="graph">
-      <h4 data-ng-if="!requested && !lineageData">No lineage data found</h4>
-      <i data-ng-if="requested" class="fa fa-spinner fa-spin fa-5x"></i>
-      <svg >
-          <g/>
-      </svg>
-    </div>
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/lineage/views/lineage_io.html
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/lineage/views/lineage_io.html b/dashboard/public/modules/lineage/views/lineage_io.html
deleted file mode 100644
index 0f446f0..0000000
--- a/dashboard/public/modules/lineage/views/lineage_io.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<div class="lineage-viz table-bordered" data-ng-controller="lineage_ioController">
-    <button type="button" class="btn btn-primary pull-right" ng-click="onReset()">
-        Reset
-    </button>
-    <button type="button" class="btn btn-primary zoom-buttons pull-right" id="zoom_out"><i class="fa fa-minus"></i></button>
-    <button type="button" class="btn btn-primary zoom-buttons pull-right" id="zoom_in"><i class="fa fa-plus"></i> </button>
-    <div class="graph">
-      <h4 data-ng-if="!requested && !lineageData" class="align-lineage">No lineage data found</h4>
-      <i data-ng-if="requested" class="fa fa-spinner fa-spin fa-5x"></i>
-      <svg >
-          <g/>
-      </svg>
-    </div>
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/navigation/navigationController.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/navigation/navigationController.js b/dashboard/public/modules/navigation/navigationController.js
deleted file mode 100644
index 0cfb50f..0000000
--- a/dashboard/public/modules/navigation/navigationController.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-'use strict';
-
-angular.module('dgc.navigation').controller('navigationController', ['$scope', 'navigationResource', '$cacheFactory', 'atlasConfig',
-    function($scope, navigationResource, $cacheFactory, atlasConfig) {
-        var limitIntialCount = 18;
-        $scope.intialCount = limitIntialCount;
-
-        $scope.updateVar = function(event) {
-            $scope.$$prevSibling.query = angular.element(event.target).text();
-
-        };
-
-        $scope.dslQueryVal = atlasConfig.SEARCH_TYPE.dsl.value;
-
-        $scope.$on('load_Traits', function() {
-            $scope.leftnav = navigationResource.get();
-        });
-
-        setTimeout(function() {
-            var httpDefaultCache = $cacheFactory.get('$http');
-            httpDefaultCache.remove(atlasConfig.API_ENDPOINTS.TRAITS_LIST);
-        }, 3600000);
-
-        $scope.refreshTags = function() {
-            var httpDefaultCache = $cacheFactory.get('$http');
-            httpDefaultCache.remove(atlasConfig.API_ENDPOINTS.TRAITS_LIST);
-            $scope.leftnav = navigationResource.get();
-            $scope.intialCount = limitIntialCount;
-        };
-
-        $scope.showMore = function() {
-            $scope.intialCount += limitIntialCount;
-        };
-
-        $scope.filterTags = function() {
-            $scope.intialCount = limitIntialCount;
-        };
-    }
-]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/navigation/navigationModule.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/navigation/navigationModule.js b/dashboard/public/modules/navigation/navigationModule.js
deleted file mode 100644
index 504eb1f..0000000
--- a/dashboard/public/modules/navigation/navigationModule.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.navigation', []);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/navigation/navigationResource.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/navigation/navigationResource.js b/dashboard/public/modules/navigation/navigationResource.js
deleted file mode 100644
index 1f48aa3..0000000
--- a/dashboard/public/modules/navigation/navigationResource.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.navigation').factory('navigationResource', ['$resource', 'atlasConfig', function($resource, atlasConfig) {
-    return $resource(atlasConfig.API_ENDPOINTS.TRAITS_LIST, {}, {
-        get: {
-            'method': 'GET',
-            'responseType': 'json',
-            'isArray': true,
-            'cache': true,
-            'transformResponse': function(data) {
-                var results = [];
-                angular.forEach(data && data.results, function(val) {
-                    results.push(val);
-                });
-                return results;
-            }
-        }
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/navigation/views/navigation.html
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/navigation/views/navigation.html b/dashboard/public/modules/navigation/views/navigation.html
deleted file mode 100644
index b7e1654..0000000
--- a/dashboard/public/modules/navigation/views/navigation.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<div data-ng-controller="navigationController" class="main-tags leftNavigation">
-    <div>
-       <h4 class="pull-left">Tags</h4>
-       <a href ng-click="refreshTags()" class="pull-right">
-         <img src="../img/refresh.png" style="margin: 5px;" title="Refresh Tags" >
-       </a>
-       <form ng-submit="filterTags()">
-         <input type="text" class="filter-tag" placeholder="Search for Tags…" ng-model="tagFilter" ng-keydown="filterTags()"> </input>
-         <input type="submit" id="submit" value="Submit" class="hide" />
-       </form>
-    </div>
-    </br>
-    <div class="list-group">
-       <a ng-repeat="nav in filtered = (leftnav | filter:tagFilter | limitTo:intialCount + 1)" ui-sref="search({ query: nav , searchType: dslQueryVal})" class="list-group-item limitSize" title="{{nav}}"><i class="fa fa-tag"></i> {{nav}} </a>
-       <a ng-click="showMore()" class="see-more" ng-class="filtered.length > intialCount ? 'show' : 'hide'"> Load more ... </a>
-    </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/notification/notificationController.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/notification/notificationController.js b/dashboard/public/modules/notification/notificationController.js
deleted file mode 100644
index d070029..0000000
--- a/dashboard/public/modules/notification/notificationController.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.system.notification').controller('notificationController', ['$scope', 'notificationService',
-    function($scope, notificationService) {
-
-        $scope.getNotifications = notificationService.getAll;
-
-        $scope.close = function(notification) {
-            notificationService.close(notification);
-        };
-    }
-]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/notification/notificationModule.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/notification/notificationModule.js b/dashboard/public/modules/notification/notificationModule.js
deleted file mode 100644
index cc7cbb0..0000000
--- a/dashboard/public/modules/notification/notificationModule.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.system.notification', ['ui.router']).constant('colorCoding', {
-    info: 'success',
-    error: 'danger'
-}).run(['$rootScope', 'notificationService', function($rootScope, notificationService) {
-    $rootScope.$on('$locationChangeSuccess', function(evt, from, to) {
-        if (from !== to) {
-            notificationService.reset();
-        }
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/notification/notificationService.js
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/notification/notificationService.js b/dashboard/public/modules/notification/notificationService.js
deleted file mode 100644
index 0c198a0..0000000
--- a/dashboard/public/modules/notification/notificationService.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-angular.module('dgc.system.notification').service('notificationService', ['$timeout', 'lodash', 'colorCoding', function($timeout, _, colorCoding) {
-
-    var notifications = [],
-        service = {
-            timeout: 2000,
-            getAll: function() {
-                return notifications;
-            },
-            reset: function() {
-                notifications = [];
-            },
-            close: function(notification) {
-                _.remove(notifications, notification);
-            }
-        };
-
-    _.each(colorCoding, function(value, key) {
-        service[key] = function(message, timeout) {
-            var notification = message;
-            if (_.isString(message)) {
-                notification = {
-                    message: message
-                };
-            }
-
-            notification.message = notification.msg || notification.message;
-            delete notification.msg;
-            notification.type = value;
-            notification.timeout = _.isUndefined(timeout) ? (_.isUndefined(notification.timeout) ? true : notification.timeout) : timeout;
-            notifications.push(notification);
-
-            if (notification.timeout) {
-                $timeout(function() {
-                    service.close(notification);
-                }, angular.isNumber(notification.timeout) ? notification.timeout : service.timeout);
-            }
-        };
-    });
-
-    return service;
-}]);

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/a05f752d/dashboard/public/modules/notification/views/notifications.html
----------------------------------------------------------------------
diff --git a/dashboard/public/modules/notification/views/notifications.html b/dashboard/public/modules/notification/views/notifications.html
deleted file mode 100644
index f20b750..0000000
--- a/dashboard/public/modules/notification/views/notifications.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<div class="container" data-ng-controller="notificationController">
-    <alert data-ng-repeat="notification in getNotifications()" data-type="{{notification.type}}" data-close="close(notification)" class="notifier">
-        {{notification.message}}
-    </alert>
-</div>


Mime
View raw message