فهرست منبع

mysql: added basic templating support

Torkel Ödegaard 8 سال پیش
والد
کامیت
8f17a84f31
1فایلهای تغییر یافته به همراه13 افزوده شده و 2 حذف شده
  1. 13 2
      public/app/plugins/datasource/mysql/datasource.ts

+ 13 - 2
public/app/plugins/datasource/mysql/datasource.ts

@@ -7,11 +7,22 @@ export class MysqlDatasource {
   name: any;
   name: any;
 
 
   /** @ngInject */
   /** @ngInject */
-  constructor(instanceSettings, private backendSrv, private $q) {
+  constructor(instanceSettings, private backendSrv, private $q, private templateSrv) {
     this.name = instanceSettings.name;
     this.name = instanceSettings.name;
     this.id = instanceSettings.id;
     this.id = instanceSettings.id;
   }
   }
 
 
+  interpolateVariable(value) {
+    if (typeof value === 'string') {
+      return '\"' + value + '\"';
+    }
+
+    var quotedValues = _.map(value, function(val) {
+      return '\"' + val + '\"';
+    });
+    return  quotedValues.join(',');
+  }
+
   query(options) {
   query(options) {
     var queries = _.filter(options.targets, item => {
     var queries = _.filter(options.targets, item => {
       return item.hide !== true;
       return item.hide !== true;
@@ -21,7 +32,7 @@ export class MysqlDatasource {
         intervalMs: options.intervalMs,
         intervalMs: options.intervalMs,
         maxDataPoints: options.maxDataPoints,
         maxDataPoints: options.maxDataPoints,
         datasourceId: this.id,
         datasourceId: this.id,
-        rawSql: item.rawSql,
+        rawSql: this.templateSrv.replace(item.rawSql, options.scopedVars, this.interpolateVariable),
         format: item.format,
         format: item.format,
       };
       };
     });
     });