'use strict';

angular.module('app.sankey', ['ngRoute', 'ngSankey'])

    .config(['$routeProvider', function($routeProvider) {
        $routeProvider.when('/sankey', {
            templateUrl: 'views/sankey/sankey.html',
            controller: 'SankeyCtrl'
        });
    }])

    .controller('SankeyCtrl', function($scope, $http, $routeParams) {
        $scope.selectedAddress = "";
        $scope.options = {
            chart: '#sankeyChart',
            width: 800,
            height: 500,
            margin: {top: 1, right: 1, bottom: 6, left: 1},
            node: {width: 15, padding :10, showValue: false},
            value: {format: ',.0f', unit : ''},
            dynamicLinkColor: true,
            trafficInLinks: true
        };
        $scope.data={
            nodes: [],
            links: []
        };

        $http.get(urlapi + 'alladdresses')
            .then(function(data, status, headers, config) {
                console.log('data success');
                console.log(data);
                $scope.addresses = data.data;
            }, function(data, status, headers, config) {
                console.log('data error');
            });
        $scope.getAddressSankey = function(address) {
            console.log(address);
            $scope.selectedAddress = address.id;
            $scope.data.nodes = [];
            $scope.data.links = [];
            $http.get(urlapi + 'address/sankey/' + address.id)
                .then(function(data, status, headers, config) {
                    console.log('data success');
                    console.log(data);
                    $scope.data.nodes = data.data.nodes;
                    $scope.data.links = data.data.links;
                    console.log($scope.data);
                    d3.selectAll("svg > *").remove();
                    let chart = new d3.sankeyChart(data.data, $scope.options);
                    //$scope.data = data.data;
                }, function(data, status, headers, config) {
                    console.log('data error');
                });
        };
    });
