Commit d5a56b0b by Torkel Ödegaard

Minor refactoring of #16127

parent c7c0ba5a
...@@ -76,3 +76,17 @@ export interface TableData { ...@@ -76,3 +76,17 @@ export interface TableData {
rows: any[][]; rows: any[][];
tags?: Tags; 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;
}
import { AnnotationsSrv } from './annotations_srv'; import { AnnotationsSrv } from './annotations_srv';
import { eventEditor } from './event_editor'; import { eventEditor } from './event_editor';
import { EventManager } from './event_manager'; import { EventManager } from './event_manager';
import { AnnotationEvent } from './event';
import { annotationTooltipDirective } from './annotation_tooltip'; import { annotationTooltipDirective } from './annotation_tooltip';
export { AnnotationsSrv, eventEditor, EventManager, annotationTooltipDirective };
export { AnnotationsSrv, eventEditor, EventManager, AnnotationEvent, annotationTooltipDirective };
export class AnnotationEvent {
dashboardId: number;
panelId: number;
userId: number;
time: any;
timeEnd: any;
isRegion: boolean;
text: string;
type: string;
tags: string;
}
...@@ -2,7 +2,7 @@ import _ from 'lodash'; ...@@ -2,7 +2,7 @@ import _ from 'lodash';
import moment from 'moment'; import moment from 'moment';
import { coreModule } from 'app/core/core'; import { coreModule } from 'app/core/core';
import { MetricsPanelCtrl } from 'app/plugins/sdk'; import { MetricsPanelCtrl } from 'app/plugins/sdk';
import { AnnotationEvent } from './event'; import { AnnotationEvent } from '@grafana/ui';
export class EventEditorCtrl { export class EventEditorCtrl {
panelCtrl: MetricsPanelCtrl; panelCtrl: MetricsPanelCtrl;
......
import _ from 'lodash'; import _ from 'lodash';
import moment from 'moment';
import tinycolor from 'tinycolor2'; import tinycolor from 'tinycolor2';
import { import {
OK_COLOR, OK_COLOR,
...@@ -11,7 +10,7 @@ import { ...@@ -11,7 +10,7 @@ import {
} from '@grafana/ui'; } from '@grafana/ui';
import { MetricsPanelCtrl } from 'app/plugins/sdk'; import { MetricsPanelCtrl } from 'app/plugins/sdk';
import { AnnotationEvent } from './event'; import { AnnotationEvent } from '@grafana/ui';
export class EventManager { export class EventManager {
event: AnnotationEvent; event: AnnotationEvent;
...@@ -31,16 +30,17 @@ export class EventManager { ...@@ -31,16 +30,17 @@ export class EventManager {
updateTime(range) { updateTime(range) {
if (!this.event) { if (!this.event) {
this.event = new AnnotationEvent(); this.event = {};
this.event.dashboardId = this.panelCtrl.dashboard.id; this.event.dashboardId = this.panelCtrl.dashboard.id;
this.event.panelId = this.panelCtrl.panel.id; this.event.panelId = this.panelCtrl.panel.id;
} }
// update time // update time
this.event.time = moment(range.from); this.event.time = range.from;
this.event.isRegion = false; this.event.isRegion = false;
if (range.to) { if (range.to) {
this.event.timeEnd = moment(range.to); this.event.timeEnd = range.to;
this.event.isRegion = true; this.event.isRegion = true;
} }
...@@ -90,8 +90,8 @@ export class EventManager { ...@@ -90,8 +90,8 @@ export class EventManager {
annotations = [ annotations = [
{ {
isRegion: true, isRegion: true,
min: this.event.time.valueOf(), min: this.event.time,
timeEnd: this.event.timeEnd.valueOf(), timeEnd: this.event.timeEnd,
text: this.event.text, text: this.event.text,
eventType: '$__editing', eventType: '$__editing',
editModel: this.event, editModel: this.event,
...@@ -100,7 +100,7 @@ export class EventManager { ...@@ -100,7 +100,7 @@ export class EventManager {
} else { } else {
annotations = [ annotations = [
{ {
min: this.event.time.valueOf(), min: this.event.time,
text: this.event.text, text: this.event.text,
editModel: this.event, editModel: this.event,
eventType: '$__editing', eventType: '$__editing',
......
...@@ -15,7 +15,7 @@ import { expandRecordingRules } from './language_utils'; ...@@ -15,7 +15,7 @@ import { expandRecordingRules } from './language_utils';
// Types // Types
import { PromQuery } from './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'; import { ExploreUrlState } from 'app/types/explore';
export class PrometheusDatasource implements DataSourceApi<PromQuery> { export class PrometheusDatasource implements DataSourceApi<PromQuery> {
...@@ -359,7 +359,7 @@ export class PrometheusDatasource implements DataSourceApi<PromQuery> { ...@@ -359,7 +359,7 @@ export class PrometheusDatasource implements DataSourceApi<PromQuery> {
for (const value of series.values) { for (const value of series.values) {
const valueIsTrue = value[1] === '1'; // e.g. ALERTS const valueIsTrue = value[1] === '1'; // e.g. ALERTS
if (valueIsTrue || annotation.useValueForTime) { if (valueIsTrue || annotation.useValueForTime) {
const event: any = { const event: AnnotationEvent = {
annotation: annotation, annotation: annotation,
title: self.resultTransformer.renderTemplate(titleFormat, series.metric), title: self.resultTransformer.renderTemplate(titleFormat, series.metric),
tags: tags, tags: tags,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment