mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
Removes dashes option from Display tab so that it is only available for series overrides. Also removes options for dash space and length in series overrides and just uses the default values of 10 for both of them.
115 lines
3.8 KiB
JavaScript
115 lines
3.8 KiB
JavaScript
define([
|
|
'angular',
|
|
'jquery',
|
|
'lodash',
|
|
], function(angular, jquery, _) {
|
|
'use strict';
|
|
|
|
var module = angular.module('grafana.controllers');
|
|
|
|
module.controller('SeriesOverridesCtrl', function($scope, $element, popoverSrv) {
|
|
$scope.overrideMenu = [];
|
|
$scope.currentOverrides = [];
|
|
$scope.override = $scope.override || {};
|
|
|
|
$scope.addOverrideOption = function(name, propertyName, values) {
|
|
var option = {};
|
|
option.text = name;
|
|
option.propertyName = propertyName;
|
|
option.index = $scope.overrideMenu.length;
|
|
option.values = values;
|
|
|
|
option.submenu = _.map(values, function(value) {
|
|
return { text: String(value), value: value };
|
|
});
|
|
|
|
$scope.overrideMenu.push(option);
|
|
};
|
|
|
|
$scope.setOverride = function(item, subItem) {
|
|
// handle color overrides
|
|
if (item.propertyName === 'color') {
|
|
$scope.openColorSelector();
|
|
return;
|
|
}
|
|
|
|
$scope.override[item.propertyName] = subItem.value;
|
|
|
|
// automatically disable lines for this series and the fill bellow to series
|
|
// can be removed by the user if they still want lines
|
|
if (item.propertyName === 'fillBelowTo') {
|
|
$scope.override['lines'] = false;
|
|
$scope.ctrl.addSeriesOverride({alias: subItem.value, lines: false });
|
|
}
|
|
|
|
$scope.updateCurrentOverrides();
|
|
$scope.ctrl.render();
|
|
};
|
|
|
|
$scope.colorSelected = function(color) {
|
|
$scope.override['color'] = color;
|
|
$scope.updateCurrentOverrides();
|
|
$scope.ctrl.render();
|
|
};
|
|
|
|
$scope.openColorSelector = function() {
|
|
popoverSrv.show({
|
|
element: $element.find(".dropdown")[0],
|
|
position: 'top center',
|
|
openOn: 'click',
|
|
template: '<gf-color-picker></gf-color-picker>',
|
|
model: {
|
|
autoClose: true,
|
|
colorSelected: $scope.colorSelected,
|
|
},
|
|
onClose: function() {
|
|
$scope.ctrl.render();
|
|
}
|
|
});
|
|
};
|
|
|
|
$scope.removeOverride = function(option) {
|
|
delete $scope.override[option.propertyName];
|
|
$scope.updateCurrentOverrides();
|
|
$scope.ctrl.refresh();
|
|
};
|
|
|
|
$scope.getSeriesNames = function() {
|
|
return _.map($scope.ctrl.seriesList, function(series) {
|
|
return series.alias;
|
|
});
|
|
};
|
|
|
|
$scope.updateCurrentOverrides = function() {
|
|
$scope.currentOverrides = [];
|
|
_.each($scope.overrideMenu, function(option) {
|
|
var value = $scope.override[option.propertyName];
|
|
if (_.isUndefined(value)) { return; }
|
|
$scope.currentOverrides.push({
|
|
name: option.text,
|
|
propertyName: option.propertyName,
|
|
value: String(value)
|
|
});
|
|
});
|
|
};
|
|
|
|
$scope.addOverrideOption('Bars', 'bars', [true, false]);
|
|
$scope.addOverrideOption('Lines', 'lines', [true, false]);
|
|
$scope.addOverrideOption('Line fill', 'fill', [0,1,2,3,4,5,6,7,8,9,10]);
|
|
$scope.addOverrideOption('Line width', 'linewidth', [0,1,2,3,4,5,6,7,8,9,10]);
|
|
$scope.addOverrideOption('Null point mode', 'nullPointMode', ['connected', 'null', 'null as zero']);
|
|
$scope.addOverrideOption('Fill below to', 'fillBelowTo', $scope.getSeriesNames());
|
|
$scope.addOverrideOption('Staircase line', 'steppedLine', [true, false]);
|
|
$scope.addOverrideOption('Dashes', 'dashes', [true, false]);
|
|
$scope.addOverrideOption('Points', 'points', [true, false]);
|
|
$scope.addOverrideOption('Points Radius', 'pointradius', [1,2,3,4,5]);
|
|
$scope.addOverrideOption('Stack', 'stack', [true, false, 'A', 'B', 'C', 'D']);
|
|
$scope.addOverrideOption('Color', 'color', ['change']);
|
|
$scope.addOverrideOption('Y-axis', 'yaxis', [1, 2]);
|
|
$scope.addOverrideOption('Z-index', 'zindex', [-3,-2,-1,0,1,2,3]);
|
|
$scope.addOverrideOption('Transform', 'transform', ['negative-Y']);
|
|
$scope.addOverrideOption('Legend', 'legend', [true, false]);
|
|
$scope.updateCurrentOverrides();
|
|
});
|
|
});
|