mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Added data source type to explore state
This commit is contained in:
@@ -25,6 +25,24 @@ export interface DataQueryOptions {
|
|||||||
scopedVars: object;
|
scopedVars: object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface QueryFix {
|
||||||
|
type: string;
|
||||||
|
label: string;
|
||||||
|
action?: QueryFixAction;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface QueryFixAction {
|
||||||
|
type: string;
|
||||||
|
query?: string;
|
||||||
|
preventSubmit?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface QueryHint {
|
||||||
|
type: string;
|
||||||
|
label: string;
|
||||||
|
fix?: QueryFix;
|
||||||
|
}
|
||||||
|
|
||||||
export interface DataSourceApi {
|
export interface DataSourceApi {
|
||||||
name: string;
|
name: string;
|
||||||
meta: PluginMeta;
|
meta: PluginMeta;
|
||||||
@@ -54,6 +72,11 @@ export interface DataSourceApi {
|
|||||||
* Test & verify datasource settings & connection details
|
* Test & verify datasource settings & connection details
|
||||||
*/
|
*/
|
||||||
testDatasource(): Promise<any>;
|
testDatasource(): Promise<any>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get hints for query improvements
|
||||||
|
*/
|
||||||
|
getQueryHints(query: DataQuery, results: any[], ...rest: any): QueryHint[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface DataSourceSettings {
|
export interface DataSourceSettings {
|
||||||
@@ -82,4 +105,3 @@ export interface DataSourceSelectItem {
|
|||||||
meta: PluginMeta;
|
meta: PluginMeta;
|
||||||
sort: string;
|
sort: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,415 +0,0 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
||||||
|
|
||||||
exports[`Render should render alpha info text 1`] = `
|
|
||||||
<div>
|
|
||||||
<PageHeader
|
|
||||||
model={Object {}}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="page-container page-body"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<form
|
|
||||||
onSubmit={[Function]}
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="grafana-info-box"
|
|
||||||
>
|
|
||||||
This plugin is marked as being in alpha state, which means it is in early development phase and updates will include breaking changes.
|
|
||||||
</div>
|
|
||||||
<BasicSettings
|
|
||||||
dataSourceName="gdev-cloudwatch"
|
|
||||||
isDefault={false}
|
|
||||||
onDefaultChange={[Function]}
|
|
||||||
onNameChange={[Function]}
|
|
||||||
/>
|
|
||||||
<PluginSettings
|
|
||||||
dataSource={
|
|
||||||
Object {
|
|
||||||
"access": "",
|
|
||||||
"basicAuth": false,
|
|
||||||
"basicAuthPassword": "",
|
|
||||||
"basicAuthUser": "",
|
|
||||||
"database": "",
|
|
||||||
"id": 13,
|
|
||||||
"isDefault": false,
|
|
||||||
"jsonData": Object {
|
|
||||||
"authType": "credentials",
|
|
||||||
"defaultRegion": "eu-west-2",
|
|
||||||
},
|
|
||||||
"name": "gdev-cloudwatch",
|
|
||||||
"orgId": 1,
|
|
||||||
"password": "",
|
|
||||||
"readOnly": false,
|
|
||||||
"type": "cloudwatch",
|
|
||||||
"typeLogoUrl": "public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png",
|
|
||||||
"url": "",
|
|
||||||
"user": "",
|
|
||||||
"withCredentials": false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dataSourceMeta={
|
|
||||||
Object {
|
|
||||||
"defaultNavUrl": "some/url",
|
|
||||||
"enabled": false,
|
|
||||||
"hasUpdate": false,
|
|
||||||
"id": "1",
|
|
||||||
"info": Object {
|
|
||||||
"author": Object {
|
|
||||||
"name": "Grafana Labs",
|
|
||||||
"url": "url/to/GrafanaLabs",
|
|
||||||
},
|
|
||||||
"description": "pretty decent plugin",
|
|
||||||
"links": Array [
|
|
||||||
Object {
|
|
||||||
"name": "project",
|
|
||||||
"url": "one link",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"logos": Object {
|
|
||||||
"large": "large/logo",
|
|
||||||
"small": "small/logo",
|
|
||||||
},
|
|
||||||
"screenshots": Array [
|
|
||||||
Object {
|
|
||||||
"path": "screenshot",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"updated": "2018-09-26",
|
|
||||||
"version": "1",
|
|
||||||
},
|
|
||||||
"latestVersion": "1",
|
|
||||||
"module": Object {},
|
|
||||||
"name": "pretty cool plugin 1",
|
|
||||||
"pinned": false,
|
|
||||||
"state": "alpha",
|
|
||||||
"type": "",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onModelChange={[Function]}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="gf-form-group section"
|
|
||||||
/>
|
|
||||||
<ButtonRow
|
|
||||||
isReadOnly={false}
|
|
||||||
onDelete={[Function]}
|
|
||||||
onSubmit={[Function]}
|
|
||||||
/>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`Render should render beta info text 1`] = `
|
|
||||||
<div>
|
|
||||||
<PageHeader
|
|
||||||
model={Object {}}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="page-container page-body"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<form
|
|
||||||
onSubmit={[Function]}
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="grafana-info-box"
|
|
||||||
>
|
|
||||||
This plugin is marked as being in a beta development state. This means it is in currently in active development and could be missing important features.
|
|
||||||
</div>
|
|
||||||
<BasicSettings
|
|
||||||
dataSourceName="gdev-cloudwatch"
|
|
||||||
isDefault={false}
|
|
||||||
onDefaultChange={[Function]}
|
|
||||||
onNameChange={[Function]}
|
|
||||||
/>
|
|
||||||
<PluginSettings
|
|
||||||
dataSource={
|
|
||||||
Object {
|
|
||||||
"access": "",
|
|
||||||
"basicAuth": false,
|
|
||||||
"basicAuthPassword": "",
|
|
||||||
"basicAuthUser": "",
|
|
||||||
"database": "",
|
|
||||||
"id": 13,
|
|
||||||
"isDefault": false,
|
|
||||||
"jsonData": Object {
|
|
||||||
"authType": "credentials",
|
|
||||||
"defaultRegion": "eu-west-2",
|
|
||||||
},
|
|
||||||
"name": "gdev-cloudwatch",
|
|
||||||
"orgId": 1,
|
|
||||||
"password": "",
|
|
||||||
"readOnly": false,
|
|
||||||
"type": "cloudwatch",
|
|
||||||
"typeLogoUrl": "public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png",
|
|
||||||
"url": "",
|
|
||||||
"user": "",
|
|
||||||
"withCredentials": false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dataSourceMeta={
|
|
||||||
Object {
|
|
||||||
"defaultNavUrl": "some/url",
|
|
||||||
"enabled": false,
|
|
||||||
"hasUpdate": false,
|
|
||||||
"id": "1",
|
|
||||||
"info": Object {
|
|
||||||
"author": Object {
|
|
||||||
"name": "Grafana Labs",
|
|
||||||
"url": "url/to/GrafanaLabs",
|
|
||||||
},
|
|
||||||
"description": "pretty decent plugin",
|
|
||||||
"links": Array [
|
|
||||||
Object {
|
|
||||||
"name": "project",
|
|
||||||
"url": "one link",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"logos": Object {
|
|
||||||
"large": "large/logo",
|
|
||||||
"small": "small/logo",
|
|
||||||
},
|
|
||||||
"screenshots": Array [
|
|
||||||
Object {
|
|
||||||
"path": "screenshot",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"updated": "2018-09-26",
|
|
||||||
"version": "1",
|
|
||||||
},
|
|
||||||
"latestVersion": "1",
|
|
||||||
"module": Object {},
|
|
||||||
"name": "pretty cool plugin 1",
|
|
||||||
"pinned": false,
|
|
||||||
"state": "beta",
|
|
||||||
"type": "",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onModelChange={[Function]}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="gf-form-group section"
|
|
||||||
/>
|
|
||||||
<ButtonRow
|
|
||||||
isReadOnly={false}
|
|
||||||
onDelete={[Function]}
|
|
||||||
onSubmit={[Function]}
|
|
||||||
/>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`Render should render component 1`] = `
|
|
||||||
<div>
|
|
||||||
<PageHeader
|
|
||||||
model={Object {}}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="page-container page-body"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<form
|
|
||||||
onSubmit={[Function]}
|
|
||||||
>
|
|
||||||
<BasicSettings
|
|
||||||
dataSourceName="gdev-cloudwatch"
|
|
||||||
isDefault={false}
|
|
||||||
onDefaultChange={[Function]}
|
|
||||||
onNameChange={[Function]}
|
|
||||||
/>
|
|
||||||
<PluginSettings
|
|
||||||
dataSource={
|
|
||||||
Object {
|
|
||||||
"access": "",
|
|
||||||
"basicAuth": false,
|
|
||||||
"basicAuthPassword": "",
|
|
||||||
"basicAuthUser": "",
|
|
||||||
"database": "",
|
|
||||||
"id": 13,
|
|
||||||
"isDefault": false,
|
|
||||||
"jsonData": Object {
|
|
||||||
"authType": "credentials",
|
|
||||||
"defaultRegion": "eu-west-2",
|
|
||||||
},
|
|
||||||
"name": "gdev-cloudwatch",
|
|
||||||
"orgId": 1,
|
|
||||||
"password": "",
|
|
||||||
"readOnly": false,
|
|
||||||
"type": "cloudwatch",
|
|
||||||
"typeLogoUrl": "public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png",
|
|
||||||
"url": "",
|
|
||||||
"user": "",
|
|
||||||
"withCredentials": false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dataSourceMeta={
|
|
||||||
Object {
|
|
||||||
"defaultNavUrl": "some/url",
|
|
||||||
"enabled": false,
|
|
||||||
"hasUpdate": false,
|
|
||||||
"id": "1",
|
|
||||||
"info": Object {
|
|
||||||
"author": Object {
|
|
||||||
"name": "Grafana Labs",
|
|
||||||
"url": "url/to/GrafanaLabs",
|
|
||||||
},
|
|
||||||
"description": "pretty decent plugin",
|
|
||||||
"links": Array [
|
|
||||||
Object {
|
|
||||||
"name": "project",
|
|
||||||
"url": "one link",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"logos": Object {
|
|
||||||
"large": "large/logo",
|
|
||||||
"small": "small/logo",
|
|
||||||
},
|
|
||||||
"screenshots": Array [
|
|
||||||
Object {
|
|
||||||
"path": "screenshot",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"updated": "2018-09-26",
|
|
||||||
"version": "1",
|
|
||||||
},
|
|
||||||
"latestVersion": "1",
|
|
||||||
"module": Object {},
|
|
||||||
"name": "pretty cool plugin 1",
|
|
||||||
"pinned": false,
|
|
||||||
"state": "",
|
|
||||||
"type": "",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onModelChange={[Function]}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="gf-form-group section"
|
|
||||||
/>
|
|
||||||
<ButtonRow
|
|
||||||
isReadOnly={false}
|
|
||||||
onDelete={[Function]}
|
|
||||||
onSubmit={[Function]}
|
|
||||||
/>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`Render should render is ready only message 1`] = `
|
|
||||||
<div>
|
|
||||||
<PageHeader
|
|
||||||
model={Object {}}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="page-container page-body"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<form
|
|
||||||
onSubmit={[Function]}
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="grafana-info-box span8"
|
|
||||||
>
|
|
||||||
This datasource was added by config and cannot be modified using the UI. Please contact your server admin to update this datasource.
|
|
||||||
</div>
|
|
||||||
<BasicSettings
|
|
||||||
dataSourceName="gdev-cloudwatch"
|
|
||||||
isDefault={false}
|
|
||||||
onDefaultChange={[Function]}
|
|
||||||
onNameChange={[Function]}
|
|
||||||
/>
|
|
||||||
<PluginSettings
|
|
||||||
dataSource={
|
|
||||||
Object {
|
|
||||||
"access": "",
|
|
||||||
"basicAuth": false,
|
|
||||||
"basicAuthPassword": "",
|
|
||||||
"basicAuthUser": "",
|
|
||||||
"database": "",
|
|
||||||
"id": 13,
|
|
||||||
"isDefault": false,
|
|
||||||
"jsonData": Object {
|
|
||||||
"authType": "credentials",
|
|
||||||
"defaultRegion": "eu-west-2",
|
|
||||||
},
|
|
||||||
"name": "gdev-cloudwatch",
|
|
||||||
"orgId": 1,
|
|
||||||
"password": "",
|
|
||||||
"readOnly": true,
|
|
||||||
"type": "cloudwatch",
|
|
||||||
"typeLogoUrl": "public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png",
|
|
||||||
"url": "",
|
|
||||||
"user": "",
|
|
||||||
"withCredentials": false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dataSourceMeta={
|
|
||||||
Object {
|
|
||||||
"defaultNavUrl": "some/url",
|
|
||||||
"enabled": false,
|
|
||||||
"hasUpdate": false,
|
|
||||||
"id": "1",
|
|
||||||
"info": Object {
|
|
||||||
"author": Object {
|
|
||||||
"name": "Grafana Labs",
|
|
||||||
"url": "url/to/GrafanaLabs",
|
|
||||||
},
|
|
||||||
"description": "pretty decent plugin",
|
|
||||||
"links": Array [
|
|
||||||
Object {
|
|
||||||
"name": "project",
|
|
||||||
"url": "one link",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"logos": Object {
|
|
||||||
"large": "large/logo",
|
|
||||||
"small": "small/logo",
|
|
||||||
},
|
|
||||||
"screenshots": Array [
|
|
||||||
Object {
|
|
||||||
"path": "screenshot",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"updated": "2018-09-26",
|
|
||||||
"version": "1",
|
|
||||||
},
|
|
||||||
"latestVersion": "1",
|
|
||||||
"module": Object {},
|
|
||||||
"name": "pretty cool plugin 1",
|
|
||||||
"pinned": false,
|
|
||||||
"state": "",
|
|
||||||
"type": "",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onModelChange={[Function]}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="gf-form-group section"
|
|
||||||
/>
|
|
||||||
<ButtonRow
|
|
||||||
isReadOnly={true}
|
|
||||||
onDelete={[Function]}
|
|
||||||
onSubmit={[Function]}
|
|
||||||
/>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`Render should render loader 1`] = `
|
|
||||||
<div>
|
|
||||||
<PageHeader
|
|
||||||
model={Object {}}
|
|
||||||
/>
|
|
||||||
<PageLoader
|
|
||||||
pageName="Data source settings"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
@@ -19,9 +19,9 @@ import {
|
|||||||
} from './state/actions';
|
} from './state/actions';
|
||||||
|
|
||||||
// Types
|
// Types
|
||||||
import { RawTimeRange, DataQuery } from '@grafana/ui';
|
|
||||||
import { StoreState } from 'app/types';
|
import { StoreState } from 'app/types';
|
||||||
import { QueryTransaction, HistoryItem, QueryHint, ExploreItemState, ExploreId } from 'app/types/explore';
|
import { RawTimeRange, DataQuery, QueryHint } from '@grafana/ui';
|
||||||
|
import { QueryTransaction, HistoryItem, ExploreItemState, ExploreId } from 'app/types/explore';
|
||||||
import { Emitter } from 'app/core/utils/emitter';
|
import { Emitter } from 'app/core/utils/emitter';
|
||||||
|
|
||||||
function getFirstHintFromTransactions(transactions: QueryTransaction[]): QueryHint {
|
function getFirstHintFromTransactions(transactions: QueryTransaction[]): QueryHint {
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
|
// Libraries
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { ThunkAction } from 'redux-thunk';
|
import { ThunkAction } from 'redux-thunk';
|
||||||
import { RawTimeRange, TimeRange } from '@grafana/ui';
|
|
||||||
|
|
||||||
|
// Services & Utils
|
||||||
|
import store from 'app/core/store';
|
||||||
import {
|
import {
|
||||||
LAST_USED_DATASOURCE_KEY,
|
LAST_USED_DATASOURCE_KEY,
|
||||||
clearQueryKeys,
|
clearQueryKeys,
|
||||||
@@ -14,10 +16,12 @@ import {
|
|||||||
serializeStateToUrlParam,
|
serializeStateToUrlParam,
|
||||||
} from 'app/core/utils/explore';
|
} from 'app/core/utils/explore';
|
||||||
|
|
||||||
|
// Actions
|
||||||
import { updateLocation } from 'app/core/actions';
|
import { updateLocation } from 'app/core/actions';
|
||||||
import store from 'app/core/store';
|
|
||||||
|
// Types
|
||||||
import { StoreState } from 'app/types';
|
import { StoreState } from 'app/types';
|
||||||
import { DataQuery, DataSourceSelectItem } from '@grafana/ui/src/types';
|
import { DataQuery, DataSourceSelectItem, QueryHint } from '@grafana/ui/src/types';
|
||||||
import { getDatasourceSrv } from 'app/features/plugins/datasource_srv';
|
import { getDatasourceSrv } from 'app/features/plugins/datasource_srv';
|
||||||
import {
|
import {
|
||||||
ExploreId,
|
ExploreId,
|
||||||
@@ -26,11 +30,10 @@ import {
|
|||||||
ResultType,
|
ResultType,
|
||||||
QueryOptions,
|
QueryOptions,
|
||||||
QueryTransaction,
|
QueryTransaction,
|
||||||
QueryHint,
|
|
||||||
QueryHintGetter,
|
|
||||||
} from 'app/types/explore';
|
} from 'app/types/explore';
|
||||||
import { Emitter } from 'app/core/core';
|
|
||||||
|
|
||||||
|
import { Emitter } from 'app/core/core';
|
||||||
|
import { RawTimeRange, TimeRange } from '@grafana/ui';
|
||||||
import {
|
import {
|
||||||
Action as ThunkableAction,
|
Action as ThunkableAction,
|
||||||
ActionTypes,
|
ActionTypes,
|
||||||
@@ -45,6 +48,7 @@ import {
|
|||||||
ScanStopAction,
|
ScanStopAction,
|
||||||
} from './actionTypes';
|
} from './actionTypes';
|
||||||
|
|
||||||
|
|
||||||
type ThunkResult<R> = ThunkAction<R, StoreState, undefined, ThunkableAction>;
|
type ThunkResult<R> = ThunkAction<R, StoreState, undefined, ThunkableAction>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -460,7 +464,7 @@ export function queryTransactionSuccess(
|
|||||||
|
|
||||||
// Get query hints
|
// Get query hints
|
||||||
let hints: QueryHint[];
|
let hints: QueryHint[];
|
||||||
if (datasourceInstance.getQueryHints as QueryHintGetter) {
|
if (datasourceInstance.getQueryHints) {
|
||||||
hints = datasourceInstance.getQueryHints(transaction.query, result);
|
hints = datasourceInstance.getQueryHints(transaction.query, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
|
import { QueryHint } from '@grafana/ui/src/types';
|
||||||
import { QueryHint } from 'app/types/explore';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of time series results needed before starting to suggest sum aggregation hints
|
* Number of time series results needed before starting to suggest sum aggregation hints
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Value } from 'slate';
|
import { Value } from 'slate';
|
||||||
import { RawTimeRange, TimeRange, DataQuery, DataSourceSelectItem } from '@grafana/ui';
|
import { RawTimeRange, TimeRange, DataQuery, DataSourceSelectItem, DataSourceApi, QueryHint } from '@grafana/ui';
|
||||||
|
|
||||||
import { Emitter } from 'app/core/core';
|
import { Emitter } from 'app/core/core';
|
||||||
import { LogsModel } from 'app/core/logs_model';
|
import { LogsModel } from 'app/core/logs_model';
|
||||||
@@ -110,7 +110,7 @@ export interface ExploreItemState {
|
|||||||
/**
|
/**
|
||||||
* Datasource instance that has been selected. Datasource-specific logic can be run on this object.
|
* Datasource instance that has been selected. Datasource-specific logic can be run on this object.
|
||||||
*/
|
*/
|
||||||
datasourceInstance: any;
|
datasourceInstance: DataSourceApi;
|
||||||
/**
|
/**
|
||||||
* Error to be shown when datasource loading or testing failed.
|
* Error to be shown when datasource loading or testing failed.
|
||||||
*/
|
*/
|
||||||
@@ -273,28 +273,6 @@ export interface TypeaheadOutput {
|
|||||||
suggestions: CompletionItemGroup[];
|
suggestions: CompletionItemGroup[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface QueryFix {
|
|
||||||
type: string;
|
|
||||||
label: string;
|
|
||||||
action?: QueryFixAction;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface QueryFixAction {
|
|
||||||
type: string;
|
|
||||||
query?: string;
|
|
||||||
preventSubmit?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface QueryHint {
|
|
||||||
type: string;
|
|
||||||
label: string;
|
|
||||||
fix?: QueryFix;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface QueryHintGetter {
|
|
||||||
(query: DataQuery, results: any[], ...rest: any): QueryHint[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface QueryIntervals {
|
export interface QueryIntervals {
|
||||||
interval: string;
|
interval: string;
|
||||||
intervalMs: number;
|
intervalMs: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user