mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Scenes: Support new top nav * Page: Make Page component support new and old dashboard page layouts * Pass scrollbar props * Fixing flex layout for dashboard * Progress on dashboard settings working with topnav * Updated * Annotations working * Starting to work fully * Fix merge issue * Fixed tests * Added buttons to annotations editor * Updating tests * Move Page component to each page * fixed general settings page * Fixed versions * Fixed annotation item page * Variables section working * Fixed tests * Minor fixes to versions * Update * Fixing unit tests * Adding add variable button * Restore annotations edit form so it's the same as before * Fixed semicolon in dashboard permissions * Fixing unit tests * Fixing tests * Minor test update * Fixing unit test * Fixing e2e tests * fix for e2e test * fix a11y issues * Changing places Settings -> General * Trying to fix a11y * I hope this fixes the e2e test * Fixing merge issue * tweak
65 lines
1.7 KiB
TypeScript
65 lines
1.7 KiB
TypeScript
import React from 'react';
|
|
|
|
import { selectors } from '@grafana/e2e-selectors';
|
|
import { Button, ButtonVariant, ModalsController } from '@grafana/ui';
|
|
import { DashboardModel } from 'app/features/dashboard/state';
|
|
|
|
import { SaveDashboardDrawer } from './SaveDashboardDrawer';
|
|
|
|
interface SaveDashboardButtonProps {
|
|
dashboard: DashboardModel;
|
|
onSaveSuccess?: () => void;
|
|
}
|
|
|
|
export const SaveDashboardButton: React.FC<SaveDashboardButtonProps> = ({ dashboard, onSaveSuccess }) => {
|
|
return (
|
|
<ModalsController>
|
|
{({ showModal, hideModal }) => {
|
|
return (
|
|
<Button
|
|
onClick={() => {
|
|
showModal(SaveDashboardDrawer, {
|
|
dashboard,
|
|
onSaveSuccess,
|
|
onDismiss: hideModal,
|
|
});
|
|
}}
|
|
aria-label={selectors.pages.Dashboard.Settings.General.saveDashBoard}
|
|
>
|
|
Save dashboard
|
|
</Button>
|
|
);
|
|
}}
|
|
</ModalsController>
|
|
);
|
|
};
|
|
|
|
export const SaveDashboardAsButton: React.FC<SaveDashboardButtonProps & { variant?: ButtonVariant }> = ({
|
|
dashboard,
|
|
onSaveSuccess,
|
|
variant,
|
|
}) => {
|
|
return (
|
|
<ModalsController>
|
|
{({ showModal, hideModal }) => {
|
|
return (
|
|
<Button
|
|
onClick={() => {
|
|
showModal(SaveDashboardDrawer, {
|
|
dashboard,
|
|
onSaveSuccess,
|
|
onDismiss: hideModal,
|
|
isCopy: true,
|
|
});
|
|
}}
|
|
variant={variant}
|
|
aria-label={selectors.pages.Dashboard.Settings.General.saveAsDashBoard}
|
|
>
|
|
Save As...
|
|
</Button>
|
|
);
|
|
}}
|
|
</ModalsController>
|
|
);
|
|
};
|