+
);
@@ -23,13 +18,11 @@ export function GrafanaRouteLoading() {
const getStyles = (theme: GrafanaTheme2) => ({
loadingPage: css({
+ backgroundColor: theme.colors.background.primary,
height: '100%',
flexDrection: 'column',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
}),
- loadingPageDockedNav: css({
- backgroundColor: theme.colors.background.primary,
- }),
});
diff --git a/public/app/core/utils/navBarItem-translations.ts b/public/app/core/utils/navBarItem-translations.ts
index 8c211f52038..7b246a49f85 100644
--- a/public/app/core/utils/navBarItem-translations.ts
+++ b/public/app/core/utils/navBarItem-translations.ts
@@ -1,4 +1,3 @@
-import { config } from '@grafana/runtime';
import { t } from 'app/core/internationalization';
// Maps the ID of the nav item to a translated phrase to later pass to
@@ -140,9 +139,7 @@ export function getNavTitle(navId: string | undefined) {
case 'plugin-page-grafana-slo-app':
return t('nav.slo.title', 'SLO');
case 'plugin-page-k6-app':
- return config.featureToggles.dockedMegaMenu
- ? t('nav.k6.title', 'Performance')
- : t('nav.performance-testing.title', 'Performance testing');
+ return t('nav.k6.title', 'Performance');
case 'monitoring':
return t('nav.observability.title', 'Observability');
case 'plugin-page-grafana-k8s-app':
diff --git a/public/app/features/dashboard/components/DashboardPermissions/AccessControlDashboardPermissions.tsx b/public/app/features/dashboard/components/DashboardPermissions/AccessControlDashboardPermissions.tsx
index 0506a77f665..212ba319048 100644
--- a/public/app/features/dashboard/components/DashboardPermissions/AccessControlDashboardPermissions.tsx
+++ b/public/app/features/dashboard/components/DashboardPermissions/AccessControlDashboardPermissions.tsx
@@ -1,6 +1,5 @@
import React from 'react';
-import { config } from '@grafana/runtime';
import { Permissions } from 'app/core/components/AccessControl';
import { Page } from 'app/core/components/Page/Page';
import { contextSrv } from 'app/core/core';
@@ -10,7 +9,7 @@ import { SettingsPageProps } from '../DashboardSettings/types';
export const AccessControlDashboardPermissions = ({ dashboard, sectionNav }: SettingsPageProps) => {
const canSetPermissions = contextSrv.hasPermission(AccessControlAction.DashboardsPermissionsWrite);
- const pageNav = config.featureToggles.dockedMegaMenu ? sectionNav.node.parentItem : undefined;
+ const pageNav = sectionNav.node.parentItem;
return (
diff --git a/public/app/features/dashboard/components/DashboardSettings/AnnotationsSettings.tsx b/public/app/features/dashboard/components/DashboardSettings/AnnotationsSettings.tsx
index b4e0487291d..005c067ee49 100644
--- a/public/app/features/dashboard/components/DashboardSettings/AnnotationsSettings.tsx
+++ b/public/app/features/dashboard/components/DashboardSettings/AnnotationsSettings.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { AnnotationQuery, getDataSourceRef, NavModelItem } from '@grafana/data';
-import { config, getDataSourceSrv, locationService } from '@grafana/runtime';
+import { getDataSourceSrv, locationService } from '@grafana/runtime';
import { Page } from 'app/core/components/Page/Page';
import { DashboardModel } from '../../state';
@@ -41,7 +41,7 @@ function getSubPageNav(
editIndex: number | undefined,
node: NavModelItem
): NavModelItem | undefined {
- const parentItem = config.featureToggles.dockedMegaMenu ? node.parentItem : undefined;
+ const parentItem = node.parentItem;
if (editIndex == null) {
return parentItem;
}
diff --git a/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx b/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx
index 1f42955fe5b..23f24987ca3 100644
--- a/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx
+++ b/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx
@@ -8,7 +8,6 @@ import { locationService } from '@grafana/runtime';
import { Button, ToolbarButtonRow } from '@grafana/ui';
import { AppChromeUpdate } from 'app/core/components/AppChrome/AppChromeUpdate';
import { Page } from 'app/core/components/Page/Page';
-import config from 'app/core/config';
import { t } from 'app/core/internationalization';
import { contextSrv } from 'app/core/services/context_srv';
import { AccessControlAction } from 'app/types';
@@ -185,14 +184,10 @@ function getSectionNav(
text: t('dashboard-settings.settings.title', 'Settings'),
children: [],
icon: 'apps',
- hideFromBreadcrumbs: true,
+ hideFromBreadcrumbs: false,
+ url: locationUtil.getUrlForPartial(location, { editview: 'settings', editIndex: null }),
};
- if (config.featureToggles.dockedMegaMenu) {
- main.hideFromBreadcrumbs = false;
- main.url = locationUtil.getUrlForPartial(location, { editview: 'settings', editIndex: null });
- }
-
main.children = pages.map((page) => ({
text: page.title,
icon: page.icon,
diff --git a/public/app/features/dashboard/components/DashboardSettings/GeneralSettings.tsx b/public/app/features/dashboard/components/DashboardSettings/GeneralSettings.tsx
index 59795f86727..267c66af9eb 100644
--- a/public/app/features/dashboard/components/DashboardSettings/GeneralSettings.tsx
+++ b/public/app/features/dashboard/components/DashboardSettings/GeneralSettings.tsx
@@ -43,7 +43,7 @@ export function GeneralSettingsUnconnected({
const [renderCounter, setRenderCounter] = useState(0);
const [dashboardTitle, setDashboardTitle] = useState(dashboard.title);
const [dashboardDescription, setDashboardDescription] = useState(dashboard.description);
- const pageNav = config.featureToggles.dockedMegaMenu ? sectionNav.node.parentItem : undefined;
+ const pageNav = sectionNav.node.parentItem;
const onFolderChange = (newUID: string | undefined, newTitle: string | undefined) => {
dashboard.meta.folderUid = newUID;
diff --git a/public/app/features/dashboard/components/DashboardSettings/JsonEditorSettings.tsx b/public/app/features/dashboard/components/DashboardSettings/JsonEditorSettings.tsx
index 44ebe1484c7..c4b1a71db92 100644
--- a/public/app/features/dashboard/components/DashboardSettings/JsonEditorSettings.tsx
+++ b/public/app/features/dashboard/components/DashboardSettings/JsonEditorSettings.tsx
@@ -2,7 +2,6 @@ import { css } from '@emotion/css';
import React, { useState } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
-import { config } from '@grafana/runtime';
import { Button, CodeEditor, useStyles2 } from '@grafana/ui';
import { Page } from 'app/core/components/Page/Page';
import { Trans } from 'app/core/internationalization';
@@ -14,7 +13,7 @@ import { SettingsPageProps } from './types';
export function JsonEditorSettings({ dashboard, sectionNav }: SettingsPageProps) {
const [dashboardJson, setDashboardJson] = useState(JSON.stringify(dashboard.getSaveModelClone(), null, 2));
- const pageNav = config.featureToggles.dockedMegaMenu ? sectionNav.node.parentItem : undefined;
+ const pageNav = sectionNav.node.parentItem;
const onClick = async () => {
await getDashboardSrv().saveJSONDashboard(dashboardJson);
diff --git a/public/app/features/dashboard/components/DashboardSettings/LinksSettings.test.tsx b/public/app/features/dashboard/components/DashboardSettings/LinksSettings.test.tsx
index 7c049c86ebc..57bd92a74dd 100644
--- a/public/app/features/dashboard/components/DashboardSettings/LinksSettings.test.tsx
+++ b/public/app/features/dashboard/components/DashboardSettings/LinksSettings.test.tsx
@@ -90,7 +90,9 @@ describe('LinksSettings', () => {
const linklessDashboard = createDashboardModelFixture({ links: [] });
setup(linklessDashboard);
- expect(screen.getByRole('heading', { name: 'Links' })).toBeInTheDocument();
+ const linksTab = screen.getByRole('tab', { name: 'Tab Links' });
+ expect(linksTab).toBeInTheDocument();
+ expect(linksTab).toHaveAttribute('aria-selected', 'true');
expect(
screen.getByTestId(selectors.components.CallToActionCard.buttonV2('Add dashboard link'))
).toBeInTheDocument();
diff --git a/public/app/features/dashboard/components/DashboardSettings/LinksSettings.tsx b/public/app/features/dashboard/components/DashboardSettings/LinksSettings.tsx
index c9ec7b89cdd..edef4baf5d4 100644
--- a/public/app/features/dashboard/components/DashboardSettings/LinksSettings.tsx
+++ b/public/app/features/dashboard/components/DashboardSettings/LinksSettings.tsx
@@ -1,7 +1,6 @@
import React, { useState } from 'react';
-import { NavModelItem } from '@grafana/data';
-import { config, locationService } from '@grafana/runtime';
+import { locationService } from '@grafana/runtime';
import { Page } from 'app/core/components/Page/Page';
import { NEW_LINK } from 'app/features/dashboard-scene/settings/links/utils';
@@ -32,11 +31,7 @@ export function LinksSettings({ dashboard, sectionNav, editIndex }: SettingsPage
const isEditing = editIndex !== undefined;
- let pageNav: NavModelItem | undefined;
-
- if (config.featureToggles.dockedMegaMenu) {
- pageNav = sectionNav.node.parentItem;
- }
+ let pageNav = sectionNav.node.parentItem;
if (isEditing) {
const title = isNew ? 'New link' : 'Edit link';
@@ -46,13 +41,11 @@ export function LinksSettings({ dashboard, sectionNav, editIndex }: SettingsPage
subTitle: description,
};
- if (config.featureToggles.dockedMegaMenu) {
- const parentUrl = sectionNav.node.url;
- pageNav.parentItem = sectionNav.node.parentItem && {
- ...sectionNav.node.parentItem,
- url: parentUrl,
- };
- }
+ const parentUrl = sectionNav.node.url;
+ pageNav.parentItem = sectionNav.node.parentItem && {
+ ...sectionNav.node.parentItem,
+ url: parentUrl,
+ };
}
return (
diff --git a/public/app/features/dashboard/components/DashboardSettings/VersionsSettings.tsx b/public/app/features/dashboard/components/DashboardSettings/VersionsSettings.tsx
index 96c867c229c..a741bd51a71 100644
--- a/public/app/features/dashboard/components/DashboardSettings/VersionsSettings.tsx
+++ b/public/app/features/dashboard/components/DashboardSettings/VersionsSettings.tsx
@@ -1,6 +1,5 @@
import React, { PureComponent } from 'react';
-import { config } from '@grafana/runtime';
import { Spinner, HorizontalGroup } from '@grafana/ui';
import { Page } from 'app/core/components/Page/Page';
import {
@@ -139,7 +138,7 @@ export class VersionsSettings extends PureComponent {
const canCompare = versions.filter((version) => version.checked).length === 2;
const showButtons = versions.length > 1;
const hasMore = versions.length >= this.limit;
- const pageNav = config.featureToggles.dockedMegaMenu ? this.props.sectionNav.node.parentItem : undefined;
+ const pageNav = this.props.sectionNav.node.parentItem;
if (viewMode === 'compare') {
return (
diff --git a/public/app/features/serviceaccounts/ServiceAccountCreatePage.test.tsx b/public/app/features/serviceaccounts/ServiceAccountCreatePage.test.tsx
index 11d06b4e230..780b4529514 100644
--- a/public/app/features/serviceaccounts/ServiceAccountCreatePage.test.tsx
+++ b/public/app/features/serviceaccounts/ServiceAccountCreatePage.test.tsx
@@ -17,6 +17,7 @@ jest.mock('@grafana/runtime', () => ({
put: putMock,
}),
config: {
+ ...jest.requireActual('@grafana/runtime').config,
loginError: false,
buildInfo: {
version: 'v1.0',
diff --git a/public/app/features/teams/TeamPages.test.tsx b/public/app/features/teams/TeamPages.test.tsx
index afafe17ee74..9aa5ca4af28 100644
--- a/public/app/features/teams/TeamPages.test.tsx
+++ b/public/app/features/teams/TeamPages.test.tsx
@@ -29,6 +29,7 @@ jest.mock('@grafana/runtime', () => ({
get: jest.fn().mockResolvedValue([{ userId: 1, login: 'Test' }]),
}),
config: {
+ ...jest.requireActual('@grafana/runtime').config,
licenseInfo: {
enabledFeatures: { teamsync: true },
stateInfo: '',
diff --git a/public/app/features/variables/editor/VariableEditorContainer.tsx b/public/app/features/variables/editor/VariableEditorContainer.tsx
index 166e4082767..41ccf9daf76 100644
--- a/public/app/features/variables/editor/VariableEditorContainer.tsx
+++ b/public/app/features/variables/editor/VariableEditorContainer.tsx
@@ -2,7 +2,7 @@ import React, { PureComponent } from 'react';
import { connect, ConnectedProps } from 'react-redux';
import { bindActionCreators } from 'redux';
-import { config, locationService } from '@grafana/runtime';
+import { locationService } from '@grafana/runtime';
import { Page } from 'app/core/components/Page/Page';
import { SettingsPageProps } from 'app/features/dashboard/components/DashboardSettings/types';
@@ -108,13 +108,12 @@ class VariableEditorContainerUnconnected extends PureComponent {
const { editIndex, variables, sectionNav } = this.props;
const variableToEdit = editIndex != null ? variables[editIndex] : undefined;
const node = sectionNav.node;
- const parentItem =
- config.featureToggles.dockedMegaMenu && node.parentItem
- ? {
- ...node.parentItem,
- url: node.url,
- }
- : undefined;
+ const parentItem = node.parentItem
+ ? {
+ ...node.parentItem,
+ url: node.url,
+ }
+ : undefined;
const subPageNav = variableToEdit ? { text: variableToEdit.name, parentItem } : parentItem;
return (
diff --git a/public/locales/en-US/grafana.json b/public/locales/en-US/grafana.json
index c5a2ea55733..ecc2e4d6c98 100644
--- a/public/locales/en-US/grafana.json
+++ b/public/locales/en-US/grafana.json
@@ -883,9 +883,6 @@
"subtitle": "Manage preferences across an organization",
"title": "Default preferences"
},
- "performance-testing": {
- "title": "Performance testing"
- },
"playlists": {
"subtitle": "Groups of dashboards that are displayed in a sequence",
"title": "Playlists"
diff --git a/public/locales/pseudo-LOCALE/grafana.json b/public/locales/pseudo-LOCALE/grafana.json
index 8f2a84999eb..9574a0f87fa 100644
--- a/public/locales/pseudo-LOCALE/grafana.json
+++ b/public/locales/pseudo-LOCALE/grafana.json
@@ -883,9 +883,6 @@
"subtitle": "Mäʼnäģę přęƒęřęʼnčęş äčřőşş äʼn őřģäʼnįžäŧįőʼn",
"title": "Đęƒäūľŧ přęƒęřęʼnčęş"
},
- "performance-testing": {
- "title": "Pęřƒőřmäʼnčę ŧęşŧįʼnģ"
- },
"playlists": {
"subtitle": "Ğřőūpş őƒ đäşĥþőäřđş ŧĥäŧ äřę đįşpľäyęđ įʼn ä şęqūęʼnčę",
"title": "Pľäyľįşŧş"