Commit 8ba831bc by Venkatesh Seetharam

Minor bug fixes for dashboard from MPR

parent a9d61e1b
...@@ -42,9 +42,7 @@ ...@@ -42,9 +42,7 @@
<link href="css/style.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet">
<link type="text/css" rel="stylesheet" href="css/pagination.css" /> <link type="text/css" rel="stylesheet" href="css/pagination.css" />
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]> <!--[if lt IE 9]>
......
/*
* 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.
*/
var DgcControllers = angular.module("DgcControllers", []);
DgcControllers.service('sharedProperties', function () {
var property="";
var Query="";
return {
getProperty: function () {
return property;
},
setProperty: function(value) {
property = value;
},
getQuery: function () {
return Query;
},setQuery: function(value) {
Query = value;
}
};
});
DgcControllers.controller("headerController", ['$scope', '$window', '$location', '$stateParams', function($scope, $window, $location,$stateParams)
{
$scope.executeSearch=function executeSearch() {
$window.location.href = "#Search/" + $scope.query;
}
$scope.query=$stateParams.searchid;
}]
);
DgcControllers.controller("footerController", ['$scope','$http', function($scope, $http)
{
$http.get('/api/metadata/admin/version')
.success(function (data) {
$scope.iserror1=false;
$scope.apiVersion=data.Version;
})
.error(function (e) {
$scope.iserror1=true;
$scope.error1=e;
});
}]
);
DgcControllers.controller("NavController", ['$scope','$http', '$filter', 'sharedProperties', function($scope, $http, $filter, sharedProperties)
{
$http.get('/api/metadata/types/traits/list')
.success(function (data) {
$scope.iserror1=false;
$scope.leftnav=angular.fromJson(data.results);
})
.error(function (e) {
$scope.iserror1=true;
$scope.error1=e;
});
//Nav to textbox
$scope.updateVar = function (event) {
$scope.$$prevSibling.query = angular.element(event.target).text();
};
}]
);
DgcControllers.controller("ListController", ['$scope','$http', '$filter','$stateParams', 'sharedProperties', function($scope, $http, $filter, $stateParams, sharedProperties)
{
$scope.isUndefined = function (strval) {
return (typeof strval === "undefined");
}
$scope.StoreJson = function (strval) {
sharedProperties.setProperty(strval);
}
$scope.Showpaging = function(itemlength)
{
return (itemlength > 1);
}
$scope.isString=function isString(value){
return typeof value === 'string';
}
$scope.isObject=function isObject(value){
return typeof value === 'object';
}
$scope.Storeqry=function Storeqry(value){
return typeof value === 'object';
}
$scope.executeSearchForleftNav = function executeSearchForleftNav(strSearch){
$scope.query=strSearch;
sharedProperties.setQuery(strSearch);
//$scope.executeSearch();
}
console.log($stateParams.searchid);
$scope.SearchQuery=$stateParams.searchid;
$scope.reverse = false;
$scope.filteredItems = [];
$scope.groupedItems = [];
$scope.itemsPerPage = 10;
$scope.pagedItems = [];
$scope.currentPage = 0;
$scope.itemlength=0;
$scope.configdata=[];
$scope.results=[];
$scope.datatype="";
$http.get('js/config.json').success(function(data){
$scope.configdata=data.Search;
});
$http.get('/api/metadata/discovery/search?query='+$scope.SearchQuery)
.success(function (data) {
$scope.iserror=false;
$scope.entities=angular.fromJson(data.results.rows);
if(!$scope.isUndefined($scope.entities)){
$scope.itemlength=$scope.entities.length;
$scope.datatype=data.results.dataType.typeName;
var i=0;
angular.forEach($scope.configdata, function(values, key) {
if (key === data.results.dataType.typeName) {
i=1;
}
});
if(i===0){
var tempdataType="__tempQueryResultStruct";
//console.log(tempdataType);
var datatype1=$scope.datatype.substring(0,tempdataType.length);
// console.log(datatype1);
if(datatype1===tempdataType){
$scope.datatype=tempdataType;
}
}
sharedProperties.setProperty($scope.datatype);
}
// console.log($scope.entities);
// to get value based on config but not use (used in view directly)
/* angular.forEach($scope.configdata, function(values, key) {
if(key===data.results.dataType.typeName)
{
$scope.entities.forEach(function(k,v){
angular.forEach(values, function(value, key1) {
var obj = {};
obj[value] = k[value];
$scope.results.push(obj);
});
});
}
});
*/
$scope.currentPage = 0;
// now group by pages
$scope.groupToPages();
});
// .error(function (e) {
// alert("failed");
// $scope.iserror=true;
// $scope.error=e;
// });
//click value to textbox
$scope.updateVars = function (event) {
var appElement = document.querySelector('[ng-model=query]');
var $scope = angular.element(appElement).scope();
$scope.query = angular.element(event.target).text();
// $scope.$apply(function() {
// $scope.query = angular.element(event.target).text();
// });
console.log("test");
console.log(angular.element(event.target).text());
console.log("testingFact");
};
//click value to textbox
$scope.getGuidName=function getGuidName(val){
$http.get('/api/metadata/entities/definition/'+val)
.success(function (data) {
$scope.iserror1=false;
if(!$scope.isUndefined(data.results)){
$scope.gname=angular.fromJson(data.results);
console.log(angular.fromJson(data.results));
// $scope.gname=data.results.name;
}
})
.error(function (e) {
$scope.iserror1=true;
$scope.error1=e;
});
//return $scope.gname;
}
// calculate page in place
$scope.groupToPages = function () {
$scope.pagedItems = [];
for (var i = 0; i < $scope.itemlength; i++) {
if (i % $scope.itemsPerPage === 0) {
$scope.pagedItems[Math.floor(i / $scope.itemsPerPage)] = [ $scope.entities[i] ];
} else {
$scope.pagedItems[Math.floor(i / $scope.itemsPerPage)].push($scope.entities[i]);
}
}
};
$scope.range = function (start, end) {
var ret = [];
if (!end) {
end = start;
start = 0;
}
for (var i = start; i < end; i++) {
ret.push(i);
}
return ret;
};
$scope.prevPage = function () {
if ($scope.currentPage > 0) {
$scope.currentPage--;
}
};
$scope.nextPage = function () {
if ($scope.currentPage < $scope.pagedItems.length - 1) {
$scope.currentPage++;
}
};
$scope.firstPage = function () {
if ($scope.currentPage > 0) {
$scope.currentPage = 0;
}
};
$scope.lastPage = function () {
if ($scope.currentPage < $scope.pagedItems.length - 1) {
$scope.currentPage = $scope.pagedItems.length-1;
}
};
$scope.setPage = function () {
$scope.currentPage = this.n;
};
}]
);
DgcControllers.controller("DefinitionController", ['$scope','$http', '$stateParams', 'sharedProperties','$q', function($scope, $http, $stateParams, sharedProperties, $q)
{
$scope.guidName="";
$scope.ids=[];
$scope.isUndefined = function (strval) {
return (typeof strval === "undefined");
}
$scope.isString=function isString(value){
return typeof value === 'string' || getType(value)==='[object Number]';
}
var getType = function (elem) {
return Object.prototype.toString.call(elem);
};
$scope.isObject=function isObject(value){
return typeof value === 'object';
}
//onclick to textbox
$scope.updateDetailsVariable = function (event) {
var appElement = document.querySelector('[ng-model=query]');
var $scope = angular.element(appElement).scope();
$scope.query = angular.element(event.target).text();
// $scope.$apply(function() {
// $scope.query = angular.element(event.target).text();
// });
console.log("test");
console.log(angular.element(event.target).text());
console.log("testing");
};
//onclick to textbox
$scope.getGuidName=function getGuidName(val){
$http.get('/api/metadata/entities/definition/'+val)
.success(function (data) {
$scope.iserror1=false;
if(!$scope.isUndefined(data.results)){
$scope.gname=angular.fromJson(data.results);
//console.log(angular.fromJson(data.results));
// $scope.gname=data.results.name;
}
})
.error(function (e) {
$scope.iserror1=true;
$scope.error1=e;
});
return true;
}
$scope.Name=$stateParams.Id;
$scope.searchqry=sharedProperties.getQuery();
$scope.datatype1=sharedProperties.getProperty();
$http.get('/api/metadata/entities/definition/'+$stateParams.Id)
.success(function (data) {
$scope.iserror1=false;
$scope.details= angular.fromJson(data.results);
if(!$scope.isUndefined( $scope.details)) {
// console.log($scope.details['name']);
$scope.datatype1=$scope.details["$typeName$"];
$scope.getSchema($scope.details['name']);
$scope.getLinegae($scope.details['name']);
$scope.getLinegaeforinput($scope.details['name']);
}
})
.error(function (e) {
$scope.iserror1=true;
$scope.error1=e;
});
$scope.getSchema= function (tableName) {
$http.get('/api/metadata/lineage/hive/schema/'+tableName)
.success(function (data) {
$scope.iserror1=false;
$scope.schema= angular.fromJson(data.results.rows);
// console.log(tableName);
})
.error(function (e) {
$scope.iserror1=true;
$scope.error1=e;
});
}
$scope.getLinegae= function (tableName) {
// $scope.width = 900;
// $scope.height = 900;
var arr=[];
var arrmyalias=[];
var datatypes=[];
var tags=[];
$http.get('/api/metadata/lineage/hive/outputs/'+tableName)
.success(function (data) {
$scope.iserror1=false;
$scope.lineage= angular.fromJson(data.results.rows);
$scope.vts = [];
$scope.edges1 = [];
$scope.listguid = [];
angular.forEach($scope.lineage, function(lineage1){
var level = 0;
angular.forEach(lineage1.path, function(item, index){
// if ($scope.listguid.indexOf(index) == -1) {
// $scope.listguid.push(index);
$scope.vts.push({"Name": item.guid,"Id" :index,"hasChild":"True","type":item.typeName});
$scope.edges1.push({source: index, target: (index+1)});
// }
});
});
var newarr = [];
var unique = {};
angular.forEach($scope.edges1, function(item) {
if (!unique[item.source]) {
newarr.push(item);
unique[item.source] = item;
//console.log(newarr);
}
});
var newarrvts = [];
var uniquevts = {};
angular.forEach($scope.vts, function(item) {
if (!uniquevts[item.Name]) {
newarrvts.push(item);
uniquevts[item.Name] = item;
var url="/api/metadata/entities/definition/"+item.Name;
arr.push($http.get(url));
}
});
$q.all(arr).then(function(ret){
//console.log("Result guid list length="+ret.length);
for(var i=0;i<ret.length;i++){
var f=angular.fromJson(ret[i].data.results);
//console.log(i+"Their Names="+angular.toJson(f));
//console.log(i+"Their Names="+f.name);
arrmyalias[i]=f.name;
datatypes[i]=f['$typeName$'];
if(f['$typeName$']==="Table")
{
angular.forEach(f['$traits$'], function(key, value) {
tags[i]=value;
});
}
else{
tags[i]=f.queryText;
}
}
if(arrmyalias.length>1){
doMakeStaticJson(arrmyalias);
}
else{
$scope.errornodata="";
}
// loadjsonRealv2(arrmyalias);
// doMakeStaticJson(arrmyalias);
});
})
.error(function (e) {
$scope.iserror1=true;
$scope.error1=e;
});
function doMakeStaticJson(arrmyalias){
var toparr=[];
console.log(arrmyalias.length);
var rootobj=new Object();
rootobj.name=arrmyalias[0];
rootobj.alias=arrmyalias[0];
rootobj.query=tags[0];
rootobj.datatype=datatypes[0];
rootobj.parent="null";
toparr[0]=rootobj;
//start first object
var child1obj=new Object();
child1obj.alias=arrmyalias[1];
child1obj.name=arrmyalias[1];
child1obj.query=tags[1];
child1obj.datatype=datatypes[1];
child1obj.parent=arrmyalias[0];
//start
var childsub1obj=new Object();
childsub1obj.name=arrmyalias[2];
childsub1obj.alias=arrmyalias[2];
childsub1obj.query=tags[2];
childsub1obj.datatype=datatypes[2];
childsub1obj.parent=arrmyalias[1];
if(arrmyalias.length>2){
var arraychildren1=[];
arraychildren1.push(childsub1obj);
child1obj.children=arraychildren1;
}
//start
var childsub2obj=new Object();
childsub2obj.name=arrmyalias[3];
childsub2obj.alias=arrmyalias[3];
childsub2obj.query=tags[3];
childsub2obj.datatype=datatypes[3];
childsub2obj.parent=arrmyalias[2];
if(arrmyalias.length>3){
var arraychildren2=[];
arraychildren2.push(childsub2obj);
childsub1obj.children=arraychildren2;
}
//start
var childsub3obj=new Object();
childsub3obj.name=arrmyalias[4];
childsub3obj.alias=arrmyalias[4];
childsub3obj.query=tags[4];
childsub3obj.datatype=datatypes[4];
childsub3obj.parent=arrmyalias[3];
if(arrmyalias.length>4){
var arraychildren3=[];
arraychildren3.push(childsub3obj);
childsub2obj.children=arraychildren3;
}
///end first objects
/*var arraychildren2=[];
arraychildren2.push(child1obj2);
// arraychildren2.push(childsub2obj2);
child1obj2.children=arraychildren2;
//end second objects
*/
var array1=[];
array1[0]=child1obj;
// array1[1]=child1obj2;
rootobj.children=array1;
//console.info("MITH SEE THIS="+angular.toJson(toparr));
root = toparr[0];
console.log(root);
update(root);
}
//Width and height
var width = 700,
height = 500,
root;
//image intitializer
var mitharr=["img/tableicon.png","img/process.png","img/tableicon.png","img/process.png","img/tableicon.png"];
var force = d3.layout.force()
.gravity(0)
.friction(0.7)
.charge(-90)
.linkDistance(120)
.size([width, height])
.on("tick", tick);
var svg = d3.select("svg")
// .attr("transform", "translate(" + (width/2) +
// "," + (height/2) + ")")
.attr('transform-origin', '-419 -530')
.attr("viewBox", "10 -300 1000 1000")
.attr("preserveAspectRatio", "xMidYMid meet");
// .append("g")
// .attr("transform", "translate(" + d.x + "," + d.y +") rotate(180) scale(-1, -1)");
// .attr("preserveAspectRatio", "xMidYMid slice");
var link = svg.selectAll(".link"),
node = svg.selectAll(".node");
var tip = d3.tip()
.attr('class', 'd3-tip')
.offset([-10, 0])
.html(function(d) {
return "<pre class='alert alert-success' style='max-width:400px;'>" + d.query + "</pre>";
});
svg.call(tip);
function update(source) {
var nodes = flatten(root),
links = d3.layout.tree().links(nodes);
// Restart the force layout.
force
.nodes(nodes)
.links(links)
.start();
// Update links.
link = link.data(links, function(d) { return d.target.id; });
link.exit().remove();
link.enter().insert("line", ".node")
.attr("class", "link");
// Update nodes.
node = node.data(nodes, function(d) { return d.id; });
node.exit().remove();
svg.append("svg:pattern").attr("id","processICO").attr("width",1).attr("height",1)
.append("svg:image").attr("xlink:href","./img/process.png").attr("x",-5.5).attr("y",-4).attr("width",42).attr("height",42);
svg.append("svg:pattern").attr("id","textICO").attr("width",1).attr("height",1)
.append("svg:image").attr("xlink:href","./img/tableicon.png").attr("x",2).attr("y",2).attr("width",25).attr("height",25);
//arrow
svg.append("svg:defs").append("svg:marker").attr("id", "arrow").attr("viewBox", "0 0 10 10").attr("refX", 36).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("svg:path").attr("d", "M 0 0 L 10 5 L 0 10 z");
//arrow
var nodeEnter = node.enter().append("g")
.attr("class", "nodeTrans")
.on("mouseover", tip.show)
.on("mouseout", tip.hide)
.call(force.drag);
nodeEnter.append("circle")
.attr("r", function(d) { return 15; });
link.attr("marker-end", "url(#arrow)"); //also added attribute for arrow at end
nodeEnter.append("text")
.style("text-anchor", "middle")
.attr("dy", "-1em")
.attr("text-anchor", function(d) {
return d.children || d._children ? "end" : "start"; })
.text(function(d) {
return d.alias;
//return d.name;
})
.style("fill-opacity", 1);
// nodeEnter.select("circle")
// .attr("xlink:href", function(d) {
// //return d.icon;
// return mitharr[d.depth];
// })
// .attr("x", "-12px")
// .attr("y", "-12px")
// .attr("width", "24px")
// .attr("height", "24px");
node.select("circle")
// .attr("xlink:href", function(d) {
// //return d.icon;
// return mitharr[d.depth];
// })
.style("fill", function(d, i) {
if(d.datatype==="Table"){
return "url('#textICO')";
}else{
return "url('#processICO')";
}
return colors(i);
});
//force.stop();
//force.resume();
}
//force.stop();
function tick() {
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ") " });
}
//node[0].x = width / 2;
// node[1].y = height / 2;
d3.select(window).on('resize', update);
function color(d) {
return d._children ? "#3182bd" // collapsed package
: d.children ? "#c6dbef" // expanded package
: "#fd8d3c"; // leaf node
}
// Toggle children on click.
function click(d) {
if (d3.event.defaultPrevented) return; // ignore drag
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
update();
}
// Returns a list of all nodes the root.
function flatten(root) {
var nodes = [], i = 0;
function recurse(node) {
if (node.children) node.children.forEach(recurse);
if (!node.id) node.id = ++i;
nodes.push(node);
}
recurse(root);
return nodes;
}
//
// })
// .error(function (e) {
// $scope.iserror1=true;
// $scope.error1=e;
// });
}
$scope.getLinegaeforinput= function (tableName) {
// $scope.width = 900;
// $scope.height = 900;
var arr=[];
var arrmyalias=[];
var datatypes=[];
var tags=[];
$http.get('/api/metadata/lineage/hive/inputs/'+tableName)
.success(function (data) {
$scope.iserror1=false;
$scope.lineage= angular.fromJson(data.results.rows);
$scope.vts = [];
$scope.edges1 = [];
$scope.listguid = [];
angular.forEach($scope.lineage, function(lineage1){
var level = 0;
angular.forEach(lineage1.path, function(item, index){
// if ($scope.listguid.indexOf(index) == -1) {
// $scope.listguid.push(index);
$scope.vts.push({"Name": item.guid,"Id" :index,"hasChild":"True","type":item.typeName});
$scope.edges1.push({source: index, target: (index+1)});
// }
});
});
var newarr = [];
var unique = {};
angular.forEach($scope.edges1, function(item) {
if (!unique[item.source]) {
newarr.push(item);
unique[item.source] = item;
//console.log(newarr);
}
});
var newarrvts = [];
var uniquevts = {};
angular.forEach($scope.vts, function(item) {
if (!uniquevts[item.Name]) {
newarrvts.push(item);
uniquevts[item.Name] = item;
var url="/api/metadata/entities/definition/"+item.Name;
arr.push($http.get(url));
//getLienageGuidName(item.Name);
}
});
console.log(item.Name);
$q.all(arr).then(function(ret){
//console.log("Result guid list length="+ret.length);
for(var i=0;i<ret.length;i++){
var f=angular.fromJson(ret[i].data.results);
//console.log(i+"Their Names="+angular.toJson(f));
//console.log(i+"Their Names="+f.name);
arrmyalias[i]=f.name;
datatypes[i]=f['$typeName$'];
if(f['$typeName$']==="Table")
{
angular.forEach(f['$traits$'], function(key, value) {
tags[i]=value;
console.log(value);
});
}
else{
tags[i]=f.queryText;
console.log(f.queryText);
}
}
console.log(arrmyalias);
if(arrmyalias.length>1){
doMakeStaticJson(arrmyalias);
}
else{
$scope.errornodata1="";
}
// loadjsonRealv2(arrmyalias);
// doMakeStaticJson(arrmyalias);
});
})
.error(function (e) {
$scope.iserror1=true;
$scope.error1=e;
});
function doMakeStaticJson(arrmyalias){
var toparr=[];
var rootobj=new Object();
rootobj.name=arrmyalias[0];
rootobj.alias=arrmyalias[0];
rootobj.query=tags[0];
rootobj.datatype=datatypes[0];
rootobj.parent="null";
toparr[0]=rootobj;
//start first object
var child1obj=new Object();
child1obj.alias=arrmyalias[1];
child1obj.name=arrmyalias[1];
child1obj.query=tags[1];
child1obj.datatype=datatypes[1];
child1obj.parent=arrmyalias[0];
//start
var childsub1obj=new Object();
childsub1obj.name=arrmyalias[2];
childsub1obj.alias=arrmyalias[2];
childsub1obj.query=tags[2];
childsub1obj.datatype=datatypes[2];
childsub1obj.parent=arrmyalias[1];
if(arrmyalias.length>2){
var arraychildren1=[];
arraychildren1.push(childsub1obj);
child1obj.children=arraychildren1;
}
//start
var childsub2obj=new Object();
childsub2obj.name=arrmyalias[3];
childsub2obj.alias=arrmyalias[3];
childsub2obj.query=tags[3];
childsub2obj.datatype=datatypes[3];
childsub2obj.parent=arrmyalias[2];
if(arrmyalias.length>3){
var arraychildren2=[];
arraychildren2.push(childsub2obj);
childsub1obj.children=arraychildren2;
}
//start
var childsub3obj=new Object();
childsub3obj.name=arrmyalias[4];
childsub3obj.alias=arrmyalias[4];
childsub3obj.query=tags[4];
childsub3obj.datatype=datatypes[4];
childsub3obj.parent=arrmyalias[3];
if(arrmyalias.length>4){
var arraychildren3=[];
arraychildren3.push(childsub3obj);
childsub2obj.children=arraychildren3;
}
///end first objects
/*var arraychildren2=[];
arraychildren2.push(child1obj2);
// arraychildren2.push(childsub2obj2);
child1obj2.children=arraychildren2;
//end second objects
*/
var array1=[];
array1[0]=child1obj;
// array1[1]=child1obj2;
rootobj.children=array1;
//console.info("MITH SEE THIS="+angular.toJson(toparr));
root = toparr[0];
console.log("test input");
console.log(root);
update(root);
}
//Width and height
var width = 700,
height = 500,
root;
//image intitializer
var mitharr=["img/tableicon.png","img/process.png","img/tableicon.png","img/process.png","img/tableicon.png"];
var force = d3.layout.force()
.gravity(0)
.friction(0.7)
.charge(-90)
.linkDistance(120)
.size([width, height])
.on("tick", tick);
var svg = d3.select("svg1").append("svg")
// .attr("transform", "translate(" + (width/2) +
// "," + (height/2) + ")")
.attr('transform-origin', '-419 -530')
.attr("viewBox", "10 -300 1000 1000")
.attr("preserveAspectRatio", "xMidYMid meet");
// .append("g")
// .attr("transform", "translate(" + d.x + "," + d.y +") rotate(180) scale(-1, -1)");
// .attr("preserveAspectRatio", "xMidYMid slice");
var link = svg.selectAll(".link"),
node = svg.selectAll(".node");
var tip = d3.tip()
.attr('class', 'd3-tip')
.offset([-10, 0])
.html(function(d) {
return "<pre class='alert alert-success' style='max-width:400px;'>" + d.query + "</pre>";
});
if(svg){
svg.call(tip);
}
function update(source) {
var nodes = flatten(root),
links = d3.layout.tree().links(nodes);
// Restart the force layout.
force
.nodes(nodes)
.links(links)
.start();
// Update links.
link = link.data(links, function(d) { return d.target.id; });
link.exit().remove();
link.enter().insert("line", ".node")
.attr("class", "link");
// Update nodes.
node = node.data(nodes, function(d) { return d.id; });
node.exit().remove();
svg.append("svg:pattern").attr("id","processICO1").attr("width",1).attr("height",1)
.append("svg:image").attr("xlink:href","./img/process.png").attr("x",-5.5).attr("y",-4).attr("width",42).attr("height",42);
svg.append("svg:pattern").attr("id","textICO1").attr("width",1).attr("height",1)
.append("svg:image").attr("xlink:href","./img/tableicon.png").attr("x",2).attr("y",2).attr("width",25).attr("height",25);
//arrow
svg.append("svg:defs").append("svg:marker").attr("id", "arrow1").attr("viewBox", "0 0 10 10").attr("refX", 60).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("svg:path").attr("d", "M 0 0 L 10 5 L 0 10 z");
//arrow
var nodeEnter = node.enter().append("g")
.attr("class", "nodeTrans")
.on("mouseover", tip.show)
.on("mouseout", tip.hide)
.call(force.drag);
nodeEnter.append("circle")
.attr("r", function(d) { return 15; });
link.attr("marker-end", "url(#arrow1)"); //also added attribute for arrow at end
nodeEnter.append("text")
.style("text-anchor", "middle")
.attr("dy", "-1em")
.attr("text-anchor", function(d) {
return d.children || d._children ? "end" : "start"; })
.text(function(d) {
return d.alias;
//return d.name;
})
.style("fill-opacity", 1);
// nodeEnter.select("circle")
// .attr("xlink:href", function(d) {
// //return d.icon;
// return mitharr[d.depth];
// })
// .attr("x", "-12px")
// .attr("y", "-12px")
// .attr("width", "24px")
// .attr("height", "24px");
node.select("circle")
// .attr("xlink:href", function(d) {
// //return d.icon;
// return mitharr[d.depth];
// })
.style("fill", function(d) {
if(d.datatype==="Table"){
return "url('#textICO1')";
}else{
return "url('#processICO1')";
}
return colors(i);
});
//force.stop();
//force.resume();
}
//force.stop();
function tick() {
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ") " });
}
//node[0].x = width / 2;
// node[1].y = height / 2;
d3.select(window).on('resize', update);
function color(d) {
return d._children ? "#3182bd" // collapsed package
: d.children ? "#c6dbef" // expanded package
: "#fd8d3c"; // leaf node
}
// Toggle children on click.
function click(d) {
if (d3.event.defaultPrevented) return; // ignore drag
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
update();
}
// Returns a list of all nodes the root.
function flatten(root) {
var nodes = [], i = 0;
function recurse(node) {
if (node.children) node.children.forEach(recurse);
if (!node.id) node.id = ++i;
nodes.push(node);
}
recurse(root);
return nodes;
}
//
// })
// .error(function (e) {
// $scope.iserror1=true;
// $scope.error1=e;
// });
}
// console.log( $scope.vts);
$scope.reverse = function(array) {
var copy = [].concat(array);
return copy.reverse();
}
// function back()
// {
// $window.history.back();
// myModule.run(function ($rootScope, $location) {
// var history = [];
// $rootScope.$on('$routeChangeSuccess', function() {
// history.push($location.$$path);
// });
// $rootScope.back = function () {
// var prevUrl = history.length > 1 ? history.splice(-2)[0] : "/";
// $location.path(prevUrl);
// };
// });
// }
}]
);
DgcControllers.controller("GuidController", ['$scope','$http', '$filter','$stateParams', 'sharedProperties', function($scope, $http, $filter, $stateParams, sharedProperties)
{
$scope.getGuidName=function getGuidName(val){
$scope.gnew=[];
$http.get('/api/metadata/entities/definition/'+val)
.success(function (data) {
$scope.iserror1=false;
if(!$scope.isUndefined(data.results)){
$scope.gname=angular.fromJson(data.results);
var data1=angular.fromJson(data.results);
//$scope.gnew({"id" : val,"name" : data1['name']});
$scope.gnew= $scope.gname.name;
// $scope.$watch($scope.gnew, true);
}
//dddd
})
.error(function (e) {
$scope.iserror1=true;
$scope.error1=e;
});
//return $scope.gnew;
}
}]
);
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
], ],
"View": [ "View": [
{ "$id$":["id"] }, { "$id$":["id"] },
"inputTables", { "inputTables":["id"] },
"name", "name",
{ "$traits$":[""]} { "$traits$":[""]}
] ]
......
...@@ -588,12 +588,12 @@ if(arrmyalias.length>1){ ...@@ -588,12 +588,12 @@ if(arrmyalias.length>1){
//image intitializer //image intitializer
var mitharr=["img/tableicon.png","img/process.png","img/tableicon.png","img/process.png","img/tableicon.png"]; var mitharr=["img/tableicon.png","img/process.png","img/tableicon.png","img/process.png","img/tableicon.png"];
//getlinageoutput
var force = d3.layout.force() var force = d3.layout.force()
.gravity(0) .gravity(0)
.friction(0.7) .friction(0.7)
.charge(-90) .charge(-50)
.linkDistance(120) .linkDistance(120)
.size([width, height]) .size([width, height])
.on("tick", tick); .on("tick", tick);
...@@ -601,6 +601,8 @@ if(arrmyalias.length>1){ ...@@ -601,6 +601,8 @@ if(arrmyalias.length>1){
var svg = d3.select("svg") var svg = d3.select("svg")
// .attr("transform", "translate(" + (width/2) + // .attr("transform", "translate(" + (width/2) +
// "," + (height/2) + ")") // "," + (height/2) + ")")
.attr("id", "playgraph")
//better to keep the viewBox dimensions with variables
.attr('transform-origin', '-419 -530') .attr('transform-origin', '-419 -530')
.attr("viewBox", "10 -300 1000 1000") .attr("viewBox", "10 -300 1000 1000")
...@@ -717,6 +719,8 @@ if(arrmyalias.length>1){ ...@@ -717,6 +719,8 @@ if(arrmyalias.length>1){
//force.stop(); //force.stop();
function tick() { function tick() {
node[0].x = width / 10;
node[0].y = height / 10;
link.attr("x1", function(d) { return d.source.x; }) link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; }) .attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; }) .attr("x2", function(d) { return d.target.x; })
...@@ -725,6 +729,8 @@ function tick() { ...@@ -725,6 +729,8 @@ function tick() {
node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ") " }); node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ") " });
} }
//node[0].x = width / 2; //node[0].x = width / 2;
...@@ -985,7 +991,7 @@ if(arrmyalias.length>1){ ...@@ -985,7 +991,7 @@ if(arrmyalias.length>1){
var force = d3.layout.force() var force = d3.layout.force()
.gravity(0) .gravity(0)
.friction(0.7) .friction(0.7)
.charge(-90) .charge(-100)
.linkDistance(120) .linkDistance(120)
.size([width, height]) .size([width, height])
.on("tick", tick); .on("tick", tick);
...@@ -993,6 +999,8 @@ if(arrmyalias.length>1){ ...@@ -993,6 +999,8 @@ if(arrmyalias.length>1){
var svg = d3.select("svg1").append("svg") var svg = d3.select("svg1").append("svg")
// .attr("transform", "translate(" + (width/2) + // .attr("transform", "translate(" + (width/2) +
// "," + (height/2) + ")") // "," + (height/2) + ")")
.attr("id", "playgraph")
//better to keep the viewBox dimensions with variables
.attr('transform-origin', '-419 -530') .attr('transform-origin', '-419 -530')
.attr("viewBox", "10 -300 1000 1000") .attr("viewBox", "10 -300 1000 1000")
...@@ -1113,6 +1121,9 @@ if(arrmyalias.length>1){ ...@@ -1113,6 +1121,9 @@ if(arrmyalias.length>1){
//force.stop(); //force.stop();
function tick() { function tick() {
node[0].x = width / 10;
node[0].y = height / 10;
link.attr("x1", function(d) { return d.source.x; }) link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; }) .attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; }) .attr("x2", function(d) { return d.target.x; })
...@@ -1121,6 +1132,7 @@ function tick() { ...@@ -1121,6 +1132,7 @@ function tick() {
node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ") " }); node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ") " });
} }
//node[0].x = width / 2; //node[0].x = width / 2;
......
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
// IT'S JUST JUNK FOR OUR DOCS!
// ++++++++++++++++++++++++++++++++++++++++++
/*!
* Copyright 2014 Twitter, Inc.
*
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
* details, see http://creativecommons.org/licenses/by/3.0/.
*/
// Intended to prevent false-positive bug reports about Bootstrap not working properly in old versions of IE due to folks testing using IE's unreliable emulation modes.
(function () {
'use strict';
function emulatedIEMajorVersion() {
var groups = /MSIE ([0-9.]+)/.exec(window.navigator.userAgent)
if (groups === null) {
return null
}
var ieVersionNum = parseInt(groups[1], 10)
var ieMajorVersion = Math.floor(ieVersionNum)
return ieMajorVersion
}
function actualNonEmulatedIEMajorVersion() {
// Detects the actual version of IE in use, even if it's in an older-IE emulation mode.
// IE JavaScript conditional compilation docs: http://msdn.microsoft.com/en-us/library/ie/121hztk3(v=vs.94).aspx
// @cc_on docs: http://msdn.microsoft.com/en-us/library/ie/8ka90k2e(v=vs.94).aspx
var jscriptVersion = new Function('/*@cc_on return @_jscript_version; @*/')() // jshint ignore:line
if (jscriptVersion === undefined) {
return 11 // IE11+ not in emulation mode
}
if (jscriptVersion < 9) {
return 8 // IE8 (or lower; haven't tested on IE<8)
}
return jscriptVersion // IE9 or IE10 in any mode, or IE11 in non-IE11 mode
}
var ua = window.navigator.userAgent
if (ua.indexOf('Opera') > -1 || ua.indexOf('Presto') > -1) {
return // Opera, which might pretend to be IE
}
var emulated = emulatedIEMajorVersion()
if (emulated === null) {
return // Not IE
}
var nonEmulated = actualNonEmulatedIEMajorVersion()
if (emulated !== nonEmulated) {
window.alert('WARNING: You appear to be using IE' + nonEmulated + ' in IE' + emulated + ' emulation mode.\nIE emulation modes can behave significantly differently from ACTUAL older versions of IE.\nPLEASE DON\'T FILE BOOTSTRAP BUGS based on testing in IE emulation modes!')
}
})();
/*
AngularJS v1.2.18
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
(function(n,e,A){'use strict';function x(s,g,k){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,w){function y(){p&&(p.remove(),p=null);h&&(h.$destroy(),h=null);l&&(k.leave(l,function(){p=null}),p=l,l=null)}function v(){var b=s.current&&s.current.locals;if(e.isDefined(b&&b.$template)){var b=a.$new(),d=s.current;l=w(b,function(d){k.enter(d,null,l||c,function(){!e.isDefined(t)||t&&!a.$eval(t)||g()});y()});h=d.scope=b;h.$emit("$viewContentLoaded");h.$eval(u)}else y()}
var h,l,p,t=b.autoscroll,u=b.onload||"";a.$on("$routeChangeSuccess",v);v()}}}function z(e,g,k){return{restrict:"ECA",priority:-400,link:function(a,c){var b=k.current,f=b.locals;c.html(f.$template);var w=e(c.contents());b.controller&&(f.$scope=a,f=g(b.controller,f),b.controllerAs&&(a[b.controllerAs]=f),c.data("$ngControllerController",f),c.children().data("$ngControllerController",f));w(a)}}}n=e.module("ngRoute",["ng"]).provider("$route",function(){function s(a,c){return e.extend(new (e.extend(function(){},
{prototype:a})),c)}function g(a,e){var b=e.caseInsensitiveMatch,f={originalPath:a,regexp:a},k=f.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,e,b,c){a="?"===c?c:null;c="*"===c?c:null;k.push({name:b,optional:!!a});e=e||"";return""+(a?"":e)+"(?:"+(a?e:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");f.regexp=RegExp("^"+a+"$",b?"i":"");return f}var k={};this.when=function(a,c){k[a]=e.extend({reloadOnSearch:!0},c,a&&g(a,c));if(a){var b=
"/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";k[b]=e.extend({redirectTo:a},g(b,c))}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(a,c,b,f,g,n,v,h){function l(){var d=p(),m=r.current;if(d&&m&&d.$$route===m.$$route&&e.equals(d.pathParams,m.pathParams)&&!d.reloadOnSearch&&!u)m.params=d.params,e.copy(m.params,b),a.$broadcast("$routeUpdate",m);else if(d||m)u=!1,a.$broadcast("$routeChangeStart",
d,m),(r.current=d)&&d.redirectTo&&(e.isString(d.redirectTo)?c.path(t(d.redirectTo,d.params)).search(d.params).replace():c.url(d.redirectTo(d.pathParams,c.path(),c.search())).replace()),f.when(d).then(function(){if(d){var a=e.extend({},d.resolve),c,b;e.forEach(a,function(d,c){a[c]=e.isString(d)?g.get(d):g.invoke(d)});e.isDefined(c=d.template)?e.isFunction(c)&&(c=c(d.params)):e.isDefined(b=d.templateUrl)&&(e.isFunction(b)&&(b=b(d.params)),b=h.getTrustedResourceUrl(b),e.isDefined(b)&&(d.loadedTemplateUrl=
b,c=n.get(b,{cache:v}).then(function(a){return a.data})));e.isDefined(c)&&(a.$template=c);return f.all(a)}}).then(function(c){d==r.current&&(d&&(d.locals=c,e.copy(d.params,b)),a.$broadcast("$routeChangeSuccess",d,m))},function(c){d==r.current&&a.$broadcast("$routeChangeError",d,m,c)})}function p(){var a,b;e.forEach(k,function(f,k){var q;if(q=!b){var g=c.path();q=f.keys;var l={};if(f.regexp)if(g=f.regexp.exec(g)){for(var h=1,p=g.length;h<p;++h){var n=q[h-1],r="string"==typeof g[h]?decodeURIComponent(g[h]):
g[h];n&&r&&(l[n.name]=r)}q=l}else q=null;else q=null;q=a=q}q&&(b=s(f,{params:e.extend({},c.search(),a),pathParams:a}),b.$$route=f)});return b||k[null]&&s(k[null],{params:{},pathParams:{}})}function t(a,c){var b=[];e.forEach((a||"").split(":"),function(a,d){if(0===d)b.push(a);else{var e=a.match(/(\w+)(.*)/),f=e[1];b.push(c[f]);b.push(e[2]||"");delete c[f]}});return b.join("")}var u=!1,r={routes:k,reload:function(){u=!0;a.$evalAsync(l)}};a.$on("$locationChangeSuccess",l);return r}]});n.provider("$routeParams",
function(){this.$get=function(){return{}}});n.directive("ngView",x);n.directive("ngView",z);x.$inject=["$route","$anchorScroll","$animate"];z.$inject=["$compile","$controller","$route"]})(window,window.angular);
//# sourceMappingURL=angular-route.min.js.map
{
"version":3,
"file":"angular-route.min.js",
"lineCount":13,
"mappings":"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",
"sources":["angular-route.js"],
"names":["window","angular","undefined","ngViewFactory","$route","$anchorScroll","$animate","link","scope","$element","attr","ctrl","$transclude","cleanupLastView","currentScope","$destroy","currentElement","leave","update","locals","current","isDefined","$template","newScope","$new","clone","enter","onNgViewEnter","autoScrollExp","$eval","$emit","onloadExp","autoscroll","onload","$on","ngViewFillContentFactory","$compile","$controller","html","contents","controller","$scope","controllerAs","data","children","ngRouteModule","module","provider","$RouteProvider","inherit","parent","extra","extend","pathRegExp","path","opts","insensitive","caseInsensitiveMatch","ret","keys","replace","_","slash","key","option","optional","star","push","regexp","RegExp","routes","when","this.when","route","redirectPath","length","substr","otherwise","this.otherwise","params","$get","$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce","updateRoute","next","parseRoute","last","$$route","equals","pathParams","reloadOnSearch","forceReload","copy","$broadcast","redirectTo","isString","interpolate","search","url","then","resolve","template","templateUrl","forEach","value","get","invoke","isFunction","getTrustedResourceUrl","loadedTemplateUrl","response","all","error","match","m","exec","on","i","len","val","decodeURIComponent","name","string","result","split","segment","segmentMatch","join","reload","$evalAsync","$RouteParamsProvider","this.$get","directive","$inject"]
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
{
"name": "sales_fact",
"children": [
{
"name": "loadSalesDaily", "size": 3938,
"children": [
{
"name": "sales_fact_daily_mv",
"children": [
{"name": "loadSalesMonthly", "size": 3938,
"children": [
{"name": "sales_fact_monthly_mv", "size": 3812}
]
}
]
}]
}
]
}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.node circle {
cursor: pointer;
stroke-width: 0px;
}
.node text {
font: 13px sans-serif;
pointer-events: none;
text-anchor: middle;
}
line.link {
fill: none;
stroke: green;
stroke-width: 5.5px;
}
</style>
</head>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
var width = 760,
height = 500,
root;
var force = d3.layout.force()
.linkDistance(220)
.charge(-120)
.gravity(.05)
.size([width, height])
.on("tick", tick);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
var link = svg.selectAll(".link"),
node = svg.selectAll(".node");
d3.json("graph.json", function(error, json) {
root = json;
update();
});
function update() {
var nodes = flatten(root),
links = d3.layout.tree().links(nodes);
// Restart the force layout.
force
.nodes(nodes)
.links(links)
.start();
// Update links.
link = link.data(links, function(d) { return d.target.id; });
link.exit().remove();
link.enter().insert("line", ".node")
.attr("class", "link");
// Update nodes.
node = node.data(nodes, function(d) { return d.id; });
node.exit().remove();
svg.append("svg:pattern").attr("id","processICO").attr("width",1).attr("height",1)
.append("svg:image").attr("xlink:href","../img/process.png").attr("x",-5.5).attr("y",-4).attr("width",42).attr("height",42);
svg.append("svg:pattern").attr("id","textICO").attr("width",1).attr("height",1)
.append("svg:image").attr("xlink:href","../img/tableicon.png").attr("x",2).attr("y",2).attr("width",25).attr("height",25);
//arrow
svg.append("svg:defs").append("svg:marker").attr("id", "arrow").attr("viewBox", "0 0 10 10").attr("refX", 16).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 4).attr("markerHeight", 8).attr("orient", "auto").append("svg:path").attr("d", "M 0 0 L 10 5 L 0 10 z");
//arrow
var nodeEnter = node.enter().append("g")
.attr("class", "node")
.on("click", click)
.call(force.drag);
nodeEnter.append("circle")
.attr("r", function(d) { return 15; });
link.attr("marker-end", "url(#arrow)"); //also added attribute for arrow at end
nodeEnter.append("text")
.attr("dy", "-1em")
.text(function(d) { return d.name; });
node.select("circle")
.style("fill", function(d, i) {
if(d.size==3938){
return "url('#processICO')";
}else{
return "url('#textICO')";
}
return colors(i);
});
}
function tick() {
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
}
function color(d) {
return d._children ? "#3182bd" // collapsed package
: d.children ? "#c6dbef" // expanded package
: "#fd8d3c"; // leaf node
}
// Toggle children on click.
function click(d) {
if (d3.event.defaultPrevented) return; // ignore drag
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
update();
}
// Returns a list of all nodes the root.
function flatten(root) {
var nodes = [], i = 0;
function recurse(node) {
if (node.children) node.children.forEach(recurse);
if (!node.id) node.id = ++i;
nodes.push(node);
}
recurse(root);
return nodes;
}
</script>
</body>
</html>
\ No newline at end of file
...@@ -250,8 +250,8 @@ ...@@ -250,8 +250,8 @@
</tab> </tab>
</tabset> </tabset>
<div> <div>
<!--<a ui-sref="Search" ng-click="goBack()" style="color: #636364 !important; margin-left: 15px;">Back To Results(old)</a>--> <a ui-sref="Search" ng-click="goBack()" style="color: #636364 !important; margin-left: 15px;">Back To Results</a>
<a ui-sref="Search" onClick="javascript:history.go(-1);" style="color: #636364 !important; margin-left: 15px;">Back To Results</a> <!--<a ui-sref="Search" onClick="javascript:history.go(-1);" style="color: #636364 !important; margin-left: 15px;">Back To Results</a>-->
</div> </div>
</div> </div>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment