Commit 4e47447d by Torkel Ödegaard

began work on ES annotation datasource, #201

parent a1772d26
......@@ -12,8 +12,6 @@ function (angular, _, moment) {
module.controller('dashLoader', function($scope, $rootScope, $http, alertSrv, $location, playlistSrv, elastic) {
$scope.init = function() {
$scope.elasticsearch = $scope.elasticsearch || {};
$scope.onAppEvent('save-dashboard', function() {
$scope.saveDashboard();
});
......@@ -35,10 +33,10 @@ function (angular, _, moment) {
var _l = $scope.dashboard.loader;
if(type === 'load') {
return (_l.load_elasticsearch || _l.load_gist);
return (_l.load_elasticsearch);
}
if(type === 'save') {
return (_l.save_elasticsearch || _l.save_gist);
return (_l.save_elasticsearch);
}
return false;
};
......
......@@ -66,16 +66,14 @@
}
],
"loader": {
"save_gist": false,
"save_elasticsearch": true,
"save_default": true,
"save_temp": true,
"save_temp_ttl_enable": true,
"save_temp_ttl": "30d",
"load_gist": false,
"load_elasticsearch": true,
"load_elasticsearch_size": 20,
"hide": false
},
"refresh": false
}
\ No newline at end of file
}
......@@ -167,7 +167,6 @@ function (angular, $, kbn, moment, _) {
// if legend is to the right delay plot draw a few milliseconds
// so the legend width calculation can be done
if (shouldDelayDraw(panel)) {
console.log('delay');
legendSideLastValue = panel.legend.rightSide;
setTimeout(function() {
plot = $.plot(elem, data, options);
......
......@@ -56,12 +56,7 @@ function (angular, app, _) {
$scope.add = function() {
$scope.currentAnnotation.datasource = $scope.currentDatasource.name;
$scope.panel.annotations.push($scope.currentAnnotation);
$scope.currentAnnnotation = angular.copy(annotationDefaults);
};
$scope.hide = function (annotation) {
annotation.enable = !annotation.enable;
$rootScope.$broadcast('refresh');
$scope.currentAnnotation = angular.copy(annotationDefaults);
};
});
......
......@@ -5,13 +5,14 @@ define([
'./graphite/graphiteDatasource',
'./influxdb/influxdbDatasource',
'./opentsdb/opentsdbDatasource',
'./elasticsearch/es-datasource',
],
function (angular, _, config) {
'use strict';
var module = angular.module('grafana.services');
module.service('datasourceSrv', function($q, filterSrv, $http, GraphiteDatasource, InfluxDatasource, OpenTSDBDatasource) {
module.service('datasourceSrv', function($q, filterSrv, $http, $injector) {
var datasources = {};
this.init = function() {
......@@ -29,14 +30,22 @@ function (angular, _, config) {
};
this.datasourceFactory = function(ds) {
var Datasource = null;
switch(ds.type) {
case 'graphite':
return new GraphiteDatasource(ds);
Datasource = $injector.get('GraphiteDatasource');
break;
case 'influxdb':
return new InfluxDatasource(ds);
Datasource = $injector.get('InfluxDatasource');
break;
case 'opentsdb':
return new OpenTSDBDatasource(ds);
Datasource = $injector.get('OpenTSDBDatasource');
break;
case 'elasticsearch':
Datasource = $injector.get('ElasticDatasource');
break;
}
return new Datasource(ds);
};
this.get = function(name) {
......
define([
'angular',
'underscore',
'jquery',
'config',
'kbn',
'moment'
],
function (angular, _, $, config, kbn, moment) {
'use strict';
var module = angular.module('grafana.services');
module.factory('ElasticDatasource', function($q, $http) {
function ElasticDatasource(datasource) {
this.type = 'elastic';
this.basicAuth = datasource.basicAuth;
this.url = datasource.url;
this.name = datasource.name;
this.supportAnnotations = true;
this.annotationEditorSrc = 'app/partials/elasticsearch/annotation_editor.html';
}
ElasticDatasource.prototype.annotationQuery = function(annotation, filterSrv, rangeUnparsed) {
};
return ElasticDatasource;
});
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment