Commit fcd5d581 by bergquist

graph: invert order when sorting by legend

sort order have now been inverted. Biggest values should
be at bottom of the graph.

ref #9538
parent b986f744
...@@ -381,7 +381,7 @@ function graphDirective($rootScope, timeSrv, popoverSrv, contextSrv) { ...@@ -381,7 +381,7 @@ function graphDirective($rootScope, timeSrv, popoverSrv, contextSrv) {
var haveSortOrder = sortOrder !== null || sortOrder !== undefined; var haveSortOrder = sortOrder !== null || sortOrder !== undefined;
if (panel.stack && haveSortBy && haveSortOrder) { if (panel.stack && haveSortBy && haveSortOrder) {
var desc = desc = panel.legend.sortDesc === true ? 1 : -1; var desc = desc = panel.legend.sortDesc === true ? -1 : 1;
series.sort((x, y) => { series.sort((x, y) => {
if (x.stats[sortBy] > y.stats[sortBy]) { if (x.stats[sortBy] > y.stats[sortBy]) {
return 1 * desc; return 1 * desc;
......
...@@ -75,7 +75,7 @@ describe('grafanaGraph', function() { ...@@ -75,7 +75,7 @@ describe('grafanaGraph', function() {
alias: 'series1' alias: 'series1'
})); }));
ctx.data.push(new TimeSeries({ ctx.data.push(new TimeSeries({
datapoints: [[1,10],[2,20]], datapoints: [[10,1],[20,2]],
alias: 'series2' alias: 'series2'
})); }));
...@@ -112,10 +112,10 @@ describe('grafanaGraph', function() { ...@@ -112,10 +112,10 @@ describe('grafanaGraph', function() {
}); });
}); });
graphScenario('sort series as legend', (ctx) => { graphScenario('sorting stacked series as legend. disabled', (ctx) => {
describe("with sort as legend undefined", () => {
ctx.setup((ctrl) => { ctx.setup((ctrl) => {
ctrl.panel.legend.sort = undefined; ctrl.panel.legend.sort = undefined;
ctrl.panel.stack = false;
}); });
it("should not modify order of time series", () => { it("should not modify order of time series", () => {
...@@ -124,40 +124,55 @@ describe('grafanaGraph', function() { ...@@ -124,40 +124,55 @@ describe('grafanaGraph', function() {
}); });
}); });
describe("with sort as legend set to min. descending order", () => { graphScenario("sorting stacked series as legend. min descending order", (ctx) => {
ctx.setup((ctrl) => { ctx.setup(ctrl => {
ctrl.panel.legend.sort = 'min'; ctrl.panel.legend.sort = 'min';
ctrl.panel.legend.sortDesc = true; ctrl.panel.legend.sortDesc = true;
ctrl.panel.stack = true;
}); });
it("highest value should be first", () => { it("highest value should be first", () => {
expect(ctx.plotData[1].alias).to.be('series2'); expect(ctx.plotData[0].alias).to.be('series2');
expect(ctx.plotData[1].alias).to.be('series1');
});
});
graphScenario("sorting stacked series as legend. min ascending order", (ctx) => {
ctx.setup((ctrl, data) => {
ctrl.panel.legend.sort = 'min';
ctrl.panel.legend.sortDesc = false;
ctrl.panel.stack = true;
});
it("lowest value should be first", () => {
expect(ctx.plotData[0].alias).to.be('series1'); expect(ctx.plotData[0].alias).to.be('series1');
expect(ctx.plotData[1].alias).to.be('series2');
}); });
}); });
describe("with sort as legend set to min. ascending order", () => { graphScenario("sorting stacked series as legend. stacking disabled", (ctx) => {
ctx.setup((ctrl) => { ctx.setup((ctrl) => {
ctrl.panel.legend.sort = 'min'; ctrl.panel.legend.sort = 'min';
ctrl.panel.legend.sortDesc = true; ctrl.panel.legend.sortDesc = true;
ctrl.panel.stack = false;
}); });
it("lowest value should be first", () => { it("highest value should be first", () => {
expect(ctx.plotData[0].alias).to.be('series1'); expect(ctx.plotData[0].alias).to.be('series1');
expect(ctx.plotData[1].alias).to.be('series2'); expect(ctx.plotData[1].alias).to.be('series2');
}); });
}); });
describe("with sort as legend set to current. ascending order", () => { graphScenario("sorting stacked series as legend. current descending order", (ctx) => {
ctx.setup((ctrl) => { ctx.setup((ctrl) => {
ctrl.panel.legend.sort = 'current'; ctrl.panel.legend.sort = 'current';
ctrl.panel.legend.sortDesc = false; ctrl.panel.legend.sortDesc = true;
ctrl.panel.stack = true;
}); });
it("highest last value should be first", () => { it("highest last value should be first", () => {
expect(ctx.plotData[1].alias).to.be('series2'); expect(ctx.plotData[0].alias).to.be('series2');
expect(ctx.plotData[0].alias).to.be('series1'); expect(ctx.plotData[1].alias).to.be('series1');
});
}); });
}); });
...@@ -300,7 +315,7 @@ describe('grafanaGraph', function() { ...@@ -300,7 +315,7 @@ describe('grafanaGraph', function() {
}); });
it('should set barWidth', function() { it('should set barWidth', function() {
expect(ctx.plotOptions.series.bars.barWidth).to.be(10/1.5); expect(ctx.plotOptions.series.bars.barWidth).to.be(1/1.5);
}); });
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment