From 839057dc7a393667b231b42fb4d7451a0db77782 Mon Sep 17 00:00:00 2001 From: Johannes Schill Date: Tue, 30 Oct 2018 14:21:47 +0100 Subject: [PATCH] wip: Add "Share" to the react panels --- .../dashgrid/PanelHeader/PanelHeaderMenu.tsx | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenu.tsx b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenu.tsx index 3a27796bb90..5e6f5a5d28c 100644 --- a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenu.tsx +++ b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenu.tsx @@ -4,6 +4,7 @@ import { PanelHeaderMenuItem, PanelHeaderMenuItemTypes } from './PanelHeaderMenu import { store } from 'app/store/configureStore'; import { updateLocation } from 'app/core/actions'; import { removePanel } from 'app/features/dashboard/utils/panel'; +import appEvents from 'app/core/app_events'; export interface PanelHeaderMenuProps { panelId: number; @@ -11,6 +12,13 @@ export interface PanelHeaderMenuProps { } export class PanelHeaderMenu extends PureComponent { + getPanel = () => { + // Pass in panel as prop instead? + const { panelId, dashboard } = this.props; + const panelInfo = dashboard.getPanelInfoById(panelId); + return panelInfo.panel; + }; + onEditPanel = () => { store.dispatch( updateLocation({ @@ -36,9 +44,22 @@ export class PanelHeaderMenu extends PureComponent { }; onRemovePanel = () => { - const { panelId, dashboard } = this.props; - const panelInfo = dashboard.getPanelInfoById(panelId); - removePanel(dashboard, panelInfo.panel, true); + const { dashboard } = this.props; + const panel = this.getPanel(); + removePanel(dashboard, panel, true); + }; + + onSharePanel = () => { + const { dashboard } = this.props; + const panel = this.getPanel(); + + appEvents.emit('show-modal', { + src: 'public/app/features/dashboard/partials/shareModal.html', + model: { + panel: panel, + dashboard: dashboard, + }, + }); }; render() { @@ -63,7 +84,7 @@ export class PanelHeaderMenu extends PureComponent { type={PanelHeaderMenuItemTypes.Link} text="Share" iconClassName="fa fa-fw fa-share" - handleClick={() => {}} + handleClick={this.onSharePanel} shortcut="p s" />