mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
elasticsearch saving does now work, still have to do ttl and temp dashboard
This commit is contained in:
parent
2328c60d12
commit
0a3d4a5ab0
@ -8,7 +8,7 @@ function (angular, _, moment) {
|
|||||||
|
|
||||||
var module = angular.module('kibana.controllers');
|
var module = angular.module('kibana.controllers');
|
||||||
|
|
||||||
module.controller('dashLoader', function($scope, $rootScope, $http, alertSrv, $location, playlistSrv) {
|
module.controller('dashLoader', function($scope, $rootScope, $http, alertSrv, $location, playlistSrv, elastic) {
|
||||||
|
|
||||||
$scope.init = function() {
|
$scope.init = function() {
|
||||||
$scope.gist_pattern = /(^\d{5,}$)|(^[a-z0-9]{10,}$)|(gist.github.com(\/*.*)\/[a-z0-9]{5,}\/*$)/;
|
$scope.gist_pattern = /(^\d{5,}$)|(^[a-z0-9]{10,}$)|(gist.github.com(\/*.*)\/[a-z0-9]{5,}\/*$)/;
|
||||||
@ -65,19 +65,21 @@ function (angular, _, moment) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.elasticsearch_save = function(type, ttl) {
|
$scope.elasticsearch_save = function(type, ttl) {
|
||||||
$scope.dashboard.elasticsearch_save(type, $scope.dashboard.title, ttl)
|
elastic.saveDashboard($scope.dashboard, $scope.dashboard.title)
|
||||||
.then(function(result) {
|
.then(function(result) {
|
||||||
if(_.isUndefined(result._id)) {
|
alertSrv.set('Dashboard Saved', 'Dashboard has been saved to Elasticsearch as "' + result.title + '"','success', 5000);
|
||||||
alertSrv.set('Save failed','Dashboard could not be saved to Elasticsearch','error',5000);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
alertSrv.set('Dashboard Saved', 'Dashboard has been saved to Elasticsearch as "' + result._id + '"','success', 5000);
|
|
||||||
if(type === 'temp') {
|
if(type === 'temp') {
|
||||||
$scope.share = $scope.dashboard.share_link($scope.dashboard.title,'temp',result._id);
|
$scope.share = $scope.dashboard.share_link($scope.dashboard.title, 'temp', result.title);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$location.path(result.url);
|
||||||
}
|
}
|
||||||
|
|
||||||
$rootScope.$emit('dashboard-saved', $scope.dashboard);
|
$rootScope.$emit('dashboard-saved', $scope.dashboard);
|
||||||
|
|
||||||
|
}, function(err) {
|
||||||
|
alertSrv.set('Save failed', err, 'error',5000);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -150,11 +152,11 @@ function (angular, _, moment) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.openSaveDropdown = function() {
|
$scope.openSaveDropdown = function() {
|
||||||
$scope.isFavorite = playlistSrv.isCurrentFavorite();
|
$scope.isFavorite = playlistSrv.isCurrentFavorite($scope.dashboard);
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.markAsFavorite = function() {
|
$scope.markAsFavorite = function() {
|
||||||
playlistSrv.markAsFavorite();
|
playlistSrv.markAsFavorite($scope.dashboard);
|
||||||
$scope.isFavorite = true;
|
$scope.isFavorite = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -9,5 +9,6 @@ define([
|
|||||||
'./annotationsSrv',
|
'./annotationsSrv',
|
||||||
'./playlistSrv',
|
'./playlistSrv',
|
||||||
'./unsavedChangesSrv',
|
'./unsavedChangesSrv',
|
||||||
|
'./elasticsearch/es-client2',
|
||||||
],
|
],
|
||||||
function () {});
|
function () {});
|
46
src/app/services/elasticsearch/es-client2.js
Normal file
46
src/app/services/elasticsearch/es-client2.js
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
define([
|
||||||
|
'angular',
|
||||||
|
'config'
|
||||||
|
],
|
||||||
|
function(angular, config) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var module = angular.module('kibana.services');
|
||||||
|
|
||||||
|
module.service('elastic', function($http) {
|
||||||
|
|
||||||
|
this.put = function(url, data) {
|
||||||
|
url = config.elasticsearch + '/' + config.grafana_index + url;
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
url: url,
|
||||||
|
method: 'PUT',
|
||||||
|
data: data
|
||||||
|
};
|
||||||
|
|
||||||
|
return $http(options);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.saveDashboard = function(dashboard, title, ttl) {
|
||||||
|
var dashboardClone = angular.copy(dashboard);
|
||||||
|
title = dashboardClone.title = title ? title : dashboard.title;
|
||||||
|
|
||||||
|
var data = {
|
||||||
|
user: 'guest',
|
||||||
|
group: 'guest',
|
||||||
|
title: title,
|
||||||
|
tags: dashboardClone.tags,
|
||||||
|
dashboard: angular.toJson(dashboardClone)
|
||||||
|
};
|
||||||
|
|
||||||
|
return this.put('/dashboard/' + encodeURIComponent(title), data)
|
||||||
|
.then(function() {
|
||||||
|
return { title: title, url: '/dashboard/elasticsearch/' + title };
|
||||||
|
}, function(err) {
|
||||||
|
throw 'Failed to save to elasticsearch ' + err.data;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
@ -8,7 +8,7 @@ function (angular, _, kbn) {
|
|||||||
|
|
||||||
var module = angular.module('kibana.services');
|
var module = angular.module('kibana.services');
|
||||||
|
|
||||||
module.service('playlistSrv', function(dashboard, $location, $rootScope) {
|
module.service('playlistSrv', function($location, $rootScope) {
|
||||||
var timerInstance;
|
var timerInstance;
|
||||||
var favorites = { dashboards: [] };
|
var favorites = { dashboards: [] };
|
||||||
|
|
||||||
@ -33,17 +33,17 @@ function (angular, _, kbn) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.isCurrentFavorite = function() {
|
this.isCurrentFavorite = function(dashboard) {
|
||||||
return this._find(dashboard.current.title) ? true : false;
|
return this._find(dashboard.title) ? true : false;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.markAsFavorite = function() {
|
this.markAsFavorite = function(dashboard) {
|
||||||
var existing = this._find(dashboard.current.title);
|
var existing = this._find(dashboard.title);
|
||||||
this._remove(existing);
|
this._remove(existing);
|
||||||
|
|
||||||
favorites.dashboards.push({
|
favorites.dashboards.push({
|
||||||
url: $location.path(),
|
url: $location.path(),
|
||||||
title: dashboard.current.title
|
title: dashboard.title
|
||||||
});
|
});
|
||||||
|
|
||||||
this._save();
|
this._save();
|
||||||
|
Loading…
Reference in New Issue
Block a user