Commit 878121bb by Torkel Ödegaard

fix: templating variable name validation detecting global variable naming wrongly, fixes #8423

parent 9045be56
...@@ -10,7 +10,7 @@ export class VariableEditorCtrl { ...@@ -10,7 +10,7 @@ export class VariableEditorCtrl {
constructor(private $scope, private datasourceSrv, private variableSrv, templateSrv) { constructor(private $scope, private datasourceSrv, private variableSrv, templateSrv) {
$scope.variableTypes = variableTypes; $scope.variableTypes = variableTypes;
$scope.ctrl = {}; $scope.ctrl = {};
$scope.namePattern = /^((?!__).)*$/; $scope.namePattern = /^(?!__).*$/;
$scope.refreshOptions = [ $scope.refreshOptions = [
{value: 0, text: "Never"}, {value: 0, text: "Never"},
......
...@@ -93,10 +93,7 @@ ...@@ -93,10 +93,7 @@
<form ng-if="mode === 'edit' || mode === 'new'" name="ctrl.form"> <form ng-if="mode === 'edit' || mode === 'new'" name="ctrl.form">
<h5 class="section-heading">Variable</h5> <h5 class="section-heading">Variable</h5>
<div class="gf-form-group"> <div class="gf-form-group">
<div class="gf-form" ng-show="ctrl.form.name.$error.pattern"> <div class="gf-form-inline">
<span class="gf-form-error">Template names cannot begin with '__' that's reserved for Grafanas global variables</span>
</div>
<div class="gf-form-inline">
<div class="gf-form max-width-19"> <div class="gf-form max-width-19">
<span class="gf-form-label width-6">Name</span> <span class="gf-form-label width-6">Name</span>
<input type="text" class="gf-form-input" name="name" placeholder="name" ng-model='current.name' required ng-pattern="namePattern"></input> <input type="text" class="gf-form-input" name="name" placeholder="name" ng-model='current.name' required ng-pattern="namePattern"></input>
...@@ -113,6 +110,11 @@ ...@@ -113,6 +110,11 @@
</div> </div>
</div> </div>
</div> </div>
<div class="gf-form" ng-show="ctrl.form.name.$error.pattern">
<span class="gf-form-label gf-form-label--error">Template names cannot begin with '__' that's reserved for Grafanas global variables</span>
</div>
<div class="gf-form-inline"> <div class="gf-form-inline">
<div class="gf-form max-width-19"> <div class="gf-form max-width-19">
<span class="gf-form-label width-6">Label</span> <span class="gf-form-label width-6">Label</span>
......
...@@ -64,6 +64,10 @@ $gf-form-margin: 0.25rem; ...@@ -64,6 +64,10 @@ $gf-form-margin: 0.25rem;
flex-grow: 1; flex-grow: 1;
min-height: 2.60rem; min-height: 2.60rem;
} }
&--error {
color: $critical;
}
} }
.gf-form-pre { .gf-form-pre {
...@@ -76,25 +80,6 @@ $gf-form-margin: 0.25rem; ...@@ -76,25 +80,6 @@ $gf-form-margin: 0.25rem;
@include border-radius($label-border-radius-sm); @include border-radius($label-border-radius-sm);
} }
.gf-form-error {
padding: $input-padding-y $input-padding-x;
margin-right: $gf-form-margin;
flex-shrink: 0;
background-color: $input-label-bg;
display: block;
font-size: $font-size-sm;
margin-right: $gf-form-margin;
border: $input-btn-border-width solid $red;
@include border-radius($label-border-radius-sm);
&--grow {
flex-grow: 1;
min-height: 2.60rem;
}
}
.gf-form-checkbox { .gf-form-checkbox {
flex-shrink: 0; flex-shrink: 0;
padding: $input-padding-y $input-padding-x; padding: $input-padding-y $input-padding-x;
......
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