1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import { getBackendSrv } from '@grafana/runtime';
- import { validationSrv } from '../services/ValidationSrv';
- export const validateDashboardJson = (json: string) => {
- try {
- JSON.parse(json);
- return true;
- } catch (error) {
- return 'Not valid JSON';
- }
- };
- export const validateGcomDashboard = (gcomDashboard: string) => {
- // From DashboardImportCtrl
- const match = /(^\d+$)|dashboards\/(\d+)/.exec(gcomDashboard);
- return match && (match[1] || match[2]) ? true : 'Could not find a valid Grafana.com ID';
- };
- export const validateTitle = (newTitle: string, folderId: number) => {
- return validationSrv
- .validateNewDashboardName(folderId, newTitle)
- .then(() => {
- return true;
- })
- .catch((error) => {
- if (error.type === 'EXISTING') {
- return error.message;
- }
- });
- };
- export const validateUid = (value: string) => {
- return getBackendSrv()
- .get(`/api/dashboards/uid/${value}`)
- .then((existingDashboard) => {
- return `Dashboard named '${existingDashboard?.dashboard.title}' in folder '${existingDashboard?.meta.folderTitle}' has the same UID`;
- })
- .catch((error) => {
- error.isHandled = true;
- return true;
- });
- };
|