diff --git a/src/app/components/timeSeries.js b/src/app/components/timeSeries.js index 8858b01a139..e49b45e17e4 100644 --- a/src/app/components/timeSeries.js +++ b/src/app/components/timeSeries.js @@ -11,6 +11,46 @@ function (_, kbn) { this.label = opts.info.alias; } + function matchSeriesOverride(aliasOrRegex, seriesAlias) { + if (aliasOrRegex[0] === '/') { + var match = aliasOrRegex.match(new RegExp('^/(.*?)/(g?i?m?y?)$')); + var regex = new RegExp(match[1], match[2]); + return seriesAlias.match(regex) != null; + } + + return aliasOrRegex === seriesAlias; + } + + function translateFillOption(fill) { + return fill === 0 ? 0.001 : fill/10; + } + + TimeSeries.prototype.applySeriesOverrides = function(overrides) { + this.lines = {}; + this.points = {}; + this.bars = {}; + this.info.yaxis = 1; + delete this.stack; + + for (var i = 0; i < overrides.length; i++) { + var override = overrides[i]; + if (!matchSeriesOverride(override.alias, this.info.alias)) { + continue; + } + if (override.lines !== void 0) { this.lines.show = override.lines; } + if (override.points !== void 0) { this.points.show = override.points; } + if (override.bars !== void 0) { this.bars.show = override.bars; } + if (override.fill !== void 0) { this.lines.fill = translateFillOption(override.fill); } + if (override.stack !== void 0) { this.stack = override.stack; } + if (override.linewidth !== void 0) { this.lines.lineWidth = override.linewidth; } + if (override.pointradius !== void 0) { this.points.radius = override.pointradius; } + if (override.steppedLine !== void 0) { this.lines.steps = override.steppedLine; } + if (override.yaxis !== void 0) { + this.info.yaxis = override.yaxis; + } + } + }; + TimeSeries.prototype.getFlotPairs = function (fillStyle, yFormats) { var result = []; diff --git a/src/app/directives/grafanaGraph.js b/src/app/directives/grafanaGraph.js index 6004b6e366c..3525e3a98f4 100755 --- a/src/app/directives/grafanaGraph.js +++ b/src/app/directives/grafanaGraph.js @@ -118,7 +118,7 @@ function (angular, $, kbn, moment, _) { lines: { show: panel.lines, zero: false, - fill: panel.fill === 0 ? 0.001 : panel.fill/10, + fill: translateFillOption(panel.fill), lineWidth: panel.linewidth, steps: panel.steppedLine }, @@ -155,8 +155,8 @@ function (angular, $, kbn, moment, _) { for (var i = 0; i < data.length; i++) { var series = data[i]; + series.applySeriesOverrides(panel.seriesOverrides); series.data = series.getFlotPairs(panel.nullPointMode, panel.y_formats); - applySeriesOverrideOptions(series); } if (data.length && data[0].info.timeStep) { @@ -183,42 +183,6 @@ function (angular, $, kbn, moment, _) { } } - function matchSeriesOverride(aliasOrRegex, seriesAlias) { - if (aliasOrRegex[0] === '/') { - var match = aliasOrRegex.match(new RegExp('^/(.*?)/(g?i?m?y?)$')); - var regex = new RegExp(match[1], match[2]); - return seriesAlias.match(regex) != null; - } - - return aliasOrRegex === seriesAlias; - } - - function applySeriesOverrideOptions(series) { - series.lines = {}; - series.points = {}; - series.bars = {}; - delete series.stack; - - for (var i = 0; i < scope.panel.seriesOverrides.length; i++) { - var override = scope.panel.seriesOverrides[i]; - if (!matchSeriesOverride(override.alias, series.info.alias)) { - continue; - } - if (override.lines !== void 0) { series.lines.show = override.lines; } - if (override.points !== void 0) { series.points.show = override.points; } - if (override.bars !== void 0) { series.bars.show = override.bars; } - if (override.fill !== void 0) { series.lines.fill = translateFillOption(override.fill); } - if (override.stack !== void 0) { series.stack = override.stack; } - if (override.linewidth !== void 0) { series.lines.lineWidth = override.linewidth; } - if (override.pointradius !== void 0) { series.points.radius = override.pointradius; } - if (override.steppedLine !== void 0) { series.lines.steps = override.steppedLine; } - if (override.yaxis !== void 0) { - series.yaxis = override.yaxis; - series.info.yaxis = override.yaxis; - } - } - } - function translateFillOption(fill) { return fill === 0 ? 0.001 : fill/10; } diff --git a/src/app/panels/graph/legend.html b/src/app/panels/graph/legend.html index 5524a8047fe..0e5edc459ce 100755 --- a/src/app/panels/graph/legend.html +++ b/src/app/panels/graph/legend.html @@ -34,12 +34,12 @@
- -