mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
* first pass * return list * types and cleanup * add to plugin page and add styles * update comment * update comment * fix component path * simplify error component * simplify error struct * fix tests * don't export and fix string() * update naming * remove frontend * introduce phantom loader * track single error * remove error from base * remove unused struct * remove unnecessary filter * add errors endpoint * Update set log to use id field Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com> * skip adding BE plugins * remove errs from plugin + ds list * remove unnecessary fields * add signature state to panels * Fetch plugins errors * grafana/ui component tweaks * DS Picker - add unsigned badge * VizPicker - add unsigned badge * PluginSignatureBadge tweaks * Plugins list - add signatures info box * New datasource page - add signatures info box * Plugin page - add signatures info box * Fix test * Do not show Core label in viz picker * Update public/app/features/plugins/PluginsErrorsInfo.tsx Co-authored-by: Torkel Ödegaard <torkel@grafana.org> * Update public/app/features/plugins/PluginListPage.test.tsx Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com> * Update public/app/features/plugins/PluginListPage.tsx Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com> * Update public/app/features/datasources/NewDataSourcePage.tsx Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com> * Review comments 1 * Review comments 2 * Update public/app/features/plugins/PluginsErrorsInfo.tsx * Update public/app/features/plugins/PluginPage.tsx * Prettier fix * remove stale backend code * Docs issues fix Co-authored-by: Will Browne <will.browne@grafana.com> Co-authored-by: Will Browne <wbrowne@users.noreply.github.com> Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com> Co-authored-by: Torkel Ödegaard <torkel@grafana.org> Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { getBackendSrv } from '@grafana/runtime';
|
|
import { PanelPlugin } from '@grafana/data';
|
|
import { ThunkResult } from 'app/types';
|
|
import {
|
|
pluginDashboardsLoad,
|
|
pluginDashboardsLoaded,
|
|
pluginsLoaded,
|
|
panelPluginLoaded,
|
|
pluginsErrorsLoaded,
|
|
} from './reducers';
|
|
import { importPanelPlugin } from 'app/features/plugins/plugin_loader';
|
|
|
|
export function loadPlugins(): ThunkResult<void> {
|
|
return async dispatch => {
|
|
const plugins = await getBackendSrv().get('api/plugins', { embedded: 0 });
|
|
dispatch(pluginsLoaded(plugins));
|
|
};
|
|
}
|
|
|
|
export function loadPluginsErrors(): ThunkResult<void> {
|
|
return async dispatch => {
|
|
const errors = await getBackendSrv().get('api/plugins/errors');
|
|
dispatch(pluginsErrorsLoaded(errors));
|
|
};
|
|
}
|
|
|
|
export function loadPluginDashboards(): ThunkResult<void> {
|
|
return async (dispatch, getStore) => {
|
|
dispatch(pluginDashboardsLoad());
|
|
const dataSourceType = getStore().dataSources.dataSource.type;
|
|
const response = await getBackendSrv().get(`api/plugins/${dataSourceType}/dashboards`);
|
|
dispatch(pluginDashboardsLoaded(response));
|
|
};
|
|
}
|
|
|
|
export function loadPanelPlugin(pluginId: string): ThunkResult<Promise<PanelPlugin>> {
|
|
return async (dispatch, getStore) => {
|
|
let plugin = getStore().plugins.panels[pluginId];
|
|
|
|
if (!plugin) {
|
|
plugin = await importPanelPlugin(pluginId);
|
|
|
|
// second check to protect against raise condition
|
|
if (!getStore().plugins.panels[pluginId]) {
|
|
dispatch(panelPluginLoaded(plugin));
|
|
}
|
|
}
|
|
|
|
return plugin;
|
|
};
|
|
}
|