From 727119f9ce66af64826bb3ca5501de21983c919c Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Mon, 31 May 2021 08:26:20 -0400 Subject: [PATCH] PluginsList Panel: Redirect to catalog app for updating plugins (#34893) (#34985) * feat(pluginlistpanel): if catalog app is enabled redirect user if plugin is upgradable * refactor(catalog): update copy if plugin is disabled (cherry picked from commit 8c93899b15656ec5d0e016898410abadffeb4f17) Co-authored-by: Jack Westbrook --- .../plugin-admin-app/src/pages/NotEnabed.tsx | 13 +++++++++++-- public/app/features/plugins/AppRootPage.tsx | 1 - .../plugins/panel/pluginlist/PluginList.tsx | 18 +++++++++++------- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/plugins-bundled/internal/plugin-admin-app/src/pages/NotEnabed.tsx b/plugins-bundled/internal/plugin-admin-app/src/pages/NotEnabed.tsx index 9ebc9e3137e..2386307fde5 100644 --- a/plugins-bundled/internal/plugin-admin-app/src/pages/NotEnabed.tsx +++ b/plugins-bundled/internal/plugin-admin-app/src/pages/NotEnabed.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { Page } from 'components/Page'; import { AppRootProps, NavModelItem } from '@grafana/data'; +import { css } from '@emotion/css'; export const NotEnabled = ({ onNavChanged }: AppRootProps) => { const node: NavModelItem = { @@ -16,8 +17,16 @@ export const NotEnabled = ({ onNavChanged }: AppRootProps) => { return ( - To enabled installing plugins, set the{' '} - Plugin Catalog instructions + To enable installing plugins, please refer to the{' '} + + Plugin Catalog + {' '} + instructions ); }; diff --git a/public/app/features/plugins/AppRootPage.tsx b/public/app/features/plugins/AppRootPage.tsx index 9c65fca1bcf..a4243995557 100644 --- a/public/app/features/plugins/AppRootPage.tsx +++ b/public/app/features/plugins/AppRootPage.tsx @@ -86,7 +86,6 @@ class AppRootPage extends Component { } onNavChanged = (nav: NavModel) => { - console.log('NAV CHANGED!!!', nav); this.setState({ nav }); }; diff --git a/public/app/plugins/panel/pluginlist/PluginList.tsx b/public/app/plugins/panel/pluginlist/PluginList.tsx index c3af90ac740..1692ef90a5e 100644 --- a/public/app/plugins/panel/pluginlist/PluginList.tsx +++ b/public/app/plugins/panel/pluginlist/PluginList.tsx @@ -3,6 +3,7 @@ import { useAsync } from 'react-use'; import { css, cx } from '@emotion/css'; import { GrafanaTheme, PanelProps, PluginMeta, PluginType } from '@grafana/data'; import { CustomScrollbar, ModalsController, stylesFactory, Tooltip, useStyles } from '@grafana/ui'; +import { config, locationService } from '@grafana/runtime'; import { contextSrv } from 'app/core/services/context_srv'; import { getBackendSrv } from 'app/core/services/backend_srv'; import { UpdatePluginModal } from './components/UpdatePluginModal'; @@ -48,13 +49,16 @@ export function PluginList(props: PanelProps) { className={cx(styles.message, styles.messageUpdate)} onClick={(e) => { e.preventDefault(); - - showModal(UpdatePluginModal, { - pluginID: plugin.id, - pluginName: plugin.name, - onDismiss: hideModal, - isOpen: true, - }); + if (config.pluginAdminEnabled) { + locationService.push(`/a/grafana-plugin-admin-app/plugin/${plugin.id}`); + } else { + showModal(UpdatePluginModal, { + pluginID: plugin.id, + pluginName: plugin.name, + onDismiss: hideModal, + isOpen: true, + }); + } }} > Update available!