blur-admin/src/app/pages/charts/amCharts/pieChart/PieChartCtrl.js

150 lines
3.3 KiB
JavaScript

/**
* @author v.lugovsky
* created on 16.12.2015
*/
(function () {
'use strict';
angular.module('BlurAdmin.pages.charts.amCharts')
.controller('PieChartCtrl', PieChartCtrl);
/** @ngInject */
function PieChartCtrl($scope, $element, tplSkinChartWatcherHelper, layoutPaths, layoutColors) {
var id = $element[0].getAttribute('id');
var pieChart = AmCharts.makeChart(id, {
type: 'pie',
startDuration: 0,
theme: 'blur',
addClassNames: true,
color: layoutColors.defaultText,
labelTickColor: layoutColors.borderDark,
legend: {
position: 'right',
marginRight: 100,
autoMargins: false,
},
innerRadius: '40%',
defs: {
filter: [
{
id: 'shadow',
width: '200%',
height: '200%',
feOffset: {
result: 'offOut',
in: 'SourceAlpha',
dx: 0,
dy: 0
},
feGaussianBlur: {
result: 'blurOut',
in: 'offOut',
stdDeviation: 5
},
feBlend: {
in: 'SourceGraphic',
in2: 'blurOut',
mode: 'normal'
}
}
]
},
dataProvider: [
{
country: 'Lithuania',
litres: 501.9
},
{
country: 'Czech Republic',
litres: 301.9
},
{
country: 'Ireland',
litres: 201.1
},
{
country: 'Germany',
litres: 165.8
},
{
country: 'Australia',
litres: 139.9
},
{
country: 'Austria',
litres: 128.3
},
{
country: 'UK',
litres: 99
},
{
country: 'Belgium',
litres: 60
}
],
valueField: 'litres',
titleField: 'country',
export: {
enabled: true
},
creditsPosition: 'bottom-left',
autoMargins: false,
marginTop: 10,
alpha: 0.8,
marginBottom: 0,
marginLeft: 0,
marginRight: 0,
pullOutRadius: 0,
pathToImages: layoutPaths.images.amChart,
responsive: {
enabled: true,
rules: [
// at 900px wide, we hide legend
{
maxWidth: 900,
overrides: {
legend: {
enabled: false
}
}
},
// at 200 px we hide value axis labels altogether
{
maxWidth: 200,
overrides: {
valueAxes: {
labelsEnabled: false
},
marginTop: 30,
marginBottom: 30,
marginLeft: 30,
marginRight: 30
}
}
]
}
});
//tplSkinChartWatcherHelper.watchDonutChanges($scope, pieChart);
pieChart.addListener('init', handleInit);
pieChart.addListener('rollOverSlice', function (e) {
handleRollOver(e);
});
function handleInit() {
pieChart.legend.addListener('rollOverItem', handleRollOver);
}
function handleRollOver(e) {
var wedge = e.dataItem.wedge.node;
wedge.parentNode.appendChild(wedge);
}
}
})();