diff --git a/public/app/features/dashboard-scene/settings/DeleteDashboardButton.tsx b/public/app/features/dashboard-scene/settings/DeleteDashboardButton.tsx
index 02c70bcc215..f1e22bce428 100644
--- a/public/app/features/dashboard-scene/settings/DeleteDashboardButton.tsx
+++ b/public/app/features/dashboard-scene/settings/DeleteDashboardButton.tsx
@@ -2,7 +2,7 @@ import { useAsyncFn, useToggle } from 'react-use';
import { selectors } from '@grafana/e2e-selectors';
import { Trans, useTranslate } from '@grafana/i18n';
-import { reportInteraction } from '@grafana/runtime';
+import { config, reportInteraction } from '@grafana/runtime';
import { Button, ConfirmModal, Modal, Space, Text, TextLink } from '@grafana/ui';
import { useDeleteItemsMutation } from '../../browse-dashboards/api/browseDashboardsAPI';
@@ -34,7 +34,7 @@ export function DeleteDashboardButton({ dashboard }: ButtonProps) {
dashboard: 1,
},
source: 'dashboard_scene_settings',
- restore_enabled: false,
+ restore_enabled: Boolean(config.featureToggles.restoreDashboards),
});
toggleModal();
if (dashboard.state.uid) {
@@ -83,7 +83,7 @@ export function DeleteDashboardModal({ dashboardTitle, onConfirm, onClose }: Del
isOpen={true}
body={
<>
- {false && ( // TODO: re-enable when restore is reworked
+ {config.featureToggles.restoreDashboards && (
<>
diff --git a/public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardModal.tsx b/public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardModal.tsx
index e06b3e818a7..25f3871524e 100644
--- a/public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardModal.tsx
+++ b/public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardModal.tsx
@@ -3,7 +3,7 @@ import { connect, ConnectedProps } from 'react-redux';
import useAsyncFn from 'react-use/lib/useAsyncFn';
import { Trans, useTranslate } from '@grafana/i18n';
-import { locationService, reportInteraction } from '@grafana/runtime';
+import { config, locationService, reportInteraction } from '@grafana/runtime';
import { Modal, Button, Text, Space, TextLink } from '@grafana/ui';
import { DashboardModel } from 'app/features/dashboard/state/DashboardModel';
import { cleanUpDashboardAndVariables } from 'app/features/dashboard/state/actions';
@@ -34,7 +34,7 @@ const DeleteDashboardModalUnconnected = ({ hideModal, cleanUpDashboardAndVariabl
dashboard: 1,
},
source: 'dashboard_settings',
- restore_enabled: false,
+ restore_enabled: Boolean(config.featureToggles.restoreDashboards),
});
await deleteItems({
selectedItems: {
diff --git a/public/app/features/dashboard/components/SaveDashboard/SaveDashboardErrorProxy.tsx b/public/app/features/dashboard/components/SaveDashboard/SaveDashboardErrorProxy.tsx
index 827d127389b..5f7675b47da 100644
--- a/public/app/features/dashboard/components/SaveDashboard/SaveDashboardErrorProxy.tsx
+++ b/public/app/features/dashboard/components/SaveDashboard/SaveDashboardErrorProxy.tsx
@@ -3,7 +3,7 @@ import * as React from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { Trans, useTranslate } from '@grafana/i18n';
-import { FetchError } from '@grafana/runtime';
+import { config, FetchError } from '@grafana/runtime';
import { Dashboard } from '@grafana/schema';
import { Button, ConfirmModal, Modal, useStyles2 } from '@grafana/ui';
@@ -32,7 +32,7 @@ export const SaveDashboardErrorProxy = ({
}: SaveDashboardErrorProxyProps) => {
const { onDashboardSave } = useDashboardSave();
const { t } = useTranslate();
- const isRestoreDashboardsEnabled = false;
+ const isRestoreDashboardsEnabled = config.featureToggles.restoreDashboards;
return (
<>
diff --git a/public/app/routes/routes.tsx b/public/app/routes/routes.tsx
index c79d39a2bb5..249a12c4354 100644
--- a/public/app/routes/routes.tsx
+++ b/public/app/routes/routes.tsx
@@ -527,6 +527,13 @@ export function getAppRoutes(): RouteDescriptor[] {
() => import(/* webpackChunkName: "BookmarksPage"*/ 'app/features/bookmarks/BookmarksPage')
),
},
+ config.featureToggles.restoreDashboards && {
+ path: '/dashboard/recently-deleted',
+ roles: () => ['Admin', 'ServerAdmin'],
+ component: SafeDynamicImport(
+ () => import(/* webpackChunkName: "RecentlyDeletedPage" */ 'app/features/browse-dashboards/RecentlyDeletedPage')
+ ),
+ },
{
// Redirect the /femt dev page to the root
path: '/femt',