diff --git a/packages/grafana-ui/src/types/data.ts b/packages/grafana-ui/src/types/data.ts index 69d5261ba3c..fcbf95f9f4a 100644 --- a/packages/grafana-ui/src/types/data.ts +++ b/packages/grafana-ui/src/types/data.ts @@ -76,3 +76,17 @@ export interface TableData { rows: any[][]; tags?: Tags; } + +export interface AnnotationEvent { + annotation?: any; + dashboardId?: number; + panelId?: number; + userId?: number; + time?: number; + timeEnd?: number; + isRegion?: boolean; + title?: string; + text?: string; + type?: string; + tags?: string; +} diff --git a/public/app/features/annotations/all.ts b/public/app/features/annotations/all.ts index d0ef6abf9ed..ed2c65062be 100644 --- a/public/app/features/annotations/all.ts +++ b/public/app/features/annotations/all.ts @@ -1,7 +1,5 @@ import { AnnotationsSrv } from './annotations_srv'; import { eventEditor } from './event_editor'; import { EventManager } from './event_manager'; -import { AnnotationEvent } from './event'; import { annotationTooltipDirective } from './annotation_tooltip'; - -export { AnnotationsSrv, eventEditor, EventManager, AnnotationEvent, annotationTooltipDirective }; +export { AnnotationsSrv, eventEditor, EventManager, annotationTooltipDirective }; diff --git a/public/app/features/annotations/event.ts b/public/app/features/annotations/event.ts deleted file mode 100644 index de86b72c7c0..00000000000 --- a/public/app/features/annotations/event.ts +++ /dev/null @@ -1,11 +0,0 @@ -export class AnnotationEvent { - dashboardId: number; - panelId: number; - userId: number; - time: any; - timeEnd: any; - isRegion: boolean; - text: string; - type: string; - tags: string; -} diff --git a/public/app/features/annotations/event_editor.ts b/public/app/features/annotations/event_editor.ts index a88cc44a251..a6970790bb3 100644 --- a/public/app/features/annotations/event_editor.ts +++ b/public/app/features/annotations/event_editor.ts @@ -2,7 +2,7 @@ import _ from 'lodash'; import moment from 'moment'; import { coreModule } from 'app/core/core'; import { MetricsPanelCtrl } from 'app/plugins/sdk'; -import { AnnotationEvent } from './event'; +import { AnnotationEvent } from '@grafana/ui'; export class EventEditorCtrl { panelCtrl: MetricsPanelCtrl; diff --git a/public/app/features/annotations/event_manager.ts b/public/app/features/annotations/event_manager.ts index 6966d3cdc82..fbd7897ba92 100644 --- a/public/app/features/annotations/event_manager.ts +++ b/public/app/features/annotations/event_manager.ts @@ -1,5 +1,4 @@ import _ from 'lodash'; -import moment from 'moment'; import tinycolor from 'tinycolor2'; import { OK_COLOR, @@ -11,7 +10,7 @@ import { } from '@grafana/ui'; import { MetricsPanelCtrl } from 'app/plugins/sdk'; -import { AnnotationEvent } from './event'; +import { AnnotationEvent } from '@grafana/ui'; export class EventManager { event: AnnotationEvent; @@ -31,16 +30,17 @@ export class EventManager { updateTime(range) { if (!this.event) { - this.event = new AnnotationEvent(); + this.event = {}; this.event.dashboardId = this.panelCtrl.dashboard.id; this.event.panelId = this.panelCtrl.panel.id; } // update time - this.event.time = moment(range.from); + this.event.time = range.from; this.event.isRegion = false; + if (range.to) { - this.event.timeEnd = moment(range.to); + this.event.timeEnd = range.to; this.event.isRegion = true; } @@ -90,8 +90,8 @@ export class EventManager { annotations = [ { isRegion: true, - min: this.event.time.valueOf(), - timeEnd: this.event.timeEnd.valueOf(), + min: this.event.time, + timeEnd: this.event.timeEnd, text: this.event.text, eventType: '$__editing', editModel: this.event, @@ -100,7 +100,7 @@ export class EventManager { } else { annotations = [ { - min: this.event.time.valueOf(), + min: this.event.time, text: this.event.text, editModel: this.event, eventType: '$__editing', diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index ecdfcf30612..432a7fd6717 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -15,7 +15,7 @@ import { expandRecordingRules } from './language_utils'; // Types import { PromQuery } from './types'; -import { DataQueryOptions, DataSourceApi } from '@grafana/ui/src/types'; +import { DataQueryOptions, DataSourceApi, AnnotationEvent } from '@grafana/ui/src/types'; import { ExploreUrlState } from 'app/types/explore'; export class PrometheusDatasource implements DataSourceApi { @@ -359,7 +359,7 @@ export class PrometheusDatasource implements DataSourceApi { for (const value of series.values) { const valueIsTrue = value[1] === '1'; // e.g. ALERTS if (valueIsTrue || annotation.useValueForTime) { - const event: any = { + const event: AnnotationEvent = { annotation: annotation, title: self.resultTransformer.renderTemplate(titleFormat, series.metric), tags: tags,