myems/admin/app/controllers/charts/multibarchart.js

101 lines
2.0 KiB
Python

'use strict';
app.controller('MultiBarChartController', function($scope,highchartsNG) {
$scope.$on('handleBroadcastLineOptionChanged', function(event, data) {
if(angular.isDefined(data.load)){
$scope.multiConfig.loading=true;
}else{
$scope.multiConfig.series=data.equipment;
$scope.multiConfig.loading=false;
}
});
$scope.mouseEvent = function(chart) {
angular.element('.chart').bind('mousedown.hc touchstart.hc', function(eStart) {
eStart = chart.pointer.normalize(eStart);
var posX = eStart.pageX,
posY = eStart.pageY,
alpha = chart.options.chart.options3d.alpha,
beta = chart.options.chart.options3d.beta,
newAlpha,
newBeta,
sensitivity = 5; // lower is more sensitive
angular.element(document).bind({
'mousemove.hc touchdrag.hc': function(e) {
// Run beta
newBeta = beta + (posX - e.pageX) / sensitivity;
chart.options.chart.options3d.beta = newBeta;
// Run alpha
newAlpha = alpha + (e.pageY - posY) / sensitivity;
chart.options.chart.options3d.alpha = newAlpha;
chart.redraw(false);
},
'mouseup touchend': function() {
angular.element(document).unbind('.hc');
}
});
});
};
$scope.multiConfig = {
options: {
chart: {
type: 'column',
options3d: {
enabled: true,
alpha: 10,
beta: 15,
depth: 70
}
},
plotOptions: {
column: {
depth: 25
}
},
navigator: {
xAxis: {
type: 'datetime',
labels: {
formatter: function() {
var dateStr = Highcharts.dateFormat('%m-%d', this.value);
return dateStr;
},
},
},
},
xAxis: {
startOnTick: false,
type: 'datetime',
labels: {
formatter: function() {
var dateStr = Highcharts.dateFormat('%m-%d', this.value);
return dateStr;
},
},
crosshair: null
},
},
loading:true,
series: [],
//noData:'No data to display',
func: function(chart) {
$scope.mouseEvent(chart);
}
};
});