35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import _ from 'lodash';
|
|
import { DataQuery, dateMath } from '@grafana/data';
|
|
import * as utils from '../datasource/utils';
|
|
import { ProblemDTO } from 'datasource/types';
|
|
|
|
export function isNewProblem(problem: ProblemDTO, highlightNewerThan: string): boolean {
|
|
try {
|
|
const highlightIntervalMs = utils.parseInterval(highlightNewerThan);
|
|
const durationSec = Date.now() - problem.timestamp * 1000;
|
|
return durationSec < highlightIntervalMs;
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
const DEFAULT_TIME_FORMAT = 'DD MMM YYYY HH:mm:ss';
|
|
|
|
export function formatLastChange(lastchangeUnix: number, customFormat?: string) {
|
|
const date = new Date(lastchangeUnix * 1000);
|
|
const timestamp = dateMath.parse(date);
|
|
const format = customFormat || DEFAULT_TIME_FORMAT;
|
|
const lastchange = timestamp!.format(format);
|
|
return lastchange;
|
|
}
|
|
|
|
export const getNextRefIdChar = (queries: DataQuery[]): string => {
|
|
const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
const nextLetter = _.find(letters, (refId) => {
|
|
return _.every(queries, (other) => {
|
|
return other.refId !== refId;
|
|
});
|
|
});
|
|
return nextLetter || 'A';
|
|
};
|