Преглед на файлове

mysql: query editor fix

Torkel Ödegaard преди 8 години
родител
ревизия
2b029912aa

+ 1 - 0
.gitignore

@@ -25,6 +25,7 @@ public/css/*.min.css
 *.swp
 .idea/
 *.iml
+*.tmp
 .vscode/
 
 /data/*

+ 1 - 1
public/app/plugins/datasource/mysql/datasource.ts

@@ -6,7 +6,7 @@ export class MysqlDatasource {
   id: any;
   name: any;
 
-  /** @ngInject */
+  /** @ngInject **/
   constructor(instanceSettings, private backendSrv, private $q, private templateSrv) {
     this.name = instanceSettings.name;
     this.id = instanceSettings.id;

+ 1 - 71
public/app/plugins/datasource/mysql/module.ts

@@ -3,77 +3,7 @@
 import angular from 'angular';
 import _ from 'lodash';
 import {MysqlDatasource} from './datasource';
-import {QueryCtrl} from 'app/plugins/sdk';
-
-export interface MysqlQuery {
-  refId: string;
-  format: string;
-  alias: string;
-  rawSql: string;
-}
-
-export interface QueryMeta {
-  sql: string;
-}
-
-
-var defaulQuery = `SELECT
-  UNIX_TIMESTAMP(<time_column>) as time_sec,
-  <value column> as value,
-  <series name column> as metric
-FROM <table name>
-WHERE $__timeFilter(time_column)
-ORDER BY <time_column> ASC
-`;
-
-class MysqlQueryCtrl extends QueryCtrl {
-  static templateUrl = 'partials/query.editor.html';
-
-  showLastQuerySQL: boolean;
-  formats: any[];
-  target: MysqlQuery;
-  lastQueryMeta: QueryMeta;
-  lastQueryError: string;
-  showHelp: boolean;
-
-  constructor($scope, $injector) {
-    super($scope, $injector);
-
-    this.target.format = this.target.format || 'time_series';
-    this.target.alias = "";
-    this.formats = [
-      {text: 'Time series', value: 'time_series'},
-      {text: 'Table', value: 'table'},
-    ];
-
-    if (!this.target.rawSql) {
-      this.target.rawSql = defaulQuery;
-    }
-
-    this.panelCtrl.events.on('data-received', this.onDataReceived.bind(this), $scope);
-    this.panelCtrl.events.on('data-error', this.onDataError.bind(this), $scope);
-  }
-
-  onDataReceived(dataList) {
-    this.lastQueryMeta = null;
-    this.lastQueryError = null;
-
-    let anySeriesFromQuery = _.find(dataList, {refId: this.target.refId});
-    if (anySeriesFromQuery) {
-      this.lastQueryMeta = anySeriesFromQuery.meta;
-    }
-  }
-
-  onDataError(err) {
-    if (err.data && err.data.results) {
-      let queryRes = err.data.results[this.target.refId];
-      if (queryRes) {
-        this.lastQueryMeta = queryRes.meta;
-        this.lastQueryError = queryRes.error;
-      }
-    }
-  }
-}
+import {MysqlQueryCtrl} from './query_ctrl';
 
 class MysqlConfigCtrl {
   static templateUrl = 'partials/config.html';

+ 79 - 0
public/app/plugins/datasource/mysql/query_ctrl.ts

@@ -0,0 +1,79 @@
+///<reference path="../../../headers/common.d.ts" />
+
+import angular from 'angular';
+import _ from 'lodash';
+import {MysqlDatasource} from './datasource';
+import {QueryCtrl} from 'app/plugins/sdk';
+
+export interface MysqlQuery {
+  refId: string;
+  format: string;
+  alias: string;
+  rawSql: string;
+}
+
+export interface QueryMeta {
+  sql: string;
+}
+
+
+var defaulQuery = `SELECT
+  UNIX_TIMESTAMP(<time_column>) as time_sec,
+  <value column> as value,
+  <series name column> as metric
+FROM <table name>
+WHERE $__timeFilter(time_column)
+ORDER BY <time_column> ASC
+`;
+
+export class MysqlQueryCtrl extends QueryCtrl {
+  static templateUrl = 'partials/query.editor.html';
+
+  showLastQuerySQL: boolean;
+  formats: any[];
+  target: MysqlQuery;
+  lastQueryMeta: QueryMeta;
+  lastQueryError: string;
+  showHelp: boolean;
+
+  /** @ngInject **/
+  constructor($scope, $injector) {
+    super($scope, $injector);
+
+    this.target.format = this.target.format || 'time_series';
+    this.target.alias = "";
+    this.formats = [
+      {text: 'Time series', value: 'time_series'},
+      {text: 'Table', value: 'table'},
+    ];
+
+    if (!this.target.rawSql) {
+      this.target.rawSql = defaulQuery;
+    }
+
+    this.panelCtrl.events.on('data-received', this.onDataReceived.bind(this), $scope);
+    this.panelCtrl.events.on('data-error', this.onDataError.bind(this), $scope);
+  }
+
+  onDataReceived(dataList) {
+    this.lastQueryMeta = null;
+    this.lastQueryError = null;
+
+    let anySeriesFromQuery = _.find(dataList, {refId: this.target.refId});
+    if (anySeriesFromQuery) {
+      this.lastQueryMeta = anySeriesFromQuery.meta;
+    }
+  }
+
+  onDataError(err) {
+    if (err.data && err.data.results) {
+      let queryRes = err.data.results[this.target.refId];
+      if (queryRes) {
+        this.lastQueryMeta = queryRes.meta;
+        this.lastQueryError = queryRes.error;
+      }
+    }
+  }
+}
+
+