Commit dc6f9773 by Dan Cech

support [[variable:type]] syntax

parent fa193fa8
......@@ -8,7 +8,7 @@ function luceneEscape(value) {
export class TemplateSrv {
variables: any[];
private regex = /\$(\w+)|\[\[([\s\S]+?)\]\]|\${(\w+):?(\w+)?}/g;
private regex = /\$(\w+)|\[\[([\s\S]+?)(?::(\w+))?\]\]|\${(\w+)(?::(\w+))?}/g;
private index = {};
private grafanaVariables = {};
private builtIns = {};
......@@ -143,8 +143,8 @@ export class TemplateSrv {
str = _.escape(str);
this.regex.lastIndex = 0;
return str.replace(this.regex, (match, g1, g2, g3) => {
if (this.index[g1 || g2 || g3] || this.builtIns[g1 || g2 || g3]) {
return str.replace(this.regex, (match, g1, g2, g3, g4) => {
if (this.index[g1 || g2 || g4] || this.builtIns[g1 || g2 || g4]) {
return '<span class="template-variable">' + match + '</span>';
}
return match;
......@@ -170,11 +170,11 @@ export class TemplateSrv {
var variable, systemValue, value;
this.regex.lastIndex = 0;
return target.replace(this.regex, (match, g1, g2, g3, g4) => {
variable = this.index[g1 || g2 || g3];
format = g4 || format;
return target.replace(this.regex, (match, g1, g2, g3, g4, g5) => {
variable = this.index[g1 || g2 || g4];
format = g3 || g5 || format;
if (scopedVars) {
value = scopedVars[g1 || g2 || g3];
value = scopedVars[g1 || g2 || g4];
if (value) {
return this.formatValue(value.value, format, variable);
}
......@@ -215,15 +215,15 @@ export class TemplateSrv {
var variable;
this.regex.lastIndex = 0;
return target.replace(this.regex, (match, g1, g2, g3) => {
return target.replace(this.regex, (match, g1, g2, g3, g4) => {
if (scopedVars) {
var option = scopedVars[g1 || g2 || g3];
var option = scopedVars[g1 || g2 || g4];
if (option) {
return option.text;
}
}
variable = this.index[g1 || g2 || g3];
variable = this.index[g1 || g2 || g4];
if (!variable) {
return match;
}
......
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