diff --git a/public/app/plugins/panel/graph/legend.ts b/public/app/plugins/panel/graph/legend.ts index 0c8852bf55a..d1186ae0b1e 100644 --- a/public/app/plugins/panel/graph/legend.ts +++ b/public/app/plugins/panel/graph/legend.ts @@ -15,6 +15,7 @@ module.directive('graphLegend', function(popoverSrv, $timeout) { var seriesList; var i; var legendScrollbar; + const legendRightDefaultWidth = 10; scope.$on('$destroy', function() { if (legendScrollbar) { @@ -111,6 +112,7 @@ module.directive('graphLegend', function(popoverSrv, $timeout) { } function render() { + let legendWidth = elem.width(); if (!ctrl.panel.legend.show) { elem.empty(); firstRender = true; @@ -163,7 +165,7 @@ module.directive('graphLegend', function(popoverSrv, $timeout) { } // render first time for getting proper legend height - if (!panel.legend.rightSide) { + if (!panel.legend.rightSide || (panel.legend.rightSide && legendWidth !== legendRightDefaultWidth)) { renderLegendElement(tableHeaderElem); elem.empty(); } @@ -227,6 +229,8 @@ module.directive('graphLegend', function(popoverSrv, $timeout) { } function renderLegendElement(tableHeaderElem) { + let legendWidth = elem.width(); + var seriesElements = renderSeriesLegendElements(); if (panel.legend.alignAsTable) { @@ -238,7 +242,7 @@ module.directive('graphLegend', function(popoverSrv, $timeout) { elem.append(seriesElements); } - if (!panel.legend.rightSide) { + if (!panel.legend.rightSide || (panel.legend.rightSide && legendWidth !== legendRightDefaultWidth)) { addScrollbar(); } else { destroyScrollbar(); @@ -263,6 +267,7 @@ module.directive('graphLegend', function(popoverSrv, $timeout) { function destroyScrollbar() { if (legendScrollbar) { legendScrollbar.destroy(); + legendScrollbar = undefined; } } }, diff --git a/public/sass/components/_panel_graph.scss b/public/sass/components/_panel_graph.scss index 716778096d6..e15cd576367 100644 --- a/public/sass/components/_panel_graph.scss +++ b/public/sass/components/_panel_graph.scss @@ -4,24 +4,26 @@ height: 100%; &--legend-right { - flex-direction: row; + @include media-breakpoint-up(sm) { + flex-direction: row; - .graph-legend { - flex: 0 1 10px; - max-height: 100%; - } + .graph-legend { + flex: 0 1 10px; + max-height: 100%; + } - .graph-legend-series { - display: block; - padding-left: 0px; - } + .graph-legend-series { + display: block; + padding-left: 0px; + } - .graph-legend-table { - width: auto; - } + .graph-legend-table { + width: auto; + } - .graph-legend-table .graph-legend-series { - display: table-row; + .graph-legend-table .graph-legend-series { + display: table-row; + } } } }