|
|
@@ -9,12 +9,13 @@ import { PlaylistSrv } from 'app/features/playlist/playlist_srv';
|
|
|
|
|
|
// Components
|
|
|
import { DashNavButton } from './DashNavButton';
|
|
|
+import { Tooltip } from '@grafana/ui';
|
|
|
|
|
|
// State
|
|
|
import { updateLocation } from 'app/core/actions';
|
|
|
|
|
|
// Types
|
|
|
-import { DashboardModel } from '../../state/DashboardModel';
|
|
|
+import { DashboardModel } from '../../state';
|
|
|
|
|
|
export interface Props {
|
|
|
dashboard: DashboardModel;
|
|
|
@@ -33,7 +34,6 @@ export class DashNav extends PureComponent<Props> {
|
|
|
|
|
|
constructor(props: Props) {
|
|
|
super(props);
|
|
|
-
|
|
|
this.playlistSrv = this.props.$injector.get('playlistSrv');
|
|
|
}
|
|
|
|
|
|
@@ -123,26 +123,54 @@ export class DashNav extends PureComponent<Props> {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- render() {
|
|
|
- const { dashboard, isFullscreen, editview, onAddPanel } = this.props;
|
|
|
- const { canStar, canSave, canShare, folderTitle, showSettings, isStarred } = dashboard.meta;
|
|
|
- const { snapshot } = dashboard;
|
|
|
+ renderDashboardTitleSearchButton() {
|
|
|
+ const { dashboard } = this.props;
|
|
|
|
|
|
+ const folderTitle = dashboard.meta.folderTitle;
|
|
|
const haveFolder = dashboard.meta.folderId > 0;
|
|
|
- const snapshotUrl = snapshot && snapshot.originalUrl;
|
|
|
|
|
|
return (
|
|
|
- <div className="navbar">
|
|
|
+ <>
|
|
|
<div>
|
|
|
<a className="navbar-page-btn" onClick={this.onOpenSearch}>
|
|
|
- <i className="gicon gicon-dashboard" />
|
|
|
+ {!this.isInFullscreenOrSettings && <i className="gicon gicon-dashboard" />}
|
|
|
{haveFolder && <span className="navbar-page-btn--folder">{folderTitle} / </span>}
|
|
|
{dashboard.title}
|
|
|
<i className="fa fa-caret-down" />
|
|
|
</a>
|
|
|
</div>
|
|
|
-
|
|
|
<div className="navbar__spacer" />
|
|
|
+ </>
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ get isInFullscreenOrSettings() {
|
|
|
+ return this.props.editview || this.props.isFullscreen;
|
|
|
+ }
|
|
|
+
|
|
|
+ renderBackButton() {
|
|
|
+ return (
|
|
|
+ <div className="navbar-edit">
|
|
|
+ <Tooltip content="Go back (Esc)">
|
|
|
+ <button className="navbar-edit__back-btn" onClick={this.onClose}>
|
|
|
+ <i className="fa fa-arrow-left" />
|
|
|
+ </button>
|
|
|
+ </Tooltip>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ render() {
|
|
|
+ const { dashboard, onAddPanel } = this.props;
|
|
|
+ const { canStar, canSave, canShare, showSettings, isStarred } = dashboard.meta;
|
|
|
+ const { snapshot } = dashboard;
|
|
|
+
|
|
|
+ const snapshotUrl = snapshot && snapshot.originalUrl;
|
|
|
+
|
|
|
+ return (
|
|
|
+ <div className="navbar">
|
|
|
+ {this.isInFullscreenOrSettings && this.renderBackButton()}
|
|
|
+ {this.renderDashboardTitleSearchButton()}
|
|
|
|
|
|
{this.playlistSrv.isPlaying && (
|
|
|
<div className="navbar-buttons navbar-buttons--playlist">
|
|
|
@@ -228,17 +256,6 @@ export class DashNav extends PureComponent<Props> {
|
|
|
</div>
|
|
|
|
|
|
<div className="gf-timepicker-nav" ref={element => (this.timePickerEl = element)} />
|
|
|
-
|
|
|
- {(isFullscreen || editview) && (
|
|
|
- <div className="navbar-buttons navbar-buttons--close">
|
|
|
- <DashNavButton
|
|
|
- tooltip="Back to dashboard"
|
|
|
- classSuffix="primary"
|
|
|
- icon="fa fa-reply"
|
|
|
- onClick={this.onClose}
|
|
|
- />
|
|
|
- </div>
|
|
|
- )}
|
|
|
</div>
|
|
|
);
|
|
|
}
|