diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index dc8bb1275af..bdba00d64ef 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -47,7 +47,6 @@ export interface FeatureToggles { dashboardComments?: boolean; annotationComments?: boolean; migrationLocking?: boolean; - saveDashboardDrawer?: boolean; storage?: boolean; alertProvisioning?: boolean; export?: boolean; diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index dc367303b85..cdb3be42572 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -175,11 +175,6 @@ var ( Description: "Lock database during migrations", State: FeatureStateBeta, }, - { - Name: "saveDashboardDrawer", - Description: "Use a drawer to show save dashboard dialog", - State: FeatureStateBeta, - }, { Name: "storage", Description: "Configurable storage for dashboards, datasources, and resources", diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index a0b1780dbe6..db7b68edcbc 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -131,10 +131,6 @@ const ( // Lock database during migrations FlagMigrationLocking = "migrationLocking" - // FlagSaveDashboardDrawer - // Use a drawer to show save dashboard dialog - FlagSaveDashboardDrawer = "saveDashboardDrawer" - // FlagStorage // Configurable storage for dashboards, datasources, and resources FlagStorage = "storage" diff --git a/public/app/core/services/keybindingSrv.ts b/public/app/core/services/keybindingSrv.ts index 789c455ab24..a7c5d75f642 100644 --- a/public/app/core/services/keybindingSrv.ts +++ b/public/app/core/services/keybindingSrv.ts @@ -6,7 +6,7 @@ import { LegacyGraphHoverClearEvent, locationUtil } from '@grafana/data'; import { locationService } from '@grafana/runtime'; import appEvents from 'app/core/app_events'; import { getExploreUrl } from 'app/core/utils/explore'; -import { SaveDashboardProxy } from 'app/features/dashboard/components/SaveDashboard/SaveDashboardProxy'; +import { SaveDashboardDrawer } from 'app/features/dashboard/components/SaveDashboard/SaveDashboardDrawer'; import { ShareModal } from 'app/features/dashboard/components/ShareModal'; import { DashboardModel } from 'app/features/dashboard/state'; @@ -204,7 +204,7 @@ export class KeybindingSrv { if (dashboard.meta.canSave) { appEvents.publish( new ShowModalReactEvent({ - component: SaveDashboardProxy, + component: SaveDashboardDrawer, props: { dashboard, }, diff --git a/public/app/features/dashboard/components/DashNav/DashNav.tsx b/public/app/features/dashboard/components/DashNav/DashNav.tsx index 558f9dacd2a..6b822f315a8 100644 --- a/public/app/features/dashboard/components/DashNav/DashNav.tsx +++ b/public/app/features/dashboard/components/DashNav/DashNav.tsx @@ -8,7 +8,7 @@ import { ButtonGroup, ModalsController, ToolbarButton, PageToolbar, useForceUpda import config from 'app/core/config'; import { toggleKioskMode } from 'app/core/navigation/kiosk'; import { DashboardCommentsModal } from 'app/features/dashboard/components/DashboardComments/DashboardCommentsModal'; -import { SaveDashboardProxy } from 'app/features/dashboard/components/SaveDashboard/SaveDashboardProxy'; +import { SaveDashboardDrawer } from 'app/features/dashboard/components/SaveDashboard/SaveDashboardDrawer'; import { ShareModal } from 'app/features/dashboard/components/ShareModal'; import { playlistSrv } from 'app/features/playlist/PlaylistSrv'; import { updateTimeZoneForSession } from 'app/features/profile/state/reducers'; @@ -225,7 +225,7 @@ export const DashNav = React.memo((props) => { tooltip="Save dashboard" icon="save" onClick={() => { - showModal(SaveDashboardProxy, { + showModal(SaveDashboardDrawer, { dashboard, onDismiss: hideModal, }); diff --git a/public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx b/public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx index 59c92814742..db1e149af1d 100644 --- a/public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx +++ b/public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx @@ -40,7 +40,7 @@ import { getVariablesByKey } from '../../../variables/state/selectors'; import { DashboardPanel } from '../../dashgrid/DashboardPanel'; import { DashboardModel, PanelModel } from '../../state'; import { DashNavTimeControls } from '../DashNav/DashNavTimeControls'; -import { SaveDashboardProxy } from '../SaveDashboard/SaveDashboardProxy'; +import { SaveDashboardDrawer } from '../SaveDashboard/SaveDashboardDrawer'; import { OptionsPane } from './OptionsPane'; import { PanelEditorTableView } from './PanelEditorTableView'; @@ -141,7 +141,7 @@ export class PanelEditorUnconnected extends PureComponent { onSaveDashboard = () => { appEvents.publish( new ShowModalReactEvent({ - component: SaveDashboardProxy, + component: SaveDashboardDrawer, props: { dashboard: this.props.dashboard }, }) ); diff --git a/public/app/features/dashboard/components/SaveDashboard/SaveDashboardAsModal.tsx b/public/app/features/dashboard/components/SaveDashboard/SaveDashboardAsModal.tsx deleted file mode 100644 index 785ee7b45ed..00000000000 --- a/public/app/features/dashboard/components/SaveDashboard/SaveDashboardAsModal.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { css } from '@emotion/css'; -import React, { useState } from 'react'; - -import { Modal } from '@grafana/ui'; - -import { SaveDashboardErrorProxy } from './SaveDashboardErrorProxy'; -import { SaveDashboardAsForm } from './forms/SaveDashboardAsForm'; -import { SaveDashboardModalProps } from './types'; -import { useDashboardSave } from './useDashboardSave'; - -export const SaveDashboardAsModal: React.FC< - SaveDashboardModalProps & { - isNew?: boolean; - } -> = ({ dashboard, onDismiss, isNew }) => { - const { state, onDashboardSave } = useDashboardSave(dashboard); - const [dashboardSaveModelClone, setDashboardSaveModelClone] = useState(); - return ( - <> - {state.error && ( - - )} - {!state.error && ( - - { - setDashboardSaveModelClone(clone); - return onDashboardSave(clone, options, dashboard); - }} - isNew={isNew} - /> - - )} - - ); -}; diff --git a/public/app/features/dashboard/components/SaveDashboard/SaveDashboardButton.tsx b/public/app/features/dashboard/components/SaveDashboard/SaveDashboardButton.tsx index 75d09010f9a..354647194cd 100644 --- a/public/app/features/dashboard/components/SaveDashboard/SaveDashboardButton.tsx +++ b/public/app/features/dashboard/components/SaveDashboard/SaveDashboardButton.tsx @@ -4,7 +4,7 @@ import { selectors } from '@grafana/e2e-selectors'; import { Button, ButtonVariant, ModalsController, FullWidthButtonContainer } from '@grafana/ui'; import { DashboardModel } from 'app/features/dashboard/state'; -import { SaveDashboardProxy } from './SaveDashboardProxy'; +import { SaveDashboardDrawer } from './SaveDashboardDrawer'; interface SaveDashboardButtonProps { dashboard: DashboardModel; @@ -18,7 +18,7 @@ export const SaveDashboardButton: React.FC = ({ dashbo return (