mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge branch 'develop' into template_var_multi_select
This commit is contained in:
commit
0d817e0664
@ -14,6 +14,7 @@ var (
|
||||
ErrDashboardVersionMismatch = errors.New("The dashboard has been changed by someone else")
|
||||
)
|
||||
|
||||
// Dashboard model
|
||||
type Dashboard struct {
|
||||
Id int64
|
||||
Slug string
|
||||
@ -27,6 +28,7 @@ type Dashboard struct {
|
||||
Data map[string]interface{}
|
||||
}
|
||||
|
||||
// NewDashboard creates a new dashboard
|
||||
func NewDashboard(title string) *Dashboard {
|
||||
dash := &Dashboard{}
|
||||
dash.Data = make(map[string]interface{})
|
||||
@ -36,6 +38,7 @@ func NewDashboard(title string) *Dashboard {
|
||||
return dash
|
||||
}
|
||||
|
||||
// GetTags turns the tags in data json into go string array
|
||||
func (dash *Dashboard) GetTags() []string {
|
||||
jsonTags := dash.Data["tags"]
|
||||
if jsonTags == nil {
|
||||
@ -50,6 +53,7 @@ func (dash *Dashboard) GetTags() []string {
|
||||
return b
|
||||
}
|
||||
|
||||
// GetDashboardModel turns the command into the savable model
|
||||
func (cmd *SaveDashboardCommand) GetDashboardModel() *Dashboard {
|
||||
dash := &Dashboard{}
|
||||
dash.Data = cmd.Dashboard
|
||||
@ -63,15 +67,19 @@ func (cmd *SaveDashboardCommand) GetDashboardModel() *Dashboard {
|
||||
if dash.Data["version"] != nil {
|
||||
dash.Version = int(dash.Data["version"].(float64))
|
||||
}
|
||||
} else {
|
||||
dash.Data["version"] = 0
|
||||
}
|
||||
|
||||
return dash
|
||||
}
|
||||
|
||||
// GetString a
|
||||
func (dash *Dashboard) GetString(prop string) string {
|
||||
return dash.Data[prop].(string)
|
||||
}
|
||||
|
||||
// UpdateSlug updates the slug
|
||||
func (dash *Dashboard) UpdateSlug() {
|
||||
title := strings.ToLower(dash.Data["title"].(string))
|
||||
re := regexp.MustCompile("[^\\w ]+")
|
||||
|
@ -34,7 +34,7 @@
|
||||
Scale type
|
||||
</li>
|
||||
<li>
|
||||
<select class="input-small tight-form-input" style="width: 113px" ng-model="panel.grid.leftScale" ng-options="v as k for (k, v) in scaleTypes" ng-change="render()"></select>
|
||||
<select class="input-small tight-form-input" style="width: 113px" ng-model="panel.grid.leftLogBase" ng-options="v as k for (k, v) in logScales" ng-change="render()"></select>
|
||||
</li>
|
||||
<li class="tight-form-item">
|
||||
Label
|
||||
@ -79,7 +79,7 @@
|
||||
Scale type
|
||||
</li>
|
||||
<li>
|
||||
<select class="input-small tight-form-input" style="width: 113px" ng-model="panel.grid.rightScale" ng-options="v as k for (k, v) in scaleTypes" ng-change="render()"></select>
|
||||
<select class="input-small tight-form-input" style="width: 113px" ng-model="panel.grid.rightLogBase" ng-options="v as k for (k, v) in logScales" ng-change="render()"></select>
|
||||
</li>
|
||||
<li class="tight-form-item">
|
||||
Label
|
||||
|
@ -351,7 +351,7 @@ function (angular, $, kbn, moment, _, GraphTooltip) {
|
||||
show: scope.panel['y-axis'],
|
||||
min: scope.panel.grid.leftMin,
|
||||
index: 1,
|
||||
scale: scope.panel.grid.leftScale,
|
||||
logBase: scope.panel.grid.leftLogBase,
|
||||
max: scope.panel.percentage && scope.panel.stack ? 100 : scope.panel.grid.leftMax,
|
||||
};
|
||||
|
||||
@ -360,7 +360,7 @@ function (angular, $, kbn, moment, _, GraphTooltip) {
|
||||
if (_.findWhere(data, {yaxis: 2})) {
|
||||
var secondY = _.clone(defaults);
|
||||
secondY.index = 2,
|
||||
secondY.scale = scope.panel.grid.rightScale;
|
||||
secondY.logBase = scope.panel.grid.rightLogBase;
|
||||
secondY.position = 'right';
|
||||
secondY.min = scope.panel.grid.rightMin;
|
||||
secondY.max = scope.panel.percentage && scope.panel.stack ? 100 : scope.panel.grid.rightMax;
|
||||
@ -375,7 +375,7 @@ function (angular, $, kbn, moment, _, GraphTooltip) {
|
||||
}
|
||||
|
||||
function applyLogScale(axis, data) {
|
||||
if (axis.scale !== 2) {
|
||||
if (axis.logBase !== 10) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -393,22 +393,23 @@ function (angular, $, kbn, moment, _, GraphTooltip) {
|
||||
}
|
||||
|
||||
if (max === null) {
|
||||
max = 10000000000;
|
||||
max = Number.MAX_VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
axis.ticks = [0, 1];
|
||||
axis.min = axis.min !== null ? axis.min : 1;
|
||||
axis.ticks = [1];
|
||||
var tick = 1;
|
||||
|
||||
while (true) {
|
||||
tick = tick*10;
|
||||
tick = tick * axis.logBase;
|
||||
axis.ticks.push(tick);
|
||||
if (tick > max) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
axis.transform = function(v) { return Math.log(v+0.1); };
|
||||
axis.transform = function(v) { return Math.log(v+0.001); };
|
||||
axis.inverseTransform = function (v) { return Math.pow(10,v); };
|
||||
}
|
||||
|
||||
|
@ -53,12 +53,12 @@ function (angular, app, $, _, kbn, moment, TimeSeries, PanelMeta) {
|
||||
y_formats : ['short', 'short'],
|
||||
// grid options
|
||||
grid : {
|
||||
leftScale: 1,
|
||||
leftLogBase: 1,
|
||||
leftMax: null,
|
||||
rightMax: null,
|
||||
leftMin: null,
|
||||
rightMin: null,
|
||||
rightScale: 1,
|
||||
rightLogBase: 1,
|
||||
threshold1: null,
|
||||
threshold2: null,
|
||||
threshold1Color: 'rgba(216, 200, 27, 0.27)',
|
||||
@ -116,7 +116,7 @@ function (angular, app, $, _, kbn, moment, TimeSeries, PanelMeta) {
|
||||
_.defaults($scope.panel.grid, _d.grid);
|
||||
_.defaults($scope.panel.legend, _d.legend);
|
||||
|
||||
$scope.scaleTypes = {'linear': 1, 'log (base 10)': 2};
|
||||
$scope.logScales = {'linear': 1, 'log (base 10)': 10};
|
||||
|
||||
$scope.hiddenSeries = {};
|
||||
$scope.seriesList = [];
|
||||
|
@ -5,10 +5,6 @@
|
||||
background: @grafanaTargetBackground;
|
||||
width: 100%;
|
||||
|
||||
.dropdown {
|
||||
padding: 0; margin: 0;
|
||||
}
|
||||
|
||||
&:last-child, &.last {
|
||||
border-bottom: 1px solid @grafanaTargetBorder;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user