Build plugin with grafana toolkit (#1539)
* Use grafana toolkit template for building plugin * Fix linter and type errors * Update styles building * Fix sass deprecation warning * Remove empty js files produced by webpack building sass * Fix signing script * Replace classnames with cx * Fix data source config page * Use custom webpack config instead of overriding original one * Use gpx_ prefix for plugin executable * Remove unused configs * Roll back react hooks dependencies usage * Move plugin-specific ts config to root config file * Temporary do not use rst2html for function description tooltip * Remove unused code * remove unused dependencies * update react table dependency * Migrate tests to typescript * remove unused dependencies * Remove old webpack configs * Add sign target to makefile * Add magefile * Update CI test job * Update go packages * Update build instructions * Downgrade go version to 1.18 * Fix go version in ci * Fix metric picker * Add comment to webpack config * remove angular mocks * update bra config * Rename datasource-zabbix to datasource (fix mage build) * Add instructions for building backend with mage * Fix webpack targets * Fix ci backend tests * Add initial e2e tests * Fix e2e ci tests * Update docker compose for cypress tests * build grafana docker image * Fix docker stop task * CI: add Grafana compatibility check
This commit is contained in:
@@ -1,34 +1,34 @@
|
||||
import _ from 'lodash';
|
||||
import moment from 'moment';
|
||||
import { DataQuery } from '@grafana/data';
|
||||
import * as utils from '../datasource-zabbix/utils';
|
||||
import { ProblemDTO } from 'datasource-zabbix/types';
|
||||
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);
|
||||
const durationSec = Date.now() - problem.timestamp * 1000;
|
||||
return durationSec < highlightIntervalMs;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
const DEFAULT_TIME_FORMAT = "DD MMM YYYY HH:mm:ss";
|
||||
const DEFAULT_TIME_FORMAT = 'DD MMM YYYY HH:mm:ss';
|
||||
|
||||
export function formatLastChange(lastchangeUnix: number, customFormat?: string) {
|
||||
const timestamp = moment.unix(lastchangeUnix);
|
||||
const date = new Date(lastchangeUnix);
|
||||
const timestamp = dateMath.parse(date);
|
||||
const format = customFormat || DEFAULT_TIME_FORMAT;
|
||||
const lastchange = timestamp.format(format);
|
||||
const lastchange = timestamp!.format(format);
|
||||
return lastchange;
|
||||
}
|
||||
|
||||
export const getNextRefIdChar = (queries: DataQuery[]): string => {
|
||||
const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
|
||||
return _.find(letters, refId => {
|
||||
return _.every(queries, other => {
|
||||
const nextLetter = _.find(letters, (refId) => {
|
||||
return _.every(queries, (other) => {
|
||||
return other.refId !== refId;
|
||||
});
|
||||
});
|
||||
return nextLetter || 'A';
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user