diff --git a/src/app/directives/grafanaGraph.js b/src/app/directives/grafanaGraph.js index 66902f5ee24..fd58473a1d5 100755 --- a/src/app/directives/grafanaGraph.js +++ b/src/app/directives/grafanaGraph.js @@ -106,7 +106,7 @@ function (angular, $, kbn, moment, _, GraphTooltip) { var series = data[i]; var axis = yaxis[series.yaxis - 1]; var formater = kbn.valueFormats[scope.panel.y_formats[series.yaxis - 1]]; - series.updateLegendValues(formater, axis.tickDecimals, axis.scaledDecimals+ 2); + series.updateLegendValues(formater, axis.tickDecimals, axis.scaledDecimals + 2); if(!scope.$$phase) { scope.$digest(); } } } diff --git a/src/app/panels/graph/legend.js b/src/app/panels/graph/legend.js index 9944ef7ee5b..65a82760bf2 100644 --- a/src/app/panels/graph/legend.js +++ b/src/app/panels/graph/legend.js @@ -20,6 +20,7 @@ function (angular, app, _, kbn, $) { var firstRender = true; var panel = scope.panel; var data; + var seriesList; var i; scope.$on('render', function() { @@ -36,7 +37,7 @@ function (angular, app, _, kbn, $) { function openColorSelector(e) { var el = $(e.currentTarget); var index = getSeriesIndexForElement(el); - var seriesInfo = data[index]; + var seriesInfo = seriesList[index]; var popoverScope = scope.$new(); popoverScope.series = seriesInfo; popoverSrv.show({ @@ -49,12 +50,35 @@ function (angular, app, _, kbn, $) { function toggleSeries(e) { var el = $(e.currentTarget); var index = getSeriesIndexForElement(el); - var seriesInfo = data[index]; + var seriesInfo = seriesList[index]; scope.toggleSeries(seriesInfo, e); } function sortLegend(e) { + var el = $(e.currentTarget); + if (panel.legend.sortDesc === false) { + panel.legend.sort = null; + panel.legend.sortDesc = null; + render(); + return; + } + + panel.legend.sortDesc = !panel.legend.sortDesc; + panel.legend.sort = el.data('stat'); + render(); + } + + function getTableHeaderHtml(statName) { + if (!panel.legend[statName]) { return ""; } + var html = '