diff --git a/public/app/features/dashboard/components/DashNav/DashNav.tsx b/public/app/features/dashboard/components/DashNav/DashNav.tsx index f07f8a273d2..e1a07e4972e 100644 --- a/public/app/features/dashboard/components/DashNav/DashNav.tsx +++ b/public/app/features/dashboard/components/DashNav/DashNav.tsx @@ -12,7 +12,7 @@ import { textUtil } from '@grafana/data'; import { updateTimeZoneForSession } from 'app/features/profile/state/reducers'; // Types import { DashboardModel } from '../../state'; -import { StoreState } from 'app/types'; +import { KioskMode, StoreState } from 'app/types'; import { ShareModal } from 'app/features/dashboard/components/ShareModal'; import { SaveDashboardModalProxy } from 'app/features/dashboard/components/SaveDashboard/SaveDashboardModalProxy'; import { locationService } from '@grafana/runtime'; @@ -22,6 +22,8 @@ import { getDashboardSrv } from '../../services/DashboardSrv'; export interface OwnProps { dashboard: DashboardModel; isFullscreen: boolean; + kioskMode: KioskMode; + hideTimePicker: boolean; onAddPanel: () => void; } @@ -104,21 +106,16 @@ class DashNav extends PureComponent { }); } - isInKioskMode() { - // TODO fix this - return false; - } - isPlaylistRunning() { return playlistSrv.isPlaying; } renderLeftActionsButton() { - const { dashboard } = this.props; + const { dashboard, kioskMode } = this.props; const { canStar, canShare, isStarred } = dashboard.meta; const buttons: ReactNode[] = []; - if (this.isInKioskMode() || this.isPlaylistRunning()) { + if (kioskMode !== KioskMode.Off || this.isPlaylistRunning()) { return []; } @@ -169,8 +166,20 @@ class DashNav extends PureComponent { ); } + renderTimeControls() { + const { dashboard, updateTimeZoneForSession, hideTimePicker } = this.props; + + if (hideTimePicker) { + return null; + } + + return ( + + ); + } + renderRightActionsButton() { - const { dashboard, onAddPanel, updateTimeZoneForSession, isFullscreen } = this.props; + const { dashboard, onAddPanel, isFullscreen, kioskMode } = this.props; const { canEdit, showSettings } = dashboard.meta; const { snapshot } = dashboard; const snapshotUrl = snapshot && snapshot.originalUrl; @@ -178,16 +187,13 @@ class DashNav extends PureComponent { const tvButton = ( ); - const timeControls = ( - - ); if (this.isPlaylistRunning()) { - return [this.renderPlaylistControls(), timeControls]; + return [this.renderPlaylistControls(), this.renderTimeControls()]; } - if (this.isInKioskMode()) { - return [timeControls, tvButton]; + if (kioskMode === KioskMode.TV) { + return [this.renderTimeControls(), tvButton]; } if (canEdit && !isFullscreen) { @@ -229,10 +235,7 @@ class DashNav extends PureComponent { this.addCustomContent(customRightActions, buttons); - if (!dashboard.timepicker.hidden) { - buttons.push(timeControls); - } - + buttons.push(this.renderTimeControls()); buttons.push(tvButton); return buttons; } diff --git a/public/app/features/dashboard/containers/DashboardPage.tsx b/public/app/features/dashboard/containers/DashboardPage.tsx index 5f5e8d30559..5a9552770be 100644 --- a/public/app/features/dashboard/containers/DashboardPage.tsx +++ b/public/app/features/dashboard/containers/DashboardPage.tsx @@ -344,7 +344,13 @@ export class DashboardPage extends PureComponent {
{kioskMode !== KioskMode.Full && (
- +
)} diff --git a/public/app/features/dashboard/containers/__snapshots__/DashboardPage.test.tsx.snap b/public/app/features/dashboard/containers/__snapshots__/DashboardPage.test.tsx.snap index 75cdcb6f797..07b2b0a6e87 100644 --- a/public/app/features/dashboard/containers/__snapshots__/DashboardPage.test.tsx.snap +++ b/public/app/features/dashboard/containers/__snapshots__/DashboardPage.test.tsx.snap @@ -103,6 +103,7 @@ exports[`DashboardPage Dashboard init completed Should render dashboard grid 1` } } isFullscreen={false} + kioskMode="off" onAddPanel={[Function]} />
@@ -482,6 +483,7 @@ exports[`DashboardPage When dashboard has editview url state should render setti } } isFullscreen={false} + kioskMode="off" onAddPanel={[Function]} />