diff --git a/pkg/services/navtree/navtreeimpl/admin.go b/pkg/services/navtree/navtreeimpl/admin.go index 8e93bdf3ced..3858c4e003d 100644 --- a/pkg/services/navtree/navtreeimpl/admin.go +++ b/pkg/services/navtree/navtreeimpl/admin.go @@ -4,7 +4,6 @@ import ( ac "github.com/grafana/grafana/pkg/services/accesscontrol" contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model" "github.com/grafana/grafana/pkg/services/correlations" - "github.com/grafana/grafana/pkg/services/datasources" "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/navtree" "github.com/grafana/grafana/pkg/services/pluginsintegration/pluginaccesscontrol" @@ -18,16 +17,6 @@ func (s *ServiceImpl) getAdminNode(c *contextmodel.ReqContext) (*navtree.NavLink orgsAccessEvaluator := ac.EvalPermission(ac.ActionOrgsRead) authConfigUIAvailable := s.license.FeatureEnabled("saml") - if hasAccess(datasources.ConfigurationPageAccess) { - configNodes = append(configNodes, &navtree.NavLink{ - Text: "Data sources", - Icon: "database", - SubTitle: "Add and configure data sources", - Id: "datasources", - Url: s.cfg.AppSubURL + "/datasources", - }) - } - // FIXME: while we don't have a permissions for listing plugins the legacy check has to stay as a default if pluginaccesscontrol.ReqCanAdminPlugins(s.cfg)(c) || hasAccess(pluginaccesscontrol.AdminAccessEvaluator) { configNodes = append(configNodes, &navtree.NavLink{ diff --git a/public/app/features/connections/pages/DataSourceDashboardsPage.tsx b/public/app/features/connections/pages/DataSourceDashboardsPage.tsx index 6b2164c03bd..56095d29358 100644 --- a/public/app/features/connections/pages/DataSourceDashboardsPage.tsx +++ b/public/app/features/connections/pages/DataSourceDashboardsPage.tsx @@ -3,16 +3,15 @@ import { useParams } from 'react-router-dom'; import { Page } from 'app/core/components/Page/Page'; import { DataSourceDashboards } from 'app/features/datasources/components/DataSourceDashboards'; -import { useDataSourceSettingsNav } from 'app/features/datasources/state'; + +import { useDataSourceSettingsNav } from '../hooks/useDataSourceSettingsNav'; export function DataSourceDashboardsPage() { const { uid } = useParams<{ uid: string }>(); - const params = new URLSearchParams(location.search); - const pageId = params.get('page'); - const nav = useDataSourceSettingsNav(uid, pageId); + const { navId, pageNav } = useDataSourceSettingsNav(); return ( - + diff --git a/public/app/routes/routes.tsx b/public/app/routes/routes.tsx index 5f727daa716..16f202022ea 100644 --- a/public/app/routes/routes.tsx +++ b/public/app/routes/routes.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Redirect } from 'react-router-dom'; +import { Redirect, RouteComponentProps } from 'react-router-dom'; import { isTruthy } from '@grafana/data'; import { LoginPage } from 'app/core/components/Login/LoginPage'; @@ -10,6 +10,7 @@ import { contextSrv } from 'app/core/services/context_srv'; import UserAdminPage from 'app/features/admin/UserAdminPage'; import LdapPage from 'app/features/admin/ldap/LdapPage'; import { getAlertingRoutes } from 'app/features/alerting/routes'; +import { ROUTES as CONNECTIONS_ROUTES } from 'app/features/connections/constants'; import { getRoutes as getDataConnectionsRoutes } from 'app/features/connections/routes'; import { DATASOURCES_ROUTES } from 'app/features/datasources/constants'; import { getRoutes as getPluginCatalogRoutes } from 'app/features/plugins/admin/routes'; @@ -105,30 +106,23 @@ export function getAppRoutes(): RouteDescriptor[] { }, { path: DATASOURCES_ROUTES.List, - component: SafeDynamicImport( - () => import(/* webpackChunkName: "DataSourcesListPage"*/ 'app/features/datasources/pages/DataSourcesListPage') - ), + component: () => , }, { path: DATASOURCES_ROUTES.Edit, - component: SafeDynamicImport( - () => import(/* webpackChunkName: "EditDataSourcePage"*/ '../features/datasources/pages/EditDataSourcePage') + component: (props: RouteComponentProps<{ uid: string }>) => ( + ), }, { path: DATASOURCES_ROUTES.Dashboards, - component: SafeDynamicImport( - () => - import( - /* webpackChunkName: "DataSourceDashboards"*/ 'app/features/datasources/pages/DataSourceDashboardsPage' - ) + component: (props: RouteComponentProps<{ uid: string }>) => ( + ), }, { path: DATASOURCES_ROUTES.New, - component: SafeDynamicImport( - () => import(/* webpackChunkName: "NewDataSourcePage"*/ '../features/datasources/pages/NewDataSourcePage') - ), + component: () => , }, { path: '/datasources/correlations',