import { DataSourcePlugin } from '@grafana/data'; import { PostgresConfigCtrl } from './config_ctrl'; import { PostgresDatasource } from './datasource'; import { PostgresQueryCtrl } from './query_ctrl'; import { PostgresQuery } from './types'; const defaultQuery = `SELECT extract(epoch from time_column) AS time, text_column as text, tags_column as tags FROM metric_table WHERE $__timeFilter(time_column) `; class PostgresAnnotationsQueryCtrl { static templateUrl = 'partials/annotations.editor.html'; declare annotation: any; /** @ngInject */ constructor($scope: any) { this.annotation = $scope.ctrl.annotation; this.annotation.rawQuery = this.annotation.rawQuery || defaultQuery; } } export const plugin = new DataSourcePlugin(PostgresDatasource) .setQueryCtrl(PostgresQueryCtrl) .setConfigCtrl(PostgresConfigCtrl) .setAnnotationQueryCtrl(PostgresAnnotationsQueryCtrl);