mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 21:12:37 +08:00
Data Sources: Remove Admin/Data sources page in favour of Connections/Data sources (#72102)
* don't show Admin/Data sources page in navtree * redirect from admin/datasources to connections/datasources * update link of DS plugins to connections/datasources * redirect edit page from datasources to connections * redirect to new datasource page under connections * redirect to datasouce dashboard page under connections * fix navId on datasource dashboards page * fix datasource dashboard page's nav * Revert "update link of DS plugins to connections/datasources" This reverts commit 0ebcb09b038b9db14f16bd0066c26869e57ff253.
This commit is contained in:
@ -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{
|
||||
|
@ -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 (
|
||||
<Page navId="connections-your-connections-datasources" pageNav={nav.main}>
|
||||
<Page navId={navId} pageNav={pageNav}>
|
||||
<Page.Contents>
|
||||
<DataSourceDashboards uid={uid} />
|
||||
</Page.Contents>
|
||||
|
@ -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: () => <Redirect to={CONNECTIONS_ROUTES.DataSources} />,
|
||||
},
|
||||
{
|
||||
path: DATASOURCES_ROUTES.Edit,
|
||||
component: SafeDynamicImport(
|
||||
() => import(/* webpackChunkName: "EditDataSourcePage"*/ '../features/datasources/pages/EditDataSourcePage')
|
||||
component: (props: RouteComponentProps<{ uid: string }>) => (
|
||||
<Redirect to={CONNECTIONS_ROUTES.DataSourcesEdit.replace(':uid', props.match.params.uid)} />
|
||||
),
|
||||
},
|
||||
{
|
||||
path: DATASOURCES_ROUTES.Dashboards,
|
||||
component: SafeDynamicImport(
|
||||
() =>
|
||||
import(
|
||||
/* webpackChunkName: "DataSourceDashboards"*/ 'app/features/datasources/pages/DataSourceDashboardsPage'
|
||||
)
|
||||
component: (props: RouteComponentProps<{ uid: string }>) => (
|
||||
<Redirect to={CONNECTIONS_ROUTES.DataSourcesDashboards.replace(':uid', props.match.params.uid)} />
|
||||
),
|
||||
},
|
||||
{
|
||||
path: DATASOURCES_ROUTES.New,
|
||||
component: SafeDynamicImport(
|
||||
() => import(/* webpackChunkName: "NewDataSourcePage"*/ '../features/datasources/pages/NewDataSourcePage')
|
||||
),
|
||||
component: () => <Redirect to={CONNECTIONS_ROUTES.DataSourcesNew} />,
|
||||
},
|
||||
{
|
||||
path: '/datasources/correlations',
|
||||
|
Reference in New Issue
Block a user