@ -1,25 +1,61 @@
///<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 ;
}
export interface QueryMeta {
sql : string ;
}
class MysqlQueryCtrl extends QueryCtrl {
static templateUrl = 'partials/query.editor.html' ;
resultFormats : any ;
target : any ;
showLastQuerySQL : boolean ;
formats : any [ ] ;
target : MysqlQuery ;
lastQueryMeta : QueryMeta ;
lastQueryError : string ;
constructor ( $scope , $injector ) {
super ( $scope , $injector ) ;
this . target . resultFormat = 'time_series' ;
this . target . f ormat = 'time_series' ;
this . target . alias = "" ;
this . resultF ormats = [
this . f ormats = [
{ 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 ;
}
}
}
}