mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 16:45:43 -06:00
Improved portability of exported JSON files, updated underscore.js
This commit is contained in:
parent
42b415cf26
commit
22d3fdace1
33
common/lib/underscore.min.js
vendored
33
common/lib/underscore.min.js
vendored
File diff suppressed because one or more lines are too long
@ -34,7 +34,7 @@
|
||||
<div class="container-fluid">
|
||||
<span class="brand"><small>Kibana Preview</small></span>
|
||||
<span class="brand">{{dashboards.title}}</span>
|
||||
<div class="brand"><i class='icon-edit pointer' bs-modal="'partials/dasheditor.html'" bs-tooltip="'Edit Dashboard'" data-placement="bottom"></i></div>
|
||||
<div class="brand"><i class='icon-edit pointer' ng-show='dashboards.editable' bs-modal="'partials/dasheditor.html'"></i></div>
|
||||
<div class="brand"><i class='icon-download pointer' ng-click="export()" bs-tooltip="'Export this dashboard'" data-placement="bottom"></i></div>
|
||||
<div class="brand"><i class='icon-bookmark pointer' ng-click="default()" bs-tooltip="'Set as default dashboard'" data-placement="bottom"></i></div>
|
||||
<div class="brand"><i class='icon-ban-circle pointer' ng-click="purge()" bs-tooltip="'Clear default dashboard settings'" data-placement="bottom"></i></div>
|
||||
|
@ -3,8 +3,13 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('kibana.controllers', [])
|
||||
.controller('DashCtrl', function($scope, $rootScope, ejsResource, timer) {
|
||||
.controller('DashCtrl', function($scope, $rootScope, $http, ejsResource, timer) {
|
||||
|
||||
var _d = {
|
||||
title: "",
|
||||
editable: true,
|
||||
rows: [],
|
||||
}
|
||||
|
||||
$scope.init = function() {
|
||||
$scope.config = config;
|
||||
@ -18,14 +23,17 @@ angular.module('kibana.controllers', [])
|
||||
) {
|
||||
$scope.dashboards = JSON.parse(localStorage['dashboard']);
|
||||
} else {
|
||||
$scope.dashboards = dashboards;
|
||||
$scope.dashboards = dashboards
|
||||
}
|
||||
_.defaults($scope.dashboards,_d)
|
||||
|
||||
|
||||
var ejs = $scope.ejs = ejsResource(config.elasticsearch);
|
||||
}
|
||||
|
||||
|
||||
$scope.export = function() {
|
||||
var blob = new Blob([angular.toJson($scope.dashboards)], {type: "application/json;charset=utf-8"});
|
||||
var blob = new Blob([angular.toJson($scope.dashboards,true)], {type: "application/json;charset=utf-8"});
|
||||
saveAs(blob, $scope.dashboards.title+"-"+new Date().getTime());
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ angular.module('kibana.histogram', [])
|
||||
|
||||
$scope.get_data = function() {
|
||||
// Make sure we have everything for the request to complete
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
|
||||
return
|
||||
|
||||
var request = $scope.ejs.Request().indices($scope.panel.index);
|
||||
@ -52,9 +52,9 @@ angular.module('kibana.histogram', [])
|
||||
_.each($scope.panel.query, function(v) {
|
||||
queries.push($scope.ejs.FilteredQuery(
|
||||
ejs.QueryStringQuery(v.query || '*'),
|
||||
ejs.RangeFilter($scope.panel.time.field)
|
||||
.from($scope.panel.time.from)
|
||||
.to($scope.panel.time.to))
|
||||
ejs.RangeFilter($scope.time.field)
|
||||
.from($scope.time.from)
|
||||
.to($scope.time.to))
|
||||
)
|
||||
});
|
||||
|
||||
@ -62,7 +62,7 @@ angular.module('kibana.histogram', [])
|
||||
_.each(queries, function(v) {
|
||||
request = request
|
||||
.facet($scope.ejs.DateHistogramFacet(_.indexOf(queries,v))
|
||||
.field($scope.panel.time.field)
|
||||
.field($scope.time.field)
|
||||
.interval($scope.panel.interval)
|
||||
.facetFilter($scope.ejs.QueryFilter(v))
|
||||
).size(0)
|
||||
@ -77,11 +77,11 @@ angular.module('kibana.histogram', [])
|
||||
$scope.data = [];
|
||||
_.each(results.facets, function(v, k) {
|
||||
// Null values at each end of the time range ensure we see entire range
|
||||
var data = [[$scope.panel.time.from.getTime(), null]];
|
||||
var data = [[$scope.time.from.getTime(), null]];
|
||||
_.each(v.entries, function(v, k) {
|
||||
data.push([v['time'],v['count']])
|
||||
});
|
||||
data.push([$scope.panel.time.to.getTime(), null])
|
||||
data.push([$scope.time.to.getTime(), null])
|
||||
|
||||
var series = { data: {
|
||||
label: $scope.panel.query[k].label || k,
|
||||
@ -97,7 +97,7 @@ angular.module('kibana.histogram', [])
|
||||
}
|
||||
|
||||
function set_time(time) {
|
||||
$scope.panel.time = time;
|
||||
$scope.time = time;
|
||||
$scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
|
||||
$scope.panel.interval = secondsToHms(
|
||||
calculate_interval(time.from,time.to,50,0)/1000),
|
||||
|
@ -23,7 +23,7 @@ angular.module('kibana.hits', [])
|
||||
|
||||
$scope.get_data = function() {
|
||||
// Make sure we have everything for the request to complete
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
|
||||
return
|
||||
|
||||
var request = $scope.ejs.Request().indices($scope.panel.index);
|
||||
@ -32,8 +32,8 @@ angular.module('kibana.hits', [])
|
||||
.query(ejs.FilteredQuery(
|
||||
ejs.QueryStringQuery($scope.panel.query || '*'),
|
||||
ejs.RangeFilter(config.timefield)
|
||||
.from($scope.panel.time.from)
|
||||
.to($scope.panel.time.to)
|
||||
.from($scope.time.from)
|
||||
.to($scope.time.to)
|
||||
)
|
||||
)
|
||||
.size(0)
|
||||
@ -51,7 +51,7 @@ angular.module('kibana.hits', [])
|
||||
}
|
||||
|
||||
function set_time(time) {
|
||||
$scope.panel.time = time;
|
||||
$scope.time = time;
|
||||
$scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
|
||||
$scope.get_data();
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ angular.module('kibana.map', [])
|
||||
|
||||
$scope.get_data = function() {
|
||||
// Make sure we have everything for the request to complete
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
|
||||
return
|
||||
|
||||
var request = $scope.ejs.Request().indices($scope.panel.index);
|
||||
@ -41,8 +41,8 @@ angular.module('kibana.map', [])
|
||||
ejs.FilteredQuery(
|
||||
ejs.QueryStringQuery($scope.panel.query || '*'),
|
||||
ejs.RangeFilter(config.timefield)
|
||||
.from($scope.panel.time.from)
|
||||
.to($scope.panel.time.to)
|
||||
.from($scope.time.from)
|
||||
.to($scope.time.to)
|
||||
)))).size(0)
|
||||
.doSearch();
|
||||
|
||||
@ -58,7 +58,7 @@ angular.module('kibana.map', [])
|
||||
}
|
||||
|
||||
function set_time(time) {
|
||||
$scope.panel.time = time;
|
||||
$scope.time = time;
|
||||
$scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
|
||||
$scope.get_data();
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ angular.module('kibana.pie', [])
|
||||
|
||||
$scope.get_data = function() {
|
||||
// Make sure we have everything for the request to complete
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
|
||||
return
|
||||
|
||||
var request = $scope.ejs.Request().indices($scope.panel.index);
|
||||
@ -65,8 +65,8 @@ angular.module('kibana.pie', [])
|
||||
queries.push(ejs.FilteredQuery(
|
||||
ejs.QueryStringQuery(v.query || '*'),
|
||||
ejs.RangeFilter(config.timefield)
|
||||
.from($scope.panel.time.from)
|
||||
.to($scope.panel.time.to))
|
||||
.from($scope.time.from)
|
||||
.to($scope.time.to))
|
||||
)
|
||||
});
|
||||
|
||||
@ -105,8 +105,8 @@ angular.module('kibana.pie', [])
|
||||
ejs.FilteredQuery(
|
||||
ejs.QueryStringQuery($scope.panel.query.query || '*'),
|
||||
ejs.RangeFilter(config.timefield)
|
||||
.from($scope.panel.time.from)
|
||||
.to($scope.panel.time.to)
|
||||
.from($scope.time.from)
|
||||
.to($scope.time.to)
|
||||
.cache(false)
|
||||
)))).size(0)
|
||||
.doSearch();
|
||||
@ -133,7 +133,7 @@ angular.module('kibana.pie', [])
|
||||
}
|
||||
|
||||
function set_time(time) {
|
||||
$scope.panel.time = time;
|
||||
$scope.time = time;
|
||||
$scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
|
||||
$scope.get_data();
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ angular.module('kibana.table', [])
|
||||
|
||||
$scope.get_data = function() {
|
||||
// Make sure we have everything for the request to complete
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
|
||||
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
|
||||
return
|
||||
|
||||
var request = $scope.ejs.Request().indices($scope.panel.index);
|
||||
@ -65,8 +65,8 @@ angular.module('kibana.table', [])
|
||||
.query(ejs.FilteredQuery(
|
||||
ejs.QueryStringQuery($scope.panel.query || '*'),
|
||||
ejs.RangeFilter(config.timefield)
|
||||
.from($scope.panel.time.from)
|
||||
.to($scope.panel.time.to)
|
||||
.from($scope.time.from)
|
||||
.to($scope.time.to)
|
||||
)
|
||||
)
|
||||
.size($scope.panel.size)
|
||||
@ -100,7 +100,7 @@ angular.module('kibana.table', [])
|
||||
}
|
||||
|
||||
function set_time(time) {
|
||||
$scope.panel.time = time;
|
||||
$scope.time = time;
|
||||
$scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
|
||||
$scope.get_data();
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
<label class="small">Title</label><input type="text" class="input-large" ng-model='dashboards.title'></input>
|
||||
</div>
|
||||
<div class="span1">
|
||||
<label class="small"> Editable </label><input type="checkbox" ng-model="row.editable" ng-checked="dashboards.editable" />
|
||||
<label class="small"> Editable </label><input type="checkbox" ng-model="dashboards.editable" ng-checked="dashboards.editable" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
|
Loading…
Reference in New Issue
Block a user