From b79017e4a48bf0f1ced4f743b51fef93a42afa76 Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Fri, 26 Jan 2018 11:23:56 +0300 Subject: [PATCH] graph: fix series sorting issue (#10617) --- public/app/plugins/panel/graph/graph.ts | 31 ++++++------------------- 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/public/app/plugins/panel/graph/graph.ts b/public/app/plugins/panel/graph/graph.ts index 91ca17c52f6..e23cad63305 100755 --- a/public/app/plugins/panel/graph/graph.ts +++ b/public/app/plugins/panel/graph/graph.ts @@ -355,33 +355,16 @@ function graphDirective(timeSrv, popoverSrv, contextSrv) { function sortSeries(series, panel) { var sortBy = panel.legend.sort; var sortOrder = panel.legend.sortDesc; - var haveSortBy = sortBy !== null || sortBy !== undefined; - var haveSortOrder = sortOrder !== null || sortOrder !== undefined; + var haveSortBy = sortBy !== null && sortBy !== undefined; + var haveSortOrder = sortOrder !== null && sortOrder !== undefined; var shouldSortBy = panel.stack && haveSortBy && haveSortOrder; var sortDesc = panel.legend.sortDesc === true ? -1 : 1; - series.sort((x, y) => { - if (x.zindex > y.zindex) { - return 1; - } - - if (x.zindex < y.zindex) { - return -1; - } - - if (shouldSortBy) { - if (x.stats[sortBy] > y.stats[sortBy]) { - return 1 * sortDesc; - } - if (x.stats[sortBy] < y.stats[sortBy]) { - return -1 * sortDesc; - } - } - - return 0; - }); - - return series; + if (shouldSortBy) { + return _.sortBy(series, s => s.stats[sortBy] * sortDesc); + } else { + return _.sortBy(series, s => s.zindex); + } } function translateFillOption(fill) {