浏览代码

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

Torkel Ödegaard 8 年之前
父节点
当前提交
878121bb46

+ 1 - 1
public/app/features/templating/editor_ctrl.ts

@@ -10,7 +10,7 @@ export class VariableEditorCtrl {
   constructor(private $scope, private datasourceSrv, private variableSrv, templateSrv) {
     $scope.variableTypes = variableTypes;
     $scope.ctrl = {};
-    $scope.namePattern = /^((?!__).)*$/;
+    $scope.namePattern = /^(?!__).*$/;
 
     $scope.refreshOptions = [
       {value: 0, text: "Never"},

+ 6 - 4
public/app/features/templating/partials/editor.html

@@ -93,10 +93,7 @@
     <form ng-if="mode === 'edit' || mode === 'new'" name="ctrl.form">
       <h5 class="section-heading">Variable</h5>
       <div class="gf-form-group">
-        <div class="gf-form" ng-show="ctrl.form.name.$error.pattern">
-          <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-inline">
           <div class="gf-form max-width-19">
             <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>
@@ -113,6 +110,11 @@
             </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 max-width-19">
             <span class="gf-form-label width-6">Label</span>

+ 4 - 19
public/sass/components/_gf-form.scss

@@ -64,6 +64,10 @@ $gf-form-margin: 0.25rem;
     flex-grow: 1;
     min-height: 2.60rem;
   }
+
+  &--error {
+    color: $critical;
+  }
 }
 
 .gf-form-pre {
@@ -76,25 +80,6 @@ $gf-form-margin: 0.25rem;
   @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 {
   flex-shrink: 0;
   padding: $input-padding-y $input-padding-x;