arnaucube
arnaucube/goBlockchainDataAnalysisPublic Self-hosted repository
goBlockchainDataAnalysis/web/views/addressNetwork/addressNetwork.js
web/views/addressNetwork/addressNetwork.jsRaw
  1'use strict';
  2
  3angular.module('app.addressNetwork', ['ngRoute'])
  4
  5    .config(['$routeProvider', function($routeProvider) {
  6        $routeProvider.when('/addressNetwork', {
  7            templateUrl: 'views/addressNetwork/addressNetwork.html',
  8            controller: 'AddressNetworkCtrl'
  9        });
 10    }])
 11
 12    .controller('AddressNetworkCtrl', function($scope, $http, $routeParams) {
 13        $scope.data = [];
 14        $scope.addresses;
 15        $scope.nodes = [];
 16        $scope.edges = [];
 17        $scope.selectedNode = {};
 18        var nodes, edges, container, network;
 19        var options = {
 20            layout: {
 21                improvedLayout: false
 22            },
 23            interaction: {
 24                hover: true
 25            },
 26            physics: {
 27                stabilization: false,
 28                //enabled: false
 29            }
 30        };
 31
 32
 33        $scope.showMap = function() {
 34            var nodes = $scope.nodes;
 35            var edges = $scope.edges;
 36
 37            var container = document.getElementById('mynetwork');
 38            var data = {
 39                nodes: nodes,
 40                edges: edges
 41            };
 42            network = new vis.Network(container, data, options);
 43            network.on("click", function(params) {
 44                params.event = "[original event]";
 45                //$scope.selectedNode = JSON.stringify(params, null, 4);
 46                $scope.selectedNode = params;
 47                console.log($scope.selectedNode);
 48                console.log($scope.selectedNode.nodes);
 49                var options = {
 50                    // position: {x:positionx,y:positiony}, // this is not relevant when focusing on nodes
 51                    scale: 1,
 52                    offset: {
 53                        x: 0,
 54                        y: 0
 55                    },
 56                    animation: {
 57                        duration: 500,
 58                        easingFunction: "easeInOutQuad"
 59                    }
 60                };
 61                network.focus($scope.selectedNode.nodes[0], options);
 62                //console.log('click event, getNodeAt returns: ' + this.getNodeAt(params.pointer.DOM));
 63            });
 64        };
 65        $http.get(urlapi + 'alladdresses')
 66            .then(function(data, status, headers, config) {
 67                console.log('data success');
 68                console.log(data);
 69                $scope.addresses = data.data;
 70            }, function(data, status, headers, config) {
 71                console.log('data error');
 72            });
 73
 74            $scope.selectedAddress="";
 75        $scope.getAddressNetwork = function(address) {
 76            console.log(address);
 77            $scope.selectedAddress=address;
 78            $http.get(urlapi + 'address/network/' + address.id)
 79                .then(function(data, status, headers, config) {
 80                    console.log('data success');
 81                    console.log(data);
 82                    $scope.nodes = data.data.nodes;
 83                    $scope.edges = data.data.edges;
 84                    $scope.showMap();
 85                }, function(data, status, headers, config) {
 86                    console.log('data error');
 87                });
 88        };
 89
 90
 91        $scope.focusNode = function(node) {
 92            var options = {
 93                // position: {x:positionx,y:positiony}, // this is not relevant when focusing on nodes
 94                scale: 1,
 95                offset: {
 96                    x: 0,
 97                    y: 0
 98                },
 99                animation: {
100                    duration: 500,
101                    easingFunction: "easeInOutQuad"
102                }
103            };
104            network.focus(node.id, options);
105        };
106    });