/// 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; } export interface QueryMeta { sql: string; } class MysqlQueryCtrl extends QueryCtrl { static templateUrl = 'partials/query.editor.html'; showLastQuerySQL: boolean; formats: any[]; target: MysqlQuery; lastQueryMeta: QueryMeta; lastQueryError: string; constructor($scope, $injector) { super($scope, $injector); this.target.format = 'time_series'; this.target.alias = ""; this.formats = [ {text: 'Time series', value: 'time_series'}, {text: 'Table', value: 'table'}, ]; 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; } } } } class MysqlConfigCtrl { static templateUrl = 'partials/config.html'; } export { MysqlDatasource, MysqlDatasource as Datasource, MysqlQueryCtrl as QueryCtrl, MysqlConfigCtrl as ConfigCtrl, };