diff --git a/CHANGELOG.md b/CHANGELOG.md
index b7d233c8237..69835953dc1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,7 @@
- [Issue #795](https://github.com/grafana/grafana/issues/795). Chrome: Fix for display issue in chrome beta & chrome canary when entering edit mode
- [Issue #818](https://github.com/grafana/grafana/issues/818). Graph: Added percent y-axis format
- [Issue #828](https://github.com/grafana/grafana/issues/828). Elasticsearch: saving new dashboard with title equal to slugified url would cause it to deleted.
+- [Issue #830](https://github.com/grafana/grafana/issues/830). Annotations: Fix for elasticsearch annotations and mapping nested fields
# 1.8.0-RC1 (2014-09-12)
diff --git a/src/app/directives/dashEditLink.js b/src/app/directives/dashEditLink.js
index fbdfc4fa5cc..599cf341fe5 100644
--- a/src/app/directives/dashEditLink.js
+++ b/src/app/directives/dashEditLink.js
@@ -51,9 +51,12 @@ function (angular, $) {
scope.onAppEvent('hide-dash-editor', hideEditorPane);
scope.onAppEvent('show-dash-editor', function(evt, payload) {
- hideEditorPane();
+ if (lastEditor === payload.src) {
+ hideEditorPane();
+ return;
+ }
- if (lastEditor === payload.src) { return; }
+ hideEditorPane();
scope.exitFullscreen();
diff --git a/src/app/directives/grafanaGraph.js b/src/app/directives/grafanaGraph.js
index ee6b0fb7dd7..15f1556aa62 100755
--- a/src/app/directives/grafanaGraph.js
+++ b/src/app/directives/grafanaGraph.js
@@ -110,11 +110,6 @@ function (angular, $, kbn, moment, _) {
// Populate element
var options = {
- hooks: {
- drawSeries: [function() {
- console.log('drawSeries', arguments);
- }]
- },
legend: { show: false },
series: {
stackpercent: panel.stack ? panel.percentage : false,
diff --git a/src/app/panels/graph/legend.html b/src/app/panels/graph/legend.html
index 0e5edc459ce..31458060803 100755
--- a/src/app/panels/graph/legend.html
+++ b/src/app/panels/graph/legend.html
@@ -5,7 +5,7 @@
ng-class="{'pull-right': series.yaxis === 2, 'graph-legend-series-hidden': hiddenSeries[series.alias]}"
>
-
+
diff --git a/src/app/services/annotationsSrv.js b/src/app/services/annotationsSrv.js
index c1733189462..04fb4224cc6 100644
--- a/src/app/services/annotationsSrv.js
+++ b/src/app/services/annotationsSrv.js
@@ -57,7 +57,8 @@ define([
function errorHandler(err) {
console.log('Annotation error: ', err);
- alertSrv.set('Annotations','Could not fetch annotations','error');
+ var message = err.message || "Aannotation query failed";
+ alertSrv.set('Annotations error', message,'error');
}
function addAnnotation(options) {
diff --git a/src/app/services/elasticsearch/es-datasource.js b/src/app/services/elasticsearch/es-datasource.js
index ab03c614a83..04d1e62ce04 100644
--- a/src/app/services/elasticsearch/es-datasource.js
+++ b/src/app/services/elasticsearch/es-datasource.js
@@ -86,6 +86,22 @@ function (angular, _, config, kbn, moment) {
var list = [];
var hits = results.data.hits.hits;
+ var getFieldFromSource = function(source, fieldName) {
+ if (!fieldName) { return; }
+
+ var fieldNames = fieldName.split('.');
+ var fieldValue = source;
+
+ for (var i = 0; i < fieldNames.length; i++) {
+ fieldValue = fieldValue[fieldNames[i]];
+ }
+
+ if (_.isArray(fieldValue)) {
+ fieldValue = fieldValue.join(', ');
+ }
+ return fieldValue;
+ };
+
for (var i = 0; i < hits.length; i++) {
var source = hits[i]._source;
var fields = hits[i].fields;
@@ -98,21 +114,11 @@ function (angular, _, config, kbn, moment) {
var event = {
annotation: annotation,
time: moment.utc(time).valueOf(),
- title: source[titleField],
+ title: getFieldFromSource(source, titleField),
+ tags: getFieldFromSource(source, tagsField),
+ text: getFieldFromSource(source, textField)
};
- if (source[tagsField]) {
- if (_.isArray(source[tagsField])) {
- event.tags = source[tagsField].join(', ');
- }
- else {
- event.tags = source[tagsField];
- }
- }
- if (textField && source[textField]) {
- event.text = source[textField];
- }
-
list.push(event);
}
return list;
diff --git a/src/config.sample.js b/src/config.sample.js
index 6046a753d5a..740c0d4b8c9 100644
--- a/src/config.sample.js
+++ b/src/config.sample.js
@@ -1,8 +1,7 @@
-///// @scratch /configuration/config.js/1
- // == Configuration
- // config.js is where you will find the core Grafana configuration. This file contains parameter that
- // must be set before Grafana is run for the first time.
- ///
+// == Configuration
+// config.js is where you will find the core Grafana configuration. This file contains parameter that
+// must be set before Grafana is run for the first time.
+
define(['settings'],
function (Settings) {
"use strict";
@@ -97,7 +96,7 @@ function (Settings) {
// Change window title prefix from 'Grafana - '
window_title_prefix: 'Grafana - ',
- // Add your own custom pannels
+ // Add your own custom panels
plugins: {
// list of plugin panels
panels: [],
diff --git a/src/css/less/grafana.less b/src/css/less/grafana.less
index 08608cb0e46..86bb7c2cdb8 100644
--- a/src/css/less/grafana.less
+++ b/src/css/less/grafana.less
@@ -436,6 +436,9 @@ select.grafana-target-segment-input {
background-color: rgb(58, 57, 57);
border-radius: 5px;
z-index: 9999;
+ max-width: 800px;
+ max-height: 600px;
+ overflow: hidden;
}
.tooltip.in {
diff --git a/src/css/less/variables.dark.less b/src/css/less/variables.dark.less
index 608dfb609b0..c65a6f99179 100644
--- a/src/css/less/variables.dark.less
+++ b/src/css/less/variables.dark.less
@@ -257,7 +257,7 @@
// Form states and alerts
// -------------------------
@warningText: darken(#c09853, 10%);
-@warningBackground: @grayLighter;
+@warningBackground: @orange;
@warningBorder: transparent;
@errorText: #b94a48;