diff --git a/CHANGELOG.md b/CHANGELOG.md
index 466113dc3a6..18933684bf9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,7 @@ vNext
After an option is changed and a nested template param is also reloaded, if the current value
exists after the options are reloaded the current selected value is kept (Closes #447, Closes #412)
- Legend Current value did not display when value was zero, Fixes #460
+- Fix to series toggling bug that caused annotations to be hidden when toggling (hiding) series. Fixes #328
# 1.5.4 (2014-05-13)
### New features and improvements
diff --git a/src/app/directives/grafanaGraph.js b/src/app/directives/grafanaGraph.js
index 798584ca194..69c74c7bcf5 100644
--- a/src/app/directives/grafanaGraph.js
+++ b/src/app/directives/grafanaGraph.js
@@ -15,7 +15,7 @@ function (angular, $, kbn, moment, _) {
restrict: 'A',
template: '
',
link: function(scope, elem) {
- var data, plot;
+ var data, plot, annotations;
var hiddenData = {};
scope.$on('refresh',function() {
@@ -35,8 +35,9 @@ function (angular, $, kbn, moment, _) {
});
// Receive render events
- scope.$on('render',function(event, d) {
- data = d || data;
+ scope.$on('render',function(event, renderData) {
+ data = renderData || data;
+ annotations = renderData.annotations;
render_panel();
});
@@ -206,13 +207,13 @@ function (angular, $, kbn, moment, _) {
}
function addAnnotations(options) {
- if(!data.annotations || data.annotations.length === 0) {
+ if(!annotations || annotations.length === 0) {
return;
}
var types = {};
- _.each(data.annotations, function(event) {
+ _.each(annotations, function(event) {
if (!types[event.annotation.name]) {
types[event.annotation.name] = {
level: _.keys(types).length + 1,
@@ -235,7 +236,7 @@ function (angular, $, kbn, moment, _) {
options.events = {
levels: _.keys(types).length + 1,
- data: data.annotations,
+ data: annotations,
types: types
};
}